@epic-web/workshop-app 5.16.0 → 5.18.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/client/assets/{_-BbjJ9R-5.js → _-BDcQ_M2J.js} +2 -2
- package/build/client/assets/{_-BbjJ9R-5.js.map → _-BDcQ_M2J.js.map} +1 -1
- package/build/client/assets/{_exerciseNumber-Bd4c2v-C.js → _exerciseNumber-CG2AFTtQ.js} +2 -2
- package/build/client/assets/{_exerciseNumber-Bd4c2v-C.js.map → _exerciseNumber-CG2AFTtQ.js.map} +1 -1
- package/build/client/assets/{_exerciseNumber_._stepNumber-CZKDy98j.js → _exerciseNumber_._stepNumber-COWC332q.js} +2 -2
- package/build/client/assets/{_exerciseNumber_._stepNumber-CZKDy98j.js.map → _exerciseNumber_._stepNumber-COWC332q.js.map} +1 -1
- package/build/client/assets/{_exerciseNumber_.finished-LvfViAKb.js → _exerciseNumber_.finished-BgGBYU74.js} +2 -2
- package/build/client/assets/{_exerciseNumber_.finished-LvfViAKb.js.map → _exerciseNumber_.finished-BgGBYU74.js.map} +1 -1
- package/build/client/assets/_layout-DKC1JUTc.js +2 -0
- package/build/client/assets/_layout-DKC1JUTc.js.map +1 -0
- package/build/client/assets/_layout-DuDUPWax.js +6 -0
- package/build/client/assets/_layout-DuDUPWax.js.map +1 -0
- package/build/client/assets/{accordion-BL_cX9y6.js → accordion-BPyhq471.js} +2 -2
- package/build/client/assets/{accordion-BL_cX9y6.js.map → accordion-BPyhq471.js.map} +1 -1
- package/build/client/assets/{account-C4MWGVQU.js → account-BwQvf4AS.js} +2 -2
- package/build/client/assets/{account-C4MWGVQU.js.map → account-BwQvf4AS.js.map} +1 -1
- package/build/client/assets/app-XHqxOZfy.js +2 -0
- package/build/client/assets/{app-DK_pEo6e.js.map → app-XHqxOZfy.js.map} +1 -1
- package/build/client/assets/button-DVPKzWkn.js +2 -0
- package/build/client/assets/{button-DhtjxLl5.js.map → button-DVPKzWkn.js.map} +1 -1
- package/build/client/assets/{diff-DI-wBaTF.js → diff-C7Zh3uuA.js} +2 -2
- package/build/client/assets/{diff-DI-wBaTF.js.map → diff-C7Zh3uuA.js.map} +1 -1
- package/build/client/assets/diff-DVOUmaq6.js +2 -0
- package/build/client/assets/{diff-BrUTVi14.js.map → diff-DVOUmaq6.js.map} +1 -1
- package/build/client/assets/discord-CFZUT74L.js +2 -0
- package/build/client/assets/discord-CFZUT74L.js.map +1 -0
- package/build/client/assets/{discord-DsGCI_e6.js → discord-CoBo5eVK.js} +2 -2
- package/build/client/assets/{discord-DsGCI_e6.js.map → discord-CoBo5eVK.js.map} +1 -1
- package/build/client/assets/{epic-video-DoUlMEIW.js → epic-video-DRZssA4U.js} +2 -2
- package/build/client/assets/{epic-video-DoUlMEIW.js.map → epic-video-DRZssA4U.js.map} +1 -1
- package/build/client/assets/{error-boundary-DBVB3BBH.js → error-boundary-De7jJlR5.js} +2 -2
- package/build/client/assets/{error-boundary-DBVB3BBH.js.map → error-boundary-De7jJlR5.js.map} +1 -1
- package/build/client/assets/{finished-y90Pn48k.js → finished-6JNE1a1E.js} +2 -2
- package/build/client/assets/{finished-y90Pn48k.js.map → finished-6JNE1a1E.js.map} +1 -1
- package/build/client/assets/{index-D7-ne3iG.js → index-6Hu4Lmzn.js} +2 -2
- package/build/client/assets/{index-D7-ne3iG.js.map → index-6Hu4Lmzn.js.map} +1 -1
- package/build/client/assets/{index-CWadM2q_.js → index-BE3KRz8n.js} +2 -2
- package/build/client/assets/{index-CWadM2q_.js.map → index-BE3KRz8n.js.map} +1 -1
- package/build/client/assets/{index-BOO5UotZ.js → index-BZWIdOoA.js} +2 -2
- package/build/client/assets/{index-BOO5UotZ.js.map → index-BZWIdOoA.js.map} +1 -1
- package/build/client/assets/{index-BH_SsYHe.js → index-Cnxrq9Ny.js} +2 -2
- package/build/client/assets/{index-BH_SsYHe.js.map → index-Cnxrq9Ny.js.map} +1 -1
- package/build/client/assets/{index-De6oiBJI.js → index-CyFsiCNp.js} +2 -2
- package/build/client/assets/{index-De6oiBJI.js.map → index-CyFsiCNp.js.map} +1 -1
- package/build/client/assets/{index-BpZ0TCe-.js → index-M647UyZv.js} +2 -2
- package/build/client/assets/{index-BpZ0TCe-.js.map → index-M647UyZv.js.map} +1 -1
- package/build/client/assets/{loading-D4V_nJZr.js → loading-ClL22bF9.js} +2 -2
- package/build/client/assets/{loading-D4V_nJZr.js.map → loading-ClL22bF9.js.map} +1 -1
- package/build/client/assets/{login-DiEHnGfv.js → login-C3I5NCrj.js} +2 -2
- package/build/client/assets/{login-DiEHnGfv.js.map → login-C3I5NCrj.js.map} +1 -1
- package/build/client/assets/{manifest-2ba0f4a0.js → manifest-a58be1e7.js} +1 -1
- package/build/client/assets/{mdx-Ce3knRHx.js → mdx-Z4bEoKXn.js} +2 -2
- package/build/client/assets/{mdx-Ce3knRHx.js.map → mdx-Z4bEoKXn.js.map} +1 -1
- package/build/client/assets/{misc-D9k1wGip.js → misc-BK2EiKtY.js} +2 -2
- package/build/client/assets/{misc-D9k1wGip.js.map → misc-BK2EiKtY.js.map} +1 -1
- package/build/client/assets/{nav-chevrons-CM-frhig.js → nav-chevrons-DVD_0i2a.js} +2 -2
- package/build/client/assets/{nav-chevrons-CM-frhig.js.map → nav-chevrons-DVD_0i2a.js.map} +1 -1
- package/build/client/assets/{onboarding-Dnb9KzTs.js → onboarding-DjyKxkKx.js} +2 -2
- package/build/client/assets/{onboarding-Dnb9KzTs.js.map → onboarding-DjyKxkKx.js.map} +1 -1
- package/build/client/assets/{online-BrcRwzQC.js → online-CHlOuJG-.js} +2 -2
- package/build/client/assets/{online-BrcRwzQC.js.map → online-CHlOuJG-.js.map} +1 -1
- package/build/client/assets/{preferences-DZYeWTq7.js → preferences-BmwlU5EC.js} +2 -2
- package/build/client/assets/{preferences-DZYeWTq7.js.map → preferences-BmwlU5EC.js.map} +1 -1
- package/build/client/assets/{presence-Dmt5LCeW.js → presence-CPOTHCHm.js} +2 -2
- package/build/client/assets/{presence-Dmt5LCeW.js.map → presence-CPOTHCHm.js.map} +1 -1
- package/build/client/assets/preview-B2BxDDhi.js +2 -0
- package/build/client/assets/preview-B2BxDDhi.js.map +1 -0
- package/build/client/assets/{product-CleOH5Nn.js → product-BkDgAOLQ.js} +2 -2
- package/build/client/assets/{product-CleOH5Nn.js.map → product-BkDgAOLQ.js.map} +1 -1
- package/build/client/assets/{progress-CpALgZbi.js → progress-CnHFlUmF.js} +2 -2
- package/build/client/assets/{progress-CpALgZbi.js.map → progress-CnHFlUmF.js.map} +1 -1
- package/build/client/assets/{progress-bar-IswLOt8e.js → progress-bar-Q9l2dtTg.js} +2 -2
- package/build/client/assets/{progress-bar-IswLOt8e.js.map → progress-bar-Q9l2dtTg.js.map} +1 -1
- package/build/client/assets/{revalidation-ws-CibzUlFP.js → revalidation-ws-CLolY6Iu.js} +2 -2
- package/build/client/assets/{revalidation-ws-CibzUlFP.js.map → revalidation-ws-CLolY6Iu.js.map} +1 -1
- package/build/client/assets/{root-ZN-l7RsB.js → root-DF5m7yW1.js} +3 -3
- package/build/client/assets/{root-ZN-l7RsB.js.map → root-DF5m7yW1.js.map} +1 -1
- package/build/client/assets/{set-playground-DBPp1Pek.js → set-playground-ZcPraYj5.js} +2 -2
- package/build/client/assets/{set-playground-DBPp1Pek.js.map → set-playground-ZcPraYj5.js.map} +1 -1
- package/build/client/assets/tailwind-O9k3JIDs.css +1 -0
- package/build/client/assets/test-Bt9AuCey.js +2 -0
- package/build/client/assets/{test-DGBB06nI.js.map → test-Bt9AuCey.js.map} +1 -1
- package/build/client/assets/{tests-B6AwzXv3.js → tests-CmjMQrMj.js} +2 -2
- package/build/client/assets/{tests-B6AwzXv3.js.map → tests-CmjMQrMj.js.map} +1 -1
- package/build/client/assets/{tooltip-CzrLrLJU.js → tooltip-leWCE50J.js} +2 -2
- package/build/client/assets/{tooltip-CzrLrLJU.js.map → tooltip-leWCE50J.js.map} +1 -1
- package/build/server/index.js +259 -108
- package/build/server/index.js.map +1 -1
- package/package.json +3 -3
- package/build/client/assets/_layout-DhhhwkhJ.js +0 -6
- package/build/client/assets/_layout-DhhhwkhJ.js.map +0 -1
- package/build/client/assets/_layout-cO4Dvl1j.js +0 -2
- package/build/client/assets/_layout-cO4Dvl1j.js.map +0 -1
- package/build/client/assets/app-DK_pEo6e.js +0 -2
- package/build/client/assets/button-DhtjxLl5.js +0 -2
- package/build/client/assets/diff-BrUTVi14.js +0 -2
- package/build/client/assets/discord-tUa_uzeh.js +0 -2
- package/build/client/assets/discord-tUa_uzeh.js.map +0 -1
- package/build/client/assets/preview-BUkOZv9x.js +0 -2
- package/build/client/assets/preview-BUkOZv9x.js.map +0 -1
- package/build/client/assets/tailwind-4klXLdJc.css +0 -1
- package/build/client/assets/test-DGBB06nI.js +0 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app-
|
|
1
|
+
{"version":3,"file":"app-XHqxOZfy.js","sources":["../../../app/routes/_app+/exercise+/$exerciseNumber_.$stepNumber.$type+/app.tsx"],"sourcesContent":["import { requireExerciseApp } from '@epic-web/workshop-utils/apps.server'\nimport {\n\tcombineServerTimings,\n\tmakeTimings,\n} from '@epic-web/workshop-utils/timing.server'\nimport {\n\tunstable_data as data,\n\ttype HeadersFunction,\n\ttype LoaderFunctionArgs,\n} from '@remix-run/node'\nimport { useLoaderData } from '@remix-run/react'\nimport { useRef } from 'react'\nimport { type InBrowserBrowserRef } from '#app/components/in-browser-browser.js'\nimport { Preview } from './__shared/preview.tsx'\nimport { getAppRunningState } from './__shared/utils.tsx'\n\nexport async function loader({ request, params }: LoaderFunctionArgs) {\n\tconst timings = makeTimings('exercise-step-test')\n\tconst exerciseStepApp = await requireExerciseApp(params, { request, timings })\n\tconst { isRunning, portIsAvailable } =\n\t\tawait getAppRunningState(exerciseStepApp)\n\n\treturn data(\n\t\t{\n\t\t\tappInfo: {\n\t\t\t\tisRunning,\n\t\t\t\tname: exerciseStepApp.name,\n\t\t\t\ttitle: exerciseStepApp.title,\n\t\t\t\tportIsAvailable,\n\t\t\t\ttype: exerciseStepApp.type,\n\t\t\t\tfullPath: exerciseStepApp.fullPath,\n\t\t\t\tdev: exerciseStepApp.dev,\n\t\t\t\ttest: exerciseStepApp.test,\n\t\t\t\tstackBlitzUrl: exerciseStepApp.stackBlitzUrl,\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\theaders: {\n\t\t\t\t'Server-Timing': timings.toString(),\n\t\t\t},\n\t\t},\n\t)\n}\n\nexport const headers: HeadersFunction = ({ loaderHeaders, parentHeaders }) => {\n\tconst headers = {\n\t\t'Server-Timing': combineServerTimings(loaderHeaders, parentHeaders),\n\t}\n\treturn headers\n}\n\nexport default function TestsList() {\n\tconst { appInfo } = useLoaderData<typeof loader>()\n\tconst ref = useRef<InBrowserBrowserRef>(null)\n\n\treturn <Preview appInfo={appInfo} inBrowserBrowserRef={ref} />\n}\n"],"names":["TestsList","appInfo","useLoaderData","ref","useRef","jsx","Preview","inBrowserBrowserRef"],"mappings":"kVAmDA,SAAwBA,GAAY,CAC7B,KAAA,CAAEC,QAAAA,CAAQ,EAAIC,EAA6B,EAC3CC,EAAMC,SAA4B,IAAI,EAE5C,OAAQC,EAAAA,IAAAC,EAAA,CAAQL,QAAAA,EAAkBM,oBAAqBJ,CAAK,CAAA,CAC7D"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{j as n}from"./index-CGzylDPY.js";import{c as s}from"./misc-BK2EiKtY.js";import{L as u}from"./components-DrvY4pal.js";function l(){return n.jsx("span",{className:"inline-block animate-spin",children:"🌀"})}function d(){return n.jsx("span",{children:"✅"})}function m(){return n.jsx("span",{children:"❌"})}function a({varient:e,clip:t=!0}){const o="inline-flex bg-foreground text-background outline-none hover:bg-background hover:text-foreground focus:bg-background focus:text-foreground",r="px-8 py-4 font-bold",c="px-8 py-4 text-xl font-bold",i="px-8 py-4 font-mono text-sm uppercase";return s(o,{"clip-path-button":t,[r]:e==="primary",[c]:e==="big",[i]:e==="mono"})}function g({varient:e,status:t="idle",...o}){const r={pending:n.jsx(l,{}),success:n.jsx(d,{}),error:n.jsx(m,{}),idle:null}[t];return n.jsx("div",{className:"clip-path-button-outer w-fit border-2 border-foreground bg-foreground",children:n.jsxs("button",{...o,className:s(o.className,a({varient:e}),"flex justify-center gap-4"),children:[n.jsx("div",{children:o.children}),r]})})}function j({varient:e,...t}){return n.jsx("div",{className:"clip-path-button-outer w-fit border-2 border-foreground bg-foreground",children:n.jsx(u,{...t,className:s(t.className,a({varient:e}))})})}function N({className:e,...t}){return n.jsx("button",{...t,className:s("underline",e)})}export{g as B,N as L,j as a};
|
|
2
|
+
//# sourceMappingURL=button-DVPKzWkn.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"button-
|
|
1
|
+
{"version":3,"file":"button-DVPKzWkn.js","sources":["../../../app/components/button.tsx"],"sourcesContent":["import { Link } from '@remix-run/react'\nimport { clsx } from 'clsx'\n\nfunction PendingState() {\n\treturn <span className=\"inline-block animate-spin\">🌀</span>\n}\n\nfunction SuccessState() {\n\treturn <span>✅</span>\n}\n\nfunction ErrorState() {\n\treturn <span>❌</span>\n}\n\nexport function getButtonClassName({\n\tvarient,\n\tclip = true,\n}: {\n\tvarient: 'primary' | 'big' | 'mono'\n\tclip?: boolean\n}) {\n\tconst baseClassName =\n\t\t'inline-flex bg-foreground text-background outline-none hover:bg-background hover:text-foreground focus:bg-background focus:text-foreground'\n\tconst primaryClassName = 'px-8 py-4 font-bold'\n\tconst bigClassName = 'px-8 py-4 text-xl font-bold'\n\tconst monoClassName = 'px-8 py-4 font-mono text-sm uppercase'\n\tconst className = clsx(baseClassName, {\n\t\t'clip-path-button': clip,\n\t\t[primaryClassName]: varient === 'primary',\n\t\t[bigClassName]: varient === 'big',\n\t\t[monoClassName]: varient === 'mono',\n\t})\n\treturn className\n}\n\nexport function Button({\n\tvarient,\n\tstatus = 'idle',\n\t...props\n}: React.ComponentPropsWithoutRef<'button'> &\n\tParameters<typeof getButtonClassName>[0] & {\n\t\tstatus?: 'pending' | 'success' | 'error' | 'idle'\n\t}) {\n\tconst companion = {\n\t\tpending: <PendingState />,\n\t\tsuccess: <SuccessState />,\n\t\terror: <ErrorState />,\n\t\tidle: null,\n\t}[status]\n\treturn (\n\t\t<div className=\"clip-path-button-outer w-fit border-2 border-foreground bg-foreground\">\n\t\t\t<button\n\t\t\t\t{...props}\n\t\t\t\tclassName={clsx(\n\t\t\t\t\tprops.className,\n\t\t\t\t\tgetButtonClassName({ varient }),\n\t\t\t\t\t'flex justify-center gap-4',\n\t\t\t\t)}\n\t\t\t>\n\t\t\t\t<div>{props.children}</div>\n\t\t\t\t{companion}\n\t\t\t</button>\n\t\t</div>\n\t)\n}\n\nexport function ButtonLink({\n\tvarient,\n\t...props\n}: React.ComponentPropsWithoutRef<typeof Link> &\n\tParameters<typeof getButtonClassName>[0]) {\n\treturn (\n\t\t<div className=\"clip-path-button-outer w-fit border-2 border-foreground bg-foreground\">\n\t\t\t<Link\n\t\t\t\t{...props}\n\t\t\t\tclassName={clsx(props.className, getButtonClassName({ varient }))}\n\t\t\t/>\n\t\t</div>\n\t)\n}\n\nexport function LinkButton({\n\tclassName,\n\t...props\n}: React.ComponentPropsWithoutRef<'button'>) {\n\treturn <button {...props} className={clsx('underline', className)} />\n}\n"],"names":["PendingState","jsx","SuccessState","ErrorState","getButtonClassName","varient","clip","baseClassName","primaryClassName","bigClassName","monoClassName","clsx","Button","status","props","companion","jsxs","ButtonLink","Link","LinkButton","className"],"mappings":"4HAGA,SAASA,GAAe,CACvB,OAAQC,EAAAA,IAAA,OAAA,CAAK,UAAU,4BAA4B,SAAE,IAAA,CAAA,CACtD,CAEA,SAASC,GAAe,CAChB,OAAAD,EAAA,IAAC,QAAK,SAAC,GAAA,CAAA,CACf,CAEA,SAASE,GAAa,CACd,OAAAF,EAAA,IAAC,QAAK,SAAC,GAAA,CAAA,CACf,CAEO,SAASG,EAAmB,CAClC,QAAAC,EACA,KAAAC,EAAO,EACR,EAGG,CACF,MAAMC,EACL,6IACKC,EAAmB,sBACnBC,EAAe,8BACfC,EAAgB,wCAOf,OANWC,EAAKJ,EAAe,CACrC,mBAAoBD,EACpB,CAACE,CAAgB,EAAGH,IAAY,UAChC,CAACI,CAAY,EAAGJ,IAAY,MAC5B,CAACK,CAAa,EAAGL,IAAY,MAAA,CAC7B,CAEF,CAEO,SAASO,EAAO,CACtB,QAAAP,EACA,OAAAQ,EAAS,OACT,GAAGC,CACJ,EAGI,CACH,MAAMC,EAAY,CACjB,cAAUf,EAAa,EAAA,EACvB,cAAUE,EAAa,EAAA,EACvB,YAAQC,EAAW,EAAA,EACnB,KAAM,MACLU,CAAM,EAEP,OAAAZ,EAAAA,IAAC,MAAI,CAAA,UAAU,wEACd,SAAAe,EAAA,KAAC,SAAA,CACC,GAAGF,EACJ,UAAWH,EACVG,EAAM,UACNV,EAAmB,CAAE,QAAAC,EAAS,EAC9B,2BACD,EAEA,SAAA,CAACJ,EAAAA,IAAA,MAAA,CAAK,WAAM,QAAS,CAAA,EACpBc,CAAA,CAAA,CAEH,CAAA,CAAA,CAEF,CAEO,SAASE,EAAW,CAC1B,QAAAZ,EACA,GAAGS,CACJ,EAC2C,CAEzC,OAAAb,EAAAA,IAAC,MAAI,CAAA,UAAU,wEACd,SAAAA,EAAA,IAACiB,EAAA,CACC,GAAGJ,EACJ,UAAWH,EAAKG,EAAM,UAAWV,EAAmB,CAAE,QAAAC,CAAA,CAAS,CAAC,CAAA,CAElE,CAAA,CAAA,CAEF,CAEO,SAASc,EAAW,CAC1B,UAAAC,EACA,GAAGN,CACJ,EAA6C,CACrC,OAAAb,EAAA,IAAC,UAAQ,GAAGa,EAAO,UAAWH,EAAK,YAAaS,CAAS,CAAG,CAAA,CACpE"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{c as j,j as e,r as w,R as x}from"./index-CGzylDPY.js";import{R as b,A as g}from"./accordion-
|
|
2
|
-
//# sourceMappingURL=diff-
|
|
1
|
+
import{c as j,j as e,r as w,R as x}from"./index-CGzylDPY.js";import{R as b,A as g}from"./accordion-BPyhq471.js";import{R as N,T as v,I as y,P as S,C as R,S as k,a as D,G as A,L as C,b as I,c as T,d as P,e as V,V as $}from"./index-6Hu4Lmzn.js";import{d as L,I as o,a as E,c as h}from"./misc-BK2EiKtY.js";import{M as F,u as U}from"./mdx-Z4bEoKXn.js";import{D as B}from"./epic-video-DRZssA4U.js";import{u as G}from"./revalidation-ws-CLolY6Iu.js";import{S as m}from"./tooltip-leWCE50J.js";import{b as H}from"./user-C0j04V55.js";import{d as M,e as W,A as z,L as Y,F as q}from"./components-DrvY4pal.js";const J=l=>e.jsx("pre",{...l}),K={Accordion:g,pre:J};function O({app1:l,app2:a}){const t=U(),r=t.find(n=>n.name===l),i=t.find(n=>n.name===a);return G({watchPaths:[r==null?void 0:r.fullPath,i==null?void 0:i.fullPath].filter(Boolean)}),null}function oe({diff:l,allApps:a}){const t=H(),r=M(),[i]=W(),n=new URLSearchParams(i);n.set("forceFresh","diff");const f=j(),u=L.useSpinDelay(f.state!=="idle",{delay:0,minDuration:1e3}),p=[];for(const[s,c]of i.entries())s==="app1"||s==="app2"||p.push(e.jsx("input",{type:"hidden",name:s,value:c},s));return t?e.jsx(w.Suspense,{fallback:e.jsx("div",{className:"flex items-center justify-center p-8",children:e.jsx(m,{content:"Loading diff",children:e.jsx(o,{name:"Refresh",className:"animate-spin"})})}),children:e.jsx(z,{resolve:l,errorElement:e.jsx("p",{className:"text-foreground-destructive p-6",children:"There was an error calculating the diff. Sorry."}),children:s=>e.jsxs("div",{className:"flex h-full w-full flex-col",children:[e.jsxs("div",{className:"flex h-14 min-h-14 w-full overflow-x-hidden border-b",children:[e.jsx("div",{className:"border-r",children:e.jsx(m,{content:"Reload diff",children:e.jsx(Y,{to:`.?${n}`,className:"flex h-full w-14 items-center justify-center",children:e.jsx(o,{name:"Refresh",className:E({"animate-spin":u})})})})}),e.jsxs(q,{onChange:c=>r(c.currentTarget),className:"flex h-full flex-1 items-center overflow-x-auto scrollbar-thin scrollbar-thumb-scrollbar",children:[p,e.jsx(d,{name:"app1",label:"App 1",className:"border-r",allApps:a,defaultValue:s.app1}),e.jsx(d,{name:"app2",label:"App 2",allApps:a,defaultValue:s.app2})]},`${s.app1}${s.app2}`)]}),e.jsx("div",{className:"flex-grow overflow-y-scroll scrollbar-thin scrollbar-thumb-scrollbar",children:s.diffCode?e.jsx("div",{children:e.jsx(b,{className:"w-full",type:"multiple",children:e.jsx(F,{code:s.diffCode,components:K})})}):s.app1&&s.app2?e.jsx("p",{className:"m-5 inline-flex items-center justify-center bg-foreground px-1 py-0.5 font-mono text-sm uppercase text-background",children:"There was a problem generating the diff"}):e.jsx("p",{className:"m-5 inline-flex items-center justify-center bg-foreground px-1 py-0.5 font-mono text-sm uppercase text-background",children:"Select two apps to compare"})}),e.jsx(O,{app1:s.app1,app2:s.app2})]})})}):e.jsxs("div",{className:"w-full p-12",children:[e.jsxs("div",{className:"flex w-full flex-col gap-4 text-center",children:[e.jsx("p",{className:"text-2xl font-bold",children:"Access Denied"}),e.jsx("p",{className:"text-lg",children:"You must login or register for the workshop to view the diff."})]}),e.jsx("div",{className:"h-16"}),e.jsx("p",{className:"pb-4",children:"Check out this video to see how the diff tab works."}),e.jsx(B,{url:"https://www.epicweb.dev/tips/epic-workshop-diff-tab-demo"})]})}function d({name:l,label:a,className:t,allApps:r,defaultValue:i}){return e.jsxs(N,{name:l,defaultValue:i,children:[e.jsxs(v,{className:h("flex h-full w-full max-w-[50%] items-center justify-between px-3 text-left radix-placeholder:text-gray-500 focus-visible:outline-none",t),"aria-label":`Select ${a} for git Diff`,children:[e.jsxs("span",{className:"overflow-hidden text-ellipsis whitespace-nowrap",children:[a,":"," ",e.jsx(X,{placeholder:`Select ${a}`,className:"inline-block w-40 text-ellipsis"})]}),e.jsx(y,{className:"",children:e.jsx(o,{name:"TriangleDownSmall"})})]}),e.jsx(S,{children:e.jsxs(R,{position:"popper",align:"start",className:"z-20 max-h-[50vh] bg-black text-white lg:max-h-[70vh]",children:[e.jsx(k,{className:"flex h-5 cursor-default items-center justify-center",children:e.jsx(o,{name:"ChevronUp"})}),e.jsx(D,{className:"p-3",children:e.jsxs(A,{children:[e.jsx(C,{className:"px-5 pb-3 font-mono uppercase",children:a}),r.map(n=>e.jsx(Q,{value:n.name,children:n.displayName},n.name))]})}),e.jsx(I,{className:"flex h-5 cursor-default items-center justify-center",children:e.jsx(o,{name:"ChevronDown"})})]})})]})}const Q=x.forwardRef(({children:l,className:a,...t},r)=>e.jsxs(T,{className:h("relative flex cursor-pointer select-none items-center rounded px-10 py-2 leading-none opacity-80 radix-disabled:text-red-500 radix-highlighted:opacity-100 radix-highlighted:outline-none radix-state-checked:opacity-100",a),...t,ref:r,children:[e.jsx(P,{children:l}),e.jsx(V,{className:"absolute left-0 inline-flex w-[25px] items-center justify-center",children:e.jsx(o,{name:"CheckSmall"})})]})),X=x.forwardRef(({children:l,className:a,...t},r)=>e.jsx($,{...t,ref:r,children:t.value}));export{oe as D};
|
|
2
|
+
//# sourceMappingURL=diff-C7Zh3uuA.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"diff-DI-wBaTF.js","sources":["../../../app/components/diff.tsx"],"sourcesContent":["import * as Accordion from '@radix-ui/react-accordion'\nimport * as Select from '@radix-ui/react-select'\nimport {\n\tAwait,\n\tForm,\n\tLink,\n\tuseNavigation,\n\tuseSearchParams,\n\tuseSubmit,\n} from '@remix-run/react'\nimport { clsx } from 'clsx'\nimport React, { Suspense } from 'react'\nimport { useSpinDelay } from 'spin-delay'\nimport AccordionComponent from '#app/components/accordion.tsx'\nimport { Mdx } from '#app/utils/mdx.tsx'\nimport { cn } from '#app/utils/misc.tsx'\nimport { useApps } from './apps.tsx'\nimport { DeferredEpicVideo } from './epic-video.tsx'\nimport { Icon } from './icons.tsx'\nimport { useRevalidationWS } from './revalidation-ws.tsx'\nimport { SimpleTooltip } from './ui/tooltip.tsx'\nimport { useUserHasAccess } from './user.tsx'\n\ntype diffProp = {\n\tapp1?: string\n\tapp2?: string\n\tdiffCode?: string | null\n}\n\nconst pre = (props: any) => <pre {...props} />\n\nconst mdxComponents = {\n\tAccordion: AccordionComponent,\n\t// override the pre-with-buttons\n\tpre,\n}\n\nfunction RevalidateApps({\n\tapp1: app1Name,\n\tapp2: app2Name,\n}: {\n\tapp1?: string\n\tapp2?: string\n}) {\n\tconst apps = useApps()\n\tconst app1 = apps.find((app) => app.name === app1Name)\n\tconst app2 = apps.find((app) => app.name === app2Name)\n\n\tuseRevalidationWS({\n\t\twatchPaths: [app1?.fullPath, app2?.fullPath].filter(Boolean),\n\t})\n\treturn null\n}\n\nexport function Diff({\n\tdiff,\n\tallApps,\n}: {\n\tdiff: Promise<diffProp> | diffProp\n\tallApps: Array<{ name: string; displayName: string }>\n}) {\n\tconst userHasAccess = useUserHasAccess()\n\tconst submit = useSubmit()\n\tconst [params] = useSearchParams()\n\tconst paramsWithForcedRefresh = new URLSearchParams(params)\n\tparamsWithForcedRefresh.set('forceFresh', 'diff')\n\tconst navigation = useNavigation()\n\tconst spinnerNavigating = useSpinDelay(navigation.state !== 'idle', {\n\t\tdelay: 0,\n\t\tminDuration: 1000,\n\t})\n\n\tconst hiddenInputs: Array<React.ReactNode> = []\n\tfor (const [key, value] of params.entries()) {\n\t\tif (key === 'app1' || key === 'app2') continue\n\t\thiddenInputs.push(\n\t\t\t<input key={key} type=\"hidden\" name={key} value={value} />,\n\t\t)\n\t}\n\n\tif (!userHasAccess) {\n\t\treturn (\n\t\t\t<div className=\"w-full p-12\">\n\t\t\t\t<div className=\"flex w-full flex-col gap-4 text-center\">\n\t\t\t\t\t<p className=\"text-2xl font-bold\">Access Denied</p>\n\t\t\t\t\t<p className=\"text-lg\">\n\t\t\t\t\t\tYou must login or register for the workshop to view the diff.\n\t\t\t\t\t</p>\n\t\t\t\t</div>\n\t\t\t\t<div className=\"h-16\" />\n\t\t\t\t<p className=\"pb-4\">\n\t\t\t\t\tCheck out this video to see how the diff tab works.\n\t\t\t\t</p>\n\t\t\t\t<DeferredEpicVideo url=\"https://www.epicweb.dev/tips/epic-workshop-diff-tab-demo\" />\n\t\t\t</div>\n\t\t)\n\t}\n\n\treturn (\n\t\t<Suspense\n\t\t\tfallback={\n\t\t\t\t<div className=\"flex items-center justify-center p-8\">\n\t\t\t\t\t<SimpleTooltip content=\"Loading diff\">\n\t\t\t\t\t\t<Icon name=\"Refresh\" className=\"animate-spin\" />\n\t\t\t\t\t</SimpleTooltip>\n\t\t\t\t</div>\n\t\t\t}\n\t\t>\n\t\t\t<Await\n\t\t\t\tresolve={diff}\n\t\t\t\terrorElement={\n\t\t\t\t\t<p className=\"text-foreground-destructive p-6\">\n\t\t\t\t\t\tThere was an error calculating the diff. Sorry.\n\t\t\t\t\t</p>\n\t\t\t\t}\n\t\t\t>\n\t\t\t\t{(diff) => (\n\t\t\t\t\t<div className=\"flex h-full w-full flex-col\">\n\t\t\t\t\t\t<div className=\"flex h-14 min-h-14 w-full overflow-x-hidden border-b\">\n\t\t\t\t\t\t\t<div className=\"border-r\">\n\t\t\t\t\t\t\t\t<SimpleTooltip content=\"Reload diff\">\n\t\t\t\t\t\t\t\t\t<Link\n\t\t\t\t\t\t\t\t\t\tto={`.?${paramsWithForcedRefresh}`}\n\t\t\t\t\t\t\t\t\t\tclassName=\"flex h-full w-14 items-center justify-center\"\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t<Icon\n\t\t\t\t\t\t\t\t\t\t\tname=\"Refresh\"\n\t\t\t\t\t\t\t\t\t\t\tclassName={cn({ 'animate-spin': spinnerNavigating })}\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t</Link>\n\t\t\t\t\t\t\t\t</SimpleTooltip>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<Form\n\t\t\t\t\t\t\t\tonChange={(e) => submit(e.currentTarget)}\n\t\t\t\t\t\t\t\tclassName=\"flex h-full flex-1 items-center overflow-x-auto scrollbar-thin scrollbar-thumb-scrollbar\"\n\t\t\t\t\t\t\t\tkey={`${diff.app1}${diff.app2}`}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{hiddenInputs}\n\t\t\t\t\t\t\t\t<SelectFileToDiff\n\t\t\t\t\t\t\t\t\tname=\"app1\"\n\t\t\t\t\t\t\t\t\tlabel=\"App 1\"\n\t\t\t\t\t\t\t\t\tclassName=\"border-r\"\n\t\t\t\t\t\t\t\t\tallApps={allApps}\n\t\t\t\t\t\t\t\t\tdefaultValue={diff.app1}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t<SelectFileToDiff\n\t\t\t\t\t\t\t\t\tname=\"app2\"\n\t\t\t\t\t\t\t\t\tlabel=\"App 2\"\n\t\t\t\t\t\t\t\t\tallApps={allApps}\n\t\t\t\t\t\t\t\t\tdefaultValue={diff.app2}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</Form>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<div className=\"flex-grow overflow-y-scroll scrollbar-thin scrollbar-thumb-scrollbar\">\n\t\t\t\t\t\t\t{diff.diffCode ? (\n\t\t\t\t\t\t\t\t<div>\n\t\t\t\t\t\t\t\t\t<Accordion.Root className=\"w-full\" type=\"multiple\">\n\t\t\t\t\t\t\t\t\t\t<Mdx code={diff.diffCode} components={mdxComponents} />\n\t\t\t\t\t\t\t\t\t</Accordion.Root>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t) : diff.app1 && diff.app2 ? (\n\t\t\t\t\t\t\t\t<p className=\"m-5 inline-flex items-center justify-center bg-foreground px-1 py-0.5 font-mono text-sm uppercase text-background\">\n\t\t\t\t\t\t\t\t\tThere was a problem generating the diff\n\t\t\t\t\t\t\t\t</p>\n\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t<p className=\"m-5 inline-flex items-center justify-center bg-foreground px-1 py-0.5 font-mono text-sm uppercase text-background\">\n\t\t\t\t\t\t\t\t\tSelect two apps to compare\n\t\t\t\t\t\t\t\t</p>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<RevalidateApps app1={diff.app1} app2={diff.app2} />\n\t\t\t\t\t</div>\n\t\t\t\t)}\n\t\t\t</Await>\n\t\t</Suspense>\n\t)\n}\n\nfunction SelectFileToDiff({\n\tname,\n\tlabel,\n\tclassName,\n\tallApps,\n\tdefaultValue,\n}: {\n\tname: string\n\tlabel: string\n\tclassName?: string\n\tallApps: Array<{ name: string; displayName: string }>\n\tdefaultValue?: string\n}) {\n\treturn (\n\t\t<Select.Root name={name} defaultValue={defaultValue}>\n\t\t\t<Select.Trigger\n\t\t\t\tclassName={clsx(\n\t\t\t\t\t'flex h-full w-full max-w-[50%] items-center justify-between px-3 text-left radix-placeholder:text-gray-500 focus-visible:outline-none',\n\t\t\t\t\tclassName,\n\t\t\t\t)}\n\t\t\t\taria-label={`Select ${label} for git Diff`}\n\t\t\t>\n\t\t\t\t<span className=\"overflow-hidden text-ellipsis whitespace-nowrap\">\n\t\t\t\t\t{label}:{' '}\n\t\t\t\t\t<SelectValue\n\t\t\t\t\t\tplaceholder={`Select ${label}`}\n\t\t\t\t\t\tclassName=\"inline-block w-40 text-ellipsis\"\n\t\t\t\t\t/>\n\t\t\t\t</span>\n\t\t\t\t<Select.Icon className=\"\">\n\t\t\t\t\t<Icon name=\"TriangleDownSmall\" />\n\t\t\t\t</Select.Icon>\n\t\t\t</Select.Trigger>\n\t\t\t<Select.Portal>\n\t\t\t\t<Select.Content\n\t\t\t\t\tposition=\"popper\"\n\t\t\t\t\talign=\"start\"\n\t\t\t\t\tclassName=\"z-20 max-h-[50vh] bg-black text-white lg:max-h-[70vh]\"\n\t\t\t\t>\n\t\t\t\t\t<Select.ScrollUpButton className=\"flex h-5 cursor-default items-center justify-center\">\n\t\t\t\t\t\t<Icon name=\"ChevronUp\" />\n\t\t\t\t\t</Select.ScrollUpButton>\n\t\t\t\t\t<Select.Viewport className=\"p-3\">\n\t\t\t\t\t\t<Select.Group>\n\t\t\t\t\t\t\t<Select.Label className=\"px-5 pb-3 font-mono uppercase\">\n\t\t\t\t\t\t\t\t{label}\n\t\t\t\t\t\t\t</Select.Label>\n\t\t\t\t\t\t\t{allApps.map((app) => {\n\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t<SelectItem key={app.name} value={app.name}>\n\t\t\t\t\t\t\t\t\t\t{app.displayName}\n\t\t\t\t\t\t\t\t\t</SelectItem>\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t</Select.Group>\n\t\t\t\t\t</Select.Viewport>\n\t\t\t\t\t<Select.ScrollDownButton className=\"flex h-5 cursor-default items-center justify-center\">\n\t\t\t\t\t\t<Icon name=\"ChevronDown\" />\n\t\t\t\t\t</Select.ScrollDownButton>\n\t\t\t\t</Select.Content>\n\t\t\t</Select.Portal>\n\t\t</Select.Root>\n\t)\n}\n\nconst SelectItem: React.FC<any> = React.forwardRef(\n\t({ children, className, ...props }, forwardedRef) => {\n\t\treturn (\n\t\t\t<Select.Item\n\t\t\t\tclassName={clsx(\n\t\t\t\t\t'relative flex cursor-pointer select-none items-center rounded px-10 py-2 leading-none opacity-80 radix-disabled:text-red-500 radix-highlighted:opacity-100 radix-highlighted:outline-none radix-state-checked:opacity-100',\n\n\t\t\t\t\tclassName,\n\t\t\t\t)}\n\t\t\t\t{...props}\n\t\t\t\tref={forwardedRef}\n\t\t\t>\n\t\t\t\t<Select.ItemText>{children}</Select.ItemText>\n\t\t\t\t<Select.ItemIndicator className=\"absolute left-0 inline-flex w-[25px] items-center justify-center\">\n\t\t\t\t\t<Icon name=\"CheckSmall\" />\n\t\t\t\t</Select.ItemIndicator>\n\t\t\t</Select.Item>\n\t\t)\n\t},\n)\n\nconst SelectValue: React.FC<any> = React.forwardRef(\n\t({ children, className, ...props }, forwardedRef) => {\n\t\treturn (\n\t\t\t<Select.Value {...props} ref={forwardedRef}>\n\t\t\t\t{props.value}\n\t\t\t</Select.Value>\n\t\t)\n\t},\n)\n"],"names":["pre","props","jsx","mdxComponents","AccordionComponent","RevalidateApps","app1Name","app2Name","apps","useApps","app1","app","app2","useRevalidationWS","Diff","diff","allApps","userHasAccess","useUserHasAccess","submit","useSubmit","params","useSearchParams","paramsWithForcedRefresh","navigation","useNavigation","spinnerNavigating","useSpinDelay","hiddenInputs","key","value","Suspense","SimpleTooltip","Icon","Await","jsxs","Link","cn","Form","e","SelectFileToDiff","Accordion.Root","Mdx","DeferredEpicVideo","name","label","className","defaultValue","Select.Root","Select.Trigger","clsx","SelectValue","Select.Icon","Select.Portal","Select.Content","Select.ScrollUpButton","Select.Viewport","Select.Group","Select.Label","SelectItem","Select.ScrollDownButton","React","children","forwardedRef","Select.Item","Select.ItemText","Select.ItemIndicator","Select.Value"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"diff-C7Zh3uuA.js","sources":["../../../app/components/diff.tsx"],"sourcesContent":["import * as Accordion from '@radix-ui/react-accordion'\nimport * as Select from '@radix-ui/react-select'\nimport {\n\tAwait,\n\tForm,\n\tLink,\n\tuseNavigation,\n\tuseSearchParams,\n\tuseSubmit,\n} from '@remix-run/react'\nimport { clsx } from 'clsx'\nimport React, { Suspense } from 'react'\nimport { useSpinDelay } from 'spin-delay'\nimport AccordionComponent from '#app/components/accordion.tsx'\nimport { Mdx } from '#app/utils/mdx.tsx'\nimport { cn } from '#app/utils/misc.tsx'\nimport { useApps } from './apps.tsx'\nimport { DeferredEpicVideo } from './epic-video.tsx'\nimport { Icon } from './icons.tsx'\nimport { useRevalidationWS } from './revalidation-ws.tsx'\nimport { SimpleTooltip } from './ui/tooltip.tsx'\nimport { useUserHasAccess } from './user.tsx'\n\ntype diffProp = {\n\tapp1?: string\n\tapp2?: string\n\tdiffCode?: string | null\n}\n\nconst pre = (props: any) => <pre {...props} />\n\nconst mdxComponents = {\n\tAccordion: AccordionComponent,\n\t// override the pre-with-buttons\n\tpre,\n}\n\nfunction RevalidateApps({\n\tapp1: app1Name,\n\tapp2: app2Name,\n}: {\n\tapp1?: string\n\tapp2?: string\n}) {\n\tconst apps = useApps()\n\tconst app1 = apps.find((app) => app.name === app1Name)\n\tconst app2 = apps.find((app) => app.name === app2Name)\n\n\tuseRevalidationWS({\n\t\twatchPaths: [app1?.fullPath, app2?.fullPath].filter(Boolean),\n\t})\n\treturn null\n}\n\nexport function Diff({\n\tdiff,\n\tallApps,\n}: {\n\tdiff: Promise<diffProp> | diffProp\n\tallApps: Array<{ name: string; displayName: string }>\n}) {\n\tconst userHasAccess = useUserHasAccess()\n\tconst submit = useSubmit()\n\tconst [params] = useSearchParams()\n\tconst paramsWithForcedRefresh = new URLSearchParams(params)\n\tparamsWithForcedRefresh.set('forceFresh', 'diff')\n\tconst navigation = useNavigation()\n\tconst spinnerNavigating = useSpinDelay(navigation.state !== 'idle', {\n\t\tdelay: 0,\n\t\tminDuration: 1000,\n\t})\n\n\tconst hiddenInputs: Array<React.ReactNode> = []\n\tfor (const [key, value] of params.entries()) {\n\t\tif (key === 'app1' || key === 'app2') continue\n\t\thiddenInputs.push(\n\t\t\t<input key={key} type=\"hidden\" name={key} value={value} />,\n\t\t)\n\t}\n\n\tif (!userHasAccess) {\n\t\treturn (\n\t\t\t<div className=\"w-full p-12\">\n\t\t\t\t<div className=\"flex w-full flex-col gap-4 text-center\">\n\t\t\t\t\t<p className=\"text-2xl font-bold\">Access Denied</p>\n\t\t\t\t\t<p className=\"text-lg\">\n\t\t\t\t\t\tYou must login or register for the workshop to view the diff.\n\t\t\t\t\t</p>\n\t\t\t\t</div>\n\t\t\t\t<div className=\"h-16\" />\n\t\t\t\t<p className=\"pb-4\">\n\t\t\t\t\tCheck out this video to see how the diff tab works.\n\t\t\t\t</p>\n\t\t\t\t<DeferredEpicVideo url=\"https://www.epicweb.dev/tips/epic-workshop-diff-tab-demo\" />\n\t\t\t</div>\n\t\t)\n\t}\n\n\treturn (\n\t\t<Suspense\n\t\t\tfallback={\n\t\t\t\t<div className=\"flex items-center justify-center p-8\">\n\t\t\t\t\t<SimpleTooltip content=\"Loading diff\">\n\t\t\t\t\t\t<Icon name=\"Refresh\" className=\"animate-spin\" />\n\t\t\t\t\t</SimpleTooltip>\n\t\t\t\t</div>\n\t\t\t}\n\t\t>\n\t\t\t<Await\n\t\t\t\tresolve={diff}\n\t\t\t\terrorElement={\n\t\t\t\t\t<p className=\"text-foreground-destructive p-6\">\n\t\t\t\t\t\tThere was an error calculating the diff. Sorry.\n\t\t\t\t\t</p>\n\t\t\t\t}\n\t\t\t>\n\t\t\t\t{(diff) => (\n\t\t\t\t\t<div className=\"flex h-full w-full flex-col\">\n\t\t\t\t\t\t<div className=\"flex h-14 min-h-14 w-full overflow-x-hidden border-b\">\n\t\t\t\t\t\t\t<div className=\"border-r\">\n\t\t\t\t\t\t\t\t<SimpleTooltip content=\"Reload diff\">\n\t\t\t\t\t\t\t\t\t<Link\n\t\t\t\t\t\t\t\t\t\tto={`.?${paramsWithForcedRefresh}`}\n\t\t\t\t\t\t\t\t\t\tclassName=\"flex h-full w-14 items-center justify-center\"\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t<Icon\n\t\t\t\t\t\t\t\t\t\t\tname=\"Refresh\"\n\t\t\t\t\t\t\t\t\t\t\tclassName={cn({ 'animate-spin': spinnerNavigating })}\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t</Link>\n\t\t\t\t\t\t\t\t</SimpleTooltip>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<Form\n\t\t\t\t\t\t\t\tonChange={(e) => submit(e.currentTarget)}\n\t\t\t\t\t\t\t\tclassName=\"flex h-full flex-1 items-center overflow-x-auto scrollbar-thin scrollbar-thumb-scrollbar\"\n\t\t\t\t\t\t\t\tkey={`${diff.app1}${diff.app2}`}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{hiddenInputs}\n\t\t\t\t\t\t\t\t<SelectFileToDiff\n\t\t\t\t\t\t\t\t\tname=\"app1\"\n\t\t\t\t\t\t\t\t\tlabel=\"App 1\"\n\t\t\t\t\t\t\t\t\tclassName=\"border-r\"\n\t\t\t\t\t\t\t\t\tallApps={allApps}\n\t\t\t\t\t\t\t\t\tdefaultValue={diff.app1}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t<SelectFileToDiff\n\t\t\t\t\t\t\t\t\tname=\"app2\"\n\t\t\t\t\t\t\t\t\tlabel=\"App 2\"\n\t\t\t\t\t\t\t\t\tallApps={allApps}\n\t\t\t\t\t\t\t\t\tdefaultValue={diff.app2}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</Form>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<div className=\"flex-grow overflow-y-scroll scrollbar-thin scrollbar-thumb-scrollbar\">\n\t\t\t\t\t\t\t{diff.diffCode ? (\n\t\t\t\t\t\t\t\t<div>\n\t\t\t\t\t\t\t\t\t<Accordion.Root className=\"w-full\" type=\"multiple\">\n\t\t\t\t\t\t\t\t\t\t<Mdx code={diff.diffCode} components={mdxComponents} />\n\t\t\t\t\t\t\t\t\t</Accordion.Root>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t) : diff.app1 && diff.app2 ? (\n\t\t\t\t\t\t\t\t<p className=\"m-5 inline-flex items-center justify-center bg-foreground px-1 py-0.5 font-mono text-sm uppercase text-background\">\n\t\t\t\t\t\t\t\t\tThere was a problem generating the diff\n\t\t\t\t\t\t\t\t</p>\n\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t<p className=\"m-5 inline-flex items-center justify-center bg-foreground px-1 py-0.5 font-mono text-sm uppercase text-background\">\n\t\t\t\t\t\t\t\t\tSelect two apps to compare\n\t\t\t\t\t\t\t\t</p>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<RevalidateApps app1={diff.app1} app2={diff.app2} />\n\t\t\t\t\t</div>\n\t\t\t\t)}\n\t\t\t</Await>\n\t\t</Suspense>\n\t)\n}\n\nfunction SelectFileToDiff({\n\tname,\n\tlabel,\n\tclassName,\n\tallApps,\n\tdefaultValue,\n}: {\n\tname: string\n\tlabel: string\n\tclassName?: string\n\tallApps: Array<{ name: string; displayName: string }>\n\tdefaultValue?: string\n}) {\n\treturn (\n\t\t<Select.Root name={name} defaultValue={defaultValue}>\n\t\t\t<Select.Trigger\n\t\t\t\tclassName={clsx(\n\t\t\t\t\t'flex h-full w-full max-w-[50%] items-center justify-between px-3 text-left radix-placeholder:text-gray-500 focus-visible:outline-none',\n\t\t\t\t\tclassName,\n\t\t\t\t)}\n\t\t\t\taria-label={`Select ${label} for git Diff`}\n\t\t\t>\n\t\t\t\t<span className=\"overflow-hidden text-ellipsis whitespace-nowrap\">\n\t\t\t\t\t{label}:{' '}\n\t\t\t\t\t<SelectValue\n\t\t\t\t\t\tplaceholder={`Select ${label}`}\n\t\t\t\t\t\tclassName=\"inline-block w-40 text-ellipsis\"\n\t\t\t\t\t/>\n\t\t\t\t</span>\n\t\t\t\t<Select.Icon className=\"\">\n\t\t\t\t\t<Icon name=\"TriangleDownSmall\" />\n\t\t\t\t</Select.Icon>\n\t\t\t</Select.Trigger>\n\t\t\t<Select.Portal>\n\t\t\t\t<Select.Content\n\t\t\t\t\tposition=\"popper\"\n\t\t\t\t\talign=\"start\"\n\t\t\t\t\tclassName=\"z-20 max-h-[50vh] bg-black text-white lg:max-h-[70vh]\"\n\t\t\t\t>\n\t\t\t\t\t<Select.ScrollUpButton className=\"flex h-5 cursor-default items-center justify-center\">\n\t\t\t\t\t\t<Icon name=\"ChevronUp\" />\n\t\t\t\t\t</Select.ScrollUpButton>\n\t\t\t\t\t<Select.Viewport className=\"p-3\">\n\t\t\t\t\t\t<Select.Group>\n\t\t\t\t\t\t\t<Select.Label className=\"px-5 pb-3 font-mono uppercase\">\n\t\t\t\t\t\t\t\t{label}\n\t\t\t\t\t\t\t</Select.Label>\n\t\t\t\t\t\t\t{allApps.map((app) => {\n\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t<SelectItem key={app.name} value={app.name}>\n\t\t\t\t\t\t\t\t\t\t{app.displayName}\n\t\t\t\t\t\t\t\t\t</SelectItem>\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t</Select.Group>\n\t\t\t\t\t</Select.Viewport>\n\t\t\t\t\t<Select.ScrollDownButton className=\"flex h-5 cursor-default items-center justify-center\">\n\t\t\t\t\t\t<Icon name=\"ChevronDown\" />\n\t\t\t\t\t</Select.ScrollDownButton>\n\t\t\t\t</Select.Content>\n\t\t\t</Select.Portal>\n\t\t</Select.Root>\n\t)\n}\n\nconst SelectItem: React.FC<any> = React.forwardRef(\n\t({ children, className, ...props }, forwardedRef) => {\n\t\treturn (\n\t\t\t<Select.Item\n\t\t\t\tclassName={clsx(\n\t\t\t\t\t'relative flex cursor-pointer select-none items-center rounded px-10 py-2 leading-none opacity-80 radix-disabled:text-red-500 radix-highlighted:opacity-100 radix-highlighted:outline-none radix-state-checked:opacity-100',\n\n\t\t\t\t\tclassName,\n\t\t\t\t)}\n\t\t\t\t{...props}\n\t\t\t\tref={forwardedRef}\n\t\t\t>\n\t\t\t\t<Select.ItemText>{children}</Select.ItemText>\n\t\t\t\t<Select.ItemIndicator className=\"absolute left-0 inline-flex w-[25px] items-center justify-center\">\n\t\t\t\t\t<Icon name=\"CheckSmall\" />\n\t\t\t\t</Select.ItemIndicator>\n\t\t\t</Select.Item>\n\t\t)\n\t},\n)\n\nconst SelectValue: React.FC<any> = React.forwardRef(\n\t({ children, className, ...props }, forwardedRef) => {\n\t\treturn (\n\t\t\t<Select.Value {...props} ref={forwardedRef}>\n\t\t\t\t{props.value}\n\t\t\t</Select.Value>\n\t\t)\n\t},\n)\n"],"names":["pre","props","jsx","mdxComponents","AccordionComponent","RevalidateApps","app1Name","app2Name","apps","useApps","app1","app","app2","useRevalidationWS","Diff","diff","allApps","userHasAccess","useUserHasAccess","submit","useSubmit","params","useSearchParams","paramsWithForcedRefresh","navigation","useNavigation","spinnerNavigating","useSpinDelay","hiddenInputs","key","value","Suspense","SimpleTooltip","Icon","Await","jsxs","Link","cn","Form","e","SelectFileToDiff","Accordion.Root","Mdx","DeferredEpicVideo","name","label","className","defaultValue","Select.Root","Select.Trigger","clsx","SelectValue","Select.Icon","Select.Portal","Select.Content","Select.ScrollUpButton","Select.Viewport","Select.Group","Select.Label","SelectItem","Select.ScrollDownButton","React","children","forwardedRef","Select.Item","Select.ItemText","Select.ItemIndicator","Select.Value"],"mappings":"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"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{c as o,j as r}from"./index-CGzylDPY.js";import{d as e,a as m}from"./misc-BK2EiKtY.js";import{D as p}from"./diff-C7Zh3uuA.js";import{N as n}from"./nav-chevrons-DVD_0i2a.js";import{u as f,e as c}from"./components-DrvY4pal.js";import"./accordion-BPyhq471.js";import"./tooltip-leWCE50J.js";import"./index-6Hu4Lmzn.js";import"./index-BE3KRz8n.js";import"./mdx-Z4bEoKXn.js";import"./epic-video-DRZssA4U.js";import"./index-BZWIdOoA.js";import"./pe-DXT2FOp1.js";import"./online-CHlOuJG-.js";import"./loading-ClL22bF9.js";import"./user-C0j04V55.js";import"./workshop-config-oL_FWDKq.js";import"./progress-bar-Q9l2dtTg.js";import"./revalidation-ws-CLolY6Iu.js";function W(){const i=f(),[t]=c();new URLSearchParams(t).set("forceFresh","diff");const s=o(),a=e.useSpinDelay(s.state!=="idle",{delay:200,minDuration:200});return r.jsxs("div",{className:m("grid h-full grid-rows-[1fr,auto]",{"cursor-wait opacity-30":a}),children:[r.jsx("div",{className:"overflow-y-auto",children:r.jsx(p,{diff:i.diff,allApps:i.allApps})}),r.jsx("div",{className:"flex h-16 items-center justify-end border-t",children:r.jsx(n,{prev:i.prevLink,next:i.nextLink})})]})}export{W as default};
|
|
2
|
+
//# sourceMappingURL=diff-DVOUmaq6.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"diff-
|
|
1
|
+
{"version":3,"file":"diff-DVOUmaq6.js","sources":["../../../app/routes/diff.tsx"],"sourcesContent":["import {\n\tgetAppByName,\n\tgetAppDisplayName,\n\tgetApps,\n\tisExerciseStepApp,\n} from '@epic-web/workshop-utils/apps.server'\nimport { getDiffCode } from '@epic-web/workshop-utils/diff.server'\nimport { makeTimings } from '@epic-web/workshop-utils/timing.server'\nimport { type LoaderFunctionArgs } from '@remix-run/node'\nimport { useLoaderData, useNavigation, useSearchParams } from '@remix-run/react'\nimport { useSpinDelay } from 'spin-delay'\nimport { Diff } from '#app/components/diff.tsx'\nimport { NavChevrons } from '#app/components/nav-chevrons.tsx'\nimport { cn } from '#app/utils/misc.tsx'\n\nexport async function loader({ request }: LoaderFunctionArgs) {\n\tconst reqUrl = new URL(request.url)\n\tconst searchParams = reqUrl.searchParams\n\tconst timings = makeTimings('diffLoader')\n\tconst cacheOptions = { request, timings }\n\tconst allAppsFull = await getApps()\n\tconst app1Name = reqUrl.searchParams.get('app1')\n\tconst app2Name = reqUrl.searchParams.get('app2')\n\n\tconst usingDefaultApp1 = !app1Name\n\n\t// defaults to first problem app\n\tconst app1 = app1Name\n\t\t? await getAppByName(app1Name)\n\t\t: allAppsFull.filter(isExerciseStepApp).at(0)\n\n\t// defaults to last exercise step app\n\tconst app2 = app2Name\n\t\t? await getAppByName(app2Name)\n\t\t: allAppsFull.filter(isExerciseStepApp).at(-1)\n\n\tasync function getDiffProp() {\n\t\tif (!app1 || !app2) {\n\t\t\treturn {\n\t\t\t\tapp1: app1?.name,\n\t\t\t\tapp2: app2?.name,\n\t\t\t\tdiffCode: null,\n\t\t\t}\n\t\t}\n\t\tconst diffCode = await getDiffCode(app1, app2, {\n\t\t\t...cacheOptions,\n\t\t\tforceFresh: searchParams.get('forceFresh') === 'diff',\n\t\t}).catch((e) => {\n\t\t\tconsole.error(e)\n\t\t\treturn null\n\t\t})\n\t\treturn {\n\t\t\tapp1: app1.name,\n\t\t\tapp2: app2.name,\n\t\t\tdiffCode,\n\t\t}\n\t}\n\n\tconst allApps = allAppsFull\n\t\t.filter((a, i, ar) => ar.findIndex((b) => a.name === b.name) === i)\n\t\t.map((a) => ({\n\t\t\tdisplayName: getAppDisplayName(a, allAppsFull),\n\t\t\tname: a.name,\n\t\t\ttitle: a.title,\n\t\t\ttype: a.type,\n\t\t}))\n\n\tconst diff = getDiffProp()\n\tconst app1Index = allApps.findIndex((a) => a.name === app1?.name)\n\tconst prevApp1Index = usingDefaultApp1\n\t\t? allApps.length - 2\n\t\t: app1Index === 0\n\t\t\t? -2\n\t\t\t: app1Index - 1\n\tconst prevApp2Index = prevApp1Index + 1\n\tconst nextApp1Index = usingDefaultApp1\n\t\t? 0\n\t\t: app1Index + 1 < allApps.length\n\t\t\t? app1Index + 1\n\t\t\t: -2\n\tconst nextApp2Index = nextApp1Index + 1\n\tconst prevApp1 = allAppsFull[prevApp1Index]?.name\n\tconst prevApp2 = allAppsFull[prevApp2Index]?.name\n\tconst nextApp1 = allAppsFull[nextApp1Index]?.name\n\tconst nextApp2 = allAppsFull[nextApp2Index]?.name\n\tconst prevSearchParams = new URLSearchParams(reqUrl.searchParams)\n\tprevSearchParams.set('app1', prevApp1 ?? '')\n\tprevSearchParams.set('app2', prevApp2 ?? '')\n\tconst nextSearchParams = new URLSearchParams(reqUrl.searchParams)\n\tnextSearchParams.set('app1', nextApp1 ?? '')\n\tnextSearchParams.set('app2', nextApp2 ?? '')\n\treturn {\n\t\tallApps,\n\t\tdiff,\n\t\tprevLink:\n\t\t\tprevApp1 && prevApp2\n\t\t\t\t? { to: `/diff?${prevSearchParams}`, 'aria-label': 'Previous App' }\n\t\t\t\t: { to: '/diff' },\n\t\tnextLink:\n\t\t\tnextApp1 && nextApp2\n\t\t\t\t? { to: `/diff?${nextSearchParams}`, 'aria-label': 'Next App' }\n\t\t\t\t: { to: '/diff' },\n\t}\n}\n\nexport default function DiffViewer() {\n\tconst data = useLoaderData<typeof loader>()\n\tconst [params] = useSearchParams()\n\tconst paramsWithForcedRefresh = new URLSearchParams(params)\n\tparamsWithForcedRefresh.set('forceFresh', 'diff')\n\tconst navigation = useNavigation()\n\tconst isNavigating = useSpinDelay(navigation.state !== 'idle', {\n\t\tdelay: 200,\n\t\tminDuration: 200,\n\t})\n\n\treturn (\n\t\t<div\n\t\t\tclassName={cn('grid h-full grid-rows-[1fr,auto]', {\n\t\t\t\t'cursor-wait opacity-30': isNavigating,\n\t\t\t})}\n\t\t>\n\t\t\t<div className=\"overflow-y-auto\">\n\t\t\t\t<Diff diff={data.diff} allApps={data.allApps} />\n\t\t\t</div>\n\t\t\t<div className=\"flex h-16 items-center justify-end border-t\">\n\t\t\t\t<NavChevrons prev={data.prevLink} next={data.nextLink} />\n\t\t\t</div>\n\t\t</div>\n\t)\n}\n"],"names":["DiffViewer","data","useLoaderData","params","useSearchParams","URLSearchParams","set","navigation","useNavigation","isNavigating","useSpinDelay","state","delay","minDuration","jsxs","className","cn","children","jsx","Diff","diff","allApps","NavChevrons","prev","prevLink","next","nextLink"],"mappings":"kpBAyGA,SAAwBA,GAAa,CACpC,MAAMC,EAAOC,IACP,CAACC,CAAM,EAAIC,IACe,IAAIC,gBAAgBF,CAAM,EAClCG,IAAI,aAAc,MAAM,EAChD,MAAMC,EAAaC,IACbC,EAAeC,EAAA,aAAaH,EAAWI,QAAU,OAAQ,CAC9DC,MAAO,IACPC,YAAa,GACd,CAAC,EAGA,OAAAC,EAAAA,KAAC,MAAA,CACAC,UAAWC,EAAG,mCAAoC,CACjD,yBAA0BP,CAC3B,CAAC,EAEDQ,SAAA,CAACC,EAAA,IAAA,MAAA,CAAIH,UAAU,kBACdE,SAACC,EAAA,IAAAC,EAAA,CAAKC,KAAMnB,EAAKmB,KAAMC,QAASpB,EAAKoB,QAAS,CAC/C,CAAA,EACCH,EAAA,IAAA,MAAA,CAAIH,UAAU,8CACdE,SAACC,EAAA,IAAAI,EAAA,CAAYC,KAAMtB,EAAKuB,SAAUC,KAAMxB,EAAKyB,SAAU,CACxD,CAAA,CAAA,CAAA,CACD,CAEF"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{a as e,h as d}from"./discord-CoBo5eVK.js";import"./index-CGzylDPY.js";import"./misc-BK2EiKtY.js";import"./components-DrvY4pal.js";import"./user-C0j04V55.js";import"./workshop-config-oL_FWDKq.js";export{e as default,d as handle};
|
|
2
|
+
//# sourceMappingURL=discord-CFZUT74L.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"discord-CFZUT74L.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{j as e}from"./index-CGzylDPY.js";import{I as t}from"./misc-
|
|
2
|
-
//# sourceMappingURL=discord-
|
|
1
|
+
import{j as e}from"./index-CGzylDPY.js";import{I as t}from"./misc-BK2EiKtY.js";import{c as i,a as c}from"./user-C0j04V55.js";import{u as d}from"./workshop-config-oL_FWDKq.js";import{L as s}from"./components-DrvY4pal.js";const f={getSitemapEntries:()=>null};function l(){const{product:{host:r}}=d();return`https://${r}/discord`}function j(){const r=i(),n=c(),o=l();return r?n?"https://discord.com/channels/715220730605731931/1161045224907341972":o:"/login"}function a(){const r=i(),n=c(),o=l();return r?n?e.jsxs("div",{className:"flex items-center justify-center gap-2 text-xl underline",children:[e.jsx(s,{to:"discord://discord.com/channels/715220730605731931/1161045224907341972",children:e.jsx(t,{name:"Discord",size:"2xl"})}),e.jsx(s,{to:"https://discord.com/channels/715220730605731931/1161045224907341972",target:"_blank",rel:"noreferrer noopener",children:"Open Discord"})]}):e.jsxs("div",{className:"flex flex-wrap items-center justify-center gap-2 text-xl",children:[e.jsxs(s,{to:o,className:"flex items-center gap-2 underline",children:[e.jsx(t,{name:"Discord",size:"2xl"}),"Connect Discord"]})," ",e.jsxs("span",{children:["to get access to the exclusive"," ",e.jsx(s,{to:"/discord",className:"underline",children:"discord channel"}),"."]})]}):e.jsxs("div",{className:"flex flex-wrap items-center justify-center gap-2 text-xl",children:[e.jsxs(s,{to:"/login",className:"inline-flex items-center gap-2 underline",children:[e.jsx(t,{name:"Discord",size:"2xl"}),"Login"]})," ",e.jsxs("span",{children:["to get access to the exclusive"," ",e.jsx(s,{to:"/discord",className:"underline",children:"discord channel"}),"."]})]})}function g(){return e.jsxs("div",{className:"container flex h-full max-w-3xl flex-col items-center justify-center gap-4 p-12",children:[e.jsx(a,{}),e.jsxs("p",{children:["The"," ",e.jsx(s,{target:"_blank",rel:"noreferrer noopener",className:"underline",to:"https://kentcdodds.com/discord",children:"Epic Web Community on Discord"})," ","is a great place to hang out with other developers who are working through this workshop. You can ask questions, get help, and solidify what you're learning by helping others."]}),e.jsx("p",{children:e.jsxs("small",{className:"text-sm",children:["If you've not joined the Epic Web Community on Discord yet, you'll be required to go through a short onboarding process first. A friendly bot will explain the process when you"," ",e.jsx(s,{to:"https://kcd.im/discord",target:"_blank",rel:"noreferrer noopener",className:"underline",children:"join"}),"."]})})]})}export{a as D,g as a,f as h,j as u};
|
|
2
|
+
//# sourceMappingURL=discord-CoBo5eVK.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"discord-
|
|
1
|
+
{"version":3,"file":"discord-CoBo5eVK.js","sources":["../../../app/routes/_app+/discord.tsx"],"sourcesContent":["import { type SEOHandle } from '@nasa-gcn/remix-seo'\nimport { Link } from '@remix-run/react'\nimport { Icon } from '#app/components/icons.tsx'\nimport {\n\tuseOptionalDiscordMember,\n\tuseOptionalUser,\n} from '#app/components/user.tsx'\nimport { useWorkshopConfig } from '#app/components/workshop-config.tsx'\n\nexport const handle: SEOHandle = {\n\tgetSitemapEntries: () => null,\n}\n\nfunction useConnectDiscordURL() {\n\tconst {\n\t\tproduct: { host },\n\t} = useWorkshopConfig()\n\treturn `https://${host}/discord`\n}\n\nexport function useDiscordCTALink() {\n\tconst user = useOptionalUser()\n\tconst discordMember = useOptionalDiscordMember()\n\tconst connectDiscordURL = useConnectDiscordURL()\n\n\tif (!user) {\n\t\treturn '/login'\n\t}\n\tif (!discordMember) {\n\t\treturn connectDiscordURL\n\t}\n\n\treturn 'https://discord.com/channels/715220730605731931/1161045224907341972'\n}\n\nexport function DiscordCTA() {\n\tconst user = useOptionalUser()\n\tconst discordMember = useOptionalDiscordMember()\n\tconst connectDiscordURL = useConnectDiscordURL()\n\tif (!user) {\n\t\treturn (\n\t\t\t<div className=\"flex flex-wrap items-center justify-center gap-2 text-xl\">\n\t\t\t\t<Link to=\"/login\" className=\"inline-flex items-center gap-2 underline\">\n\t\t\t\t\t<Icon name=\"Discord\" size=\"2xl\" />\n\t\t\t\t\tLogin\n\t\t\t\t</Link>{' '}\n\t\t\t\t<span>\n\t\t\t\t\tto get access to the exclusive{' '}\n\t\t\t\t\t<Link to=\"/discord\" className=\"underline\">\n\t\t\t\t\t\tdiscord channel\n\t\t\t\t\t</Link>\n\t\t\t\t\t.\n\t\t\t\t</span>\n\t\t\t</div>\n\t\t)\n\t}\n\tif (!discordMember) {\n\t\treturn (\n\t\t\t<div className=\"flex flex-wrap items-center justify-center gap-2 text-xl\">\n\t\t\t\t<Link\n\t\t\t\t\tto={connectDiscordURL}\n\t\t\t\t\tclassName=\"flex items-center gap-2 underline\"\n\t\t\t\t>\n\t\t\t\t\t<Icon name=\"Discord\" size=\"2xl\" />\n\t\t\t\t\tConnect Discord\n\t\t\t\t</Link>{' '}\n\t\t\t\t<span>\n\t\t\t\t\tto get access to the exclusive{' '}\n\t\t\t\t\t<Link to=\"/discord\" className=\"underline\">\n\t\t\t\t\t\tdiscord channel\n\t\t\t\t\t</Link>\n\t\t\t\t\t.\n\t\t\t\t</span>\n\t\t\t</div>\n\t\t)\n\t}\n\n\treturn (\n\t\t<div className=\"flex items-center justify-center gap-2 text-xl underline\">\n\t\t\t<Link to=\"discord://discord.com/channels/715220730605731931/1161045224907341972\">\n\t\t\t\t<Icon name=\"Discord\" size=\"2xl\" />\n\t\t\t</Link>\n\t\t\t<Link\n\t\t\t\tto=\"https://discord.com/channels/715220730605731931/1161045224907341972\"\n\t\t\t\ttarget=\"_blank\"\n\t\t\t\trel=\"noreferrer noopener\"\n\t\t\t>\n\t\t\t\tOpen Discord\n\t\t\t</Link>\n\t\t</div>\n\t)\n}\n\nexport default function DiscordRoute() {\n\treturn (\n\t\t<div className=\"container flex h-full max-w-3xl flex-col items-center justify-center gap-4 p-12\">\n\t\t\t<DiscordCTA />\n\t\t\t<p>\n\t\t\t\tThe{' '}\n\t\t\t\t<Link\n\t\t\t\t\ttarget=\"_blank\"\n\t\t\t\t\trel=\"noreferrer noopener\"\n\t\t\t\t\tclassName=\"underline\"\n\t\t\t\t\tto=\"https://kentcdodds.com/discord\"\n\t\t\t\t>\n\t\t\t\t\tEpic Web Community on Discord\n\t\t\t\t</Link>{' '}\n\t\t\t\tis a great place to hang out with other developers who are working\n\t\t\t\tthrough this workshop. You can ask questions, get help, and solidify\n\t\t\t\twhat you're learning by helping others.\n\t\t\t</p>\n\t\t\t<p>\n\t\t\t\t<small className=\"text-sm\">\n\t\t\t\t\tIf you've not joined the Epic Web Community on Discord yet, you'll be\n\t\t\t\t\trequired to go through a short onboarding process first. A friendly\n\t\t\t\t\tbot will explain the process when you{' '}\n\t\t\t\t\t<Link\n\t\t\t\t\t\tto=\"https://kcd.im/discord\"\n\t\t\t\t\t\ttarget=\"_blank\"\n\t\t\t\t\t\trel=\"noreferrer noopener\"\n\t\t\t\t\t\tclassName=\"underline\"\n\t\t\t\t\t>\n\t\t\t\t\t\tjoin\n\t\t\t\t\t</Link>\n\t\t\t\t\t.\n\t\t\t\t</small>\n\t\t\t</p>\n\t\t</div>\n\t)\n}\n"],"names":["handle","getSitemapEntries","useConnectDiscordURL","product","host","useWorkshopConfig","useDiscordCTALink","user","useOptionalUser","discordMember","useOptionalDiscordMember","connectDiscordURL","DiscordCTA","jsxs","className","children","jsx","Link","to","Icon","name","size","target","rel","DiscordRoute"],"mappings":"4NASO,MAAMA,EAAoB,CAChCC,kBAAmBA,IAAM,IAC1B,EAEA,SAASC,GAAuB,CACzB,KAAA,CACLC,QAAS,CAAEC,KAAAA,CAAK,GACbC,EAAkB,EACtB,MAAO,WAAWD,CAAI,UACvB,CAEO,SAASE,GAAoB,CACnC,MAAMC,EAAOC,IACPC,EAAgBC,IAChBC,EAAoBT,IAE1B,OAAKK,EAGAE,EAIE,sEAHCE,EAHA,QAOT,CAEO,SAASC,GAAa,CAC5B,MAAML,EAAOC,IACPC,EAAgBC,IAChBC,EAAoBT,IAC1B,OAAKK,EAiBAE,EAsBJI,EAAAA,KAAC,MAAI,CAAAC,UAAU,2DACdC,SAAA,CAACC,EAAA,IAAAC,EAAA,CAAKC,GAAG,wEACRH,SAAAC,EAAA,IAACG,GAAKC,KAAK,UAAUC,KAAK,MAAM,CACjC,CAAA,EACAL,EAAA,IAACC,EAAA,CACAC,GAAG,sEACHI,OAAO,SACPC,IAAI,sBACJR,SAAA,cAAA,CAED,CAAA,CACD,CAAA,EA/BCF,EAAAA,KAAC,MAAI,CAAAC,UAAU,2DACdC,SAAA,CAAAF,EAAA,KAACI,EAAA,CACAC,GAAIP,EACJG,UAAU,oCAEVC,SAAA,CAAAC,EAAA,IAACG,EAAK,CAAAC,KAAK,UAAUC,KAAK,KAAM,CAAA,EAAE,iBAAA,EAEnC,EAAQ,WACP,OAAK,CAAAN,SAAA,CAAA,iCAC0B,UAC9BE,EAAK,CAAAC,GAAG,WAAWJ,UAAU,YAAYC,SAE1C,iBAAA,CAAA,EAAO,GAAA,CAER,CAAA,CAAA,CACD,CAAA,EAhCAF,EAAAA,KAAC,MAAI,CAAAC,UAAU,2DACdC,SAAA,CAAAF,EAAA,KAACI,EAAK,CAAAC,GAAG,SAASJ,UAAU,2CAC3BC,SAAA,CAAAC,EAAA,IAACG,EAAK,CAAAC,KAAK,UAAUC,KAAK,KAAM,CAAA,EAAE,OAAA,EAEnC,EAAQ,WACP,OAAK,CAAAN,SAAA,CAAA,iCAC0B,UAC9BE,EAAK,CAAAC,GAAG,WAAWJ,UAAU,YAAYC,SAE1C,iBAAA,CAAA,EAAO,GAAA,CAER,CAAA,CAAA,CACD,CAAA,CAsCH,CAEA,SAAwBS,GAAe,CAErC,OAAAX,EAAAA,KAAC,MAAI,CAAAC,UAAU,kFACdC,SAAA,CAAAC,EAAAA,IAACJ,EAAW,CAAA,CAAA,SACX,IAAE,CAAAG,SAAA,CAAA,MACE,IACJC,EAAAA,IAACC,EAAA,CACAK,OAAO,SACPC,IAAI,sBACJT,UAAU,YACVI,GAAG,iCACHH,SAAA,+BAAA,CAED,EAAQ,IAAI,iLAAA,CAIb,CAAA,EACCC,EAAA,IAAA,IAAA,CACAD,SAACF,EAAA,KAAA,QAAA,CAAMC,UAAU,UAAUC,SAAA,CAAA,kLAGY,IACtCC,EAAAA,IAACC,EAAA,CACAC,GAAG,yBACHI,OAAO,SACPC,IAAI,sBACJT,UAAU,YACVC,SAAA,MAED,CAAA,EAAO,GAAA,EAER,CACD,CAAA,CAAA,CACD,CAAA,CAEF"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{R as Wl,r as ft,j as G}from"./index-CGzylDPY.js";import{z as Yd,u as G0}from"./index-BOO5UotZ.js";import{f as Dy,I as H0,a as My}from"./misc-D9k1wGip.js";import{a as Py,b as Oy,A as Ny,L as za}from"./components-DrvY4pal.js";import{u as Fy}from"./online-BrcRwzQC.js";import{L as Fh}from"./loading-D4V_nJZr.js";import{c as Uy}from"./user-C0j04V55.js";import{u as $y}from"./workshop-config-oL_FWDKq.js";var By=Object.create,W0=Object.defineProperty,Gy=Object.getOwnPropertyDescriptor,Hy=Object.getOwnPropertyNames,Wy=Object.getPrototypeOf,Ky=Object.prototype.hasOwnProperty,K0=function(i,e){return function(){return i&&(e=i(i=0)),e}},xt=function(i,e){return function(){return e||i((e={exports:{}}).exports,e),e.exports}},Vy=function(i,e,t,r){if(e&&typeof e=="object"||typeof e=="function")for(var s=Hy(e),n=0,a=s.length,o;n<a;n++)o=s[n],!Ky.call(i,o)&&o!==t&&W0(i,o,{get:(function(l){return e[l]}).bind(null,o),enumerable:!(r=Gy(e,o))||r.enumerable});return i},Qt=function(i,e,t){return t=i!=null?By(Wy(i)):{},Vy(!i||!i.__esModule?W0(t,"default",{value:i,enumerable:!0}):t,i)},Li=xt(function(i,e){var t;typeof window<"u"?t=window:typeof global<"u"?t=global:typeof self<"u"?t=self:t={},e.exports=t});function hs(i,e){return e!=null&&typeof Symbol<"u"&&e[Symbol.hasInstance]?!!e[Symbol.hasInstance](i):hs(i,e)}var fs=K0(function(){fs()});function Uh(i){"@swc/helpers - typeof";return i&&typeof Symbol<"u"&&i.constructor===Symbol?"symbol":typeof i}var $h=K0(function(){}),V0=xt(function(i,e){var t=Array.prototype.slice;e.exports=r;function r(s,n){for(("length"in s)||(s=[s]),s=t.call(s);s.length;){var a=s.shift(),o=n(a);if(o)return o;a.childNodes&&a.childNodes.length&&(s=t.call(a.childNodes).concat(s))}}}),qy=xt(function(i,e){fs(),e.exports=t;function t(r,s){if(!hs(this,t))return new t(r,s);this.data=r,this.nodeValue=r,this.length=r.length,this.ownerDocument=s||null}t.prototype.nodeType=8,t.prototype.nodeName="#comment",t.prototype.toString=function(){return"[object Comment]"}}),Yy=xt(function(i,e){fs(),e.exports=t;function t(r,s){if(!hs(this,t))return new t(r);this.data=r||"",this.length=this.data.length,this.ownerDocument=s||null}t.prototype.type="DOMTextNode",t.prototype.nodeType=3,t.prototype.nodeName="#text",t.prototype.toString=function(){return this.data},t.prototype.replaceData=function(r,s,n){var a=this.data,o=a.substring(0,r),l=a.substring(r+s,a.length);this.data=o+n+l,this.length=this.data.length}}),q0=xt(function(i,e){e.exports=t;function t(r){var s=this,n=r.type;r.target||(r.target=s),s.listeners||(s.listeners={});var a=s.listeners[n];if(a)return a.forEach(function(o){r.currentTarget=s,typeof o=="function"?o(r):o.handleEvent(r)});s.parentNode&&s.parentNode.dispatchEvent(r)}}),Y0=xt(function(i,e){e.exports=t;function t(r,s){var n=this;n.listeners||(n.listeners={}),n.listeners[r]||(n.listeners[r]=[]),n.listeners[r].indexOf(s)===-1&&n.listeners[r].push(s)}}),j0=xt(function(i,e){e.exports=t;function t(r,s){var n=this;if(n.listeners&&n.listeners[r]){var a=n.listeners[r],o=a.indexOf(s);o!==-1&&a.splice(o,1)}}}),jy=xt(function(i,e){$h(),e.exports=r;var t=["area","base","br","col","embed","hr","img","input","keygen","link","menuitem","meta","param","source","track","wbr"];function r(h){switch(h.nodeType){case 3:return u(h.data);case 8:return"<!--"+h.data+"-->";default:return s(h)}}function s(h){var f=[],m=h.tagName;return h.namespaceURI==="http://www.w3.org/1999/xhtml"&&(m=m.toLowerCase()),f.push("<"+m+d(h)+o(h)),t.indexOf(m)>-1?f.push(" />"):(f.push(">"),h.childNodes.length?f.push.apply(f,h.childNodes.map(r)):h.textContent||h.innerText?f.push(u(h.textContent||h.innerText)):h.innerHTML&&f.push(h.innerHTML),f.push("</"+m+">")),f.join("")}function n(h,f){var m=Uh(h[f]);return f==="style"&&Object.keys(h.style).length>0?!0:h.hasOwnProperty(f)&&(m==="string"||m==="boolean"||m==="number")&&f!=="nodeName"&&f!=="className"&&f!=="tagName"&&f!=="textContent"&&f!=="innerText"&&f!=="namespaceURI"&&f!=="innerHTML"}function a(h){if(typeof h=="string")return h;var f="";return Object.keys(h).forEach(function(m){var p=h[m];m=m.replace(/[A-Z]/g,function(g){return"-"+g.toLowerCase()}),f+=m+":"+p+";"}),f}function o(h){var f=h.dataset,m=[];for(var p in f)m.push({name:"data-"+p,value:f[p]});return m.length?l(m):""}function l(h){var f=[];return h.forEach(function(m){var p=m.name,g=m.value;p==="style"&&(g=a(g)),f.push(p+'="'+c(g)+'"')}),f.length?" "+f.join(" "):""}function d(h){var f=[];for(var m in h)n(h,m)&&f.push({name:m,value:h[m]});for(var p in h._attributes)for(var g in h._attributes[p]){var E=h._attributes[p][g],b=(E.prefix?E.prefix+":":"")+g;f.push({name:b,value:E.value})}return h.className&&f.push({name:"class",value:h.className}),f.length?l(f):""}function u(h){var f="";return typeof h=="string"?f=h:h&&(f=h.toString()),f.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">")}function c(h){return u(h).replace(/"/g,""")}}),z0=xt(function(i,e){fs();var t=V0(),r=q0(),s=Y0(),n=j0(),a=jy(),o="http://www.w3.org/1999/xhtml";e.exports=l;function l(d,u,c){if(!hs(this,l))return new l(d);var h=c===void 0?o:c||null;this.tagName=h===o?String(d).toUpperCase():d,this.nodeName=this.tagName,this.className="",this.dataset={},this.childNodes=[],this.parentNode=null,this.style={},this.ownerDocument=u||null,this.namespaceURI=h,this._attributes={},this.tagName==="INPUT"&&(this.type="text")}l.prototype.type="DOMElement",l.prototype.nodeType=1,l.prototype.appendChild=function(d){return d.parentNode&&d.parentNode.removeChild(d),this.childNodes.push(d),d.parentNode=this,d},l.prototype.replaceChild=function(d,u){d.parentNode&&d.parentNode.removeChild(d);var c=this.childNodes.indexOf(u);return u.parentNode=null,this.childNodes[c]=d,d.parentNode=this,u},l.prototype.removeChild=function(d){var u=this.childNodes.indexOf(d);return this.childNodes.splice(u,1),d.parentNode=null,d},l.prototype.insertBefore=function(d,u){d.parentNode&&d.parentNode.removeChild(d);var c=u==null?-1:this.childNodes.indexOf(u);return c>-1?this.childNodes.splice(c,0,d):this.childNodes.push(d),d.parentNode=this,d},l.prototype.setAttributeNS=function(d,u,c){var h=null,f=u,m=u.indexOf(":");if(m>-1&&(h=u.substr(0,m),f=u.substr(m+1)),this.tagName==="INPUT"&&u==="type")this.type=c;else{var p=this._attributes[d]||(this._attributes[d]={});p[f]={value:c,prefix:h}}},l.prototype.getAttributeNS=function(d,u){var c=this._attributes[d],h=c&&c[u]&&c[u].value;return this.tagName==="INPUT"&&u==="type"?this.type:typeof h!="string"?null:h},l.prototype.removeAttributeNS=function(d,u){var c=this._attributes[d];c&&delete c[u]},l.prototype.hasAttributeNS=function(d,u){var c=this._attributes[d];return!!c&&u in c},l.prototype.setAttribute=function(d,u){return this.setAttributeNS(null,d,u)},l.prototype.getAttribute=function(d){return this.getAttributeNS(null,d)},l.prototype.removeAttribute=function(d){return this.removeAttributeNS(null,d)},l.prototype.hasAttribute=function(d){return this.hasAttributeNS(null,d)},l.prototype.removeEventListener=n,l.prototype.addEventListener=s,l.prototype.dispatchEvent=r,l.prototype.focus=function(){},l.prototype.toString=function(){return a(this)},l.prototype.getElementsByClassName=function(d){var u=d.split(" "),c=[];return t(this,function(h){if(h.nodeType===1){var f=h.className||"",m=f.split(" ");u.every(function(p){return m.indexOf(p)!==-1})&&c.push(h)}}),c},l.prototype.getElementsByTagName=function(d){d=d.toLowerCase();var u=[];return t(this.childNodes,function(c){c.nodeType===1&&(d==="*"||c.tagName.toLowerCase()===d)&&u.push(c)}),u},l.prototype.contains=function(d){return t(this,function(u){return d===u})||!1}}),zy=xt(function(i,e){fs();var t=z0();e.exports=r;function r(s){if(!hs(this,r))return new r;this.childNodes=[],this.parentNode=null,this.ownerDocument=s||null}r.prototype.type="DocumentFragment",r.prototype.nodeType=11,r.prototype.nodeName="#document-fragment",r.prototype.appendChild=t.prototype.appendChild,r.prototype.replaceChild=t.prototype.replaceChild,r.prototype.removeChild=t.prototype.removeChild,r.prototype.toString=function(){return this.childNodes.map(function(s){return String(s)}).join("")}}),Xy=xt(function(i,e){e.exports=t;function t(r){}t.prototype.initEvent=function(r,s,n){this.type=r,this.bubbles=s,this.cancelable=n},t.prototype.preventDefault=function(){}}),Qy=xt(function(i,e){fs();var t=V0(),r=qy(),s=Yy(),n=z0(),a=zy(),o=Xy(),l=q0(),d=Y0(),u=j0();e.exports=c;function c(){if(!hs(this,c))return new c;this.head=this.createElement("head"),this.body=this.createElement("body"),this.documentElement=this.createElement("html"),this.documentElement.appendChild(this.head),this.documentElement.appendChild(this.body),this.childNodes=[this.documentElement],this.nodeType=9}var h=c.prototype;h.createTextNode=function(f){return new s(f,this)},h.createElementNS=function(f,m){var p=f===null?null:String(f);return new n(m,this,p)},h.createElement=function(f){return new n(f,this)},h.createDocumentFragment=function(){return new a(this)},h.createEvent=function(f){return new o(f)},h.createComment=function(f){return new r(f,this)},h.getElementById=function(f){f=String(f);var m=t(this.childNodes,function(p){if(String(p.id)===f)return p});return m||null},h.getElementsByClassName=n.prototype.getElementsByClassName,h.getElementsByTagName=n.prototype.getElementsByTagName,h.contains=n.prototype.contains,h.removeEventListener=u,h.addEventListener=d,h.dispatchEvent=l}),Zy=xt(function(i,e){var t=Qy();e.exports=new t}),Jy=xt(function(i,e){var t=typeof global<"u"?global:typeof window<"u"?window:{},r=Zy(),s;typeof document<"u"?s=document:(s=t["__GLOBAL_DOCUMENT_CACHE@4"],s||(s=t["__GLOBAL_DOCUMENT_CACHE@4"]=r)),e.exports=s});function eT(i){if(Array.isArray(i))return i}function tT(i,e){var t=i==null?null:typeof Symbol<"u"&&i[Symbol.iterator]||i["@@iterator"];if(t!=null){var r=[],s=!0,n=!1,a,o;try{for(t=t.call(i);!(s=(a=t.next()).done)&&(r.push(a.value),!(e&&r.length===e));s=!0);}catch(l){n=!0,o=l}finally{try{!s&&t.return!=null&&t.return()}finally{if(n)throw o}}return r}}function iT(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
|
|
1
|
+
import{R as Wl,r as ft,j as G}from"./index-CGzylDPY.js";import{z as Yd,u as G0}from"./index-BZWIdOoA.js";import{j as Dy,I as H0,a as My}from"./misc-BK2EiKtY.js";import{a as Py,b as Oy,A as Ny,L as za}from"./components-DrvY4pal.js";import{u as Fy}from"./online-CHlOuJG-.js";import{L as Fh}from"./loading-ClL22bF9.js";import{c as Uy}from"./user-C0j04V55.js";import{u as $y}from"./workshop-config-oL_FWDKq.js";var By=Object.create,W0=Object.defineProperty,Gy=Object.getOwnPropertyDescriptor,Hy=Object.getOwnPropertyNames,Wy=Object.getPrototypeOf,Ky=Object.prototype.hasOwnProperty,K0=function(i,e){return function(){return i&&(e=i(i=0)),e}},xt=function(i,e){return function(){return e||i((e={exports:{}}).exports,e),e.exports}},Vy=function(i,e,t,r){if(e&&typeof e=="object"||typeof e=="function")for(var s=Hy(e),n=0,a=s.length,o;n<a;n++)o=s[n],!Ky.call(i,o)&&o!==t&&W0(i,o,{get:(function(l){return e[l]}).bind(null,o),enumerable:!(r=Gy(e,o))||r.enumerable});return i},Qt=function(i,e,t){return t=i!=null?By(Wy(i)):{},Vy(!i||!i.__esModule?W0(t,"default",{value:i,enumerable:!0}):t,i)},Li=xt(function(i,e){var t;typeof window<"u"?t=window:typeof global<"u"?t=global:typeof self<"u"?t=self:t={},e.exports=t});function hs(i,e){return e!=null&&typeof Symbol<"u"&&e[Symbol.hasInstance]?!!e[Symbol.hasInstance](i):hs(i,e)}var fs=K0(function(){fs()});function Uh(i){"@swc/helpers - typeof";return i&&typeof Symbol<"u"&&i.constructor===Symbol?"symbol":typeof i}var $h=K0(function(){}),V0=xt(function(i,e){var t=Array.prototype.slice;e.exports=r;function r(s,n){for(("length"in s)||(s=[s]),s=t.call(s);s.length;){var a=s.shift(),o=n(a);if(o)return o;a.childNodes&&a.childNodes.length&&(s=t.call(a.childNodes).concat(s))}}}),qy=xt(function(i,e){fs(),e.exports=t;function t(r,s){if(!hs(this,t))return new t(r,s);this.data=r,this.nodeValue=r,this.length=r.length,this.ownerDocument=s||null}t.prototype.nodeType=8,t.prototype.nodeName="#comment",t.prototype.toString=function(){return"[object Comment]"}}),Yy=xt(function(i,e){fs(),e.exports=t;function t(r,s){if(!hs(this,t))return new t(r);this.data=r||"",this.length=this.data.length,this.ownerDocument=s||null}t.prototype.type="DOMTextNode",t.prototype.nodeType=3,t.prototype.nodeName="#text",t.prototype.toString=function(){return this.data},t.prototype.replaceData=function(r,s,n){var a=this.data,o=a.substring(0,r),l=a.substring(r+s,a.length);this.data=o+n+l,this.length=this.data.length}}),q0=xt(function(i,e){e.exports=t;function t(r){var s=this,n=r.type;r.target||(r.target=s),s.listeners||(s.listeners={});var a=s.listeners[n];if(a)return a.forEach(function(o){r.currentTarget=s,typeof o=="function"?o(r):o.handleEvent(r)});s.parentNode&&s.parentNode.dispatchEvent(r)}}),Y0=xt(function(i,e){e.exports=t;function t(r,s){var n=this;n.listeners||(n.listeners={}),n.listeners[r]||(n.listeners[r]=[]),n.listeners[r].indexOf(s)===-1&&n.listeners[r].push(s)}}),j0=xt(function(i,e){e.exports=t;function t(r,s){var n=this;if(n.listeners&&n.listeners[r]){var a=n.listeners[r],o=a.indexOf(s);o!==-1&&a.splice(o,1)}}}),jy=xt(function(i,e){$h(),e.exports=r;var t=["area","base","br","col","embed","hr","img","input","keygen","link","menuitem","meta","param","source","track","wbr"];function r(h){switch(h.nodeType){case 3:return u(h.data);case 8:return"<!--"+h.data+"-->";default:return s(h)}}function s(h){var f=[],m=h.tagName;return h.namespaceURI==="http://www.w3.org/1999/xhtml"&&(m=m.toLowerCase()),f.push("<"+m+d(h)+o(h)),t.indexOf(m)>-1?f.push(" />"):(f.push(">"),h.childNodes.length?f.push.apply(f,h.childNodes.map(r)):h.textContent||h.innerText?f.push(u(h.textContent||h.innerText)):h.innerHTML&&f.push(h.innerHTML),f.push("</"+m+">")),f.join("")}function n(h,f){var m=Uh(h[f]);return f==="style"&&Object.keys(h.style).length>0?!0:h.hasOwnProperty(f)&&(m==="string"||m==="boolean"||m==="number")&&f!=="nodeName"&&f!=="className"&&f!=="tagName"&&f!=="textContent"&&f!=="innerText"&&f!=="namespaceURI"&&f!=="innerHTML"}function a(h){if(typeof h=="string")return h;var f="";return Object.keys(h).forEach(function(m){var p=h[m];m=m.replace(/[A-Z]/g,function(g){return"-"+g.toLowerCase()}),f+=m+":"+p+";"}),f}function o(h){var f=h.dataset,m=[];for(var p in f)m.push({name:"data-"+p,value:f[p]});return m.length?l(m):""}function l(h){var f=[];return h.forEach(function(m){var p=m.name,g=m.value;p==="style"&&(g=a(g)),f.push(p+'="'+c(g)+'"')}),f.length?" "+f.join(" "):""}function d(h){var f=[];for(var m in h)n(h,m)&&f.push({name:m,value:h[m]});for(var p in h._attributes)for(var g in h._attributes[p]){var E=h._attributes[p][g],b=(E.prefix?E.prefix+":":"")+g;f.push({name:b,value:E.value})}return h.className&&f.push({name:"class",value:h.className}),f.length?l(f):""}function u(h){var f="";return typeof h=="string"?f=h:h&&(f=h.toString()),f.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">")}function c(h){return u(h).replace(/"/g,""")}}),z0=xt(function(i,e){fs();var t=V0(),r=q0(),s=Y0(),n=j0(),a=jy(),o="http://www.w3.org/1999/xhtml";e.exports=l;function l(d,u,c){if(!hs(this,l))return new l(d);var h=c===void 0?o:c||null;this.tagName=h===o?String(d).toUpperCase():d,this.nodeName=this.tagName,this.className="",this.dataset={},this.childNodes=[],this.parentNode=null,this.style={},this.ownerDocument=u||null,this.namespaceURI=h,this._attributes={},this.tagName==="INPUT"&&(this.type="text")}l.prototype.type="DOMElement",l.prototype.nodeType=1,l.prototype.appendChild=function(d){return d.parentNode&&d.parentNode.removeChild(d),this.childNodes.push(d),d.parentNode=this,d},l.prototype.replaceChild=function(d,u){d.parentNode&&d.parentNode.removeChild(d);var c=this.childNodes.indexOf(u);return u.parentNode=null,this.childNodes[c]=d,d.parentNode=this,u},l.prototype.removeChild=function(d){var u=this.childNodes.indexOf(d);return this.childNodes.splice(u,1),d.parentNode=null,d},l.prototype.insertBefore=function(d,u){d.parentNode&&d.parentNode.removeChild(d);var c=u==null?-1:this.childNodes.indexOf(u);return c>-1?this.childNodes.splice(c,0,d):this.childNodes.push(d),d.parentNode=this,d},l.prototype.setAttributeNS=function(d,u,c){var h=null,f=u,m=u.indexOf(":");if(m>-1&&(h=u.substr(0,m),f=u.substr(m+1)),this.tagName==="INPUT"&&u==="type")this.type=c;else{var p=this._attributes[d]||(this._attributes[d]={});p[f]={value:c,prefix:h}}},l.prototype.getAttributeNS=function(d,u){var c=this._attributes[d],h=c&&c[u]&&c[u].value;return this.tagName==="INPUT"&&u==="type"?this.type:typeof h!="string"?null:h},l.prototype.removeAttributeNS=function(d,u){var c=this._attributes[d];c&&delete c[u]},l.prototype.hasAttributeNS=function(d,u){var c=this._attributes[d];return!!c&&u in c},l.prototype.setAttribute=function(d,u){return this.setAttributeNS(null,d,u)},l.prototype.getAttribute=function(d){return this.getAttributeNS(null,d)},l.prototype.removeAttribute=function(d){return this.removeAttributeNS(null,d)},l.prototype.hasAttribute=function(d){return this.hasAttributeNS(null,d)},l.prototype.removeEventListener=n,l.prototype.addEventListener=s,l.prototype.dispatchEvent=r,l.prototype.focus=function(){},l.prototype.toString=function(){return a(this)},l.prototype.getElementsByClassName=function(d){var u=d.split(" "),c=[];return t(this,function(h){if(h.nodeType===1){var f=h.className||"",m=f.split(" ");u.every(function(p){return m.indexOf(p)!==-1})&&c.push(h)}}),c},l.prototype.getElementsByTagName=function(d){d=d.toLowerCase();var u=[];return t(this.childNodes,function(c){c.nodeType===1&&(d==="*"||c.tagName.toLowerCase()===d)&&u.push(c)}),u},l.prototype.contains=function(d){return t(this,function(u){return d===u})||!1}}),zy=xt(function(i,e){fs();var t=z0();e.exports=r;function r(s){if(!hs(this,r))return new r;this.childNodes=[],this.parentNode=null,this.ownerDocument=s||null}r.prototype.type="DocumentFragment",r.prototype.nodeType=11,r.prototype.nodeName="#document-fragment",r.prototype.appendChild=t.prototype.appendChild,r.prototype.replaceChild=t.prototype.replaceChild,r.prototype.removeChild=t.prototype.removeChild,r.prototype.toString=function(){return this.childNodes.map(function(s){return String(s)}).join("")}}),Xy=xt(function(i,e){e.exports=t;function t(r){}t.prototype.initEvent=function(r,s,n){this.type=r,this.bubbles=s,this.cancelable=n},t.prototype.preventDefault=function(){}}),Qy=xt(function(i,e){fs();var t=V0(),r=qy(),s=Yy(),n=z0(),a=zy(),o=Xy(),l=q0(),d=Y0(),u=j0();e.exports=c;function c(){if(!hs(this,c))return new c;this.head=this.createElement("head"),this.body=this.createElement("body"),this.documentElement=this.createElement("html"),this.documentElement.appendChild(this.head),this.documentElement.appendChild(this.body),this.childNodes=[this.documentElement],this.nodeType=9}var h=c.prototype;h.createTextNode=function(f){return new s(f,this)},h.createElementNS=function(f,m){var p=f===null?null:String(f);return new n(m,this,p)},h.createElement=function(f){return new n(f,this)},h.createDocumentFragment=function(){return new a(this)},h.createEvent=function(f){return new o(f)},h.createComment=function(f){return new r(f,this)},h.getElementById=function(f){f=String(f);var m=t(this.childNodes,function(p){if(String(p.id)===f)return p});return m||null},h.getElementsByClassName=n.prototype.getElementsByClassName,h.getElementsByTagName=n.prototype.getElementsByTagName,h.contains=n.prototype.contains,h.removeEventListener=u,h.addEventListener=d,h.dispatchEvent=l}),Zy=xt(function(i,e){var t=Qy();e.exports=new t}),Jy=xt(function(i,e){var t=typeof global<"u"?global:typeof window<"u"?window:{},r=Zy(),s;typeof document<"u"?s=document:(s=t["__GLOBAL_DOCUMENT_CACHE@4"],s||(s=t["__GLOBAL_DOCUMENT_CACHE@4"]=r)),e.exports=s});function eT(i){if(Array.isArray(i))return i}function tT(i,e){var t=i==null?null:typeof Symbol<"u"&&i[Symbol.iterator]||i["@@iterator"];if(t!=null){var r=[],s=!0,n=!1,a,o;try{for(t=t.call(i);!(s=(a=t.next()).done)&&(r.push(a.value),!(e&&r.length===e));s=!0);}catch(l){n=!0,o=l}finally{try{!s&&t.return!=null&&t.return()}finally{if(n)throw o}}return r}}function iT(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
|
|
2
2
|
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function Hu(i,e){(e==null||e>i.length)&&(e=i.length);for(var t=0,r=new Array(e);t<e;t++)r[t]=i[t];return r}function X0(i,e){if(i){if(typeof i=="string")return Hu(i,e);var t=Object.prototype.toString.call(i).slice(8,-1);if(t==="Object"&&i.constructor&&(t=i.constructor.name),t==="Map"||t==="Set")return Array.from(t);if(t==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t))return Hu(i,e)}}function Wi(i,e){return eT(i)||tT(i,e)||X0(i,e)||iT()}var ga=Qt(Li()),ka=function(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,function(i){var e=Math.random()*16|0,t=i==="x"?e:e&3|8;return t.toString(16)})},Q0=function(){return("000000"+(Math.random()*Math.pow(36,6)<<0).toString(36)).slice(-6)},xr=function(i){if(i&&typeof i.nodeName<"u")return i.muxId||(i.muxId=Q0()),i.muxId;var e;try{e=document.querySelector(i)}catch{}return e&&!e.muxId&&(e.muxId=i),(e==null?void 0:e.muxId)||i},Wu=function(i){var e;i&&typeof i.nodeName<"u"?(e=i,i=xr(e)):e=document.querySelector(i);var t=e&&e.nodeName?e.nodeName.toLowerCase():"";return[e,i,t]};function rT(i){if(Array.isArray(i))return Hu(i)}function sT(i){if(typeof Symbol<"u"&&i[Symbol.iterator]!=null||i["@@iterator"]!=null)return Array.from(i)}function nT(){throw new TypeError(`Invalid attempt to spread non-iterable instance.
|
|
3
3
|
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function Zt(i){return rT(i)||sT(i)||X0(i)||nT()}var Yr={TRACE:0,DEBUG:1,INFO:2,WARN:3,ERROR:4,SILENT:5},aT=function(i){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:3,t,r,s,n,a,o=[console,i],l=(t=console.trace).bind.apply(t,Zt(o)),d=(r=console.info).bind.apply(r,Zt(o)),u=(s=console.debug).bind.apply(s,Zt(o)),c=(n=console.warn).bind.apply(n,Zt(o)),h=(a=console.error).bind.apply(a,Zt(o)),f=e;return{trace:function(){for(var m=arguments.length,p=new Array(m),g=0;g<m;g++)p[g]=arguments[g];if(!(f>Yr.TRACE))return l.apply(void 0,Zt(p))},debug:function(){for(var m=arguments.length,p=new Array(m),g=0;g<m;g++)p[g]=arguments[g];if(!(f>Yr.DEBUG))return u.apply(void 0,Zt(p))},info:function(){for(var m=arguments.length,p=new Array(m),g=0;g<m;g++)p[g]=arguments[g];if(!(f>Yr.INFO))return d.apply(void 0,Zt(p))},warn:function(){for(var m=arguments.length,p=new Array(m),g=0;g<m;g++)p[g]=arguments[g];if(!(f>Yr.WARN))return c.apply(void 0,Zt(p))},error:function(){for(var m=arguments.length,p=new Array(m),g=0;g<m;g++)p[g]=arguments[g];if(!(f>Yr.ERROR))return h.apply(void 0,Zt(p))},get level(){return f},set level(m){m!==this.level&&(f=m??e)}}},Pe=aT("[mux]"),jd=Qt(Li());function Ku(){var i=jd.default.doNotTrack||jd.default.navigator&&jd.default.navigator.doNotTrack;return i==="1"}var oT=Qt(Li()),lT={now:function(){var i=oT.default.performance,e=i&&i.timing,t=e&&e.navigationStart,r=typeof t=="number"&&typeof i.now=="function"?t+i.now():Date.now();return Math.round(r)}},Xe=lT;function se(i){if(i===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return i}fs();function ut(i,e){if(!hs(i,e))throw new TypeError("Cannot call a class as a function")}function dT(i,e){for(var t=0;t<e.length;t++){var r=e[t];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(i,r.key,r)}}function Ii(i,e,t){return e&&dT(i.prototype,e),i}function B(i,e,t){return e in i?Object.defineProperty(i,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):i[e]=t,i}function Vu(i,e){return Vu=Object.setPrototypeOf||function(t,r){return t.__proto__=r,t},Vu(i,e)}function uT(i,e){if(typeof e!="function"&&e!==null)throw new TypeError("Super expression must either be null or a function");i.prototype=Object.create(e&&e.prototype,{constructor:{value:i,writable:!0,configurable:!0}}),e&&Vu(i,e)}function Kl(i){return Kl=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)},Kl(i)}function cT(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}$h();function hT(i,e){return e&&(Uh(e)==="object"||typeof e=="function")?e:se(i)}function fT(i){var e=cT();return function(){var t=Kl(i),r;if(e){var s=Kl(this).constructor;r=Reflect.construct(t,arguments,s)}else r=t.apply(this,arguments);return hT(this,r)}}var qt=function(i){return La(i)[0]},La=function(i){if(typeof i!="string"||i==="")return["localhost"];var e=/^(([^:\/?#]+):)?(\/\/([^\/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?/,t=i.match(e)||[],r=t[4],s;return r&&(s=(r.match(/[^\.]+\.[^\.]+$/)||[])[0]),[r,s]},zd=Qt(Li()),mT={exists:function(){var i=zd.default.performance,e=i&&i.timing;return e!==void 0},domContentLoadedEventEnd:function(){var i=zd.default.performance,e=i&&i.timing;return e&&e.domContentLoadedEventEnd},navigationStart:function(){var i=zd.default.performance,e=i&&i.timing;return e&&e.navigationStart}},Vl=mT;function He(i,e,t){t=t===void 0?1:t,i[e]=i[e]||0,i[e]+=t}function ql(i){for(var e=1;e<arguments.length;e++){var t=arguments[e]!=null?arguments[e]:{},r=Object.keys(t);typeof Object.getOwnPropertySymbols=="function"&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(s){return Object.getOwnPropertyDescriptor(t,s).enumerable}))),r.forEach(function(s){B(i,s,t[s])})}return i}function pT(i,e){var t=Object.keys(i);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(i);t.push.apply(t,r)}return t}function Bh(i,e){return e=e??{},Object.getOwnPropertyDescriptors?Object.defineProperties(i,Object.getOwnPropertyDescriptors(e)):pT(Object(e)).forEach(function(t){Object.defineProperty(i,t,Object.getOwnPropertyDescriptor(e,t))}),i}var gT=["x-cdn","content-type"],Z0=["x-request-id","cf-ray","x-amz-cf-id","x-akamai-request-id"],vT=gT.concat(Z0);function Gh(i){i=i||"";var e={},t=i.trim().split(/[\r\n]+/);return t.forEach(function(r){if(r){var s=r.split(": "),n=s.shift();n&&(vT.indexOf(n.toLowerCase())>=0||n.toLowerCase().indexOf("x-litix-")===0)&&(e[n]=s.join(": "))}}),e}function Yl(i){if(i){var e=Z0.find(function(t){return i[t]!==void 0});return e?i[e]:void 0}}var ET=function(i){var e={};for(var t in i){var r=i[t],s=r["DATA-ID"].search("io.litix.data.");if(s!==-1){var n=r["DATA-ID"].replace("io.litix.data.","");e[n]=r.VALUE}}return e},J0=ET,Xa=function(i){if(!i)return{};var e=Vl.navigationStart(),t=i.loading,r=t?t.start:i.trequest,s=t?t.first:i.tfirst,n=t?t.end:i.tload;return{bytesLoaded:i.total,requestStart:Math.round(e+r),responseStart:Math.round(e+s),responseEnd:Math.round(e+n)}},Ln=function(i){if(!(!i||typeof i.getAllResponseHeaders!="function"))return Gh(i.getAllResponseHeaders())},bT=function(i,e,t){var r=arguments.length>4?arguments[4]:void 0,s=i.log,n=i.utils.secondsToMs,a=function(g){var E=parseInt(r.version),b;return E===1&&g.programDateTime!==null&&(b=g.programDateTime),E===0&&g.pdt!==null&&(b=g.pdt),b};if(!Vl.exists()){s.warn("performance timing not supported. Not tracking HLS.js.");return}var o=function(g,E){return i.emit(e,g,E)},l=function(g,E){var b=E.levels,y=E.audioTracks,S=E.url,_=E.stats,x=E.networkDetails,A=E.sessionData,C={},O={};b.forEach(function(V,q){C[q]={width:V.width,height:V.height,bitrate:V.bitrate,attrs:V.attrs}}),y.forEach(function(V,q){O[q]={name:V.name,language:V.lang,bitrate:V.bitrate}});var L=Xa(_),M=L.bytesLoaded,K=L.requestStart,U=L.responseStart,z=L.responseEnd;o("requestcompleted",Bh(ql({},J0(A)),{request_event_type:g,request_bytes_loaded:M,request_start:K,request_response_start:U,request_response_end:z,request_type:"manifest",request_hostname:qt(S),request_response_headers:Ln(x),request_rendition_lists:{media:C,audio:O,video:{}}}))};t.on(r.Events.MANIFEST_LOADED,l);var d=function(g,E){var b=E.details,y=E.level,S=E.networkDetails,_=E.stats,x=Xa(_),A=x.bytesLoaded,C=x.requestStart,O=x.responseStart,L=x.responseEnd,M=b.fragments[b.fragments.length-1],K=a(M)+n(M.duration);o("requestcompleted",{request_event_type:g,request_bytes_loaded:A,request_start:C,request_response_start:O,request_response_end:L,request_current_level:y,request_type:"manifest",request_hostname:qt(b.url),request_response_headers:Ln(S),video_holdback:b.holdBack&&n(b.holdBack),video_part_holdback:b.partHoldBack&&n(b.partHoldBack),video_part_target_duration:b.partTarget&&n(b.partTarget),video_target_duration:b.targetduration&&n(b.targetduration),video_source_is_live:b.live,player_manifest_newest_program_time:isNaN(K)?void 0:K})};t.on(r.Events.LEVEL_LOADED,d);var u=function(g,E){var b=E.details,y=E.networkDetails,S=E.stats,_=Xa(S),x=_.bytesLoaded,A=_.requestStart,C=_.responseStart,O=_.responseEnd;o("requestcompleted",{request_event_type:g,request_bytes_loaded:x,request_start:A,request_response_start:C,request_response_end:O,request_type:"manifest",request_hostname:qt(b.url),request_response_headers:Ln(y)})};t.on(r.Events.AUDIO_TRACK_LOADED,u);var c=function(g,E){var b=E.stats,y=E.networkDetails,S=E.frag;b=b||S.stats;var _=Xa(b),x=_.bytesLoaded,A=_.requestStart,C=_.responseStart,O=_.responseEnd,L=y?Ln(y):void 0,M={request_event_type:g,request_bytes_loaded:x,request_start:A,request_response_start:C,request_response_end:O,request_hostname:y?qt(y.responseURL):void 0,request_id:L?Yl(L):void 0,request_response_headers:L,request_media_duration:S.duration,request_url:y==null?void 0:y.responseURL};S.type==="main"?(M.request_type="media",M.request_current_level=S.level,M.request_video_width=(t.levels[S.level]||{}).width,M.request_video_height=(t.levels[S.level]||{}).height,M.request_labeled_bitrate=(t.levels[S.level]||{}).bitrate):M.request_type=S.type,o("requestcompleted",M)};t.on(r.Events.FRAG_LOADED,c);var h=function(g,E){var b=E.frag,y=b.start,S=a(b),_={currentFragmentPDT:S,currentFragmentStart:n(y)};o("fragmentchange",_)};t.on(r.Events.FRAG_CHANGED,h);var f=function(g,E){var b=E.type,y=E.details,S=E.response,_=E.fatal,x=E.frag,A=E.networkDetails,C=(x==null?void 0:x.url)||E.url||"",O=A?Ln(A):void 0;if((y===r.ErrorDetails.MANIFEST_LOAD_ERROR||y===r.ErrorDetails.MANIFEST_LOAD_TIMEOUT||y===r.ErrorDetails.FRAG_LOAD_ERROR||y===r.ErrorDetails.FRAG_LOAD_TIMEOUT||y===r.ErrorDetails.LEVEL_LOAD_ERROR||y===r.ErrorDetails.LEVEL_LOAD_TIMEOUT||y===r.ErrorDetails.AUDIO_TRACK_LOAD_ERROR||y===r.ErrorDetails.AUDIO_TRACK_LOAD_TIMEOUT||y===r.ErrorDetails.SUBTITLE_LOAD_ERROR||y===r.ErrorDetails.SUBTITLE_LOAD_TIMEOUT||y===r.ErrorDetails.KEY_LOAD_ERROR||y===r.ErrorDetails.KEY_LOAD_TIMEOUT)&&o("requestfailed",{request_error:y,request_url:C,request_hostname:qt(C),request_id:O?Yl(O):void 0,request_type:y===r.ErrorDetails.FRAG_LOAD_ERROR||y===r.ErrorDetails.FRAG_LOAD_TIMEOUT?"media":y===r.ErrorDetails.AUDIO_TRACK_LOAD_ERROR||y===r.ErrorDetails.AUDIO_TRACK_LOAD_TIMEOUT?"audio":y===r.ErrorDetails.SUBTITLE_LOAD_ERROR||y===r.ErrorDetails.SUBTITLE_LOAD_TIMEOUT?"subtitle":y===r.ErrorDetails.KEY_LOAD_ERROR||y===r.ErrorDetails.KEY_LOAD_TIMEOUT?"encryption":"manifest",request_error_code:S==null?void 0:S.code,request_error_text:S==null?void 0:S.text}),_){var L,M="".concat(C?"url: ".concat(C,`
|
|
4
4
|
`):"")+"".concat(S&&(S.code||S.text)?"response: ".concat(S.code,", ").concat(S.text,`
|
|
@@ -3050,4 +3050,4 @@ media-poster-image:not([src]):not([placeholdersrc]) {
|
|
|
3050
3050
|
</template>
|
|
3051
3051
|
`,Ih=gr.createElement("template");"innerHTML"in Ih&&(Ih.innerHTML=VC);var R0,w0,by=class extends Kd{};by.template=(w0=(R0=Ih.content)==null?void 0:R0.children)==null?void 0:w0[0];lt.customElements.get("media-theme-gerwig")||lt.customElements.define("media-theme-gerwig",by);var qC="gerwig",Oi={SRC:"src",POSTER:"poster"},F={STYLE:"style",DEFAULT_HIDDEN_CAPTIONS:"default-hidden-captions",PRIMARY_COLOR:"primary-color",SECONDARY_COLOR:"secondary-color",ACCENT_COLOR:"accent-color",FORWARD_SEEK_OFFSET:"forward-seek-offset",BACKWARD_SEEK_OFFSET:"backward-seek-offset",PLAYBACK_TOKEN:"playback-token",THUMBNAIL_TOKEN:"thumbnail-token",STORYBOARD_TOKEN:"storyboard-token",DRM_TOKEN:"drm-token",STORYBOARD_SRC:"storyboard-src",THUMBNAIL_TIME:"thumbnail-time",AUDIO:"audio",NOHOTKEYS:"nohotkeys",HOTKEYS:"hotkeys",PLAYBACK_RATES:"playbackrates",DEFAULT_SHOW_REMAINING_TIME:"default-show-remaining-time",DEFAULT_DURATION:"default-duration",TITLE:"title",PLACEHOLDER:"placeholder",THEME:"theme",DEFAULT_STREAM_TYPE:"default-stream-type",TARGET_LIVE_WINDOW:"target-live-window",EXTRA_SOURCE_PARAMS:"extra-source-params",NO_VOLUME_PREF:"no-volume-pref",CAST_RECEIVER:"cast-receiver",NO_TOOLTIPS:"no-tooltips"},Rh=["audio","backwardseekoffset","defaultduration","defaultshowremainingtime","defaultsubtitles","noautoseektolive","disabled","exportparts","forwardseekoffset","hideduration","hotkeys","nohotkeys","playbackrates","defaultstreamtype","streamtype","style","targetlivewindow","template","title","novolumepref"];function YC(i,e){var t;return{src:!i.playbackId&&i.src,playbackId:i.playbackId,hasSrc:!!i.playbackId||!!i.src||!!i.currentSrc,poster:i.poster,storyboard:i.storyboard,storyboardSrc:i.getAttribute(F.STORYBOARD_SRC),placeholder:i.getAttribute("placeholder"),themeTemplate:jC(i),thumbnailTime:!i.tokens.thumbnail&&i.thumbnailTime,autoplay:i.autoplay,crossOrigin:i.crossOrigin,loop:i.loop,noHotKeys:i.hasAttribute(F.NOHOTKEYS),hotKeys:i.getAttribute(F.HOTKEYS),muted:i.muted,paused:i.paused,preload:i.preload,envKey:i.envKey,preferCmcd:i.preferCmcd,debug:i.debug,disableTracking:i.disableTracking,disableCookies:i.disableCookies,tokens:i.tokens,beaconCollectionDomain:i.beaconCollectionDomain,maxResolution:i.maxResolution,minResolution:i.minResolution,programStartTime:i.programStartTime,programEndTime:i.programEndTime,renditionOrder:i.renditionOrder,metadata:i.metadata,playerSoftwareName:i.playerSoftwareName,playerSoftwareVersion:i.playerSoftwareVersion,startTime:i.startTime,preferPlayback:i.preferPlayback,audio:i.audio,defaultStreamType:i.defaultStreamType,targetLiveWindow:i.getAttribute(P.TARGET_LIVE_WINDOW),streamType:Jf(i.getAttribute(P.STREAM_TYPE)),primaryColor:i.getAttribute(F.PRIMARY_COLOR),secondaryColor:i.getAttribute(F.SECONDARY_COLOR),accentColor:i.getAttribute(F.ACCENT_COLOR),forwardSeekOffset:i.forwardSeekOffset,backwardSeekOffset:i.backwardSeekOffset,defaultHiddenCaptions:i.defaultHiddenCaptions,defaultDuration:i.defaultDuration,defaultShowRemainingTime:i.defaultShowRemainingTime,hideDuration:zC(i),playbackRates:i.getAttribute(F.PLAYBACK_RATES),customDomain:(t=i.getAttribute(P.CUSTOM_DOMAIN))!=null?t:void 0,title:i.getAttribute(F.TITLE),novolumepref:i.hasAttribute(F.NO_VOLUME_PREF),castReceiver:i.castReceiver,...e,extraSourceParams:i.extraSourceParams}}function jC(i){var e,t;let r=i.theme;if(r){let s=(t=(e=i.getRootNode())==null?void 0:e.getElementById)==null?void 0:t.call(e,r);if(s&&s instanceof HTMLTemplateElement)return s;r.startsWith("media-theme-")||(r=`media-theme-${r}`);let n=lt.customElements.get(r);if(n!=null&&n.template)return n.template}}function zC(i){var e;let t=(e=i.mediaController)==null?void 0:e.querySelector("media-time-display");return t&&getComputedStyle(t).getPropertyValue("--media-duration-display-display").trim()==="none"}function C0(i){let e=i.hasAttribute(F.TITLE)?{video_title:i.getAttribute(F.TITLE)}:{};return i.getAttributeNames().filter(t=>t.startsWith("metadata-")).reduce((t,r)=>{let s=i.getAttribute(r);return s!==null&&(t[r.replace(/^metadata-/,"").replace(/-/g,"_")]=s),t},e)}var XC=Object.values(P),QC=Object.values(Oi),ZC=Object.values(F),JC=dy(),eD="mux-player",D0={dialog:void 0,isDialogOpen:!1},tD={redundant_streams:!0},Bl,Gl,Vr,Hl,fn,Ni,sr,wh,yy,Id,Ch,lr,qr,Dh,M0,Mh,P0,Ph,O0,Oh,N0,F0=class extends x0{constructor(){super(),st(this,Ni),st(this,wh),st(this,Id),st(this,lr),st(this,Dh),st(this,Mh),st(this,Ph),st(this,Oh),st(this,Bl,!1),st(this,Gl,{}),st(this,Vr,!0),st(this,Hl,new TC(this,"hotkeys")),st(this,fn,{...D0,onCloseErrorDialog:()=>Ge(this,Id,Ch).call(this,{dialog:void 0,isDialogOpen:!1}),onInitFocusDialog:e=>{oy(this,gr.activeElement)||e.preventDefault()}}),this.attachShadow({mode:"open"}),Ge(this,wh,yy).call(this),this.isConnected&&Ge(this,Ni,sr).call(this)}static get observedAttributes(){var e;return[...(e=x0.observedAttributes)!=null?e:[],...QC,...XC,...ZC]}get mediaTheme(){var e;return(e=this.shadowRoot)==null?void 0:e.querySelector("media-theme")}get mediaController(){var e,t;return(t=(e=this.mediaTheme)==null?void 0:e.shadowRoot)==null?void 0:t.querySelector("media-controller")}connectedCallback(){var e;let t=(e=this.shadowRoot)==null?void 0:e.querySelector("mux-video");t&&(t.metadata=C0(this))}attributeChangedCallback(e,t,r){switch(Ge(this,Ni,sr).call(this),super.attributeChangedCallback(e,t,r),e){case F.HOTKEYS:ve(this,Hl).value=r;break;case F.THUMBNAIL_TIME:{r!=null&&this.tokens.thumbnail&&Bi(ce("Use of thumbnail-time with thumbnail-token is currently unsupported. Ignore thumbnail-time.").format({}));break}case F.THUMBNAIL_TOKEN:{if(r){let{aud:s}=cn(r);s!=="t"&&Bi(ce("The provided thumbnail-token should have audience value 'd' instead of '{aud}'.").format({aud:s}))}break}case F.STORYBOARD_TOKEN:{if(r){let{aud:s}=cn(r);s!=="s"&&Bi(ce("The provided storyboard-token should have audience value 'd' instead of '{aud}'.").format({aud:s}))}break}case F.DRM_TOKEN:{if(r){let{aud:s}=cn(r);s!=="d"&&Bi(ce("The provided drm-token should have audience value 'd' instead of '{aud}'.").format({aud:s}))}break}case P.PLAYBACK_ID:{r!=null&&r.includes("?token")&&Ft(ce("The specificed playback ID {playbackId} contains a token which must be provided via the playback-token attribute.").format({playbackId:r}));break}case P.STREAM_TYPE:r&&![ye.LIVE,ye.ON_DEMAND,ye.UNKNOWN].includes(r)?["ll-live","live:dvr","ll-live:dvr"].includes(this.streamType)?this.targetLiveWindow=r.includes("dvr")?Number.POSITIVE_INFINITY:0:cy({file:"invalid-stream-type.md",message:ce("Invalid stream-type value supplied: `{streamType}`. Please provide stream-type as either: `on-demand` or `live`").format({streamType:this.streamType})}):r===ye.LIVE?this.getAttribute(F.TARGET_LIVE_WINDOW)==null&&(this.targetLiveWindow=0):this.targetLiveWindow=Number.NaN}[P.PLAYBACK_ID,Oi.SRC,F.PLAYBACK_TOKEN].includes(e)&&t!==r&&Hi(this,fn,{...ve(this,fn),...D0}),Ge(this,lr,qr).call(this,{[yC(e)]:r})}get preferCmcd(){var e;return(e=this.getAttribute(P.PREFER_CMCD))!=null?e:void 0}set preferCmcd(e){e!==this.preferCmcd&&(e?nd.includes(e)?this.setAttribute(P.PREFER_CMCD,e):Bi(`Invalid value for preferCmcd. Must be one of ${nd.join()}`):this.removeAttribute(P.PREFER_CMCD))}get hasPlayed(){var e,t;return(t=(e=this.mediaController)==null?void 0:e.hasAttribute(T.MEDIA_HAS_PLAYED))!=null?t:!1}get inLiveWindow(){var e;return(e=this.mediaController)==null?void 0:e.hasAttribute(T.MEDIA_TIME_IS_LIVE)}get _hls(){var e;return(e=this.media)==null?void 0:e._hls}get mux(){var e;return(e=this.media)==null?void 0:e.mux}get theme(){var e;return(e=this.getAttribute(F.THEME))!=null?e:qC}set theme(e){this.setAttribute(F.THEME,`${e}`)}get themeProps(){let e=this.mediaTheme;if(!e)return;let t={};for(let r of e.getAttributeNames()){if(Rh.includes(r))continue;let s=e.getAttribute(r);t[ny(r)]=s===""?!0:s}return t}set themeProps(e){var t,r;Ge(this,Ni,sr).call(this);let s={...this.themeProps,...e};for(let n in s){if(Rh.includes(n))continue;let a=e==null?void 0:e[n];typeof a=="boolean"||a==null?(t=this.mediaTheme)==null||t.toggleAttribute(xh(n),!!a):(r=this.mediaTheme)==null||r.setAttribute(xh(n),a)}}get playbackId(){var e;return(e=this.getAttribute(P.PLAYBACK_ID))!=null?e:void 0}set playbackId(e){e?this.setAttribute(P.PLAYBACK_ID,e):this.removeAttribute(P.PLAYBACK_ID)}get src(){var e,t;return this.playbackId?(e=Sr(this,Oi.SRC))!=null?e:void 0:(t=this.getAttribute(Oi.SRC))!=null?t:void 0}set src(e){e?this.setAttribute(Oi.SRC,e):this.removeAttribute(Oi.SRC)}get poster(){var e;let t=this.getAttribute(Oi.POSTER);if(t!=null)return t;let{tokens:r}=this;if(r.playback&&!r.thumbnail){Bi("Missing expected thumbnail token. No poster image will be shown");return}if(this.playbackId&&!this.audio)return vC(this.playbackId,{customDomain:this.customDomain,thumbnailTime:(e=this.thumbnailTime)!=null?e:this.startTime,programTime:this.programStartTime,token:r.thumbnail})}set poster(e){e||e===""?this.setAttribute(Oi.POSTER,e):this.removeAttribute(Oi.POSTER)}get storyboardSrc(){var e;return(e=this.getAttribute(F.STORYBOARD_SRC))!=null?e:void 0}set storyboardSrc(e){e?this.setAttribute(F.STORYBOARD_SRC,e):this.removeAttribute(F.STORYBOARD_SRC)}get storyboard(){let{tokens:e}=this;if(this.storyboardSrc&&!e.storyboard)return this.storyboardSrc;if(!(this.audio||!this.playbackId||!this.streamType||[ye.LIVE,ye.UNKNOWN].includes(this.streamType)||e.playback&&!e.storyboard))return EC(this.playbackId,{customDomain:this.customDomain,token:e.storyboard,programStartTime:this.programStartTime,programEndTime:this.programEndTime})}get audio(){return this.hasAttribute(F.AUDIO)}set audio(e){if(!e){this.removeAttribute(F.AUDIO);return}this.setAttribute(F.AUDIO,"")}get hotkeys(){return ve(this,Hl)}get nohotkeys(){return this.hasAttribute(F.NOHOTKEYS)}set nohotkeys(e){if(!e){this.removeAttribute(F.NOHOTKEYS);return}this.setAttribute(F.NOHOTKEYS,"")}get thumbnailTime(){return pi(this.getAttribute(F.THUMBNAIL_TIME))}set thumbnailTime(e){this.setAttribute(F.THUMBNAIL_TIME,`${e}`)}get title(){var e;return(e=this.getAttribute(F.TITLE))!=null?e:""}set title(e){e!==this.title&&(e?this.setAttribute(F.TITLE,e):this.removeAttribute("title"),super.title=e)}get placeholder(){var e;return(e=Sr(this,F.PLACEHOLDER))!=null?e:""}set placeholder(e){this.setAttribute(F.PLACEHOLDER,`${e}`)}get primaryColor(){var e,t;let r=this.getAttribute(F.PRIMARY_COLOR);if(r!=null||this.mediaTheme&&(r=(t=(e=lt.getComputedStyle(this.mediaTheme))==null?void 0:e.getPropertyValue("--_primary-color"))==null?void 0:t.trim(),r))return r}set primaryColor(e){this.setAttribute(F.PRIMARY_COLOR,`${e}`)}get secondaryColor(){var e,t;let r=this.getAttribute(F.SECONDARY_COLOR);if(r!=null||this.mediaTheme&&(r=(t=(e=lt.getComputedStyle(this.mediaTheme))==null?void 0:e.getPropertyValue("--_secondary-color"))==null?void 0:t.trim(),r))return r}set secondaryColor(e){this.setAttribute(F.SECONDARY_COLOR,`${e}`)}get accentColor(){var e,t;let r=this.getAttribute(F.ACCENT_COLOR);if(r!=null||this.mediaTheme&&(r=(t=(e=lt.getComputedStyle(this.mediaTheme))==null?void 0:e.getPropertyValue("--_accent-color"))==null?void 0:t.trim(),r))return r}set accentColor(e){this.setAttribute(F.ACCENT_COLOR,`${e}`)}get defaultShowRemainingTime(){return this.hasAttribute(F.DEFAULT_SHOW_REMAINING_TIME)}set defaultShowRemainingTime(e){e?this.setAttribute(F.DEFAULT_SHOW_REMAINING_TIME,""):this.removeAttribute(F.DEFAULT_SHOW_REMAINING_TIME)}get playbackRates(){if(this.hasAttribute(F.PLAYBACK_RATES))return this.getAttribute(F.PLAYBACK_RATES).trim().split(/\s*,?\s+/).map(e=>Number(e)).filter(e=>!Number.isNaN(e)).sort((e,t)=>e-t)}set playbackRates(e){if(!e){this.removeAttribute(F.PLAYBACK_RATES);return}this.setAttribute(F.PLAYBACK_RATES,e.join(" "))}get forwardSeekOffset(){var e;return(e=pi(this.getAttribute(F.FORWARD_SEEK_OFFSET)))!=null?e:10}set forwardSeekOffset(e){this.setAttribute(F.FORWARD_SEEK_OFFSET,`${e}`)}get backwardSeekOffset(){var e;return(e=pi(this.getAttribute(F.BACKWARD_SEEK_OFFSET)))!=null?e:10}set backwardSeekOffset(e){this.setAttribute(F.BACKWARD_SEEK_OFFSET,`${e}`)}get defaultHiddenCaptions(){return this.hasAttribute(F.DEFAULT_HIDDEN_CAPTIONS)}set defaultHiddenCaptions(e){e?this.setAttribute(F.DEFAULT_HIDDEN_CAPTIONS,""):this.removeAttribute(F.DEFAULT_HIDDEN_CAPTIONS)}get defaultDuration(){return pi(this.getAttribute(F.DEFAULT_DURATION))}set defaultDuration(e){e==null?this.removeAttribute(F.DEFAULT_DURATION):this.setAttribute(F.DEFAULT_DURATION,`${e}`)}get playerSoftwareName(){var e;return(e=this.getAttribute(P.PLAYER_SOFTWARE_NAME))!=null?e:eD}get playerSoftwareVersion(){var e;return(e=this.getAttribute(P.PLAYER_SOFTWARE_VERSION))!=null?e:JC}get beaconCollectionDomain(){var e;return(e=this.getAttribute(P.BEACON_COLLECTION_DOMAIN))!=null?e:void 0}set beaconCollectionDomain(e){e!==this.beaconCollectionDomain&&(e?this.setAttribute(P.BEACON_COLLECTION_DOMAIN,e):this.removeAttribute(P.BEACON_COLLECTION_DOMAIN))}get maxResolution(){var e;return(e=this.getAttribute(P.MAX_RESOLUTION))!=null?e:void 0}set maxResolution(e){e!==this.maxResolution&&(e?this.setAttribute(P.MAX_RESOLUTION,e):this.removeAttribute(P.MAX_RESOLUTION))}get minResolution(){var e;return(e=this.getAttribute(P.MIN_RESOLUTION))!=null?e:void 0}set minResolution(e){e!==this.minResolution&&(e?this.setAttribute(P.MIN_RESOLUTION,e):this.removeAttribute(P.MIN_RESOLUTION))}get renditionOrder(){var e;return(e=this.getAttribute(P.RENDITION_ORDER))!=null?e:void 0}set renditionOrder(e){e!==this.renditionOrder&&(e?this.setAttribute(P.RENDITION_ORDER,e):this.removeAttribute(P.RENDITION_ORDER))}get programStartTime(){return pi(this.getAttribute(P.PROGRAM_START_TIME))}set programStartTime(e){e==null?this.removeAttribute(P.PROGRAM_START_TIME):this.setAttribute(P.PROGRAM_START_TIME,`${e}`)}get programEndTime(){return pi(this.getAttribute(P.PROGRAM_END_TIME))}set programEndTime(e){e==null?this.removeAttribute(P.PROGRAM_END_TIME):this.setAttribute(P.PROGRAM_END_TIME,`${e}`)}get extraSourceParams(){return this.hasAttribute(F.EXTRA_SOURCE_PARAMS)?[...new URLSearchParams(this.getAttribute(F.EXTRA_SOURCE_PARAMS)).entries()].reduce((e,[t,r])=>(e[t]=r,e),{}):tD}set extraSourceParams(e){e==null?this.removeAttribute(F.EXTRA_SOURCE_PARAMS):this.setAttribute(F.EXTRA_SOURCE_PARAMS,new URLSearchParams(e).toString())}get customDomain(){var e;return(e=this.getAttribute(P.CUSTOM_DOMAIN))!=null?e:void 0}set customDomain(e){e!==this.customDomain&&(e?this.setAttribute(P.CUSTOM_DOMAIN,e):this.removeAttribute(P.CUSTOM_DOMAIN))}get envKey(){var e;return(e=Sr(this,P.ENV_KEY))!=null?e:void 0}set envKey(e){this.setAttribute(P.ENV_KEY,`${e}`)}get noVolumePref(){return this.hasAttribute(F.NO_VOLUME_PREF)}set noVolumePref(e){e?this.setAttribute(F.NO_VOLUME_PREF,""):this.removeAttribute(F.NO_VOLUME_PREF)}get debug(){return Sr(this,P.DEBUG)!=null}set debug(e){e?this.setAttribute(P.DEBUG,""):this.removeAttribute(P.DEBUG)}get disableTracking(){return Sr(this,P.DISABLE_TRACKING)!=null}set disableTracking(e){this.toggleAttribute(P.DISABLE_TRACKING,!!e)}get disableCookies(){return Sr(this,P.DISABLE_COOKIES)!=null}set disableCookies(e){e?this.setAttribute(P.DISABLE_COOKIES,""):this.removeAttribute(P.DISABLE_COOKIES)}get streamType(){var e,t,r;return(r=(t=this.getAttribute(P.STREAM_TYPE))!=null?t:(e=this.media)==null?void 0:e.streamType)!=null?r:ye.UNKNOWN}set streamType(e){this.setAttribute(P.STREAM_TYPE,`${e}`)}get defaultStreamType(){var e,t,r;return(r=(t=this.getAttribute(F.DEFAULT_STREAM_TYPE))!=null?t:(e=this.mediaController)==null?void 0:e.getAttribute(F.DEFAULT_STREAM_TYPE))!=null?r:ye.ON_DEMAND}set defaultStreamType(e){e?this.setAttribute(F.DEFAULT_STREAM_TYPE,e):this.removeAttribute(F.DEFAULT_STREAM_TYPE)}get targetLiveWindow(){var e,t;return this.hasAttribute(F.TARGET_LIVE_WINDOW)?+this.getAttribute(F.TARGET_LIVE_WINDOW):(t=(e=this.media)==null?void 0:e.targetLiveWindow)!=null?t:Number.NaN}set targetLiveWindow(e){e==this.targetLiveWindow||Number.isNaN(e)&&Number.isNaN(this.targetLiveWindow)||(e==null?this.removeAttribute(F.TARGET_LIVE_WINDOW):this.setAttribute(F.TARGET_LIVE_WINDOW,`${+e}`))}get liveEdgeStart(){var e;return(e=this.media)==null?void 0:e.liveEdgeStart}get startTime(){return pi(Sr(this,P.START_TIME))}set startTime(e){this.setAttribute(P.START_TIME,`${e}`)}get preferPlayback(){let e=this.getAttribute(P.PREFER_PLAYBACK);if(e===Ti.MSE||e===Ti.NATIVE)return e}set preferPlayback(e){e!==this.preferPlayback&&(e===Ti.MSE||e===Ti.NATIVE?this.setAttribute(P.PREFER_PLAYBACK,e):this.removeAttribute(P.PREFER_PLAYBACK))}get metadata(){var e;return(e=this.media)==null?void 0:e.metadata}set metadata(e){if(Ge(this,Ni,sr).call(this),!this.media){Ft("underlying media element missing when trying to set metadata. metadata will not be set.");return}this.media.metadata={...C0(this),...e}}get _hlsConfig(){var e;return(e=this.media)==null?void 0:e._hlsConfig}set _hlsConfig(e){if(Ge(this,Ni,sr).call(this),!this.media){Ft("underlying media element missing when trying to set _hlsConfig. _hlsConfig will not be set.");return}this.media._hlsConfig=e}async addCuePoints(e){var t;if(Ge(this,Ni,sr).call(this),!this.media){Ft("underlying media element missing when trying to addCuePoints. cuePoints will not be added.");return}return(t=this.media)==null?void 0:t.addCuePoints(e)}get activeCuePoint(){var e;return(e=this.media)==null?void 0:e.activeCuePoint}get cuePoints(){var e,t;return(t=(e=this.media)==null?void 0:e.cuePoints)!=null?t:[]}addChapters(e){var t;if(Ge(this,Ni,sr).call(this),!this.media){Ft("underlying media element missing when trying to addChapters. chapters will not be added.");return}return(t=this.media)==null?void 0:t.addChapters(e)}get activeChapter(){var e;return(e=this.media)==null?void 0:e.activeChapter}get chapters(){var e,t;return(t=(e=this.media)==null?void 0:e.chapters)!=null?t:[]}getStartDate(){var e;return(e=this.media)==null?void 0:e.getStartDate()}get currentPdt(){var e;return(e=this.media)==null?void 0:e.currentPdt}get tokens(){let e=this.getAttribute(F.PLAYBACK_TOKEN),t=this.getAttribute(F.DRM_TOKEN),r=this.getAttribute(F.THUMBNAIL_TOKEN),s=this.getAttribute(F.STORYBOARD_TOKEN);return{...ve(this,Gl),...e!=null?{playback:e}:{},...t!=null?{drm:t}:{},...r!=null?{thumbnail:r}:{},...s!=null?{storyboard:s}:{}}}set tokens(e){Hi(this,Gl,e??{})}get playbackToken(){var e;return(e=this.getAttribute(F.PLAYBACK_TOKEN))!=null?e:void 0}set playbackToken(e){this.setAttribute(F.PLAYBACK_TOKEN,`${e}`)}get drmToken(){var e;return(e=this.getAttribute(F.DRM_TOKEN))!=null?e:void 0}set drmToken(e){this.setAttribute(F.DRM_TOKEN,`${e}`)}get thumbnailToken(){var e;return(e=this.getAttribute(F.THUMBNAIL_TOKEN))!=null?e:void 0}set thumbnailToken(e){this.setAttribute(F.THUMBNAIL_TOKEN,`${e}`)}get storyboardToken(){var e;return(e=this.getAttribute(F.STORYBOARD_TOKEN))!=null?e:void 0}set storyboardToken(e){this.setAttribute(F.STORYBOARD_TOKEN,`${e}`)}addTextTrack(e,t,r,s){var n;let a=(n=this.media)==null?void 0:n.nativeEl;if(a)return df(a,e,t,r,s)}removeTextTrack(e){var t;let r=(t=this.media)==null?void 0:t.nativeEl;if(r)return wk(r,e)}get textTracks(){var e;return(e=this.media)==null?void 0:e.textTracks}get castReceiver(){var e;return(e=this.getAttribute(F.CAST_RECEIVER))!=null?e:void 0}set castReceiver(e){e!==this.castReceiver&&(e?this.setAttribute(F.CAST_RECEIVER,e):this.removeAttribute(F.CAST_RECEIVER))}get castCustomData(){var e;return(e=this.media)==null?void 0:e.castCustomData}set castCustomData(e){if(!this.media){Ft("underlying media element missing when trying to set castCustomData. castCustomData will not be set.");return}this.media.castCustomData=e}get noTooltips(){return this.hasAttribute(F.NO_TOOLTIPS)}set noTooltips(e){if(!e){this.removeAttribute(F.NO_TOOLTIPS);return}this.setAttribute(F.NO_TOOLTIPS,"")}};Bl=new WeakMap,Gl=new WeakMap,Vr=new WeakMap,Hl=new WeakMap,fn=new WeakMap,Ni=new WeakSet,sr=function(){var i,e,t,r;if(!ve(this,Bl)){Hi(this,Bl,!0),Ge(this,lr,qr).call(this);try{if(customElements.upgrade(this.mediaTheme),!(this.mediaTheme instanceof lt.HTMLElement))throw""}catch{Ft("<media-theme> failed to upgrade!")}try{if(customElements.upgrade(this.media),!(this.media instanceof _w))throw""}catch{Ft("<mux-video> failed to upgrade!")}try{if(customElements.upgrade(this.mediaController),!(this.mediaController instanceof cI))throw""}catch{Ft("<media-controller> failed to upgrade!")}this.init(),Ge(this,Dh,M0).call(this),Ge(this,Mh,P0).call(this),Ge(this,Ph,O0).call(this),Hi(this,Vr,(e=(i=this.mediaController)==null?void 0:i.hasAttribute(me.USER_INACTIVE))!=null?e:!0),Ge(this,Oh,N0).call(this),(t=this.media)==null||t.addEventListener("streamtypechange",()=>Ge(this,lr,qr).call(this)),(r=this.media)==null||r.addEventListener("loadstart",()=>Ge(this,lr,qr).call(this))}},wh=new WeakSet,yy=function(){var i,e;try{(i=window==null?void 0:window.CSS)==null||i.registerProperty({name:"--media-primary-color",syntax:"<color>",inherits:!0}),(e=window==null?void 0:window.CSS)==null||e.registerProperty({name:"--media-secondary-color",syntax:"<color>",inherits:!0})}catch{}},Id=new WeakSet,Ch=function(i){Object.assign(ve(this,fn),i),Ge(this,lr,qr).call(this)},lr=new WeakSet,qr=function(i={}){UC(BC(YC(this,{...ve(this,fn),...i})),this.shadowRoot)},Dh=new WeakSet,M0=function(){let i=e=>{var t,r;if(!(e!=null&&e.startsWith("theme-")))return;let s=e.replace(/^theme-/,"");if(Rh.includes(s))return;let n=this.getAttribute(e);n!=null?(t=this.mediaTheme)==null||t.setAttribute(s,n):(r=this.mediaTheme)==null||r.removeAttribute(s)};new MutationObserver(e=>{for(let{attributeName:t}of e)i(t)}).observe(this,{attributes:!0}),this.getAttributeNames().forEach(i)},Mh=new WeakSet,P0=function(){var i;let e=t=>{let{detail:r}=t;if(r instanceof St||(r=new St(r.message,r.code,r.fatal)),!(r!=null&&r.fatal)){Bi(r),r.data&&Bi(`${r.name} data:`,r.data);return}let{dialog:s,devlog:n}=Lh(r,!window.navigator.onLine,this.playbackId,this.playbackToken);n.message&&cy(n),Ft(r),r.data&&Ft(`${r.name} data:`,r.data),Ge(this,Id,Ch).call(this,{isDialogOpen:!0,dialog:s})};this.addEventListener("error",e),this.media&&(this.media.errorTranslator=(t={})=>{var r,s,n;if(!(((r=this.media)==null?void 0:r.error)instanceof St))return t;let{devlog:a}=Lh((s=this.media)==null?void 0:s.error,!window.navigator.onLine,this.playbackId,this.playbackToken,!1);return{player_error_code:(n=this.media)==null?void 0:n.error.code,player_error_message:a.message?String(a.message):t.player_error_message,player_error_context:a.context?String(a.context):t.player_error_context}}),(i=this.media)==null||i.addEventListener("error",t=>{var r,s;let{detail:n}=t;if(!n){let{message:a,code:o}=(s=(r=this.media)==null?void 0:r.error)!=null?s:{};n=new St(a,o)}n!=null&&n.fatal&&this.dispatchEvent(new CustomEvent("error",{detail:n}))})},Ph=new WeakSet,O0=function(){var i,e,t,r;let s=()=>Ge(this,lr,qr).call(this);(e=(i=this.media)==null?void 0:i.textTracks)==null||e.addEventListener("addtrack",s),(r=(t=this.media)==null?void 0:t.textTracks)==null||r.addEventListener("removetrack",s)},Oh=new WeakSet,N0=function(){var i,e;if(!/Firefox/i.test(navigator.userAgent))return;let t,r=new WeakMap,s=()=>this.streamType===ye.LIVE&&!this.secondaryColor&&this.offsetWidth>=800,n=(l,d,u=!1)=>{s()||Array.from(l&&l.activeCues||[]).forEach(c=>{if(!(!c.snapToLines||c.line<-5||c.line>=0&&c.line<10))if(!d||this.paused){let h=c.text.split(`
|
|
3052
3052
|
`).length,f=-3;this.streamType===ye.LIVE&&(f=-2);let m=f-h;if(c.line===m&&!u)return;r.has(c)||r.set(c,c.line),c.line=m}else setTimeout(()=>{c.line=r.get(c)||"auto"},500)})},a=()=>{var l,d;n(t,(d=(l=this.mediaController)==null?void 0:l.hasAttribute(me.USER_INACTIVE))!=null?d:!1)},o=()=>{var l,d;let u=Array.from(((d=(l=this.mediaController)==null?void 0:l.media)==null?void 0:d.textTracks)||[]).filter(c=>["subtitles","captions"].includes(c.kind)&&c.mode==="showing")[0];u!==t&&(t==null||t.removeEventListener("cuechange",a)),t=u,t==null||t.addEventListener("cuechange",a),n(t,ve(this,Vr))};o(),(i=this.textTracks)==null||i.addEventListener("change",o),(e=this.textTracks)==null||e.addEventListener("addtrack",o),this.addEventListener("userinactivechange",()=>{var l,d;let u=(d=(l=this.mediaController)==null?void 0:l.hasAttribute(me.USER_INACTIVE))!=null?d:!0;ve(this,Vr)!==u&&(Hi(this,Vr,u),n(t,ve(this,Vr)))})};function Sr(i,e){return i.media?i.media.getAttribute(e):i.getAttribute(e)}lt.customElements.get("mux-player")||(lt.customElements.define("mux-player",F0),lt.MuxPlayerElement=F0);var U0={className:"class",classname:"class",htmlFor:"for",crossOrigin:"crossorigin",viewBox:"viewBox",playsInline:"playsinline",autoPlay:"autoplay",playbackRate:"playbackrate"},iD=i=>i==null,rD=(i,e)=>iD(e)?!1:i in e,sD=i=>i.replace(/[A-Z]/g,e=>`-${e.toLowerCase()}`),nD=(i,e)=>{if(!(typeof e=="boolean"&&!e)){if(rD(i,U0))return U0[i];if(typeof e!=null)return/[A-Z]/.test(i)?sD(i):i}},aD=(i,e)=>typeof i=="boolean"?"":i,oD=(i={})=>Object.entries(i).reduce((e,[t,r])=>{let s=nD(t,r);if(!s)return e;let n=aD(r);return e[s]=n,e},{}),lD=(...i)=>{let e=ft.useRef(null);return ft.useEffect(()=>{i.forEach(t=>{t&&(typeof t=="function"?t(e.current):t.current=e.current)})},[i]),e},dD=Object.prototype.hasOwnProperty,uD=(i,e)=>{if(Object.is(i,e))return!0;if(typeof i!="object"||i===null||typeof e!="object"||e===null)return!1;if(Array.isArray(i))return!Array.isArray(e)||i.length!==e.length?!1:i.some((s,n)=>e[n]===s);let t=Object.keys(i),r=Object.keys(e);if(t.length!==r.length)return!1;for(let s=0;s<t.length;s++)if(!dD.call(e,t[s])||!Object.is(i[t[s]],e[t[s]]))return!1;return!0},Ty=(i,e,t)=>!uD(e,i[t]),cD=(i,e,t)=>{i[t]=e},hD=(i,e,t,r=cD,s=Ty)=>ft.useEffect(()=>{let n=t==null?void 0:t.current;n&&s(n,e,i)&&r(n,e,i)},[t==null?void 0:t.current,e]),ii=hD,fD=()=>{try{return"3.0.0"}catch{}return"UNKNOWN"},mD=fD(),pD=()=>mD,gD=Wl.forwardRef(({children:i,...e},t)=>Wl.createElement("mux-player",oD({...e,ref:t}),i)),xe=(i,e,t)=>ft.useEffect(()=>{let r=e==null?void 0:e.current;if(!(!r||!t))return r.addEventListener(i,t),()=>{r.removeEventListener(i,t)}},[e==null?void 0:e.current,t]),vD=(i,e)=>{let{onAbort:t,onCanPlay:r,onCanPlayThrough:s,onEmptied:n,onLoadStart:a,onLoadedData:o,onLoadedMetadata:l,onProgress:d,onDurationChange:u,onVolumeChange:c,onRateChange:h,onResize:f,onWaiting:m,onPlay:p,onPlaying:g,onTimeUpdate:E,onPause:b,onSeeking:y,onSeeked:S,onStalled:_,onSuspend:x,onEnded:A,onError:C,onCuePointChange:O,onCuePointsChange:L,onChapterChange:M,metadata:K,tokens:U,paused:z,playbackId:V,playbackRates:q,currentTime:ae,themeProps:ne,extraSourceParams:H,castCustomData:$,_hlsConfig:te,...re}=e;return ii("playbackRates",q,i),ii("metadata",K,i),ii("extraSourceParams",H,i),ii("_hlsConfig",te,i),ii("themeProps",ne,i),ii("tokens",U,i),ii("playbackId",V,i),ii("castCustomData",$,i),ii("paused",z,i,(oe,pe)=>{pe!=null&&(pe?oe.pause():oe.play())},(oe,pe,Re)=>oe.hasAttribute("autoplay")&&!oe.hasPlayed?!1:Ty(oe,pe,Re)),ii("currentTime",ae,i,(oe,pe)=>{pe!=null&&(oe.currentTime=pe)}),xe("abort",i,t),xe("canplay",i,r),xe("canplaythrough",i,s),xe("emptied",i,n),xe("loadstart",i,a),xe("loadeddata",i,o),xe("loadedmetadata",i,l),xe("progress",i,d),xe("durationchange",i,u),xe("volumechange",i,c),xe("ratechange",i,h),xe("resize",i,f),xe("waiting",i,m),xe("play",i,p),xe("playing",i,g),xe("timeupdate",i,E),xe("pause",i,b),xe("seeking",i,y),xe("seeked",i,S),xe("stalled",i,_),xe("suspend",i,x),xe("ended",i,A),xe("error",i,C),xe("cuepointchange",i,O),xe("cuepointschange",i,L),xe("chapterchange",i,M),[re]},ED=pD(),bD="mux-player-react",yD=Wl.forwardRef((i,e)=>{let t=ft.useRef(null),r=lD(t,e),[s]=vD(t,i);return Wl.createElement(gD,{ref:r,playerSoftwareName:bD,playerSoftwareVersion:ED,...s})}),TD=yD;const _D=Yd.object({time:Yd.number(),expiresAt:Yd.string()}).transform(i=>({time:Number(i.time),expiresAt:new Date(i.expiresAt)}));function AD(){var e;const i=Oy("root");return((e=i==null?void 0:i.preferences)==null?void 0:e.player)??null}const SD=["INPUT","SELECT","BUTTON","TEXTAREA","MUX-PLAYER","SUMMARY"],xD=["button","option","combobox","tab","tablist"];function $0(i){let e=i;for(;e;){if(!(e instanceof HTMLElement))return!1;if(SD.includes(e.tagName)||xD.includes(e.getAttribute("role")||"")||e.isContentEditable)return!0;e=e.parentElement}return!1}function B0(i){const e=ft.useRef(i);return ft.useEffect(()=>{e.current=i},[i]),e}function kD({muxPlayerRef:i,...e}){const t=AD(),r=Py(),[s,n]=ft.useState(!1),a=`${e.playbackId}:currentTime`,[o,l]=ft.useState(0),d=B0(r),u=B0(t);ft.useEffect(()=>{if(typeof document>"u")return;const h=sessionStorage.getItem(a);if(h)try{const{time:f,expiresAt:m}=_D.parse(JSON.parse(h));if(m.getTime()<Date.now())throw new Error("Time expired");l(f)}catch{sessionStorage.removeItem(a)}},[a]),ft.useEffect(()=>{function h(f){if(!i.current)return;const m=document.activeElement;$0(m)||$0(f.target)||(f.key===" "&&(f.preventDefault(),i.current.paused?i.current.play():i.current.pause()),f.key==="ArrowRight"&&(f.preventDefault(),i.current.currentTime=i.current.currentTime+(i.current.forwardSeekOffset||10)),f.key==="ArrowLeft"&&(f.preventDefault(),i.current.currentTime=i.current.currentTime-(i.current.forwardSeekOffset||10)),f.key==="f"&&!f.metaKey&&!f.ctrlKey&&(f.preventDefault(),document.fullscreenElement?document.exitFullscreen():i.current.requestFullscreen()))}return window.document.addEventListener("keydown",h),()=>{window.document.removeEventListener("keydown",h)}},[i]);const c=Dy(()=>{const h=i.current;if(!h)return;const f=Array.from(h.textTracks??[]).find(p=>p.kind==="subtitles"),m={playbackRate:h.playbackRate,volumeRate:h.volume,subtitle:f?{id:f.id,mode:f.mode}:{id:null,mode:"disabled"}};Nh(m,u.current)||d.current.submit(m,{method:"POST",action:"/video-player",encType:"application/json"})},300);return ft.useEffect(()=>{var m,p;if(!s)return;const h=(m=i.current)==null?void 0:m.textTracks;if(!h)return;const f=(p=u.current)==null?void 0:p.subtitle;if(f!=null&&f.id){const g=h.getTrackById(f.id);g&&(g.mode=f.mode??"hidden")}return h.addEventListener("change",c),()=>{h.removeEventListener("change",c)}},[s,i,u,c]),G.jsx("div",{className:"flex aspect-video flex-col",children:G.jsx(TD,{ref:i,playbackRates:[.5,.75,1,1.25,1.5,1.75,2,2.5,3,3.5,4],volume:(t==null?void 0:t.volumeRate)??1,playbackRate:(t==null?void 0:t.playbackRate)??1,thumbnailTime:o,onRateChange:c,onVolumeChange:c,streamType:"on-demand",defaultHiddenCaptions:!0,currentTime:o,onTimeUpdate:()=>{var h;return sessionStorage.setItem(a,JSON.stringify({time:(h=i.current)==null?void 0:h.currentTime,expiresAt:new Date(Date.now()+1e3*60*30).toISOString()}))},accentColor:"#427cf0",targetLiveWindow:NaN,onLoadedMetadata:()=>n(!0),minResolution:LD(t==null?void 0:t.minResolution),maxResolution:ID(t==null?void 0:t.maxResolution),...e})})}function Nh(i,e){if(i===e)return!0;if(typeof i!=typeof e||typeof i!="object"||typeof e!="object"||i===null||e===null||Array.isArray(i)!==Array.isArray(e))return!1;if(Array.isArray(i)&&Array.isArray(e)){if(i.length!==e.length)return!1;for(let s=0;s<i.length;s++)if(!Nh(i[s],e[s]))return!1;return!0}const t=Object.keys(i),r=Object.keys(e);if(t.length!==r.length)return!1;for(const s of t)if(!Nh(i[s],e[s]))return!1;return!0}function LD(i){if(i)return i<=480?_s.noLessThan480p:i<=540?_s.noLessThan540p:i<=720?_s.noLessThan720p:i<=1080?_s.noLessThan1080p:i<=1440?_s.noLessThan1440p:_s.noLessThan2160p}function ID(i){if(i)return i<=720?lo.upTo720p:i<=1080?lo.upTo1080p:i<=1440?lo.upTo1440p:lo.upTo2160p}const _y=ft.createContext(null);function fM({children:i,epicVideoInfosPromise:e}){return G.jsx(_y.Provider,{value:e,children:i})}function Ay(i){let e=new URL("https://epicweb.dev");try{e=new URL(i)}catch(c){return console.error(c),"EpicWeb.dev Video"}const t=e.pathname.split("/").filter(Boolean),r=t.includes("solution");let s=t.pop();const n=["problem","solution","embed","exercise"],a=c=>c&&!n.includes(c);for(;!a(s);)s=t.pop();if(!s)return"EpicWeb.dev Video";const o=s.split("-"),l=["the","a","an","and","but","or","for","nor","on","at","to","from","by","of","in","with","as","npm","git","ssh","cli"],d=["OAuth","UI","UX","API","CSS","HTML","JS","TS","SVG","AI","CSRF","CORS","HTTP","HTTPS","URL","URI","DB","SQL","JSON","YAML","YML","useActionData","useAsyncError","useAsyncValue","useBeforeUnload","useFetcher","useFetchers","useFormAction","useHref","useLoaderData","useLocation","useMatches","useNavigate","useNavigation","useNavigationType","useOutlet","useOutletContext","useParams","useResolvedPath","useRevalidator","useRouteError","useRouteLoaderData","useSearchParams","useSubmit","useCallback","useContext","useDebugValue","useDeferredValue","useEffect","useId","useImperativeHandle","useInsertionEffect","useLayoutEffect","useMemo","useReducer","useRef","useState","useSyncExternalStore","useTransition","useForm","useFieldset","useFieldList","useEventSource","useHydrated","useAuthenticityToken","useShouldHydrate","useGlobalNavigationState","useLocales","useDelegatedAnchors","useDebounceFetcher","useFetcherType"],u=o.filter(Boolean).map((c,h)=>{var p;const f=c.toLowerCase(),m=d.find(g=>g.toLowerCase()===f);return m||(l.includes(f)&&h>0?f:((p=f[0])==null?void 0:p.toUpperCase())+f.slice(1))}).join(" ");return r?`${u} (🏁 solution)`:u}function RD({url:i,title:e="Video Embed",loadingContent:t=G.jsx(Fh,{children:G.jsxs("span",{children:['Loading "',e,'"']})})}){const r=G0(),[s,n]=ft.useState(!1);return Fy()?G.jsxs("div",{className:"relative aspect-video w-full flex-shrink-0 shadow-lg",children:[s?null:G.jsx("div",{className:"absolute inset-0 z-10 flex items-center justify-center p-8",children:t}),G.jsx("iframe",{onLoad:()=>n(!0),onError:()=>n(!0),src:i,className:My("absolute inset-0 flex h-full w-full transition-opacity duration-300",s?"opacity-100":"opacity-0"),title:e,sandbox:"allow-forms allow-scripts allow-same-origin allow-popups allow-popups-to-escape-sandbox",allowFullScreen:!0,style:{colorScheme:r}})]}):G.jsx("div",{className:"relative aspect-video w-full flex-shrink-0 shadow-lg",children:G.jsx("div",{className:"not-prose absolute inset-0 z-10 flex items-center justify-center p-8 text-foreground-destructive",children:G.jsx(H0,{name:"WifiNoConnection",size:"xl",children:G.jsxs("span",{children:["Unable to load the video ",G.jsx("a",{href:i,className:"underline",children:`"${e??i}"`})," when offline"]})})})})}function Sy({url:i,title:e}){return G.jsxs("a",{href:i,target:"_blank",className:"flex items-center gap-1 text-base no-underline opacity-70 transition hover:underline hover:opacity-100",rel:"noreferrer",children:[G.jsx(H0,{className:"flex-shrink-0",name:"Video",size:"lg"}),e," ",G.jsx("span",{"aria-hidden":!0,children:"↗︎"})]})}function mM({url:i,title:e=Ay(i)}){const{product:{host:t,displayName:r}}=$y(),s=Uy(),n=ft.useContext(_y),a=G.jsx("div",{children:G.jsx(Sy,{url:i,title:e})});return G.jsx("div",{children:G.jsx(ft.Suspense,{fallback:G.jsxs("div",{children:[G.jsx("div",{className:"flex aspect-video w-full items-center justify-center",children:G.jsx(Fh,{children:e})}),G.jsxs("div",{className:"mt-4 flex flex-col gap-2",children:[a,G.jsx("div",{className:"h-[32px]"})]})]}),children:G.jsx(Ny,{errorElement:G.jsx("div",{children:"Sorry, failed loading videos. Check the terminal output?"}),resolve:n,children:o=>{const l=o==null?void 0:o[i],d=ENV.EPICSHOP_DEPLOYED?G.jsxs("div",{children:[G.jsx(za,{to:ENV.EPICSHOP_GITHUB_REPO,className:"underline",children:"Run locally"})," for transcripts"]}):G.jsxs("div",{children:[G.jsx(za,{to:"/login",className:"underline",children:s?"Upgrade":"Login"})," for transcripts"]});if(!l)return G.jsxs("div",{children:[G.jsx(Hn,{url:i,title:e}),G.jsxs("div",{className:"mt-4 flex flex-col gap-2",children:[a,d]})]});const u=l;return u.status==="success"?G.jsx(wD,{url:i,title:e,muxPlaybackId:u.muxPlaybackId,transcript:u.transcript}):u.type==="region-restricted"?G.jsxs("div",{children:[G.jsxs("div",{className:"flex aspect-video min-h-full min-w-full flex-col items-center justify-start gap-2 overflow-y-scroll border-2 p-4 lg:justify-center lg:gap-4 lg:text-xl",children:[G.jsx("div",{className:"!text-foreground-destructive",children:"Error: Region Restricted"}),G.jsxs("div",{children:["We've detected you're connecting from"," ",u.requestCountry," but your license has restricted access to ",u.restrictedCountry]}),G.jsxs("div",{children:["To continue watching uninterrupted, please"," ",G.jsxs("a",{href:`https://${t}/products`,className:"underline",children:["upgrade your ",r," license"]})," ","to a full Pro license."]})]}),G.jsxs("div",{className:"mt-4 flex flex-col gap-2",children:[a,G.jsxs("div",{children:[G.jsx(za,{to:`https://${t}/products`,className:"underline",children:"Upgrade"})," for transcripts"]})]})]}):u.statusCode===401?G.jsxs("div",{children:[G.jsx(Hn,{url:i,title:e}),G.jsxs("div",{className:"mt-4 flex flex-col gap-2",children:[a,d]})]}):u.statusCode===403?G.jsxs("div",{children:[G.jsx(Hn,{url:i,title:e}),G.jsxs("div",{className:"mt-4 flex flex-col gap-2",children:[a,G.jsxs("div",{children:[G.jsx(za,{to:`https://${t}/products`,className:"underline",children:"Upgrade"})," for transcripts"]})]})]}):u.statusCode===404?G.jsxs("div",{children:[G.jsx(Hn,{url:i,title:e}),G.jsxs("div",{className:"mt-4 flex flex-col gap-2",children:[a,G.jsx("div",{children:"Transcripts not found"})]})]}):(console.error(u),G.jsxs("div",{children:[G.jsx(Hn,{url:i,title:e}),G.jsxs("div",{className:"mt-4 flex flex-col gap-2",children:[a,G.jsx("div",{className:"!text-foreground-destructive",children:"Unknown error (check console)"})]})]}))}})})})}function wD({url:i,title:e=Ay(i),muxPlaybackId:t,transcript:r}){const s=ft.useRef(null),n=/(\d+:\d+)/g,a=[];let o,l=0;for(;o=n.exec(r);){const d=o[1];if(!n.lastIndex||!d)break;const u=o.index,c=n.lastIndex,h=r.slice(l+1,u-1);a.push(G.jsx("span",{children:h},u)),a.push(G.jsx("button",{className:"underline",onClick:f=>{s.current&&(s.current.currentTime=CD(d),s.current.play(),s.current.scrollIntoView({behavior:"smooth",inline:"center",block:"start"}),f.currentTarget.blur())},children:d},d)),l=c}return a.push(G.jsx("span",{children:r.slice(l+1,r.length)},r.length)),G.jsxs("div",{children:[G.jsx("div",{className:"shadow-lg",children:G.jsx(kD,{playbackId:t,muxPlayerRef:s,title:e})}),G.jsxs("div",{className:"mt-4 flex flex-col gap-2",children:[G.jsx(Sy,{url:i,title:e}),G.jsxs("details",{children:[G.jsx("summary",{children:"Transcript"}),G.jsx("div",{className:"whitespace-pre-line rounded-md bg-accent p-2 text-accent-foreground",children:a})]})]})]})}function CD(i){const e=i.split(":");let t=0,r=1;for(;e.length>0;)t+=r*parseInt(e.pop()??"0",10),r*=60;return t}function Hn({url:i,title:e}){const t=G0();let r=new URL("https://epicweb.dev");try{r=new URL(i)}catch(s){return console.error(s),G.jsxs("div",{children:['Invalid URL: "',i,'"']})}return r.pathname=r.pathname.endsWith("/")?`${r.pathname}embed`:`${r.pathname}/embed`,r.searchParams.set("theme",t),G.jsx(RD,{url:r.toString(),title:e,loadingContent:G.jsx(Fh,{children:G.jsxs("span",{children:['Loading "',G.jsx("a",{className:"underline",href:i,children:e}),'"']})})})}export{mM as D,fM as E,RD as V};
|
|
3053
|
-
//# sourceMappingURL=epic-video-
|
|
3053
|
+
//# sourceMappingURL=epic-video-DRZssA4U.js.map
|