From 8a281033b4706ed7f1c5acbdd8d0e87151db4249 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=B5=9C=EB=A7=8C=EC=96=B5=20=28Jo=29?= Date: Fri, 31 Oct 2025 08:30:58 +0000 Subject: [PATCH] =?UTF-8?q?feat:=20=EA=B3=A0=EC=A0=95=ED=98=95=ED=8E=98?= =?UTF-8?q?=EC=9D=B4=EC=A7=80-=EB=8B=A4=EC=9A=B4=EB=A1=9C=EB=93=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- layers/components/widgets/FixMainTitle.vue | 32 ++ layers/components/widgets/FixSubTitle.vue | 72 +++ layers/composables/useCheckPCSpec.ts | 189 +++++++ layers/composables/useTemplateRegistry.ts | 2 + .../images/common/grades_driver/Type-AMD.png | Bin 0 -> 5306 bytes .../common/grades_driver/Type-DirectX.png | Bin 0 -> 9328 bytes .../common/grades_driver/Type-NVIDIA.png | Bin 0 -> 9886 bytes .../common/grades_driver/Type-Visual.png | Bin 0 -> 6089 bytes .../common/grades_driver/Type-intel.png | Bin 0 -> 2693 bytes layers/templates/FxDownload01/index.vue | 468 ++++++++++++++++++ .../images/common/grades_driver/Type-AMD.svg | 9 + .../common/grades_driver/Type-DirectX.svg | 9 + .../common/grades_driver/Type-NVIDIA.svg | 9 + .../common/grades_driver/Type-Visual.svg | 9 + .../common/grades_driver/Type-intel.svg | 9 + .../ic-v2-control-long-arrow-down-line.svg | 3 + .../common/ic-v2-hardware-desktop-line.svg | 4 + .../images/common/ic-v2-logo-apple-color.svg | 4 + .../common/ic-v2-object-download-line.svg | 4 + .../images/common/ic-v2-stove-symbol-fill.svg | 3 + 20 files changed, 826 insertions(+) create mode 100644 layers/components/widgets/FixMainTitle.vue create mode 100644 layers/components/widgets/FixSubTitle.vue create mode 100644 layers/composables/useCheckPCSpec.ts create mode 100644 layers/public/images/common/grades_driver/Type-AMD.png create mode 100644 layers/public/images/common/grades_driver/Type-DirectX.png create mode 100644 layers/public/images/common/grades_driver/Type-NVIDIA.png create mode 100644 layers/public/images/common/grades_driver/Type-Visual.png create mode 100644 layers/public/images/common/grades_driver/Type-intel.png create mode 100644 layers/templates/FxDownload01/index.vue create mode 100644 public/images/common/grades_driver/Type-AMD.svg create mode 100644 public/images/common/grades_driver/Type-DirectX.svg create mode 100644 public/images/common/grades_driver/Type-NVIDIA.svg create mode 100644 public/images/common/grades_driver/Type-Visual.svg create mode 100644 public/images/common/grades_driver/Type-intel.svg create mode 100644 public/images/common/ic-v2-control-long-arrow-down-line.svg create mode 100644 public/images/common/ic-v2-hardware-desktop-line.svg create mode 100644 public/images/common/ic-v2-logo-apple-color.svg create mode 100644 public/images/common/ic-v2-object-download-line.svg create mode 100644 public/images/common/ic-v2-stove-symbol-fill.svg diff --git a/layers/components/widgets/FixMainTitle.vue b/layers/components/widgets/FixMainTitle.vue new file mode 100644 index 0000000..7e0df58 --- /dev/null +++ b/layers/components/widgets/FixMainTitle.vue @@ -0,0 +1,32 @@ + + + diff --git a/layers/components/widgets/FixSubTitle.vue b/layers/components/widgets/FixSubTitle.vue new file mode 100644 index 0000000..ea8d8d1 --- /dev/null +++ b/layers/components/widgets/FixSubTitle.vue @@ -0,0 +1,72 @@ + + + diff --git a/layers/composables/useCheckPCSpec.ts b/layers/composables/useCheckPCSpec.ts new file mode 100644 index 0000000..132872e --- /dev/null +++ b/layers/composables/useCheckPCSpec.ts @@ -0,0 +1,189 @@ +import { useTokenValidation } from '#layers/composables/useTokenValidation' +import { csrGoStoveLogin } from '#layers/utils/stoveUtil' + +interface ReqCheckSpec { + schemeFormat: string + setupUrl: string + gameNo: string + locale: string +} + +export const useCheckPCSpec = (tm: Function) => { + const { isTokenValid, validateToken } = useTokenValidation() + + // Store + const modalStore = useModalStore() + const { handleOpenConfirm } = modalStore + + const isButtonDisabled = ref(false) // 버튼 비활성화 여부 + + /** + * STOVE 미로그인 상태일 경우 로그인 모달을 표시합니다. + * 케이스에 따라 모달 내용을 변경할 수 있습니다. + * @param content 모달 내용(로그인 안내 메시지) + */ + const showLoginModal = (content: string) => { + handleOpenConfirm({ + contentText: content, + confirmButtonText: tm('Download_Text_StoveLogin'), + modalName: 'modal-login', + confirmButtonEvent: () => { + csrGoStoveLogin() + }, + }) + } + + /** + * PC사양 프로그램이 미설치일 경우 설치 안내 모달을 표시합니다. + * @param {string} setupUrl 설치 프로그램 URL + */ + const showInstallGuideModal = (setupUrl: string) => { + isButtonDisabled.value = false + + handleOpenConfirm({ + contentText: tm('Download_Alert_InstallGuide'), + confirmButtonText: tm('Download_Text_Download'), + modalName: 'modal-download', + isShowDimmed: true, + confirmButtonEvent: () => { + location.href = String(setupUrl) + }, + }) + } + + /** + * iframe을 생성합니다. + * @returns {iframe} 생성된 iframe + */ + const createHiddenIframe = () => { + const iframe = document.createElement('iframe') + iframe.src = 'about:blank' + iframe.id = 'hiddenIframe' + iframe.style.display = 'none' + document.body.appendChild(iframe) + return iframe + } + + /** + * Firefox 브라우저에서 URI를 열기 위한 함수입니다. + * @param {string} uri URI + * @param {Function} successCb 성공 콜백 + * @param {Function} failCb 실패 콜백 + */ + const openUriUsingFirefox = ( + uri: string, + successCb: Function, + failCb: Function + ) => { + let iframe = document.querySelector( + '#hiddenIframe' + ) as HTMLIFrameElement | null + if (!iframe) { + iframe = createHiddenIframe() as HTMLIFrameElement + } + try { + iframe.contentWindow!.location.href = uri + successCb() + } catch (e) { + if ((e as any).name === 'NS_ERROR_UNKNOWN_PROTOCOL') { + failCb() + } + } + } + + /** + * Chrome 브라우저에서 URI를 열기 위한 함수입니다. + * @param {string} uri 사양 프로그램 URI + * @param {Function} successCb 성공 콜백 + * @param {Function} failCb 실패 콜백 + */ + const openUriWithTimeoutHack = ( + uri: string, + successCb: Function, + failCb: Function + ) => { + let called = false + const timeout = setTimeout(() => { + if (!called) { + called = true + window.removeEventListener('blur', onBlur) + failCb() + } + }, 1000) + + const onBlur = () => { + if (!called) { + called = true + clearTimeout(timeout) + window.removeEventListener('blur', onBlur) + successCb() + } + } + + window.addEventListener('blur', onBlur) + window.location.href = uri + } + + /** + * PC사양 프로그램이 설치되어 있는지 여부를 확인합니다. + * @param {string }uri 사양 프로그램 URI + * @param {string} setupUrl 설치 프로그램 URL + */ + const checkPCSpecProgramInstalled = (uri: string, setupUrl: string) => { + const device = useDevice() + + const successCallback = () => { + isButtonDisabled.value = false + } + + if (typeof (navigator as any).msLaunchUri === 'function') { + ;(navigator as any).msLaunchUri( + uri, + successCallback, + showInstallGuideModal(setupUrl) + ) + } else if (device.isFirefox) { + // 파이어폭스 브라우저일 경우 + openUriUsingFirefox(uri, successCallback, () => + showInstallGuideModal(setupUrl) + ) + } else if (device.isChrome || device.isEdge) { + // 크롬 / 엣지 브라우저일 경우 + openUriWithTimeoutHack(uri, successCallback, () => + showInstallGuideModal(setupUrl) + ) + } else { + // 기타 미지원 브라우저일 경우 + showInstallGuideModal(setupUrl) + } + } + + /** + * 시스템 사양 체크를 시작합니다. + * 최종 호출 함수입니다. + * @param {ReqCheckSpec} req {schemeFormat:스킴 포맷, setupUrl:셋업 링크, gameNo:게임넘버, locale:언어} + */ + const checkPCSpec = async (req: ReqCheckSpec) => { + const accessToken = useCookie('SUAT') + await validateToken(accessToken.value || '') + + // 로그인 상태 아닐 경우 + if (!isTokenValid.value) { + showLoginModal(tm('Download_Alert_StoveLogin')) + return + } + + const localeValue: string = req.locale === 'ja' ? 'jp' : req.locale + const uri = `${req.schemeFormat}${accessToken.value}/${req.gameNo}/${localeValue}` + + checkPCSpecProgramInstalled(uri, req.setupUrl) + + isButtonDisabled.value = true + } + + return { + isButtonDisabled, + + checkPCSpec, + } +} diff --git a/layers/composables/useTemplateRegistry.ts b/layers/composables/useTemplateRegistry.ts index 8f97ba3..61e93bd 100644 --- a/layers/composables/useTemplateRegistry.ts +++ b/layers/composables/useTemplateRegistry.ts @@ -9,6 +9,7 @@ import GrDetail02 from '#layers/templates/GrDetail02/index.vue' import GrDetail03 from '#layers/templates/GrDetail03/index.vue' import GrBoard01 from '#layers/templates/GrBoard01/index.vue' import GrContents01 from '#layers/templates/GrContents01/index.vue' +import FxDownload01 from '#layers/templates/FxDownload01/index.vue' const templateRegistry = { GR_VISUAL_01: { component: GrVisual01 }, @@ -22,6 +23,7 @@ const templateRegistry = { GR_DETAIL_02: { component: GrDetail02 }, GR_DETAIL_03: { component: GrDetail03 }, GR_CONTENTS_01: { component: GrContents01 }, + FX_DOWNLOAD_01: { component: FxDownload01 }, } as const type TemplateKey = keyof typeof templateRegistry diff --git a/layers/public/images/common/grades_driver/Type-AMD.png b/layers/public/images/common/grades_driver/Type-AMD.png new file mode 100644 index 0000000000000000000000000000000000000000..460ef7ea0e1d0ed6bb66f9f38cf0ecb7729e3133 GIT binary patch literal 5306 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 literal 0 HcmV?d00001 diff --git a/layers/public/images/common/grades_driver/Type-DirectX.png b/layers/public/images/common/grades_driver/Type-DirectX.png new file mode 100644 index 0000000000000000000000000000000000000000..f1e1bbbc13ec939a7ca2437a24aedb1c9f54c6aa GIT binary patch literal 9328 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 literal 0 HcmV?d00001 diff --git a/layers/public/images/common/grades_driver/Type-NVIDIA.png b/layers/public/images/common/grades_driver/Type-NVIDIA.png new file mode 100644 index 0000000000000000000000000000000000000000..e19d3a60006fc165191296b3e8f57be28165421a GIT binary patch literal 9886 zcmaKSWmFu^x-L$T-~_k93GNK;Iyec=;Lad}yGw8g?(P!YU4sM&5(uurT?1Ucea=4T z{gL8~o=#)tLNGA!jMkdkP;HPB&=g|NYW$B3tB1Yg z8yW^iNYum8*woe>N@-$lY3(2kIP2&EP+FS_13vSB*g=kx=2q5nUe4wkUdo!LUbdzJ zW&lwUN+A#6n*w`ts4=C7y`6&#&_fvTFTKFG{6E!f0Lp)fKy8Hq|K*f6NR?6&;%rVS zz{q_ep(6ymH2f!O`K zAyus)P>72a#F3Jdmz9Hqk^y9FYVGh(7304!AP`XA!3ApUU}`QeB@B4e!fI`829)99 z=H}qz=M$F_;OF3wVHe=%WxAF zWdDb~Z-xKizq!L3>7C!$Z4rsT0RuygCNCwf>9KrlfUJ)vOR&Cb``hVy?F%3Xzy70} zDTI(Y67_beki&+Xt}K^@E=AiUQYHo;zi>F}y{2Ye0H7=a4?lh_?qkPQm(Ho904#P4 z_Q0cHT*pdwwkO2!sfVwD<|2V?uH**Cw|>@i|JmDVNFo6So98@_C=BZ8SWAO&gf?@J>30Z01kuy5q2yb7g5;Jo$K(9MF0S+E9 zC}T`4k>;I2f>cgAqnXIyb6MP1tcWsU8zEfVIN~a0MXkgI@9K~RN;(mbb1?_jaoi7q zu~=m{2$=jjnwqmZRDW4QMCA_ggVk7YUwOn$t>dr&zLqx)h8v=Nz+2;F?@s2yB#Kqr zDnUtrqyih;=LE|DtAeH9N+V6G$-2|Sp$_qBzPKE+MljX74z12e;%1kFY{S>U2imX|>-pIQ1}@0&>t*T53eekk61e8dSlMnKqZy z&NK6ZklW9YL7WdbsA*%WWhs$o%&rXFw{_v-*(0J^o_}r6%I=}Y`V2Amc;dS9azQ~2 zR`>vCaX9Q)6mgym?Q5Wcsf8p6SZp7oj-Bz>~Qs9)n$hkv*U%4Mjl|# zGf9N0+iVvl|2&Q6-=5@cr=+XSYg{p1sD(cHq}tcrRp{Nlv)r;*C>zIG!>CmBGck~L zU2nc*X?KCb-$-~b%FLN&-q@dNlR{xyvZy+VRc*c5DXR1(b)_apncuW{ZddtitxNGj znu3DDc-ocE1rkpG2fXyYAu22tqjBJT2w@BtC)e{)Sk&CPY0hGNOv*Hq6umXs(;J{}-du1N`! zkRm41t@O#5LKkYjdqMT=bSYY{>9P=PvAak;_c|GiZoiX~Wnl1zqr;d$PW~Jr2XFdL zyeLeHtFk8lqV&DR1aZf9${sfcmm>XQjbc*xo$0_|f+jzTH?AI!C#q>hXwy_CM}E1|yU z^6bv$BNOr$IrrJ_E@eFhK6{&Tk>Mba`eNNYawwSmu@m+7&fItT!eR;e-DPe9$fJZE zP{mV{EKW2-^+e}s95`^CX)p|4ZpZLciyhxq0GHF`09_T57ae3^HO#UZaUzI<0O_S; zcasc$HIxEc@)c%7>{oIUz4TZE$z{?aW2UpHRu%QK1`^kuW3!QlvfXU5Oo~mz)yJVd z$FcgnimHQ@BAB*z*SYGYRo8*51>NiGR#$6!ABXWvK43p$*##elP%zS!M&xHSyQ#G^ zJX*9x=$rlpT!h|ujenwI&@H2oMQS=hsg3PWJ1MIfe5zm|}C ze>hLSxrO@tq38Z=njze?$_xPk;XF&%0wbCg_z`#sn9?(GB^X~+{DH>yWiUoqYJO|qqVTJj3nQNGiuO}>HYkcFz zG`!Rm_<|#R@z5^9hx=0vg$hXkQdh3(j;R@-oDQz*Wv7hInQZ#Z_kus2Jzkv>h8Cw6 zzMqzW{by^S5u&$Rrl7UF5#v>F`ew^{eyOEymW~Gx^Y3_=+@G4M65J-*tfTk{GkK8) zP7@gm!?p{giCT!y@`+~;>m}YvAMof1IB_@#P2w4jQ9t4#P}hA>Ej;{tIQQecasXd` zC-xcbIL(coe7)O6rHCzGjFRYE2}eQ&An8x|^&y$c&E4^&yps7fmFgmUyadgF9OHQD zWQc(clFc&nKyMv^U|73yTXOyDW};Dn!|DPbk`6l@vNUX~0#d+=0A*-R%yE2m6YX?w zUSKCF$%HVs{nfEFbvMMYvCgp8LHN?;3sxjOUb7P%Rlz9qtBu}HvgCdaYeqqL*sM)3 zF_+IDF8M)*jue(mJc7~lG`XPrkju!blMHraxYx7a`7NJGb9r=Sk@!Dge%(sc4*k$? z8B97Y`lxGvqfyBihI?N~!lx{MCv@WLB75Bm-_kF6ZC{k8ywO#`Kt}@il4A&e*_k<^ z%`-!t=XtN4t>uRSq-Ob|tk%!1w zDG{n5@EC<=AaxYmS7^q6U^3ZAru=DmE(hJ{IyXBo=&8M(+Zm|`#aDfe@mFnbY2@7p z=yt=g%Xb`Lcs^ z5%Iwl#MaU;;xYZGV^5P#Zrk`p1BLkNiF~ssaoyy@)GD8fa#D}U|Ik@^y%>ISMtwCv zxHMHSwd%zz>0mQLMmkI}rzFoM72$Jt@T&zNk$*|&;8FJRnwVn zlYQRQaB{+scOHt_#4jm}P|6N|GN${=XYr|tmGs6kIy*rl3e{KQu(4}wC*5M$B&g&& zMpmd;fE-=_a4HXP(pAGDH2O6}V~k|6kQtF0&MSqV1R>$0Nj`nC5yTq@K;kNKC36=%v#5`~o*Z z_K{T^pIG?Qj%*V>xJ`cqqZ#MB!I4Lbq!VX8PQjDkIPe{oC_Q*#Ne59U(xT?HJ{>a| z*ca^4p*hG?Mj^2#FRKu1o9~;+WDdC=4F(QWXuc0?3ZTq2Mh6-Rc6r?>)h|42Bauet z)>*I4*EVakNpq`+InIl))Z?ooQst~kda?Lu_91|S%=|vb8HgM@z={bxhS$$yRw(PN z60U>WB`AYXlv1c#v7FKGOmL+<4;DPCLx2KRM?r#JLOv#D6`$9y7!&0bzwa9P`7N|m zOl*_G!4@bZ8sK`ymfX1rfpAQeFH3A5V>IqslsRF#P(0u<%P)WtL|WDgVf!nNM|`4> zC=ai?#p1HbBB=dc)UTH=x@_biO*ozY|v{+O~ik7Rq_QqlX zm~nF-6#FLR8W5TC1Db*}u86R#@5n0<=gS)haO|my)4rexA|3M!R@TM z3Y;%~+A|4weiyrq7)tVodmwk&{Mnfx@XV%(#k|qPh_1}TY_vurQ&9VBQUxF~1KY7P zGX6M^mWXUveiB_?D!Bm3@)i!3;NY-Z$hdSPl&dE8NOswa*XN|sNY+re3up5I z8DB1N69S6{Em9nj#olE|an=W9{Ib9DQ5ow@CvJ@V^6c=NU#Df}+BOc3?bN}6YBzA- zASLhzPqI94-sa_lSC??eiEu5u<6m@N93Bd+D@d_^ZGC!P23v>$dR zz2k~aFvoCMG(-5xcDK-``ae-Uh~X=o;9vHogvk!2=})CKl#}8Wqh`bM#NtjO4u!~R z!!^`D2i%$~z{%Sen?a7Ow}~UVb!!ks>JD8@dnekZ&OVlle-6r;bUar4k@W*5_z&Iy zA9h05k&>Z6+0@z$t}X?|(ROQ%#?viXqKj3K`b=6n#pgfDS||}n=!BV&WPZowUhNRA z_g6LxoJC)g3u-N^(_6e2l}KWf2EyQ=`r#rh8J^=`wD*#ZA5z3RdkPl(ZX{d_j9dxj zJHsk8qIAg@;!OWV^FG#u(EI!Fh5U-RV5 zT9j9#Izi2XH#ceSiE}dLOymnMi|Z8CXT}GM4x5~41bUnu@34tSs!OVdz>y}{`*RIV zmYD?-7{d{srY2(fETzr-6s<=sGQy4^=21PM!1*vVPS}qqesH&bxBLEcn5^Yk8U+N} z`B=mNE(=RQL_{>x;+*AoPlr`blKt}G8#Zge?_Y>+Q0K#{4VoaGW49X!SGCHHH+}Wf zihndYP37ioas9`!arU92aY7rpyLvu#Odp41i}{b@t4Idq2N)RGhv06rz?Vq~a|aI@ zv@ISJH)EsRM%^M;*ndC0?Q~38uaMKUA)PajM^&yw@v?+Z^v8hC$UZ4OtErZr-9-+g zzeq+a67Dl zQYmeN&3W1SKMjZd8rST2$FbSQOBe5tQ6w=G`Kpla4zvJ~r2lH` z)!6$wr4e!l|6M>aMbBIGA7}L@33;hCW$}h9J^Sz z+Ds*AEB6{yL~WtPVqlILynH`7V6Q9?0@DS+z85C_(%-_zxpL@VZ~!t-M9{0)WIPZp z@%PSuYA~mVkXcnTF;Es2B>t{J@-u}Xu{$&;QmuG4f|?a>{wy{;ObGr?9Ii;QSo3vT zqMc(tKksgMBF;o*l$-2Cb+IuS0~|$o5LLZ!^1B25@8*rdwcmL#;TJsEsbcbc!~~q8 zkRtC2P33ylC*|ZR)_qzCf+k}0^B=s7Uavn5RZgkI`Z6qWG$2qe8_9TEMC{2KFT%O{tSHT<;{e(FBDGRZ z?_1}1$M`~G-fkuxk$~%j-reWr&(w2g763Gkv66kPNAB@^9g~nfR$Xs?n+tS6rZ~)} zBw7@aGFRCBK+c8yW#WhGbGMaivK9+j?-Z3xUQkFCAOkadkN4;>Jw%U8&^49p@0F_G z_gj`?c_)?fPpd}@ED{2sM6_DZL6Pr?qhG%1=qr6jC`n7A-?^aN`)DGEFV|chlUUwv47ZQEKKH9O`qK5x7w17pg`JHMmEn*ynFo8rpuCX0} z4i!9^DJO-E=!u>WhgJgrC@I^UvfVSj2ER*rCXd(4qpoeTdw8sFWq8~q@)*As<$3jK z?^B?sxeXW-x!R4_KIO5eQr`c*(s>}v9l7XPw;%|;?zcim0lwSjnTtHqT{Mr-EqN3j)mNrG zJe#Ad#{$~D;VKmq@0fVaKkg(it%?7ILuhVhFL>f1^$}!dcNw^%kHL%~IWf{VthSYo z9>8VLbNXbtM^F&CNTi92(#CixU61gZ5*$j^sOX?Mjy zSd$a}l{BgWE=P#?QgRJj^{K>ij^ssmVS0YD#7Jx_fPLWig6N15{WK_xA5#%+a|1ld z;E7;V!=y7?{l3APkUlZWDK_EUW`=1x?ekrQgWoo;lY4TwpvTk{g8)~21-SgxR%^cn z7w+gPIw!U#{pM+@^XI$g?2%-IsptSPjn**O=aH1=uT+|He@kL@=mKHsYjgM(k@fm3 zsGFkjRq>LLZg{=w*oT{xP1EHZ2y1Jtpu_z|%5oT@CN|{RvoM@#P?U5c1-ZywI9=lD z?LvJ^>yD)_BNS_noK77LoBK`Wr7EHcsV)4aoWqkkzt-nRTAnw~tDbQ=qmoF;M=WqY zc*P$h@qoAvMB5sxXPct*f@G9+5e7bYAaEl-0J8+n?N5pf9){_;9PZy#Y}Fd^5e zaC>?#4(@l&xNRD{XVxgHM-Vwnw2xokv!5o0adn)AjvZyMx-N=xq&MzUfs3u35@vN9 zYbEP|!qx~1oNqWmO|Y+EW1NDZ!0(@iOWZ=I1us`LVFAl*63jk5(NB1!nd9Fm8j1PC zpuj+aCDOE(-z&e|!CeW~UM=CMu4wu-vikd6V0g6iZx9%bxwELXsP;5tnW>>q2FQG_ z3QFB84aSPAtO;zjtqf}IGhsiHLa5k58HW9)AAMa*u__EspSyX@0^rQ&5*m=^RTx?~ z8F`rx!KV^Gtxa3O=MRMh_&^-lp%N`cyqk>nC_PuJk(O_&7baZlELG7;_TOga!cea} ztp|8nZ*@XZ+ypMA8b%KgBw()$(Z8`_r-V@AJ#5~!Km7dpN3T-6%8ks@POHmDNAB>P zHo7S^n5kuhwkMAvb$l#gpn!xZAqnk}z`M+6u%z??pxL~YRsnqX$jFiKI&(5)DSg0j zIdn-7muTGP&U(YlD_wT+k!RQK@!p^-#)45<5~nE>+m~AwHS>H((7vvAnT*iZU8m~n zp#L@lLj?7%5=Xfz4v$kg_)os(tdPN~-KFT*;OS}yE^tpky0Jr!4ksclV@yJdKXbwS z8^w~}ER{?#)7nTWtSFEeB37hfI%!nn$$GPMjVoP^QY&l|w_JGpw)OpgC6owSqxZP; zFcf9ue&HZ^Pc5rlj}e7X8@5b;%)2uFrSNZvJzSPk(Mbx$I{4W|HI6d8yu6-x(z`?? zB&Brp^tpU|d~pFk)e_u*j0_A`(qM32j5hP9Wasc{K8K%WGo1<4vLY2#l0C04Pv{Ka zt6FqY~S-#mz<1o#!PEB#dY(49L+re!g zc(8MA*JmZTKA552pUM_A>M4hs{rYB3S5i`vNiO1}o%ft6kq?tdOrhQBanWZ3VjGRB z-An%V`GGb;PWAcm2CYOX{Tm9Tb7Zv?e7@0V`@I8+vgzh4h#{WN>Fu+2XL<4F&)k0C z9?iY?m)o=NfaB{y5V+cY81%gc&b__SztPBSa3h%gMY$DI{O51H;vH=6I$ZC9nQ zZ-?8-`C~kveXUII&U4K-KW^IvX35nly+W&GG0J$Y@CVNHXpifIgwx>|5_*F-{}APJ zyG!QS3l|R#54+uBii^#s6@XF8jn;D;zZxth)U){q&whydtP)Sk=W!TjjycwHPBS3L zmtUrV3&r7Tji<-PsKA2wmhl_#-QC@(MyjVL5DD%EE7%-Hz&<^Y^X zAlBJOeCb3;4!TD@s^4ZhDGrVaM&*}+c{FXg_>@6dcqE~p4#=8nWZ)=iX^*Y3B>Iu< zv3#9(!Rz9*0P?uI#g45`{9~G-+gw{-G2gkjP!GBN{@!zC(Yl;Dvx}kC9voQNPIiHX zxLZ^_vhvg;)6&w;1oX1HTtpHAe@()`68ZZ2-Xb0%^`zoR4N!KP)4e?X$d_EerB}|X zF2Ca8qmcozq(dzZLoa6$tvtt7am(e=SmAiv2{K0R;|5OouhT8sa zb%I5=B%uFIlr~8-!Mc)2Yy5&9f+yQ#f70cB2knEmFJjTjGeO#1Z&N~saM(=e2s56Q zM~A>p292*M!4?%`{jADuo>T#WXzlFn^{~%WAK@Caie^3$%T5jqZ2Q~bKZZv}$`d`2 zQcyrp_g#HRCMC685bJENWSGB){Qy$Op48A6Up)bsG;J!mCDuE&F>uT*2a=RLp%y!yR}VZs;4aBvvxL z{drCLkCJ~q5GKAPN-E-H$%t6hF}`|?0S>&#EBd{VR53f+n6#eBV8wm;{<_y1c1h{z z=$tgsBlz?@!I#Z)B3}=PJqgAqTh6P^fS;aw8_xxL5f6X2xeU6m`=<7)B~4sxk6d-Q z9=QdQkZi+u=hh4dm-}~|Cc|YqE{=~g#Z{`;|Af6AUmgm3PtqPZNNfX)ixIqy6+bzC z4agG~@PF|^>s4oIqQ~XuWt?}i0t?N7v*fr~Nt^p@Ej%}ILJa0yq0m+g3|t~2YqhtN z)Ml;p!B^-Q0Nz2E3$oTJ9H6bVx2zn$^I_>L(*98D$C;&8K_F0McS8G`iaZHzA_Fyt zN=tcy^r6`_%!$Xa-XxT33mrWG18F&TvDImN=r_lvHsRJ!faATwUCV%>Xo%iBI?iFe z+RjJ}ilS4zA_q~*`y?(dF2zk?L@pE-k9WPp9nyj`vGKJii1?Sw$#T=3ZawB8;QaYJ zH4v*_&?9j@7~x0sW4*jbL7+QGzs-4fZ)NT1ZKhps@Q$kJ!7?%?c_#mUghnW>`;|h^hRM)EM^@3dIz!W@t`Ha#&M|#27vx^urq@&mqg=p zNf-|FX;^NNxbJHt>Sts)!&tNy|F1au_*KiJEjipO#=On6V-T8yoa zTQ^6G^v02z@KfiFoEdQ(AiLmJsbSv%0ol=EW<)w1$P58e30~;}Cr3w;#ag2g3oFF^mv@vPsvUhEG_o|zPs5lSVlYJs zJ{*lgxPWE^txuqw9j8ctc}rb?DbuS8p%y!9Au^A+2$%RySUZ zQyxsUKGV=<3^+gF7U+Gz;cwUq7w)?bGy>M80BB2y;}MdQBg)bW#YPv_#0+A9jHIF) znYp3A0ugj)(yI`GxrP(5udNNnP+LuUq7NZt%D8c>x=Wq8&yj4)t7pFVlTHx4x)dzB zJNRw=ani)A$dt;epNY)h@KH`f_&vN+CjS+D3}O` zINW5{$7|~b=pbC?0ed}s;m^q*$c_2g~xduVqWKgEI^UCQD zLa$P)Sn+M&qBRA$w5~E6Nq!F*(prm17hCdvf?f494kb+7wpxbcbU8D9h1 zZoS)A+|jWPuhJJobscwHEV?f^6xj`xYkO;pS?t?Ta{Fxv1qsQMFyUX7vMkH)9E-jWD>njxly)a^I^-zR=g50*1u07gXj%kGpU;zjONEUEzM8cROb-y&NmIU)XwK Z#I~O}JC7;i|M_D~URqhIMgko4e*jiCVIu$l literal 0 HcmV?d00001 diff --git a/layers/public/images/common/grades_driver/Type-Visual.png b/layers/public/images/common/grades_driver/Type-Visual.png new file mode 100644 index 0000000000000000000000000000000000000000..42c099bee425b3a06ce878bcbadf1474d89d8285 GIT binary patch literal 6089 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 literal 0 HcmV?d00001 diff --git a/layers/public/images/common/grades_driver/Type-intel.png b/layers/public/images/common/grades_driver/Type-intel.png new file mode 100644 index 0000000000000000000000000000000000000000..5b700a1a416440aa5377795a46a2bb50b5124b30 GIT binary patch literal 2693 zcmaJ@dpwi-A76z|Bs5ky&Y6i2yP3oU>>={KF~{Qmg$dtR^S`F_8j*XRBIyg%R1`;X_KpU-AZbpv$} z2&C!hK_DwvhVr%iNlp0;75^etF8TuZAb~$;w?Ihc0U#GTCmeu!vZxUN8KBY=V%h*F z5NMeNGayJ1MDoVbI4n4IF$W&c;wsS~kkiI^E|nGq2%zCW1e1-2y>4iNL78+sEYOyO zByrsU2Gb*v2lyxY1ke(rXjnRIqchYg9;YN=0Rk#Co)yjJ^co;(<;NlPnp->1H+Q2!y2m}g?#UhYs1R8Cv%&_Jsum#k3 zYc}8H8v_C0(|Am-fXQJ)7a6JHoLB)KrWE^67cA~~S~madO)2jT5l`hJP;lg8SKksz zr2n7FVtvo%3&_B~djBUeKOlh%Ajklp6U(D1XSdsAu@o2Q#sjDV4ljViiT-wxehiL) z!)I`~P_!K!g@T%ss5B;fF=X)tLn7fk*?a+&O#?g$c$ks}&ScVYb{Le4JJBBFLcn5C zC?XQ;VDI2&gR&<&VC~Tucbjim0*4mM0@#9YSo*(M+aF>V9l_!%D-!@7GY+5=c^nq> zOWQc+kF}tG$oCaX|FIUEA7T+oF^I+C{@1X-g_I6j+c2urqKF zNNviK;1Uo&Am71>)^*q2*H9NYAnMP(4=X2Qj75Ycs4!RE&s)OZXq1(h8R&R>W29OX zu&3A)j51Rvk^=r>(9)BU=123^Zk-SH>s{+o<$A>&Lms%7dsSF>le%xmnDoiDCk>5H zLmEAka~g_@o+NOd?rBQkWTm&3$gMq!y*i?6%;}LuvqHrr(V+a`QEYg`PFoqo2%9Lv z34gxW>L}P^vn#x?Z7oHYuSPRH?U)X%ecSwMRY4)++(_Gle!Y{i+jekzOYtWe9T(;@ zoq}tQ91EV!)AlOI7(ezQX7|hli&I?8*#57JmtoL!KVE-(J#NtVL0{4zDrOsUrnO~W z#NxM&hxD!=P{gd*e$*$f{29C(si{`vDm6g1T(>&@fo~z(-W6%(t~&ap6P?(X+;t@z zYfC-dBcYyzvXXIscWTj6QOy;-5m{XkGNk+ZRHM7cS1vDj&waX_vvcjUMlMdNN zv5ghR9zav9${CQ$buZ_<%t{3`KkbgPAYUCldKwhGJN-t{1hq3M98M=a+biAA`y`Myh=<09=I@cEs$%1_2pjbQsRQh6$Q_{&RekG2jJ#ye+G13k z?9>4#Sz&)O#pYa?xLjN$&H_C(IV9-p61z7u<9}7`y8Y=jH9A6`4H>RaJibP;2~kOz zy;(ic5I~;S5N{=gu5sxCz(<9z?>#r6)9)8#Dz89OLAfiaby;T%797*U;C!XC6c{XjC^83k45MGOi4fa;U;q?VfqHPKQgCM^e$CCgk5Etm0GY;I_s2w zVSsS6rYa|7=dY<72Ls1fZ+2Vqg8kcGN}GABIrsC<0rRb+0a}Oddv@)te5pl>w48iM zP_;<#e^eOT4U`_de!prYDVJSMSUqKGf}&5GROubh776Y$qA-0or#>dD+m$6&J{b+|(yQS8N@Fz>$Bo`ojM@ikpnAkjpYR%r%lw8D8g-M}xd z?oy7!;GPJRn8YJBAg{yzsp}Xi_~DhJe*Y&aNj-bdzL+k{c@Q8gFlWto*ZYCT&Y5gU z25A^)X-=p~2&W}u&)ZMGG+i$Yl$jh+@mj^+p;5ZpvQZ0tiegz(4Rkh}&1uUtc=xuQ z_OK68i85|!zvFQDsK0CQfhjNC;d)c)O>yDMczch{?Up7Pcokw?Y;*Hq#ZNQ(Qr1YJ zi^qmh?Z8bo2cRm=D%;j92cDiE%x*A)^qEPw1}&T%Da=QTG1I^d4mpSYNq2BzH)vhT7lMRxULQ^EApEf+y^c{BYk`b%c5yva~F4NP_CZKN>iE zs4Vl0RubuX($(P;_pBXc$Z_K{U3WgQV_>LP2ioI<(g7qx_63`GwmlRvk%@ zSN;I7fiSAWTSZVG*k@GM6ednHKAtCY{vDRKF5|-AhAAb-j77ASvBj4ULpNiV9tm8a z^SY7s`=W;J5^IBgzcCALwX(V;wa;pq0?YV*iY3hIa?o^zqQ(zgdrYe!eJrGNT$C!E k;-19ltgZxl7j(iv@Vuq7U~k_yi$8{*?mmQS*D%q40M+@4%m4rY literal 0 HcmV?d00001 diff --git a/layers/templates/FxDownload01/index.vue b/layers/templates/FxDownload01/index.vue new file mode 100644 index 0000000..9df185c --- /dev/null +++ b/layers/templates/FxDownload01/index.vue @@ -0,0 +1,468 @@ + + + + + diff --git a/public/images/common/grades_driver/Type-AMD.svg b/public/images/common/grades_driver/Type-AMD.svg new file mode 100644 index 0000000..901d425 --- /dev/null +++ b/public/images/common/grades_driver/Type-AMD.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/public/images/common/grades_driver/Type-DirectX.svg b/public/images/common/grades_driver/Type-DirectX.svg new file mode 100644 index 0000000..01c97f5 --- /dev/null +++ b/public/images/common/grades_driver/Type-DirectX.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/public/images/common/grades_driver/Type-NVIDIA.svg b/public/images/common/grades_driver/Type-NVIDIA.svg new file mode 100644 index 0000000..783753b --- /dev/null +++ b/public/images/common/grades_driver/Type-NVIDIA.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/public/images/common/grades_driver/Type-Visual.svg b/public/images/common/grades_driver/Type-Visual.svg new file mode 100644 index 0000000..45602f6 --- /dev/null +++ b/public/images/common/grades_driver/Type-Visual.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/public/images/common/grades_driver/Type-intel.svg b/public/images/common/grades_driver/Type-intel.svg new file mode 100644 index 0000000..24e8c1f --- /dev/null +++ b/public/images/common/grades_driver/Type-intel.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/public/images/common/ic-v2-control-long-arrow-down-line.svg b/public/images/common/ic-v2-control-long-arrow-down-line.svg new file mode 100644 index 0000000..7bb25fe --- /dev/null +++ b/public/images/common/ic-v2-control-long-arrow-down-line.svg @@ -0,0 +1,3 @@ + + + diff --git a/public/images/common/ic-v2-hardware-desktop-line.svg b/public/images/common/ic-v2-hardware-desktop-line.svg new file mode 100644 index 0000000..4e07997 --- /dev/null +++ b/public/images/common/ic-v2-hardware-desktop-line.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/images/common/ic-v2-logo-apple-color.svg b/public/images/common/ic-v2-logo-apple-color.svg new file mode 100644 index 0000000..760d2eb --- /dev/null +++ b/public/images/common/ic-v2-logo-apple-color.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/images/common/ic-v2-object-download-line.svg b/public/images/common/ic-v2-object-download-line.svg new file mode 100644 index 0000000..ea22f93 --- /dev/null +++ b/public/images/common/ic-v2-object-download-line.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/images/common/ic-v2-stove-symbol-fill.svg b/public/images/common/ic-v2-stove-symbol-fill.svg new file mode 100644 index 0000000..a0300b6 --- /dev/null +++ b/public/images/common/ic-v2-stove-symbol-fill.svg @@ -0,0 +1,3 @@ + + +