boss-web-player-sdk 1.1.11 → 1.1.13
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/README.md +18 -18
- package/dist/boss-web-player-sdk.css +1 -1
- package/dist/core.cjs +1 -1
- package/dist/core.d.ts +23 -0
- package/dist/core.js +1 -1
- package/dist/index.cjs +4 -4
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +87 -1
- package/dist/index.js +1151 -960
- package/dist/index.js.map +1 -1
- package/dist/{src-a2B5ZIDF.js → src-CcXy_WIu.js} +36 -15
- package/dist/{src-a2B5ZIDF.js.map → src-CcXy_WIu.js.map} +1 -1
- package/dist/{src-CsMBVhOP.cjs → src-ynqyJ4on.cjs} +5 -5
- package/dist/{src-CsMBVhOP.cjs.map → src-ynqyJ4on.cjs.map} +1 -1
- package/package.json +1 -1
package/dist/index.cjs
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});var e=Object.create,t=Object.defineProperty,n=Object.getOwnPropertyDescriptor,r=Object.getOwnPropertyNames,i=Object.getPrototypeOf,a=Object.prototype.hasOwnProperty,o=(e,i,o,s)=>{if(i&&typeof i==`object`||typeof i==`function`)for(var c=r(i),l=0,u=c.length,d;l<u;l++)d=c[l],!a.call(e,d)&&d!==o&&t(e,d,{get:(e=>i[e]).bind(null,d),enumerable:!(s=n(i,d))||s.enumerable});return e},s=(n,r,a)=>(a=n==null?{}:e(i(n)),o(r||!n||!n.__esModule?t(a,`default`,{value:n,enumerable:!0}):a,n));const c=require("./src-
|
|
2
|
-
Please try again.`,onRetry:n}){return(0,u.jsxs)(u.Fragment,{children:[(0,u.jsx)(`div`,{style:{width:80,height:80,borderRadius:`50%`,background:`rgba(255,255,255,0.08)`,display:`flex`,alignItems:`center`,justifyContent:`center`,flexShrink:0},children:(0,u.jsxs)(`svg`,{width:`36`,height:`36`,viewBox:`0 0 24 24`,fill:`none`,stroke:`rgba(255,255,255,0.85)`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`,children:[(0,u.jsx)(`path`,{d:`M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z`}),(0,u.jsx)(`line`,{x1:`12`,y1:`9`,x2:`12`,y2:`13`}),(0,u.jsx)(`line`,{x1:`12`,y1:`17`,x2:`12.01`,y2:`17`})]})}),(0,u.jsxs)(`div`,{style:{textAlign:`center`,padding:`0 24px`},children:[(0,u.jsx)(`p`,{style:{color:`#ffffff`,fontSize:22,fontWeight:700,margin:`0 0 8px`,letterSpacing:`-0.2px`},children:e}),(0,u.jsx)(`p`,{style:{color:`rgba(255,255,255,0.5)`,fontSize:14,margin:0,lineHeight:1.6,whiteSpace:`pre-line`},children:t})]}),(0,u.jsxs)(`button`,{onClick:n,style:{display:`flex`,alignItems:`center`,gap:10,background:`#ffffff`,color:`#09090e`,border:`none`,borderRadius:10,padding:`14px 32px`,fontSize:16,fontWeight:700,cursor:`pointer`,letterSpacing:`-0.1px`},children:[(0,u.jsxs)(`svg`,{width:`20`,height:`20`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2.5`,strokeLinecap:`round`,strokeLinejoin:`round`,children:[(0,u.jsx)(`polyline`,{points:`1 4 1 10 7 10`}),(0,u.jsx)(`path`,{d:`M3.51 15a9 9 0 1 0 .49-3.51`})]}),`Retry Now`]})]})}var te=(...e)=>e.filter((e,t,n)=>!!e&&e.trim()!==``&&n.indexOf(e)===t).join(` `).trim(),ne=e=>e.replace(/([a-z0-9])([A-Z])/g,`$1-$2`).toLowerCase(),re=e=>e.replace(/^([A-Z])|[\s-_]+(\w)/g,(e,t,n)=>n?n.toUpperCase():t.toLowerCase()),ie=e=>{let t=re(e);return t.charAt(0).toUpperCase()+t.slice(1)},ae={xmlns:`http://www.w3.org/2000/svg`,width:24,height:24,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:2,strokeLinecap:`round`,strokeLinejoin:`round`},oe=e=>{for(let t in e)if(t.startsWith(`aria-`)||t===`role`||t===`title`)return!0;return!1},f=(0,l.createContext)({}),se=()=>(0,l.useContext)(f),ce=(0,l.forwardRef)(({color:e,size:t,strokeWidth:n,absoluteStrokeWidth:r,className:i=``,children:a,iconNode:o,...s},c)=>{let{size:u=24,strokeWidth:d=2,absoluteStrokeWidth:ee=!1,color:ne=`currentColor`,className:re=``}=se()??{},ie=r??ee?Number(n??d)*24/Number(t??u):n??d;return(0,l.createElement)(`svg`,{ref:c,...ae,width:t??u??ae.width,height:t??u??ae.height,stroke:e??ne,strokeWidth:ie,className:te(`lucide`,re,i),...!a&&!oe(s)&&{"aria-hidden":`true`},...s},[...o.map(([e,t])=>(0,l.createElement)(e,t)),...Array.isArray(a)?a:[a]])}),p=(e,t)=>{let n=(0,l.forwardRef)(({className:n,...r},i)=>(0,l.createElement)(ce,{ref:i,iconNode:t,className:te(`lucide-${ne(ie(e))}`,`lucide-${e}`,n),...r}));return n.displayName=ie(e),n},le=p(`airplay`,[[`path`,{d:`M5 17H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v10a2 2 0 0 1-2 2h-1`,key:`ns4c3b`}],[`path`,{d:`m12 15 5 6H7Z`,key:`14qnn2`}]]),ue=p(`captions`,[[`rect`,{width:`18`,height:`14`,x:`3`,y:`5`,rx:`2`,ry:`2`,key:`12ruh7`}],[`path`,{d:`M7 15h4M15 15h2M7 11h2M13 11h4`,key:`1ueiar`}]]),de=p(`cast`,[[`path`,{d:`M2 8V6a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v12a2 2 0 0 1-2 2h-6`,key:`3zrzxg`}],[`path`,{d:`M2 12a9 9 0 0 1 8 8`,key:`g6cvee`}],[`path`,{d:`M2 16a5 5 0 0 1 4 4`,key:`1y1dii`}],[`line`,{x1:`2`,x2:`2.01`,y1:`20`,y2:`20`,key:`xu2jvo`}]]),m=p(`check`,[[`path`,{d:`M20 6 9 17l-5-5`,key:`1gmf2c`}]]),fe=p(`chevron-left`,[[`path`,{d:`m15 18-6-6 6-6`,key:`1wnfg3`}]]),pe=p(`gauge`,[[`path`,{d:`m12 14 4-4`,key:`9kzdfg`}],[`path`,{d:`M3.34 19a10 10 0 1 1 17.32 0`,key:`19p75a`}]]),me=p(`languages`,[[`path`,{d:`m5 8 6 6`,key:`1wu5hv`}],[`path`,{d:`m4 14 6-6 2-3`,key:`1k1g8d`}],[`path`,{d:`M2 5h12`,key:`or177f`}],[`path`,{d:`M7 2h1`,key:`1t2jsx`}],[`path`,{d:`m22 22-5-10-5 10`,key:`don7ne`}],[`path`,{d:`M14 18h6`,key:`1m8k6r`}]]),he=p(`list-video`,[[`path`,{d:`M21 5H3`,key:`1fi0y6`}],[`path`,{d:`M10 12H3`,key:`1ulcyk`}],[`path`,{d:`M10 19H3`,key:`108z41`}],[`path`,{d:`M15 12.003a1 1 0 0 1 1.517-.859l4.997 2.997a1 1 0 0 1 0 1.718l-4.997 2.997a1 1 0 0 1-1.517-.86z`,key:`ms4nik`}]]),ge=p(`maximize`,[[`path`,{d:`M8 3H5a2 2 0 0 0-2 2v3`,key:`1dcmit`}],[`path`,{d:`M21 8V5a2 2 0 0 0-2-2h-3`,key:`1e4gt3`}],[`path`,{d:`M3 16v3a2 2 0 0 0 2 2h3`,key:`wsl5sc`}],[`path`,{d:`M16 21h3a2 2 0 0 0 2-2v-3`,key:`18trek`}]]),_e=p(`minimize`,[[`path`,{d:`M8 3v3a2 2 0 0 1-2 2H3`,key:`hohbtr`}],[`path`,{d:`M21 8h-3a2 2 0 0 1-2-2V3`,key:`5jw1f3`}],[`path`,{d:`M3 16h3a2 2 0 0 1 2 2v3`,key:`198tvr`}],[`path`,{d:`M16 21v-3a2 2 0 0 1 2-2h3`,key:`ph8mxp`}]]),ve=p(`pause`,[[`rect`,{x:`14`,y:`3`,width:`5`,height:`18`,rx:`1`,key:`kaeet6`}],[`rect`,{x:`5`,y:`3`,width:`5`,height:`18`,rx:`1`,key:`1wsw3u`}]]),ye=p(`picture-in-picture`,[[`path`,{d:`M2 10h6V4`,key:`zwrco`}],[`path`,{d:`m2 4 6 6`,key:`ug085t`}],[`path`,{d:`M21 10V7a2 2 0 0 0-2-2h-7`,key:`git5jr`}],[`path`,{d:`M3 14v2a2 2 0 0 0 2 2h3`,key:`1f7fh3`}],[`rect`,{x:`12`,y:`14`,width:`10`,height:`7`,rx:`1`,key:`1wjs3o`}]]),be=p(`play`,[[`path`,{d:`M5 5a2 2 0 0 1 3.008-1.728l11.997 6.998a2 2 0 0 1 .003 3.458l-12 7A2 2 0 0 1 5 19z`,key:`10ikf1`}]]),xe=p(`rotate-ccw`,[[`path`,{d:`M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8`,key:`1357e3`}],[`path`,{d:`M3 3v5h5`,key:`1xhq8a`}]]),Se=p(`rotate-cw`,[[`path`,{d:`M21 12a9 9 0 1 1-9-9c2.52 0 4.93 1 6.74 2.74L21 8`,key:`1p45f6`}],[`path`,{d:`M21 3v5h-5`,key:`1q7to0`}]]),Ce=p(`volume-1`,[[`path`,{d:`M11 4.702a.705.705 0 0 0-1.203-.498L6.413 7.587A1.4 1.4 0 0 1 5.416 8H3a1 1 0 0 0-1 1v6a1 1 0 0 0 1 1h2.416a1.4 1.4 0 0 1 .997.413l3.383 3.384A.705.705 0 0 0 11 19.298z`,key:`uqj9uw`}],[`path`,{d:`M16 9a5 5 0 0 1 0 6`,key:`1q6k2b`}]]),we=p(`volume-2`,[[`path`,{d:`M11 4.702a.705.705 0 0 0-1.203-.498L6.413 7.587A1.4 1.4 0 0 1 5.416 8H3a1 1 0 0 0-1 1v6a1 1 0 0 0 1 1h2.416a1.4 1.4 0 0 1 .997.413l3.383 3.384A.705.705 0 0 0 11 19.298z`,key:`uqj9uw`}],[`path`,{d:`M16 9a5 5 0 0 1 0 6`,key:`1q6k2b`}],[`path`,{d:`M19.364 18.364a9 9 0 0 0 0-12.728`,key:`ijwkga`}]]),Te=p(`volume-x`,[[`path`,{d:`M11 4.702a.705.705 0 0 0-1.203-.498L6.413 7.587A1.4 1.4 0 0 1 5.416 8H3a1 1 0 0 0-1 1v6a1 1 0 0 0 1 1h2.416a1.4 1.4 0 0 1 .997.413l3.383 3.384A.705.705 0 0 0 11 19.298z`,key:`uqj9uw`}],[`line`,{x1:`22`,x2:`16`,y1:`9`,y2:`15`,key:`1ewh16`}],[`line`,{x1:`16`,x2:`22`,y1:`9`,y2:`15`,key:`5ykzw1`}]]),Ee=p(`volume`,[[`path`,{d:`M11 4.702a.705.705 0 0 0-1.203-.498L6.413 7.587A1.4 1.4 0 0 1 5.416 8H3a1 1 0 0 0-1 1v6a1 1 0 0 0 1 1h2.416a1.4 1.4 0 0 1 .997.413l3.383 3.384A.705.705 0 0 0 11 19.298z`,key:`uqj9uw`}]]),De=1e4,Oe=!1,ke=e=>{let t=e.match(/#EXT-X-TITLE:(.+)/);if(t?.[1]?.trim())return t[1].trim();let n=e.match(/#EXT-X-SESSION-DATA:[^\n]*DATA-ID="[^"]*title[^"]*"[^\n]*VALUE="([^"]+)"/i);return n?.[1]?.trim()?n[1].trim():null},h=e=>{if(!e||e.length<10||e[0]!==73||e[1]!==68||e[2]!==51)return null;let t=e[3],n=(e[6]&127)<<21|(e[7]&127)<<14|(e[8]&127)<<7|e[9]&127,r=Math.min(10+n,e.length),i=10;for(;i+10<=r;){let n=String.fromCharCode(e[i],e[i+1],e[i+2],e[i+3]),a=t>=4?(e[i+4]&127)<<21|(e[i+5]&127)<<14|(e[i+6]&127)<<7|e[i+7]&127:e[i+4]<<24|e[i+5]<<16|e[i+6]<<8|e[i+7];if(a<=0||i+10+a>r)break;if(n===`TIT2`){let t=e[i+10],n=e.slice(i+11,i+10+a),r=(t===1||t===2?new TextDecoder(`utf-16`).decode(n):new TextDecoder(t===3?`utf-8`:`latin1`).decode(n)).replace(/\0/g,``).trim();if(r)return r}i+=10+a}return null},Ae=({size:e=20})=>(0,u.jsxs)(`svg`,{width:e,height:e,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`,children:[(0,u.jsx)(`rect`,{x:`2`,y:`5`,width:`20`,height:`14`,rx:`3`}),(0,u.jsx)(`path`,{d:`M7 9v6M7 12h3M10 9v6`}),(0,u.jsx)(`path`,{d:`M14 9h1.5a3 3 0 0 1 0 6H14z`})]}),je=({size:e=20})=>(0,u.jsxs)(`svg`,{width:e,height:e,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`,children:[(0,u.jsx)(`rect`,{x:`2`,y:`5`,width:`20`,height:`14`,rx:`3`}),(0,u.jsx)(`path`,{d:`M7 9v6M7 12h3M10 9v6`}),(0,u.jsx)(`path`,{d:`M14 9h1.5a3 3 0 0 1 0 6H14z`})]}),Me=e=>{let t=e.replace(`#`,``);return t.length===6?`${parseInt(t.substring(0,2),16)}, ${parseInt(t.substring(2,4),16)}, ${parseInt(t.substring(4,6),16)}`:t.length===3?`${parseInt(t[0]+t[0],16)}, ${parseInt(t[1]+t[1],16)}, ${parseInt(t[2]+t[2],16)}`:`99, 102, 241`},Ne={en:`English`,eng:`English`,fr:`French`,fre:`French`,fra:`French`,es:`Spanish`,spa:`Spanish`,de:`German`,ger:`German`,deu:`German`,it:`Italian`,ita:`Italian`,pt:`Portuguese`,por:`Portuguese`,ja:`Japanese`,zh:`Chinese`,ko:`Korean`,ru:`Russian`,ar:`Arabic`,hi:`Hindi`,ta:`Tamil`,tam:`Tamil`},g=e=>{if(!e)return null;let t=e.trim().toLowerCase(),n=t.match(/^(en|eng|fr|fre|fra|es|spa|de|ger|deu|it|ita|pt|por|ja|zh|ko|ru|ar|hi|ta|tam)/);if(n&&Ne[n[0]])return Ne[n[0]];for(let[e,n]of Object.entries(Ne))if(t.includes(e))return n;return/english|anglais|ingles/i.test(t)?`English`:/french|français/i.test(t)?`French`:/spanish|español/i.test(t)?`Spanish`:/german|deutsch/i.test(t)?`German`:/italian|italiano/i.test(t)?`Italian`:/portuguese|português/i.test(t)?`Portuguese`:/japanese|nihongo/i.test(t)?`Japanese`:/chinese|中文/i.test(t)?`Chinese`:/korean|한국어/i.test(t)?`Korean`:/tamil|தமிழ்/i.test(t)?`Tamil`:/russian|русский/i.test(t)?`Russian`:/arabic|العربية/i.test(t)?`Arabic`:/hindi|हिन्दी/i.test(t)?`Hindi`:null},_=e=>{if(e.lang){let t=g(e.lang);if(t)return t}if(e.label){let t=e.label.trim(),n=t.split(/[#\d\.\s\-_/|:]+/).filter(Boolean);for(let e=n.length-1;e>=0;--e){let t=g(n[e]);if(t)return t}let r=t.replace(/^[#\d\.\s]+/,``).trim();return g(r)||r}return`Unknown`},v=e=>{let t=new Set;return e.filter(e=>{let n=`${_(e).toLowerCase()}|${(e.lang||``).trim().toLowerCase()}`;return t.has(n)?!1:(t.add(n),!0)})},Pe=e=>{let t=(e??``).split(`:`).map(Number);return(t[0]||0)*3600+(t[1]||0)*60+(t[2]||0)},Fe=({src:e,autoplay:t=!1,muted:n=!1,chapters:r=[],keyMoments:i,subtitles:a=[],watermark:o,themeColor:s=`#6366f1`,drmConfig:d,firebaseConfig:te,onAnalyticsEvent:ne,onAdBreakChange:re,onKeyMomentsLoaded:ie,enableControls:ae=!0,enableChromecast:oe,enableKeyMoments:f,enableSubtitles:se,enableQuality:ce,enablePlaybackSpeed:p,enablePiP:Ne,enableFullscreen:g=!0,autoFullscreen:Fe=!1,watchProgressInterval:Ie=30,subtitleStyle:y={},resolvedEntitlement:Le,licenseKey:Re,title:ze,chaptersDisplayMode:Be=`strip`,volumeControlType:Ve=`slider`,urlTransformer:He,pauseAdOnTabSwitch:Ue=!0,enableSkipAd:We=!1,skipAdAfterSeconds:Ge=5,overlayAdUrl:Ke,adTrackingUrl:qe,sources:b,activeSourceIndex:x=0,onSourceChange:Je,initialTime:S,onTimeUpdate:Ye})=>{let Xe=He??(e=>e),C=(0,l.useRef)(null),Ze=(0,l.useRef)(null),Qe=(0,l.useRef)(!1),w=(0,l.useRef)(null),$e=(0,l.useRef)(0),et=(0,l.useRef)(null),T=(0,l.useRef)(null),tt=(0,l.useRef)(null),nt=(0,l.useRef)(null),rt=(0,l.useRef)(!1),E=(0,l.useRef)(!1),D=(0,l.useRef)(null),O=(0,l.useRef)(null),it=(0,l.useRef)(null),at=(0,l.useRef)(()=>{}),k=(0,l.useRef)(null),ot=(0,l.useRef)(null),st=e=>{!e||ot.current!==null||(ot.current=e.muted,e.muted=!0)},ct=e=>{ot.current!==null&&(e&&(e.muted=ot.current),ot.current=null)},lt=(0,l.useRef)(null),ut=(0,l.useRef)(null),dt=(0,l.useRef)(null),ft=(0,l.useRef)(null),A=(0,l.useRef)(null),pt=(0,l.useRef)(null),mt=(0,l.useRef)(b),ht=(0,l.useRef)(Je),gt=(0,l.useRef)(!1),j=(0,l.useRef)(null),M=(0,l.useRef)(null),N=(0,l.useRef)(null),_t=(0,l.useRef)(0),[vt,yt]=(0,l.useState)(!1),bt=(0,l.useRef)(!1),xt=(0,l.useRef)(null),[St,Ct]=(0,l.useState)(null);(0,l.useEffect)(()=>{if(typeof window>`u`||Oe)return;let e=window.requestAnimationFrame(()=>{let e=C.current;if(!e)return;let t=window.getComputedStyle(e);t.overflow!==`hidden`&&t.borderTopLeftRadius===`0px`&&(Oe=!0,console.warn(`[boss-web-player-sdk] Player styles appear to be missing — the player will look broken/unstyled.
|
|
1
|
+
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});var e=Object.create,t=Object.defineProperty,n=Object.getOwnPropertyDescriptor,r=Object.getOwnPropertyNames,i=Object.getPrototypeOf,a=Object.prototype.hasOwnProperty,o=(e,i,o,s)=>{if(i&&typeof i==`object`||typeof i==`function`)for(var c=r(i),l=0,u=c.length,d;l<u;l++)d=c[l],!a.call(e,d)&&d!==o&&t(e,d,{get:(e=>i[e]).bind(null,d),enumerable:!(s=n(i,d))||s.enumerable});return e},s=(n,r,a)=>(a=n==null?{}:e(i(n)),o(r||!n||!n.__esModule?t(a,`default`,{value:n,enumerable:!0}):a,n));const c=require("./src-ynqyJ4on.cjs");let l=require("react");l=s(l,1);let u=require("react/jsx-runtime"),d=require("react-dom/client");function ee({title:e=`Something Went Wrong`,subtitle:t=`We encountered an error while playing this video.
|
|
2
|
+
Please try again.`,onRetry:n}){return(0,u.jsxs)(u.Fragment,{children:[(0,u.jsx)(`div`,{style:{width:80,height:80,borderRadius:`50%`,background:`rgba(255,255,255,0.08)`,display:`flex`,alignItems:`center`,justifyContent:`center`,flexShrink:0},children:(0,u.jsxs)(`svg`,{width:`36`,height:`36`,viewBox:`0 0 24 24`,fill:`none`,stroke:`rgba(255,255,255,0.85)`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`,children:[(0,u.jsx)(`path`,{d:`M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z`}),(0,u.jsx)(`line`,{x1:`12`,y1:`9`,x2:`12`,y2:`13`}),(0,u.jsx)(`line`,{x1:`12`,y1:`17`,x2:`12.01`,y2:`17`})]})}),(0,u.jsxs)(`div`,{style:{textAlign:`center`,padding:`0 24px`},children:[(0,u.jsx)(`p`,{style:{color:`#ffffff`,fontSize:22,fontWeight:700,margin:`0 0 8px`,letterSpacing:`-0.2px`},children:e}),(0,u.jsx)(`p`,{style:{color:`rgba(255,255,255,0.5)`,fontSize:14,margin:0,lineHeight:1.6,whiteSpace:`pre-line`},children:t})]}),(0,u.jsxs)(`button`,{onClick:n,style:{display:`flex`,alignItems:`center`,gap:10,background:`#ffffff`,color:`#09090e`,border:`none`,borderRadius:10,padding:`14px 32px`,fontSize:16,fontWeight:700,cursor:`pointer`,letterSpacing:`-0.1px`},children:[(0,u.jsxs)(`svg`,{width:`20`,height:`20`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2.5`,strokeLinecap:`round`,strokeLinejoin:`round`,children:[(0,u.jsx)(`polyline`,{points:`1 4 1 10 7 10`}),(0,u.jsx)(`path`,{d:`M3.51 15a9 9 0 1 0 .49-3.51`})]}),`Retry Now`]})]})}var te=(...e)=>e.filter((e,t,n)=>!!e&&e.trim()!==``&&n.indexOf(e)===t).join(` `).trim(),ne=e=>e.replace(/([a-z0-9])([A-Z])/g,`$1-$2`).toLowerCase(),re=e=>e.replace(/^([A-Z])|[\s-_]+(\w)/g,(e,t,n)=>n?n.toUpperCase():t.toLowerCase()),ie=e=>{let t=re(e);return t.charAt(0).toUpperCase()+t.slice(1)},ae={xmlns:`http://www.w3.org/2000/svg`,width:24,height:24,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:2,strokeLinecap:`round`,strokeLinejoin:`round`},oe=e=>{for(let t in e)if(t.startsWith(`aria-`)||t===`role`||t===`title`)return!0;return!1},se=(0,l.createContext)({}),ce=()=>(0,l.useContext)(se),le=(0,l.forwardRef)(({color:e,size:t,strokeWidth:n,absoluteStrokeWidth:r,className:i=``,children:a,iconNode:o,...s},c)=>{let{size:u=24,strokeWidth:d=2,absoluteStrokeWidth:ee=!1,color:ne=`currentColor`,className:re=``}=ce()??{},ie=r??ee?Number(n??d)*24/Number(t??u):n??d;return(0,l.createElement)(`svg`,{ref:c,...ae,width:t??u??ae.width,height:t??u??ae.height,stroke:e??ne,strokeWidth:ie,className:te(`lucide`,re,i),...!a&&!oe(s)&&{"aria-hidden":`true`},...s},[...o.map(([e,t])=>(0,l.createElement)(e,t)),...Array.isArray(a)?a:[a]])}),f=(e,t)=>{let n=(0,l.forwardRef)(({className:n,...r},i)=>(0,l.createElement)(le,{ref:i,iconNode:t,className:te(`lucide-${ne(ie(e))}`,`lucide-${e}`,n),...r}));return n.displayName=ie(e),n},ue=f(`airplay`,[[`path`,{d:`M5 17H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v10a2 2 0 0 1-2 2h-1`,key:`ns4c3b`}],[`path`,{d:`m12 15 5 6H7Z`,key:`14qnn2`}]]),de=f(`captions`,[[`rect`,{width:`18`,height:`14`,x:`3`,y:`5`,rx:`2`,ry:`2`,key:`12ruh7`}],[`path`,{d:`M7 15h4M15 15h2M7 11h2M13 11h4`,key:`1ueiar`}]]),fe=f(`cast`,[[`path`,{d:`M2 8V6a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v12a2 2 0 0 1-2 2h-6`,key:`3zrzxg`}],[`path`,{d:`M2 12a9 9 0 0 1 8 8`,key:`g6cvee`}],[`path`,{d:`M2 16a5 5 0 0 1 4 4`,key:`1y1dii`}],[`line`,{x1:`2`,x2:`2.01`,y1:`20`,y2:`20`,key:`xu2jvo`}]]),p=f(`check`,[[`path`,{d:`M20 6 9 17l-5-5`,key:`1gmf2c`}]]),pe=f(`chevron-left`,[[`path`,{d:`m15 18-6-6 6-6`,key:`1wnfg3`}]]),me=f(`external-link`,[[`path`,{d:`M15 3h6v6`,key:`1q9fwt`}],[`path`,{d:`M10 14 21 3`,key:`gplh6r`}],[`path`,{d:`M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6`,key:`a6xqqp`}]]),he=f(`gauge`,[[`path`,{d:`m12 14 4-4`,key:`9kzdfg`}],[`path`,{d:`M3.34 19a10 10 0 1 1 17.32 0`,key:`19p75a`}]]),ge=f(`languages`,[[`path`,{d:`m5 8 6 6`,key:`1wu5hv`}],[`path`,{d:`m4 14 6-6 2-3`,key:`1k1g8d`}],[`path`,{d:`M2 5h12`,key:`or177f`}],[`path`,{d:`M7 2h1`,key:`1t2jsx`}],[`path`,{d:`m22 22-5-10-5 10`,key:`don7ne`}],[`path`,{d:`M14 18h6`,key:`1m8k6r`}]]),_e=f(`list-video`,[[`path`,{d:`M21 5H3`,key:`1fi0y6`}],[`path`,{d:`M10 12H3`,key:`1ulcyk`}],[`path`,{d:`M10 19H3`,key:`108z41`}],[`path`,{d:`M15 12.003a1 1 0 0 1 1.517-.859l4.997 2.997a1 1 0 0 1 0 1.718l-4.997 2.997a1 1 0 0 1-1.517-.86z`,key:`ms4nik`}]]),ve=f(`maximize`,[[`path`,{d:`M8 3H5a2 2 0 0 0-2 2v3`,key:`1dcmit`}],[`path`,{d:`M21 8V5a2 2 0 0 0-2-2h-3`,key:`1e4gt3`}],[`path`,{d:`M3 16v3a2 2 0 0 0 2 2h3`,key:`wsl5sc`}],[`path`,{d:`M16 21h3a2 2 0 0 0 2-2v-3`,key:`18trek`}]]),ye=f(`minimize`,[[`path`,{d:`M8 3v3a2 2 0 0 1-2 2H3`,key:`hohbtr`}],[`path`,{d:`M21 8h-3a2 2 0 0 1-2-2V3`,key:`5jw1f3`}],[`path`,{d:`M3 16h3a2 2 0 0 1 2 2v3`,key:`198tvr`}],[`path`,{d:`M16 21v-3a2 2 0 0 1 2-2h3`,key:`ph8mxp`}]]),m=f(`pause`,[[`rect`,{x:`14`,y:`3`,width:`5`,height:`18`,rx:`1`,key:`kaeet6`}],[`rect`,{x:`5`,y:`3`,width:`5`,height:`18`,rx:`1`,key:`1wsw3u`}]]),be=f(`picture-in-picture`,[[`path`,{d:`M2 10h6V4`,key:`zwrco`}],[`path`,{d:`m2 4 6 6`,key:`ug085t`}],[`path`,{d:`M21 10V7a2 2 0 0 0-2-2h-7`,key:`git5jr`}],[`path`,{d:`M3 14v2a2 2 0 0 0 2 2h3`,key:`1f7fh3`}],[`rect`,{x:`12`,y:`14`,width:`10`,height:`7`,rx:`1`,key:`1wjs3o`}]]),xe=f(`play`,[[`path`,{d:`M5 5a2 2 0 0 1 3.008-1.728l11.997 6.998a2 2 0 0 1 .003 3.458l-12 7A2 2 0 0 1 5 19z`,key:`10ikf1`}]]),Se=f(`rotate-ccw`,[[`path`,{d:`M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8`,key:`1357e3`}],[`path`,{d:`M3 3v5h5`,key:`1xhq8a`}]]),Ce=f(`rotate-cw`,[[`path`,{d:`M21 12a9 9 0 1 1-9-9c2.52 0 4.93 1 6.74 2.74L21 8`,key:`1p45f6`}],[`path`,{d:`M21 3v5h-5`,key:`1q7to0`}]]),we=f(`volume-1`,[[`path`,{d:`M11 4.702a.705.705 0 0 0-1.203-.498L6.413 7.587A1.4 1.4 0 0 1 5.416 8H3a1 1 0 0 0-1 1v6a1 1 0 0 0 1 1h2.416a1.4 1.4 0 0 1 .997.413l3.383 3.384A.705.705 0 0 0 11 19.298z`,key:`uqj9uw`}],[`path`,{d:`M16 9a5 5 0 0 1 0 6`,key:`1q6k2b`}]]),Te=f(`volume-2`,[[`path`,{d:`M11 4.702a.705.705 0 0 0-1.203-.498L6.413 7.587A1.4 1.4 0 0 1 5.416 8H3a1 1 0 0 0-1 1v6a1 1 0 0 0 1 1h2.416a1.4 1.4 0 0 1 .997.413l3.383 3.384A.705.705 0 0 0 11 19.298z`,key:`uqj9uw`}],[`path`,{d:`M16 9a5 5 0 0 1 0 6`,key:`1q6k2b`}],[`path`,{d:`M19.364 18.364a9 9 0 0 0 0-12.728`,key:`ijwkga`}]]),Ee=f(`volume-x`,[[`path`,{d:`M11 4.702a.705.705 0 0 0-1.203-.498L6.413 7.587A1.4 1.4 0 0 1 5.416 8H3a1 1 0 0 0-1 1v6a1 1 0 0 0 1 1h2.416a1.4 1.4 0 0 1 .997.413l3.383 3.384A.705.705 0 0 0 11 19.298z`,key:`uqj9uw`}],[`line`,{x1:`22`,x2:`16`,y1:`9`,y2:`15`,key:`1ewh16`}],[`line`,{x1:`16`,x2:`22`,y1:`9`,y2:`15`,key:`5ykzw1`}]]),De=f(`volume`,[[`path`,{d:`M11 4.702a.705.705 0 0 0-1.203-.498L6.413 7.587A1.4 1.4 0 0 1 5.416 8H3a1 1 0 0 0-1 1v6a1 1 0 0 0 1 1h2.416a1.4 1.4 0 0 1 .997.413l3.383 3.384A.705.705 0 0 0 11 19.298z`,key:`uqj9uw`}]]),Oe=1e4,ke=!1,Ae=e=>{let t=e.match(/#EXT-X-TITLE:(.+)/);if(t?.[1]?.trim())return t[1].trim();let n=e.match(/#EXT-X-SESSION-DATA:[^\n]*DATA-ID="[^"]*title[^"]*"[^\n]*VALUE="([^"]+)"/i);return n?.[1]?.trim()?n[1].trim():null},je=e=>{if(!e||e.length<10||e[0]!==73||e[1]!==68||e[2]!==51)return null;let t=e[3],n=(e[6]&127)<<21|(e[7]&127)<<14|(e[8]&127)<<7|e[9]&127,r=Math.min(10+n,e.length),i=10;for(;i+10<=r;){let n=String.fromCharCode(e[i],e[i+1],e[i+2],e[i+3]),a=t>=4?(e[i+4]&127)<<21|(e[i+5]&127)<<14|(e[i+6]&127)<<7|e[i+7]&127:e[i+4]<<24|e[i+5]<<16|e[i+6]<<8|e[i+7];if(a<=0||i+10+a>r)break;if(n===`TIT2`){let t=e[i+10],n=e.slice(i+11,i+10+a),r=(t===1||t===2?new TextDecoder(`utf-16`).decode(n):new TextDecoder(t===3?`utf-8`:`latin1`).decode(n)).replace(/\0/g,``).trim();if(r)return r}i+=10+a}return null},h=({size:e=20})=>(0,u.jsxs)(`svg`,{width:e,height:e,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`,children:[(0,u.jsx)(`rect`,{x:`2`,y:`5`,width:`20`,height:`14`,rx:`3`}),(0,u.jsx)(`path`,{d:`M7 9v6M7 12h3M10 9v6`}),(0,u.jsx)(`path`,{d:`M14 9h1.5a3 3 0 0 1 0 6H14z`})]}),Me=({size:e=20})=>(0,u.jsxs)(`svg`,{width:e,height:e,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`,children:[(0,u.jsx)(`rect`,{x:`2`,y:`5`,width:`20`,height:`14`,rx:`3`}),(0,u.jsx)(`path`,{d:`M7 9v6M7 12h3M10 9v6`}),(0,u.jsx)(`path`,{d:`M14 9h1.5a3 3 0 0 1 0 6H14z`})]}),Ne=e=>{let t=e.replace(`#`,``);return t.length===6?`${parseInt(t.substring(0,2),16)}, ${parseInt(t.substring(2,4),16)}, ${parseInt(t.substring(4,6),16)}`:t.length===3?`${parseInt(t[0]+t[0],16)}, ${parseInt(t[1]+t[1],16)}, ${parseInt(t[2]+t[2],16)}`:`99, 102, 241`},Pe={en:`English`,eng:`English`,fr:`French`,fre:`French`,fra:`French`,es:`Spanish`,spa:`Spanish`,de:`German`,ger:`German`,deu:`German`,it:`Italian`,ita:`Italian`,pt:`Portuguese`,por:`Portuguese`,ja:`Japanese`,zh:`Chinese`,ko:`Korean`,ru:`Russian`,ar:`Arabic`,hi:`Hindi`,ta:`Tamil`,tam:`Tamil`},Fe=e=>{if(!e)return null;let t=e.trim().toLowerCase(),n=t.match(/^(en|eng|fr|fre|fra|es|spa|de|ger|deu|it|ita|pt|por|ja|zh|ko|ru|ar|hi|ta|tam)/);if(n&&Pe[n[0]])return Pe[n[0]];for(let[e,n]of Object.entries(Pe))if(t.includes(e))return n;return/english|anglais|ingles/i.test(t)?`English`:/french|français/i.test(t)?`French`:/spanish|español/i.test(t)?`Spanish`:/german|deutsch/i.test(t)?`German`:/italian|italiano/i.test(t)?`Italian`:/portuguese|português/i.test(t)?`Portuguese`:/japanese|nihongo/i.test(t)?`Japanese`:/chinese|中文/i.test(t)?`Chinese`:/korean|한국어/i.test(t)?`Korean`:/tamil|தமிழ்/i.test(t)?`Tamil`:/russian|русский/i.test(t)?`Russian`:/arabic|العربية/i.test(t)?`Arabic`:/hindi|हिन्दी/i.test(t)?`Hindi`:null},g=e=>{if(e.lang){let t=Fe(e.lang);if(t)return t}if(e.label){let t=e.label.trim(),n=t.split(/[#\d\.\s\-_/|:]+/).filter(Boolean);for(let e=n.length-1;e>=0;--e){let t=Fe(n[e]);if(t)return t}let r=t.replace(/^[#\d\.\s]+/,``).trim();return Fe(r)||r}return`Unknown`},Ie=e=>{let t=new Set;return e.filter(e=>{let n=`${g(e).toLowerCase()}|${(e.lang||``).trim().toLowerCase()}`;return t.has(n)?!1:(t.add(n),!0)})},Le=e=>{let t=(e??``).split(`:`).map(Number);return(t[0]||0)*3600+(t[1]||0)*60+(t[2]||0)},Re=({src:e,autoplay:t=!1,muted:n=!1,chapters:r=[],keyMoments:i,subtitles:a=[],watermark:o,themeColor:s=`#6366f1`,drmConfig:d,firebaseConfig:te,onAnalyticsEvent:ne,onAdBreakChange:re,onKeyMomentsLoaded:ie,enableControls:ae=!0,enableChromecast:oe,enableKeyMoments:se,enableSubtitles:ce,enableQuality:le,enablePlaybackSpeed:f,enablePiP:Pe,enableFullscreen:Fe=!0,autoFullscreen:Re=!1,watchProgressInterval:ze=30,subtitleStyle:_={},resolvedEntitlement:Be,licenseKey:Ve,title:He,chaptersDisplayMode:Ue=`strip`,volumeControlType:We=`slider`,urlTransformer:Ge,pauseAdOnTabSwitch:Ke=!0,enableSkipAd:qe=!1,skipAdAfterSeconds:Je=5,overlayAdUrl:Ye,adTrackingUrl:Xe,sources:v,activeSourceIndex:Ze=0,onSourceChange:Qe,initialTime:y,onTimeUpdate:$e})=>{let b=Ge??(e=>e),x=(0,l.useRef)(null),et=(0,l.useRef)(null),tt=(0,l.useRef)(!1),S=(0,l.useRef)(null),nt=(0,l.useRef)(0),rt=(0,l.useRef)(null),C=(0,l.useRef)(null),it=(0,l.useRef)(null),at=(0,l.useRef)(null),ot=(0,l.useRef)(!1),w=(0,l.useRef)(!1),T=(0,l.useRef)(null),E=(0,l.useRef)(null),D=(0,l.useRef)(null),st=(0,l.useRef)(null),ct=(0,l.useRef)(()=>{}),O=(0,l.useRef)(null),lt=(0,l.useRef)(null),ut=e=>{!e||lt.current!==null||(lt.current=e.muted,e.muted=!0)},dt=e=>{lt.current!==null&&(e&&(e.muted=lt.current),lt.current=null)},ft=(0,l.useRef)(null),pt=(0,l.useRef)(null),mt=(0,l.useRef)(null),ht=(0,l.useRef)(null),k=(0,l.useRef)(null),gt=(0,l.useRef)(null),_t=(0,l.useRef)(v),vt=(0,l.useRef)(Qe),yt=(0,l.useRef)(!1),A=(0,l.useRef)(null),j=(0,l.useRef)(null),M=(0,l.useRef)(null),bt=(0,l.useRef)(0),[xt,St]=(0,l.useState)(!1),Ct=(0,l.useRef)(!1),wt=(0,l.useRef)(null),[Tt,Et]=(0,l.useState)(null);(0,l.useEffect)(()=>{if(typeof window>`u`||ke)return;let e=window.requestAnimationFrame(()=>{let e=x.current;if(!e)return;let t=window.getComputedStyle(e);t.overflow!==`hidden`&&t.borderTopLeftRadius===`0px`&&(ke=!0,console.warn(`[boss-web-player-sdk] Player styles appear to be missing — the player will look broken/unstyled.
|
|
3
3
|
Import the stylesheet once at your app entry point:
|
|
4
|
-
import 'boss-web-player-sdk/css';`))});return()=>window.cancelAnimationFrame(e)},[]),(0,l.useEffect)(()=>{let e=C.current;if(!e)return;let t=new ResizeObserver(e=>{for(let t of e)yt(t.contentRect.width<=768)});return t.observe(e),yt(e.getBoundingClientRect().width<=768),()=>t.disconnect()},[]);let[P,wt]=(0,l.useState)(null),Tt=Le??null,F=Tt!=null,I=Tt?.features??{},Et=F?!!(I.drm_protection&&!Re):!1,L={enableSubtitles:F?!!I.subtitle_support:typeof se==`boolean`?se:!0,enableChromecast:F?!!I.chromecast:typeof oe==`boolean`?oe:!0,enableKeyMoments:F?!!I.key_moments:typeof f==`boolean`?f:!0,enableQuality:F?!!I.multiple_resolution:typeof ce==`boolean`?ce:!0,enablePlaybackSpeed:F?!!I.playback_speed:typeof p==`boolean`?p:!0,enablePiP:F?!!I.picture_in_picture:typeof Ne==`boolean`?Ne:!0,allowAirplay:F?!!I.airplay:!1,allowMultipleAudio:F?!!I.multiple_audio:!0,m3u8_playback:F?!!I.m3u8_playback:!0,drm_protection:F?!!I.drm_protection:!1},[Dt,Ot]=(0,l.useState)(!1),[kt,At]=(0,l.useState)(0),[jt,Mt]=(0,l.useState)(!1),[R,Nt]=(0,l.useState)(0),[Pt,Ft]=(0,l.useState)(0),[It,Lt]=(0,l.useState)(1),[Rt,zt]=(0,l.useState)(!1),[Bt,Vt]=(0,l.useState)(!1),[Ht,Ut]=(0,l.useState)(!1),[Wt,Gt]=(0,l.useState)(!1),[Kt,qt]=(0,l.useState)(!1),Jt=vt||(Ht||Wt)&&Kt,[Yt,Xt]=(0,l.useState)(!1),[Zt,Qt]=(0,l.useState)(!1),[z,$t]=(0,l.useState)([]),B=(0,l.useRef)([]),en=(0,l.useRef)(new Set),tn=b&&b.length>0?b.map(e=>e.url).join(`|`):e,[nn,rn]=(0,l.useState)(new Set),[an,on]=(0,l.useState)(tn),sn=(0,l.useRef)(null),cn=(0,l.useRef)(!1),ln=(0,l.useRef)(null);an!==tn&&(on(tn),rn(new Set),en.current=new Set,sn.current=null,cn.current=!1);let un=(0,l.useRef)(null),dn=(0,l.useRef)(!1),[fn,pn]=(0,l.useState)([]),[mn,hn]=(0,l.useState)(null),gn=(0,l.useRef)([]),_n=(0,l.useRef)(null),vn=(0,l.useRef)(new Set),[yn,bn]=(0,l.useState)([]),xn=(0,l.useRef)([]),Sn=(0,l.useMemo)(()=>z.reduce((e,t)=>e+(t.endTime-t.startTime),0),[z]),Cn=Pt>0?Math.max(0,Pt-Sn):0,V=z.length>0&&Cn>0?Cn:Pt,H=(0,l.useCallback)(e=>{let t=e;for(let n of z)e>=n.endTime?t-=n.endTime-n.startTime:e>=n.startTime&&(t-=e-n.startTime);return Math.max(0,t)},[z]),U=(0,l.useCallback)(e=>{let t=e;for(let e of z)t>=e.startTime&&(t+=e.endTime-e.startTime);return t},[z]),[wn,Tn]=(0,l.useState)([]),[En,Dn]=(0,l.useState)({id:-1,height:0,width:0,bitrate:0,label:`Auto`}),[On,kn]=(0,l.useState)(``),[W,An]=(0,l.useState)(`off`),[jn,Mn]=(0,l.useState)(v(a)),[Nn,Pn]=(0,l.useState)([]),[Fn,In]=(0,l.useState)(0);(0,l.useEffect)(()=>{if(P){let e=P.subtitles.getTracks();Mn(v([...a,...e.filter(e=>!a.some(t=>t.id===e.id))]))}else Mn(v(a))},[a.map(e=>e.id).join(`,`),P]);let[Ln,Rn]=(0,l.useState)({chapter:null,index:-1}),[G,zn]=(0,l.useState)(i||r||[]),[K,q]=(0,l.useState)(`none`),[Bn,Vn]=(0,l.useState)(1),[Hn,Un]=(0,l.useState)(!1),[Wn,Gn]=(0,l.useState)({}),[Kn,qn]=(0,l.useState)(``),[Jn,Yn]=(0,l.useState)(null),Xn=(0,l.useRef)(!1),Zn=JSON.stringify(G.map(e=>({title:e.title,startTime:e.startTime})));(0,l.useEffect)(()=>{zn(i||r||[])},[(i||r||[]).map(e=>`${e.startTime}:${e.title}`).join(`,`)]),(0,l.useEffect)(()=>{if(!e||!G||G.length===0)return;Gn({});let t=document.createElement(`video`);t.muted=!0,t.preload=`metadata`,t.crossOrigin=`anonymous`,t.style.cssText=`position:fixed;top:0;left:0;width:10px;height:10px;opacity:0.01;pointer-events:none;z-index:-9999;`,document.body.appendChild(t);let n=null,r=e.includes(`.m3u8`),i=document.createElement(`canvas`);i.width=160,i.height=90;let a=i.getContext(`2d`),o=0,s=!1,l=()=>{if(o>=G.length){te();return}let e=G[o].startTime;t.currentTime=e===0?.01:e},u=()=>{if(a&&t.readyState>=2){a.drawImage(t,0,0,i.width,i.height);let e=i.toDataURL(`image/jpeg`,.8);Gn(t=>({...t,[o]:e})),o++,l()}else setTimeout(u,100)},ee=()=>{s||(s=!0,l())};t.addEventListener(`seeked`,u),t.addEventListener(`canplay`,ee),r&&c.u.isSupported()?(n=new c.u({enableWorker:!1,maxBufferLength:5,xhrSetup:(e,t)=>{let n=d?.authToken;try{let r=Xe(t),i=new URL(r,window.location.origin);n&&i.searchParams.set(`token`,n),e.open(`GET`,i.toString(),!0)}catch(e){console.error(`[WebVideoPlayer tempHls] xhrSetup error:`,e)}}}),n.loadSource(Xe(e)),n.attachMedia(t)):t.src=e,t.readyState>=2&&ee();let te=()=>{t.removeEventListener(`seeked`,u),t.removeEventListener(`canplay`,ee),n&&n.destroy(),document.body.contains(t)&&document.body.removeChild(t)};return te},[e,Zn]);let[J,Qn]=(0,l.useState)(null),[$n,er]=(0,l.useState)(null),tr=(0,l.useRef)(!1),[nr,rr]=(0,l.useState)(!1),[ir,ar]=(0,l.useState)(!1),[or,sr]=(0,l.useState)(null),[cr,lr]=(0,l.useState)(null),[ur,dr]=(0,l.useState)(0),[fr,pr]=(0,l.useState)(0),[mr,hr]=(0,l.useState)(null),[gr,_r]=(0,l.useState)(null),[Y,vr]=(0,l.useState)(null);(0,l.useEffect)(()=>{if(it.current&&!it.current.querySelector(`google-cast-launcher`)){let e=document.createElement(`google-cast-launcher`);e.style.cursor=`pointer`,e.style.width=`100%`,e.style.height=`100%`,e.style.display=`block`,it.current.appendChild(e)}},[]),(0,l.useEffect)(()=>{if(!P){rr(!1),ar(!1),sr(null);return}let e=e=>rr(e),t=()=>{let e=P.getVideoElement(),t=!!e?.webkitCurrentPlaybackTargetIsWireless;ar(t),sr(t?e.webkitCurrentPlaybackTargetName||`AirPlay device`:null)};e(P.casting.isAirPlayAvailable()),t();let n=P.getVideoElement(),r=t=>{e(t.availability===`available`)},i=()=>{t()};return`webkitShowPlaybackTargetPicker`in n&&(n.addEventListener(`webkitplaybacktargetavailabilitychanged`,r),n.addEventListener(`webkitcurrentplaybacktargetiswirelesschanged`,i)),()=>{`webkitShowPlaybackTargetPicker`in n&&(n.removeEventListener(`webkitplaybacktargetavailabilitychanged`,r),n.removeEventListener(`webkitcurrentplaybacktargetiswirelesschanged`,i))}},[P]);let[yr,br]=(0,l.useState)(``),[xr,Sr]=(0,l.useState)(!0),[X,Cr]=(0,l.useState)(!1),wr=(0,l.useRef)(null),Tr=(0,l.useRef)(!1),Er=(0,l.useRef)(!1),Dr=(0,l.useRef)(`none`),Or=(0,l.useRef)(a),kr=()=>{Sr(!0),wr.current&&window.clearTimeout(wr.current);let e=bt.current?3500:1e4;wr.current=window.setTimeout(()=>{Tr.current&&Dr.current===`none`&&Sr(!1)},e)},Ar=(0,l.useCallback)(e=>{A.current&&=(clearTimeout(A.current),null);let t=mt.current,n=t?.[e]?.label??`This format`,r=t?.[0]?.label??`default`;pt.current=null,Yn(`${n} isn't supported on this device. Switched to ${r}.`),window.setTimeout(()=>Yn(null),4e3),ht.current?.(0)},[]);(0,l.useEffect)(()=>{if(!C.current)return;let r=document.createElement(`video`);r.muted=!0,r.preload=`metadata`,r.crossOrigin=`anonymous`,r.style.cssText=`display:none;position:absolute;pointer-events:none;`,document.body.appendChild(r),T.current=r;let i=e.includes(`.m3u8`);if(i&&c.u.isSupported()){let t=new c.u({enableWorker:!1,maxBufferLength:5,xhrSetup:(e,t)=>{let n=d?.authToken;try{let r=Xe(t),i=new URL(r,window.location.origin);n&&i.searchParams.set(`token`,n),e.open(`GET`,i.toString(),!0)}catch(e){console.error(`[WebVideoPlayer hiddenHls] xhrSetup error:`,e)}}});t.loadSource(Xe(e)),t.attachMedia(r),tt.current=t,t.on(c.u.Events.MANIFEST_LOADED,(e,t)=>{if(ze)return;let n=ke(t?.networkDetails?.responseText??``);n&&br(n)}),t.on(c.u.Events.FRAG_PARSING_METADATA,(e,t)=>{if(!(ze||yr))for(let e of t?.samples??[]){let t=h(e.data);if(t){br(t);break}}})}else i&&r.canPlayType(`application/vnd.apple.mpegurl`),r.src=e;r.addEventListener(`seeked`,()=>{let e=et.current;if(!e)return;let t=e.getContext(`2d`);t&&r.readyState>=2&&(t.drawImage(r,0,0,e.width,e.height),hr(e.toDataURL(`image/jpeg`,.82)))});let l;if(te){let e=new c.c(te);Ze.current=e,l=e.createCallback()}if(Et)return;let u=new c.t({container:C.current,src:e,autoplay:t,muted:n,keyMoments:G,subtitles:a,drm:{watermarkText:o,allowedDomains:[`localhost`,`127.0.0.1`,window.location.hostname],...d},analyticsCallback:e=>{if(e.sessionId&&(sn.current===null?sn.current=e.sessionId:e.sessionId!==sn.current&&(e={...e,sessionId:sn.current})),e.eventType===`session_start`){if(cn.current)return;cn.current=!0}l?.(e),ne&&ne(e)},analyticsSessionSeed:ln.current?.key===tn?ln.current.snapshot:void 0,watchProgressInterval:Ie*1e3,themeColor:s,urlTransformer:He});u.on(`keymomentsloaded`,e=>{zn(e),ie&&ie(e)}),u.on(`chaptersloaded`,e=>{zn(e),ie&&ie(e)}),u.on(`play`,()=>{Mt(!0),Qt(!1)}),u.on(`pause`,()=>Mt(!1)),u.on(`ended`,()=>{Mt(!1),Qt(!0)});let ee=()=>{k.current&&(k.current.style.opacity=`1`),st(u.getVideoElement())},ae=()=>{requestAnimationFrame(()=>{requestAnimationFrame(()=>{k.current&&(k.current.style.opacity=`0`),ct(u.getVideoElement())})})},oe=e=>{E.current=!0;let t=ut.current??e+.5;ut.current=null,D.current=t,ee(),u.seek(t),O.current&&window.clearTimeout(O.current),O.current=window.setTimeout(()=>{E.current=!1,D.current=null,O.current=null,ae()},3e3)};if(lt.current=oe,u.on(`timeupdate`,e=>{if(!E.current&&M.current===null){let t=B.current.find(t=>en.current.has(t.startTime)&&e>=t.startTime-.5&&e<t.endTime);if(t){oe(t.endTime);return}ut.current!==null&&B.current.find(t=>e>=t.endTime-.5&&e<t.endTime)&&ee()}if(E.current&&D.current!==null)if(e>=D.current-2)E.current=!1,D.current=null,O.current&&=(window.clearTimeout(O.current),null),!B.current.some(t=>e>=t.startTime&&e<t.endTime)&&ut.current===null&&ae();else return;Nt(e),_t.current=e;let t=u.getDuration();if(Ft(t),M.current!==null&&e>=M.current-2){M.current=null,N.current&&=(window.clearTimeout(N.current),null);let t=B.current.find(t=>en.current.has(t.startTime)&&e>=t.startTime&&e<t.endTime);t&&oe(t.endTime),requestAnimationFrame(()=>{requestAnimationFrame(()=>{j.current&&(j.current.style.opacity=`0`)})})}if(!gt.current&&ft.current===null&&S&&S>0&&t>0&&S<t&&(gt.current=!0,M.current=S,u.seek(S),N.current&&window.clearTimeout(N.current),N.current=window.setTimeout(()=>{M.current=null,N.current=null,j.current&&(j.current.style.opacity=`0`)},4e3)),Ye?.(e),gn.current.length>0)if(_n.current){let t=_n.current;(e>=t.startTimeSeconds+t.durationSeconds||e<t.startTimeSeconds)&&(hn(null),_n.current=null)}else{let t=gn.current.find(t=>e>=t.startTimeSeconds&&e<t.startTimeSeconds+t.durationSeconds&&!vn.current.has(t.availId));t&&(hn(t),_n.current=t,t.impressionBeacons.forEach(e=>{fetch(e,{mode:`no-cors`}).catch(()=>{})}))}let n=u.keyMoments.getCurrentMoment(e);if(Rn({chapter:n.keyMoment,index:n.index}),`mediaSession`in navigator&&navigator.mediaSession.setPositionState){let t=u.getDuration(),n=B.current.find(t=>e>=t.startTime&&e<t.endTime);if(n){let t=n.endTime-n.startTime,r=Math.max(0,e-n.startTime);if(t>0)try{navigator.mediaSession.setPositionState({duration:t,playbackRate:1,position:Math.min(r,t)})}catch{}}else{let n=B.current.reduce((e,t)=>e+(t.endTime-t.startTime),0),r=t>0?Math.max(0,t-n):0,i=e;for(let t of B.current)e>=t.endTime?i-=t.endTime-t.startTime:e>=t.startTime&&(i-=e-t.startTime);i=Math.max(0,i);let a=B.current.length>0&&r>0?r:t;if(a>0)try{navigator.mediaSession.setPositionState({duration:a,playbackRate:1,position:Math.min(i,a)})}catch{}}}}),u.on(`qualitylevels`,e=>{Tn(e)}),u.on(`qualitychange`,e=>{Dn(e)}),u.on(`buffering`,e=>{if(Vt(e),!e&&(A.current&&=(clearTimeout(A.current),null),pt.current=null,ft.current!==null)){let e=ft.current;ft.current=null,gt.current=!0,M.current=e,N.current&&window.clearTimeout(N.current),N.current=window.setTimeout(()=>{M.current=null,N.current=null,j.current&&(j.current.style.opacity=`0`)},4e3),u.seek(e)}}),u.on(`adbreakchange`,e=>{if(u.analytics.setAdBreak(e,u.getVideoElement()),re&&re(e),e){let e=u.getCurrentTime(),t=B.current.find(t=>e>=t.startTime&&e<t.endTime);if(t&&en.current.has(t.startTime)){ee(),E.current||oe(t.endTime);return}t&&(un.current=t.startTime),Cr(!0),q(`none`),ae()}else if(un.current!==null&&(en.current.add(un.current),rn(new Set(en.current)),un.current=null),Cr(!1),ut.current!==null){let e=ut.current;ut.current=null,E.current=!0,D.current=e,ee(),u.seek(e),O.current&&window.clearTimeout(O.current),O.current=window.setTimeout(()=>{E.current=!1,D.current=null,O.current=null,ae()},3e3)}}),u.on(`adbreaksloaded`,e=>{B.current=e,$t(e)}),u.on(`volumechange`,e=>{Lt(e.volume),ot.current===null&&zt(e.muted)}),u.on(`pipchange`,e=>{Xt(e)}),u.on(`error`,()=>{Ot(!0),Vt(!1),M.current=null,N.current&&=(window.clearTimeout(N.current),null),j.current&&(j.current.style.opacity=`0`)}),u.on(`unsupportedcodec`,()=>{let e=pt.current;e&&e.targetIdx!==0&&(mt.current?.length??0)>1&&Ar(e.targetIdx)}),u.subtitles.onSubtitleChange(e=>{kn(e)}),u.on(`subtitlesloaded`,e=>{if(!L.enableSubtitles)return;Mn(v([...e]));let t=e.find(e=>e.isDefault);t&&(u.subtitles.setActiveTrack(t.id),An(t.id))}),u.on(`audiotracksloaded`,e=>{Pn(e),In(e[0]?.id??0)}),u.on(`audiotrackchange`,e=>{In(e)}),u.casting.onCastStateChange((e,t)=>{if(e){tr.current=u.isMuted(),u.pause();let e=u.getVideoElement();e.muted=!0,Qn(t)}else{let e=u.casting.getRemoteState();e&&e.currentTime>0&&(E.current=!0,D.current=e.currentTime,u.seek(e.currentTime),O.current&&window.clearTimeout(O.current),O.current=window.setTimeout(()=>{E.current=!1,D.current=null,O.current=null},3e3));let t=u.getVideoElement();t.muted=tr.current,Qn(null),er(null)}}),u.casting.onRemoteStateChange(e=>{er(e)}),Lt(u.getVolume()),zt(u.isMuted()),`mediaSession`in navigator)try{navigator.mediaSession.setActionHandler(`seekto`,e=>{if(e.seekTime==null||Er.current)return;let t=e.seekTime;for(let e of B.current)t>=e.startTime&&(t+=e.endTime-e.startTime);dt.current?.(t)});let e=(e,t)=>{if(Er.current)return;let n=t&&t>0?t:10,r=u.getCurrentTime(),i=r;for(let e of B.current)r>=e.endTime?i-=e.endTime-e.startTime:r>=e.startTime&&(i-=r-e.startTime);if(e){let e=B.current.reduce((e,t)=>e+(t.endTime-t.startTime),0),t=Math.max(0,u.getDuration()-e),r=Math.min(t,i+n);for(let e of B.current)r>=e.startTime&&(r+=e.endTime-e.startTime);dt.current?.(r,{eventType:`fast_forward`,skipSeconds:n})}else{let e=Math.max(0,i-n);for(let t of B.current)e>=t.startTime&&(e+=t.endTime-t.startTime);dt.current?.(e,{eventType:`fast_backward`,skipSeconds:n})}};navigator.mediaSession.setActionHandler(`seekforward`,t=>e(!0,t.seekOffset??void 0)),navigator.mediaSession.setActionHandler(`seekbackward`,t=>e(!1,t.seekOffset??void 0))}catch{}let f=u.getVideoElement(),se=()=>{if(!(document.pictureInPictureElement===f||f.webkitPresentationMode===`picture-in-picture`)||E.current||M.current!==null||ft.current!==null)return;let e=f.currentTime,t=_t.current;if(!(Math.abs(e-t)<.5)){if(Er.current){f.currentTime=t;return}f.currentTime=t,dt.current?.(e)}};f.addEventListener(`seeking`,se),wt(u);let ce=pt.current;ce&&ce.targetIdx!==0&&(A.current&&clearTimeout(A.current),A.current=setTimeout(()=>{A.current=null,!u.getBufferedRanges().some(e=>e.end>e.start)&&Ar(ce.targetIdx)},De)),ft.current!==null&&(N.current&&window.clearTimeout(N.current),N.current=window.setTimeout(()=>{N.current=null,M.current=null,j.current&&(j.current.style.opacity=`0`),Vt(!1)},12e3)),Fe&&C.current&&(Qe.current=!0,C.current.requestFullscreen().catch(()=>{Qe.current=!1}));let p=()=>{let e=document,t=!!(document.fullscreenElement||e.webkitFullscreenElement);Ut(t),t||Gt(!1);let n=u.getVideoElement();u.analytics.track(t?`fullscreen_enter`:`fullscreen_exit`,n)};document.addEventListener(`fullscreenchange`,p),document.addEventListener(`webkitfullscreenchange`,p);let le=e=>{let t=document.activeElement;if(!(t&&(t.tagName===`INPUT`||t.tagName===`TEXTAREA`||t.getAttribute(`contenteditable`)===`true`||t.getAttribute(`role`)===`slider`))){switch(e.key.toLowerCase()){case` `:case`k`:if(e.preventDefault(),u.getVideoElement().paused)u.play();else{u.pause();try{let e=u.getVideoElement();e&&!e.paused&&e.pause()}catch{}if(T.current&&!T.current.paused)try{T.current.pause()}catch{}}break;case`arrowleft`:case`j`:if(e.preventDefault(),!Er.current){let e=u.getCurrentTime(),t=e;for(let n of B.current)e>=n.endTime?t-=n.endTime-n.startTime:e>=n.startTime&&(t-=e-n.startTime);let n=Math.max(0,t-10);for(let e of B.current)n>=e.startTime&&(n+=e.endTime-e.startTime);dt.current?.(n,{eventType:`fast_backward`,skipSeconds:10})}break;case`arrowright`:case`l`:if(e.preventDefault(),!Er.current){let e=u.getCurrentTime(),t=B.current.reduce((e,t)=>e+(t.endTime-t.startTime),0),n=Math.max(0,u.getDuration()-t),r=e;for(let t of B.current)e>=t.endTime?r-=t.endTime-t.startTime:e>=t.startTime&&(r-=e-t.startTime);let i=Math.min(n,r+10);for(let e of B.current)i>=e.startTime&&(i+=e.endTime-e.startTime);dt.current?.(i,{eventType:`fast_forward`,skipSeconds:10})}break;case`arrowup`:e.preventDefault(),u.setVolume(u.getVolume()+.1);break;case`arrowdown`:e.preventDefault(),u.setVolume(u.getVolume()-.1);break;case`m`:e.preventDefault(),u.setMute(!u.isMuted());break;case`f`:e.preventDefault(),at.current();break;case`p`:e.preventDefault(),Er.current||u.togglePictureInPicture();break;case`c`:if(e.preventDefault(),L.enableSubtitles&&!Er.current)if(u.subtitles.getActiveTrackId()!==`off`)u.subtitles.setActiveTrack(`off`),An(`off`);else{let e=Or.current;e&&e.length>0&&(u.subtitles.setActiveTrack(e[0].id),An(e[0].id))}break;default:return}kr()}};return document.addEventListener(`keydown`,le),kr(),()=>{if(ln.current={key:tn,snapshot:u.analytics.getSessionSnapshot()},u.destroy(),Ze.current?.destroy(),Ze.current=null,document.body.style.overflow=``,document.body.style.touchAction=``,document.removeEventListener(`fullscreenchange`,p),document.removeEventListener(`webkitfullscreenchange`,p),document.removeEventListener(`keydown`,le),wr.current&&window.clearTimeout(wr.current),O.current&&=(window.clearTimeout(O.current),null),A.current&&=(clearTimeout(A.current),null),k.current&&(k.current.style.opacity=`0`),f.removeEventListener(`seeking`,se),`mediaSession`in navigator){try{navigator.mediaSession.setActionHandler(`seekto`,null)}catch{}try{navigator.mediaSession.setActionHandler(`seekforward`,null)}catch{}try{navigator.mediaSession.setActionHandler(`seekbackward`,null)}catch{}}tt.current&&=(tt.current.destroy(),null),T.current&&=(document.body.removeChild(T.current),null),gt.current=!1,M.current=null,N.current&&=(window.clearTimeout(N.current),null)}},[e,o,kt]),(0,l.useEffect)(()=>{if(P){P.keyMoments.setKeyMoments(G);let e=C.current?.querySelector(`video`);if(e){let t=P.keyMoments.getCurrentMoment(e.currentTime);Rn({chapter:t.keyMoment,index:t.index})}}},[Zn,P]),(0,l.useEffect)(()=>{let e=e=>{K!==`none`&&(e.target.closest(`.sdk-menu-container`)||q(`none`))};return document.addEventListener(`click`,e),()=>{document.removeEventListener(`click`,e)}},[K]),(0,l.useEffect)(()=>{Tr.current=jt},[jt]),(0,l.useEffect)(()=>{Er.current=X},[X]),(0,l.useEffect)(()=>{Dr.current=K},[K]),(0,l.useEffect)(()=>{if(!X||!P)return;let e=0,t=P.getCurrentTime(),n=performance.now(),r=()=>{let i=P.getVideoElement?.(),a=P.getCurrentTime(),o=performance.now(),s;if(a!==t)t=a,n=o,s=a;else if(i&&!i.paused&&!i.ended){let e=i.playbackRate||1;s=t+(o-n)/1e3*e}else s=t;let c=B.current.find(e=>a>=e.startTime&&a<e.endTime);if(c){let e=Math.min(s,a+.4,c.endTime),t=Math.min(100,Math.max(0,(e-c.startTime)/(c.endTime-c.startTime)*100));(C.current?.querySelectorAll(`.sdk-ad-progress-fill`))?.forEach(e=>{e.style.width=`${t}%`})}e=requestAnimationFrame(r)};return e=requestAnimationFrame(r),()=>cancelAnimationFrame(e)},[X,P]),(0,l.useEffect)(()=>{Or.current=jn},[jn]),(0,l.useEffect)(()=>{bt.current=vt},[vt]),(0,l.useEffect)(()=>{B.current=z},[z]),(0,l.useEffect)(()=>{gn.current=fn},[fn]),(0,l.useEffect)(()=>{_n.current=mn},[mn]),(0,l.useEffect)(()=>{xn.current=yn},[yn]),(0,l.useEffect)(()=>{mt.current=b},[b]),(0,l.useEffect)(()=>{ht.current=Je},[Je]),(0,l.useEffect)(()=>{un.current=null,dn.current=!1,ut.current=null,hn(null),_n.current=null,vn.current=new Set,Ot(!1)},[e]),(0,l.useEffect)(()=>{pn([]),Ke&&fetch(Ke).then(e=>e.json()).then(e=>{let t=new Set,n=[];for(let r of e.nonLinearAvails??[]){if(t.has(r.availId))continue;t.add(r.availId);let e=r.nonLinearAdsList?.[0],i=e?.nonLinearAdList?.[0];if(!i?.staticResource)continue;let a=(e?.trackingEvents??[]).filter(e=>e.eventType===`impression`).flatMap(e=>e.beaconUrls??[]),o={};try{o=JSON.parse(i.adParameters??`{}`)}catch{}let s=o.position??`bottom_center`;n.push({availId:r.availId,startTimeSeconds:Pe(r.startTime??``),durationSeconds:Pe(i.minSuggestedDuration??`00:00:15`),imageUrl:i.staticResource,imageWidth:parseInt(i.width??`320`,10),imageHeight:parseInt(i.height??`50`,10),title:i.adTitle??``,clickThrough:i.clickThrough??``,clickTrackingUrl:i.clickTracking??``,impressionBeacons:a,position:s,dismissible:o.dismissible===!0})}pn(n)}).catch(()=>{})},[Ke,e]),(0,l.useEffect)(()=>{bn([]),qe&&fetch(qe).then(e=>e.json()).then(e=>{bn((e.avails??[]).map(e=>{let t=e.ads?.[0]?.skipOffset??null,n=!!t;return{startTimeSeconds:e.startTimeInSeconds??0,durationSeconds:e.durationInSeconds??0,skippable:n,skipOffsetSeconds:n?Pe(t):0}}))}).catch(()=>{})},[qe,e]),(0,l.useEffect)(()=>{if(!P||yn.length===0)return;let e=yn.map(e=>({startTime:e.startTimeSeconds,endTime:e.startTimeSeconds+e.durationSeconds}));P.setAdBreaks(e)},[P,yn]),(0,l.useEffect)(()=>{if(!P)return;let e=()=>{document.hidden?Ue&&Er.current&&(P.pause(),dn.current=!0):dn.current&&=(P.play(),!1)};return document.addEventListener(`visibilitychange`,e),()=>{document.removeEventListener(`visibilitychange`,e)}},[P,Ue]);let jr=()=>{kr()},Mr=()=>{Fe&&!Qe.current&&C.current&&(Qe.current=!0,C.current.requestFullscreen().catch(()=>{}))},Nr=()=>{if(P){if(J){P.casting.remotePlayPause(),kr();return}if(Zt)Z(0),Mr(),P.play(),Qt(!1);else if(jt){P.pause();try{let e=P.getVideoElement?.();e&&!e.paused&&e.pause()}catch{}if(C.current&&C.current.querySelectorAll(`video`).forEach(e=>{try{e.pause()}catch{}}),T.current&&!T.current.paused)try{T.current.pause()}catch{}}else Mr(),P.play();kr()}},Pr=e=>{if(!w.current||!P||V===0)return 0;let t=w.current.getBoundingClientRect();return U(Math.max(0,Math.min(1,(e.clientX-t.left)/t.width))*V)},Fr=e=>{if(!P||X)return;rt.current=!0,vr(Pr(e));let t=e=>{if(!rt.current||!w.current)return;let t=w.current.getBoundingClientRect(),n=U(Math.max(0,Math.min(1,(e.clientX-t.left)/t.width))*V);vr(n),lr(e.clientX-t.left),pr(n),T.current&&(T.current.currentTime=n),kr()},n=e=>{if(rt.current=!1,w.current){let t=w.current.getBoundingClientRect();Z(U(Math.max(0,Math.min(1,(e.clientX-t.left)/t.width))*V))}vr(null),lr(null),hr(null),_r(null),document.removeEventListener(`mousemove`,t),document.removeEventListener(`mouseup`,n)};document.addEventListener(`mousemove`,t),document.addEventListener(`mouseup`,n)},Z=(e,t)=>{if(!P)return;if(J){P.casting.remoteSeek(e);return}let n=Math.max(0,Pt>0?Math.min(e,Pt):e);if(t){let{eventType:e,...n}=t;P.attributeNextSeek(e,n)}let r=P.getCurrentTime();if(n>r&&B.current.length>0){let e=B.current.filter(e=>e.startTime>r&&e.startTime<n&&!en.current.has(e.startTime)).sort((e,t)=>e.startTime-t.startTime);if(e.length>0){ut.current=n;let t=e[e.length-1].startTime;E.current=!0,D.current=t,Nt(t),k.current&&(k.current.style.opacity=`1`),st(P.getVideoElement()),P.seek(t),O.current&&window.clearTimeout(O.current),O.current=window.setTimeout(()=>{E.current=!1,D.current=null,O.current=null,k.current&&(k.current.style.opacity=`0`),ct(P.getVideoElement())},3e3);return}}ut.current=null,E.current=!0,D.current=n,Nt(n),k.current&&(k.current.style.opacity=`0`),ct(P.getVideoElement()),P.seek(n),O.current&&window.clearTimeout(O.current),O.current=window.setTimeout(()=>{E.current=!1,D.current=null,O.current=null,k.current&&(k.current.style.opacity=`0`)},3e3)};dt.current=Z;let Ir=()=>{if(!P)return;if(J){P.casting.remoteSetMute(!($n?.isMuted??!1));return}let e=!Rt;P.setMute(e),zt(e)},Lr=e=>{P&&(P.setPlaybackRate(e),Vn(e),q(`none`),qn(`Playback speed: ${e===1?`Normal`:`${e}x`}`))},Rr=e=>{if(!P)return;P.setQuality(e);let t=wn.find(t=>t.id===e);t&&(Dn(t),qn(`Quality: ${t.label}`)),q(`none`)},zr=e=>{if(P)if(P.subtitles.setActiveTrack(e),An(e),q(`none`),e===`off`)qn(`Captions off`);else{let t=jn.find(t=>t.id===e);qn(`Captions: ${t?_(t):`on`}`)}},Br=e=>{P&&(A.current&&=(clearTimeout(A.current),null),Yn(null),j.current&&(j.current.style.opacity=`1`),Vt(!0),pt.current===null&&(ft.current=P.getCurrentTime()),pt.current={targetIdx:e},q(`none`),qn(`Source: ${b?.[e]?.label??``}`),Je?.(e))},Vr=(e,t)=>{Z(e,{eventType:`key_moments`,momentTitle:t?.title??``,momentTime:e}),q(`none`)},Hr=()=>{P&&P.togglePictureInPicture()},Ur=()=>{if(!C.current)return;let e=C.current,t=document,n=e,r=!!(document.fullscreenElement||t.webkitFullscreenElement),i=()=>{Gt(!0),Ut(!0),document.body.style.overflow=`hidden`,document.body.style.touchAction=`none`,P?.analytics.track(`fullscreen_enter`,P.getVideoElement())},a=()=>{Gt(!1),Ut(!1),document.body.style.overflow=``,document.body.style.touchAction=``,P?.analytics.track(`fullscreen_exit`,P.getVideoElement())};if(r||Wt)qt(!1),document.fullscreenElement?document.exitFullscreen():t.webkitFullscreenElement?t.webkitExitFullscreen?.():a();else{qt(bt.current);let t=e.requestFullscreen?.bind(e)??n.webkitRequestFullscreen?.bind(n);t?t().catch(i):i()}};(0,l.useEffect)(()=>{at.current=Ur});let Wr=()=>{if(!X)return;let e=z.find(e=>R>=e.startTime&&R<e.endTime);e&<.current?.(e.endTime)},Gr=()=>{_n.current&&vn.current.add(_n.current.availId),hn(null),_n.current=null},Kr=e=>{e.clickTrackingUrl&&fetch(e.clickTrackingUrl,{mode:`no-cors`}).catch(()=>{}),e.clickThrough&&window.open(e.clickThrough,`_blank`,`noopener,noreferrer`)},qr=()=>{P&&(J?P.casting.stopCasting():P.casting.requestSession(e,R))},Jr=()=>{if(!P)return;let e=P.getVideoElement();if(ir){P.casting.stopAirPlay(e);return}typeof e.webkitShowPlaybackTargetPicker==`function`||P.casting.isAirPlayAvailable()?P.casting.requestAirPlaySession(e):console.warn(`[PlayerSDK AirPlay] AirPlay is not available on this device.`)},Yr=e=>{if(!w.current||V===0||!P||X)return;let t=w.current.getBoundingClientRect();$e.current=t.width,dr(Math.max(192/2,Math.min(e.clientX-t.left,t.width-192/2)));let n=U(Math.max(0,Math.min(1,(e.clientX-t.left)/t.width))*V);lr(e.clientX-t.left),pr(n),nt.current&&window.clearTimeout(nt.current),nt.current=window.setTimeout(()=>{T.current&&(T.current.currentTime=n)},100),_r(P.keyMoments.getCurrentMoment(n).keyMoment)},Xr=e=>{if(!w.current||V===0)return 0;let t=w.current.getBoundingClientRect();return U(Math.max(0,Math.min(1,(e.clientX-t.left)/t.width))*V)},Zr=e=>{if(!P||X||V===0)return;e.preventDefault(),rt.current=!0,vr(Xr(e.touches[0]));let t=e=>{if(!rt.current||!w.current)return;let t=e.touches[0],n=w.current.getBoundingClientRect(),r=U(Math.max(0,Math.min(1,(t.clientX-n.left)/n.width))*V);vr(r),pr(r),kr()},n=e=>{if(rt.current=!1,w.current&&e.changedTouches[0]){let t=e.changedTouches[0],n=w.current.getBoundingClientRect();Z(U(Math.max(0,Math.min(1,(t.clientX-n.left)/n.width))*V))}vr(null),document.removeEventListener(`touchmove`,t),document.removeEventListener(`touchend`,n)};document.addEventListener(`touchmove`,t,{passive:!1}),document.addEventListener(`touchend`,n)},Qr=()=>{lr(null),hr(null),_r(null),nt.current&&window.clearTimeout(nt.current)},Q=e=>{if(isNaN(e)||e<0)return`00:00`;let t=Math.floor(e),n=Math.floor(t/3600),r=Math.floor(t%3600/60),i=t%60,a=e=>String(e).padStart(2,`0`);return n>0?`${a(n)}:${a(r)}:${a(i)}`:`${a(r)}:${a(i)}`};(0,l.useEffect)(()=>{Xn.current&&qn(jt?`Playing`:`Paused`)},[jt]),(0,l.useEffect)(()=>{Xn.current&&qn(Rt?`Muted`:`Unmuted`)},[Rt]),(0,l.useEffect)(()=>{Xn.current=!0},[]),(0,l.useEffect)(()=>{let e=e=>{e.key===`Escape`&&Dr.current!==`none`&&(e.preventDefault(),q(`none`))};return document.addEventListener(`keydown`,e),()=>document.removeEventListener(`keydown`,e)},[]);let $r=J?!($n?.isPaused??!0):jt,ei=J?$n?.currentTime??0:R,ti=J?$n?.duration??0:V,ni=J?$n?.volumeLevel??1:It,ri=J?$n?.isMuted??!1:Rt,ii=(0,l.useCallback)(e=>{if(X||e.target.closest(`.sdk-mobile-ctrl`))return;let t=Date.now(),n=C.current?.getBoundingClientRect(),r=e.clientX-(n?.left??0),i=xt.current;if(i&&t-i.time<300){xt.current=null;let e=r<(n?.width??0)/2,t=e?-10:10;Z(U(Math.max(0,Math.min(V,H(ei)+t))),{eventType:e?`fast_backward`:`fast_forward`,skipSeconds:10}),Ct(e?`left`:`right`),window.setTimeout(()=>Ct(null),700),kr()}else xt.current={time:t,x:r},xr?(Sr(!1),wr.current&&window.clearTimeout(wr.current)):kr()},[X,V,H,ei,U,Z,xr]),ai=()=>ri||ni===0?(0,u.jsx)(Te,{size:18}):ni<.3?(0,u.jsx)(Ee,{size:18}):ni<.7?(0,u.jsx)(Ce,{size:18}):(0,u.jsx)(we,{size:18}),$=e=>t=>{t.key===`Enter`||t.key===` `?(t.preventDefault(),e()):t.key===`Escape`&&(t.preventDefault(),q(`none`))},oi=e=>t=>{(t.key===`Enter`||t.key===` `)&&(t.preventDefault(),e())},si=e=>{if(!X)if(e.key===`ArrowLeft`||e.key===`ArrowRight`){e.preventDefault();let t=e.key===`ArrowLeft`?-5:5;Z(U(Math.max(0,Math.min(V,H(ei)+t))))}else e.key===`Home`?(e.preventDefault(),Z(U(0))):e.key===`End`&&(e.preventDefault(),Z(U(V)))},ci=e=>{q(K===e?`none`:e)},li=(0,l.useCallback)(e=>{if(!e)return;e.style.left=``;let t=C.current;if(!t)return;let n=e.getBoundingClientRect(),r=t.getBoundingClientRect(),i=n.right-(r.right-8),a=r.left+8-n.left;i>0?e.style.left=`calc(50% - ${Math.ceil(i)}px)`:a>0&&(e.style.left=`calc(50% + ${Math.ceil(a)}px)`)},[]);return(0,u.jsxs)(`div`,{ref:C,role:`region`,"aria-label":ze||yr?`${ze||yr} video player`:`Video player`,className:`sdk-player-container ${xr?`controls-active`:``} ${Wt?`sdk-fs-simulated`:``}`,onMouseMove:jr,onTouchStart:Jt?void 0:kr,onMouseLeave:()=>{},style:{border:Wt?`none`:`1px solid rgba(255, 255, 255, 0.08)`,"--sdk-theme-color":s,"--sdk-theme-color-rgb":Me(s)},children:[(0,u.jsx)(`canvas`,{ref:et,width:160,height:90,style:{display:`none`,position:`absolute`,pointerEvents:`none`},"aria-hidden":`true`}),(0,u.jsx)(`div`,{role:`status`,"aria-live":`polite`,"aria-atomic":`true`,className:`sdk-sr-only`,children:Kn}),(0,u.jsx)(`div`,{ref:k,style:{opacity:0,position:`absolute`,inset:0,background:`#000`,zIndex:100,pointerEvents:`none`,willChange:`opacity`},"aria-hidden":`true`}),(0,u.jsx)(`div`,{ref:j,style:{opacity:S&&S>0?1:0,position:`absolute`,inset:0,background:`#000`,zIndex:100,pointerEvents:`none`,willChange:`opacity`},"aria-hidden":`true`}),(0,u.jsx)(`div`,{className:`sdk-spinner-overlay ${Bt?`active`:``}`,"aria-hidden":`true`,children:(0,u.jsx)(`div`,{className:`sdk-spinner`})}),Dt&&(0,u.jsx)(`div`,{style:{position:`absolute`,inset:0,zIndex:50,background:`rgba(9,9,14,0.96)`,display:`flex`,flexDirection:`column`,alignItems:`center`,justifyContent:`center`,gap:20,padding:`0 24px`},children:(0,u.jsx)(ee,{onRetry:()=>{Ot(!1),At(e=>e+1)}})}),Jn&&(0,u.jsx)(`div`,{style:{position:`absolute`,top:`50%`,left:`50%`,transform:`translate(-50%, calc(-50% + 70px))`,background:`rgba(0,0,0,0.82)`,color:`#fff`,fontSize:13,fontWeight:500,padding:`8px 16px`,borderRadius:8,zIndex:102,pointerEvents:`none`,maxWidth:`85%`,textAlign:`center`,backdropFilter:`blur(8px)`,border:`1px solid rgba(255,255,255,0.12)`},children:Jn}),L.enableSubtitles&&On&&W!==`off`&&(0,u.jsx)(`div`,{className:`sdk-subtitles-overlay`,children:(0,u.jsx)(`span`,{className:`sdk-subtitles-text`,style:{fontSize:y.size===`small`?`14px`:y.size===`large`?`24px`:`18px`,color:y.color??`#ffffff`,background:y.background===`none`?`transparent`:y.background===`solid`?`rgba(0, 0, 0, 0.92)`:`rgba(15, 23, 42, 0.78)`,border:y.background===`none`?`none`:`1px solid rgba(255,255,255,0.08)`,backdropFilter:y.background===`none`?`none`:`blur(8px)`},dangerouslySetInnerHTML:{__html:On}})}),mn&&(0,u.jsxs)(`div`,{className:`sdk-overlay-ad sdk-overlay-ad--${mn.position}`,role:`complementary`,"aria-label":`Advertisement`,children:[(0,u.jsxs)(`div`,{className:`sdk-overlay-ad-topbar`,children:[(0,u.jsx)(`span`,{className:`sdk-overlay-ad-label`,children:`Ad`}),mn.dismissible&&(0,u.jsx)(`button`,{className:`sdk-overlay-ad-close`,onClick:Gr,"aria-label":`Close advertisement`,children:`✕`})]}),(0,u.jsx)(`img`,{src:mn.imageUrl,width:mn.imageWidth,height:mn.imageHeight,alt:mn.title||`Advertisement`,className:`sdk-overlay-ad-img`,onClick:()=>Kr(mn)})]}),X&&(()=>{let e=z.find(e=>R>=e.startTime&&R<e.endTime),t=e?Math.max(0,e.endTime-R):0,n=e?R-e.startTime:0,r=yn.find(e=>R>=e.startTimeSeconds&&R<e.startTimeSeconds+e.durationSeconds),i=r?r.skippable:We,a=r?r.skipOffsetSeconds:Ge,o=i&&n>=a,s=Math.ceil(a-n);return(0,u.jsxs)(u.Fragment,{children:[(0,u.jsxs)(`div`,{className:`sdk-ad-countdown`,role:`timer`,"aria-label":`Advertisement — ${Q(t)} remaining`,"aria-live":`off`,children:[(0,u.jsx)(`span`,{className:`sdk-ad-countdown-label`,"aria-hidden":`true`,children:`Ad`}),(0,u.jsx)(`span`,{className:`sdk-ad-countdown-sep`,"aria-hidden":`true`,children:`·`}),(0,u.jsx)(`span`,{className:`sdk-ad-countdown-time`,"aria-hidden":`true`,children:Q(t)})]}),i&&(0,u.jsx)(`button`,{className:`sdk-skip-ad-btn ${o?`sdk-skip-ad-btn--ready`:``}`,onClick:o?Wr:void 0,disabled:!o,"aria-label":o?`Skip advertisement`:`Skip advertisement available in ${s} seconds`,"aria-disabled":!o,children:o?`Skip Ad ›`:`Skip in ${s}s`})]})})(),Et&&(0,u.jsx)(`div`,{style:{position:`absolute`,inset:0,display:`flex`,alignItems:`center`,justifyContent:`center`,background:`rgba(0,0,0,0.72)`,color:`#fff`,zIndex:60},children:(0,u.jsxs)(`div`,{style:{maxWidth:480,textAlign:`center`,padding:24},children:[(0,u.jsx)(`h3`,{style:{margin:`0 0 8px`},children:`Playback restricted`}),(0,u.jsx)(`p`,{style:{margin:0},children:`Your account is missing a required license key. Please contact your administrator.`})]})}),(J||ir)&&(0,u.jsx)(`div`,{className:`sdk-cast-bg`}),Jt&&(0,u.jsxs)(`div`,{className:`sdk-mobile-overlay ${xr?`active`:``}`,onClick:ii,children:[St&&(0,u.jsx)(`div`,{className:`sdk-mobile-doubletap ${St}`,children:(0,u.jsxs)(`div`,{className:`sdk-mobile-doubletap-icon`,children:[St===`left`?(0,u.jsx)(xe,{size:26}):(0,u.jsx)(Se,{size:26}),(0,u.jsx)(`span`,{className:`sdk-mobile-doubletap-label`,children:`10s`})]})}),ae&&(0,u.jsxs)(u.Fragment,{children:[(0,u.jsxs)(`div`,{className:`sdk-mobile-header sdk-mobile-ctrl`,children:[(0,u.jsxs)(`div`,{className:`sdk-mobile-header-left`,children:[(Ht||Wt)&&(0,u.jsx)(`button`,{className:`sdk-mobile-back-btn`,onClick:Ur,"aria-label":`Exit fullscreen`,children:(0,u.jsx)(fe,{size:22,"aria-hidden":`true`})}),(ze||yr)&&(0,u.jsx)(`div`,{className:`sdk-mobile-title`,children:ze||yr})]}),(0,u.jsxs)(`div`,{className:`sdk-mobile-header-actions`,children:[L.enablePiP&&(0,u.jsx)(`button`,{className:`sdk-mobile-hdr-btn`,onClick:()=>{X||Hr()},style:{color:Yt?s:``},"aria-label":Yt?`Exit picture-in-picture`:`Enter picture-in-picture`,"aria-pressed":Yt,children:(0,u.jsx)(ye,{size:20,"aria-hidden":`true`})}),L.enableChromecast&&!X&&(0,u.jsx)(`button`,{className:`sdk-mobile-hdr-btn`,onClick:qr,title:J?`Casting to ${J} — tap to disconnect`:`Cast to device`,"aria-label":J?`Stop casting to ${J}`:`Cast to device`,"aria-pressed":!!J,style:{color:J?`#3b82f6`:``},children:(0,u.jsx)(de,{size:20,fill:J?`currentColor`:`none`,"aria-hidden":`true`})}),L.allowAirplay&&nr&&(0,u.jsx)(`button`,{className:`sdk-mobile-hdr-btn`,onClick:Jr,"aria-label":ir?`Stop AirPlay to ${or||`device`}`:`AirPlay to device`,"aria-pressed":ir,style:{color:ir?s:``},children:(0,u.jsx)(le,{size:20,"aria-hidden":`true`})})]})]}),(0,u.jsxs)(`div`,{className:`sdk-mobile-center-controls sdk-mobile-ctrl`,children:[!X&&(0,u.jsxs)(`button`,{className:`sdk-mobile-seek-btn`,onClick:()=>Z(U(Math.max(0,H(ei)-10)),{eventType:`fast_backward`,skipSeconds:10}),"aria-label":`Rewind 10 seconds`,children:[(0,u.jsx)(xe,{size:22,"aria-hidden":`true`}),(0,u.jsx)(`span`,{className:`sdk-mobile-seek-label`,"aria-hidden":`true`,children:`10`})]}),(0,u.jsx)(`button`,{className:`sdk-mobile-play-btn`,onClick:Nr,"aria-label":Zt?`Replay`:$r?`Pause`:`Play`,children:Zt?(0,u.jsx)(xe,{size:38,"aria-hidden":`true`}):$r?(0,u.jsx)(ve,{size:38,fill:`currentColor`,"aria-hidden":`true`}):(0,u.jsx)(be,{size:38,fill:`currentColor`,style:{marginLeft:`3px`},"aria-hidden":`true`})}),!X&&(0,u.jsxs)(`button`,{className:`sdk-mobile-seek-btn`,onClick:()=>Z(U(Math.min(V,H(ei)+10)),{eventType:`fast_forward`,skipSeconds:10}),"aria-label":`Skip forward 10 seconds`,children:[(0,u.jsx)(Se,{size:22,"aria-hidden":`true`}),(0,u.jsx)(`span`,{className:`sdk-mobile-seek-label`,"aria-hidden":`true`,children:`10`})]})]}),(0,u.jsxs)(`div`,{className:`sdk-mobile-bottom-bar sdk-mobile-ctrl`,children:[L.enableKeyMoments&&Hn&&G.length>0&&(0,u.jsx)(`div`,{className:`sdk-mobile-chapters-scroll`,children:G.map((e,t)=>{let n=Ln.index===t;return(0,u.jsxs)(`div`,{role:`button`,tabIndex:0,className:`sdk-mobile-chapter-card${n?` active`:``}`,style:{borderColor:n?s:void 0},"aria-label":`${e.title}, ${Q(e.startTime)}${n?`, current chapter`:``}`,"aria-current":n?`true`:void 0,onClick:()=>{Vr(e.startTime,e)},onKeyDown:oi(()=>Vr(e.startTime,e)),children:[(0,u.jsxs)(`div`,{className:`sdk-mobile-chapter-thumb`,children:[Wn[t]||e.thumbnail?(0,u.jsx)(`img`,{src:Wn[t]||e.thumbnail,alt:``,"aria-hidden":`true`,style:{width:`100%`,height:`100%`,objectFit:`cover`,display:`block`}}):(0,u.jsx)(he,{size:16,"aria-hidden":`true`,style:{color:n?s:`rgba(255,255,255,0.3)`}}),(0,u.jsx)(`span`,{className:`sdk-mobile-chapter-time-badge`,"aria-hidden":`true`,children:Q(e.startTime)})]}),(0,u.jsx)(`div`,{className:`sdk-mobile-chapter-title`,style:{color:n?s:void 0},children:e.title})]},t)})}),(0,u.jsx)(`div`,{ref:w,role:X?void 0:`slider`,"aria-label":X?void 0:`Seek`,"aria-valuemin":X?void 0:0,"aria-valuemax":X?void 0:Math.round(V),"aria-valuenow":X?void 0:Math.round(H(Y===null?R:Y)),"aria-valuetext":X?void 0:`${Q(H(Y===null?R:Y))} of ${Q(V)}`,tabIndex:X?void 0:0,className:`sdk-seekbar-container sdk-mobile-seekbar${X?` sdk-ad-mode`:``}`,onMouseDown:X?void 0:Fr,onMouseMove:X?void 0:Yr,onMouseLeave:X?void 0:Qr,onTouchStart:X?void 0:Zr,onKeyDown:X?void 0:si,style:{pointerEvents:X?`none`:void 0,touchAction:`none`},children:X?(0,u.jsx)(`div`,{className:`sdk-ad-progress-fill`,style:{width:(()=>{let e=P?P.getCurrentTime():R,t=z.find(t=>e>=t.startTime&&e<t.endTime);return t?`${Math.min(100,Math.max(0,(e-t.startTime)/(t.endTime-t.startTime)*100))}%`:`0%`})()}}):(0,u.jsxs)(u.Fragment,{children:[(0,u.jsx)(`div`,{className:`sdk-seekbar-buffered`,style:{width:`${Pt?(P&&P.getBufferedRanges()[0]?.end||0)/Pt*100:0}%`}}),V>0&&z.filter(e=>!nn.has(e.startTime)).map((e,t)=>(0,u.jsx)(`div`,{className:`sdk-seekbar-adbreak`,style:{left:`${H(e.startTime)/V*100}%`,width:`3px`}},t)),(0,u.jsx)(`div`,{className:`sdk-seekbar-progress`,style:{width:J?`${ti>0?ei/ti*100:0}%`:`${V?H(Y===null?R:Y)/V*100:0}%`,background:`#ffffff`,boxShadow:`none`},children:(0,u.jsx)(`div`,{className:`sdk-seekbar-handle`,style:{opacity:1,transform:`scale(1)`}})}),L.enableKeyMoments&&G.map((e,t)=>V===0?null:(0,u.jsx)(`div`,{className:`sdk-seekbar-chapter-marker sdk-desktop-chapter-dot`,style:{left:`${H(e.startTime)/V*100}%`}},t))]})}),(0,u.jsxs)(`div`,{className:`sdk-mobile-controls-row`,children:[!X&&(0,u.jsx)(`span`,{className:`sdk-time-display`,children:J?`${Q(ei)} / ${Q(ti)}`:`${Q(H(Y===null?R:Y))} / ${Q(V)}`}),(0,u.jsxs)(`div`,{className:`sdk-mobile-bottom-icons`,children:[L.enableKeyMoments&&G.length>0&&!X&&(0,u.jsx)(`button`,{className:`sdk-mobile-icon-btn${Hn?` active`:``}`,onClick:()=>{Un(!Hn)},"aria-label":Hn?`Hide chapters`:`Show chapters`,"aria-pressed":Hn,children:(0,u.jsx)(he,{size:18,"aria-hidden":`true`})}),L.enableSubtitles&&!X&&jn.some(e=>!e.isNative)&&(0,u.jsxs)(`div`,{className:`sdk-menu-container`,children:[(0,u.jsx)(`button`,{className:`sdk-mobile-icon-btn${W===`off`?``:` active`}`,onClick:()=>{ci(`subtitles`)},"aria-label":`Captions`,"aria-haspopup":`listbox`,"aria-expanded":K===`subtitles`,children:(0,u.jsx)(ue,{size:18,"aria-hidden":`true`})}),K===`subtitles`&&(0,u.jsxs)(`div`,{ref:li,className:`sdk-dropup-menu`,role:`listbox`,"aria-label":`Captions`,children:[(0,u.jsx)(`div`,{className:`sdk-dropup-header`,"aria-hidden":`true`,children:`Subtitles`}),(0,u.jsxs)(`div`,{role:`option`,"aria-selected":W===`off`,tabIndex:0,className:`sdk-dropup-item ${W===`off`?`active`:``}`,onClick:()=>zr(`off`),onKeyDown:$(()=>zr(`off`)),children:[(0,u.jsx)(`span`,{children:`Off`}),W===`off`&&(0,u.jsx)(m,{size:12,"aria-hidden":`true`})]}),jn.map(e=>(0,u.jsxs)(`div`,{role:`option`,"aria-selected":W===e.id,tabIndex:0,className:`sdk-dropup-item ${W===e.id?`active`:``}`,onClick:()=>zr(e.id),onKeyDown:$(()=>zr(e.id)),children:[(0,u.jsx)(`span`,{children:_(e)}),W===e.id&&(0,u.jsx)(m,{size:12,"aria-hidden":`true`})]},e.id))]})]}),L.allowMultipleAudio&&Nn.length>1&&!X&&(0,u.jsxs)(`div`,{className:`sdk-menu-container`,children:[(0,u.jsx)(`button`,{className:`sdk-mobile-icon-btn${K===`audio`?` active`:``}`,onClick:()=>{ci(`audio`)},"aria-label":`Audio track`,"aria-haspopup":`listbox`,"aria-expanded":K===`audio`,children:(0,u.jsx)(me,{size:18,"aria-hidden":`true`})}),K===`audio`&&(0,u.jsxs)(`div`,{ref:li,className:`sdk-dropup-menu`,role:`listbox`,"aria-label":`Audio track`,children:[(0,u.jsx)(`div`,{className:`sdk-dropup-header`,"aria-hidden":`true`,children:`Audio Track`}),Nn.map(e=>(0,u.jsxs)(`div`,{role:`option`,"aria-selected":Fn===e.id,tabIndex:0,className:`sdk-dropup-item ${Fn===e.id?`active`:``}`,onClick:()=>{P?.setAudioTrack(e.id),In(e.id),q(`none`),qn(`Audio: ${_(e)}`)},onKeyDown:$(()=>{P?.setAudioTrack(e.id),In(e.id),q(`none`),qn(`Audio: ${_(e)}`)}),children:[(0,u.jsx)(`span`,{children:_(e)}),Fn===e.id&&(0,u.jsx)(m,{size:12,"aria-hidden":`true`})]},e.id))]})]}),L.enablePlaybackSpeed&&!X&&(0,u.jsxs)(`div`,{className:`sdk-menu-container`,children:[(0,u.jsx)(`button`,{className:`sdk-mobile-icon-btn${K===`speed`?` active`:``}`,onClick:()=>{ci(`speed`)},"aria-label":`Playback speed`,"aria-haspopup":`listbox`,"aria-expanded":K===`speed`,children:(0,u.jsx)(pe,{size:18,"aria-hidden":`true`})}),K===`speed`&&(0,u.jsxs)(`div`,{ref:li,className:`sdk-dropup-menu`,role:`listbox`,"aria-label":`Playback speed`,children:[(0,u.jsx)(`div`,{className:`sdk-dropup-header`,"aria-hidden":`true`,children:`Speed`}),[.5,.75,1,1.25,1.5,2].map(e=>(0,u.jsxs)(`div`,{role:`option`,"aria-selected":Bn===e,tabIndex:0,className:`sdk-dropup-item ${Bn===e?`active`:``}`,onClick:()=>Lr(e),onKeyDown:$(()=>Lr(e)),children:[(0,u.jsx)(`span`,{children:e===1?`Normal`:`${e}x`}),Bn===e&&(0,u.jsx)(m,{size:12,"aria-hidden":`true`})]},e))]})]}),L.enableQuality&&!X&&(0,u.jsxs)(`div`,{className:`sdk-menu-container`,children:[(0,u.jsx)(`button`,{className:`sdk-mobile-icon-btn${En.id===-1?``:` active`}`,onClick:()=>{ci(`quality`)},"aria-label":`Video quality`,"aria-haspopup":`listbox`,"aria-expanded":K===`quality`,children:(0,u.jsx)(Ae,{size:18,"aria-hidden":`true`})}),K===`quality`&&(0,u.jsxs)(`div`,{ref:li,className:`sdk-dropup-menu large`,role:`listbox`,"aria-label":`Video quality`,children:[(0,u.jsx)(`div`,{className:`sdk-dropup-header`,"aria-hidden":`true`,children:`Quality`}),wn.map(e=>(0,u.jsxs)(`div`,{role:`option`,"aria-selected":En.id===e.id,tabIndex:0,className:`sdk-dropup-item ${En.id===e.id?`active`:``}`,onClick:()=>Rr(e.id),onKeyDown:$(()=>Rr(e.id)),children:[(0,u.jsx)(`span`,{children:e.label}),En.id===e.id&&(0,u.jsx)(m,{size:12,"aria-hidden":`true`})]},e.id))]})]}),b&&b.length>1&&!X&&(0,u.jsxs)(`div`,{className:`sdk-menu-container`,children:[(0,u.jsx)(`button`,{className:`sdk-mobile-icon-btn${K===`sources`?` active`:``}`,onClick:()=>{ci(`sources`)},"aria-label":`Select source`,"aria-haspopup":`listbox`,"aria-expanded":K===`sources`,children:(0,u.jsx)(je,{size:18,"aria-hidden":`true`})}),K===`sources`&&(0,u.jsxs)(`div`,{ref:li,className:`sdk-dropup-menu`,role:`listbox`,"aria-label":`Select source`,children:[(0,u.jsx)(`div`,{className:`sdk-dropup-header`,"aria-hidden":`true`,children:`Source`}),b.map((e,t)=>(0,u.jsxs)(`div`,{role:`option`,"aria-selected":x===t,tabIndex:0,className:`sdk-dropup-item ${x===t?`active`:``}`,onClick:()=>Br(t),onKeyDown:$(()=>Br(t)),children:[(0,u.jsx)(`span`,{children:e.label}),x===t&&(0,u.jsx)(m,{size:12,"aria-hidden":`true`})]},t))]})]}),(0,u.jsx)(`button`,{className:`sdk-mobile-icon-btn`,onClick:Ur,"aria-label":Ht||Wt?`Exit fullscreen`:`Enter fullscreen`,"aria-pressed":Ht||Wt,children:Ht?(0,u.jsx)(_e,{size:18,"aria-hidden":`true`}):(0,u.jsx)(ge,{size:18,"aria-hidden":`true`})})]})]})]})]})]}),!Jt&&(0,u.jsxs)(`div`,{className:`sdk-controls-overlay`,onClick:e=>{X||e.target.closest(`.sdk-desktop-header`)||e.target.closest(`.sdk-desktop-center-controls`)||e.target.closest(`.sdk-desktop-bottom`)||Nr()},children:[(0,u.jsxs)(`div`,{className:`sdk-desktop-header`,children:[(0,u.jsxs)(`div`,{className:`sdk-desktop-header-left`,children:[(Ht||Wt)&&(0,u.jsx)(`button`,{className:`sdk-desktop-back-btn`,onClick:e=>{e.stopPropagation(),Ur()},"aria-label":`Exit fullscreen`,children:(0,u.jsx)(fe,{size:22,"aria-hidden":`true`})}),(ze||yr)&&(0,u.jsx)(`span`,{className:`sdk-desktop-title`,children:ze||yr})]}),(0,u.jsxs)(`div`,{className:`sdk-desktop-header-right`,children:[L.enableChromecast&&!X&&(0,u.jsx)(`button`,{className:`sdk-desktop-hdr-btn`,onClick:e=>{e.stopPropagation(),qr()},title:J?`Casting to ${J} — click to disconnect`:`Cast to device`,"aria-label":J?`Stop casting to ${J}`:`Cast to device`,"aria-pressed":!!J,style:{color:J?`#3b82f6`:``},children:(0,u.jsx)(de,{size:20,fill:J?`currentColor`:`none`,"aria-hidden":`true`})}),J&&(0,u.jsxs)(`span`,{className:`sdk-cast-indicator`,"aria-hidden":`true`,children:[(0,u.jsx)(de,{size:10,fill:`currentColor`,"aria-hidden":`true`}),J]}),L.allowAirplay&&nr&&(0,u.jsx)(`button`,{className:`sdk-desktop-hdr-btn`,onClick:e=>{e.stopPropagation(),Jr()},title:ir?`AirPlay to ${or||`device`} — click to disconnect`:`AirPlay to device`,"aria-label":ir?`Stop AirPlay to ${or||`device`}`:`AirPlay to device`,"aria-pressed":ir,style:{color:ir?s:``},children:(0,u.jsx)(le,{size:20,"aria-hidden":`true`})})]})]}),ae&&(0,u.jsxs)(u.Fragment,{children:[(0,u.jsxs)(`div`,{className:`sdk-desktop-center-controls`,style:{pointerEvents:`none`},children:[!X&&(0,u.jsx)(`button`,{className:`sdk-desktop-seek-btn`,style:{pointerEvents:`auto`},onClick:e=>{e.stopPropagation(),Z(U(Math.max(0,H(ei)-10)),{eventType:`fast_backward`,skipSeconds:10})},title:`Rewind 10s`,"aria-label":`Rewind 10 seconds`,children:(0,u.jsxs)(`div`,{style:{position:`relative`,display:`flex`,alignItems:`center`,justifyContent:`center`},children:[(0,u.jsx)(xe,{size:30,"aria-hidden":`true`}),(0,u.jsx)(`span`,{className:`sdk-desktop-seek-label`,"aria-hidden":`true`,children:`10`})]})}),(0,u.jsx)(`button`,{className:`sdk-desktop-play-btn`,style:{pointerEvents:`auto`},onClick:e=>{e.stopPropagation(),Nr()},title:Zt?`Replay`:$r?`Pause`:`Play`,"aria-label":Zt?`Replay`:$r?`Pause`:`Play`,children:Zt?(0,u.jsx)(xe,{size:38,"aria-hidden":`true`}):$r?(0,u.jsx)(ve,{size:38,fill:`currentColor`,"aria-hidden":`true`}):(0,u.jsx)(be,{size:38,fill:`currentColor`,style:{marginLeft:`4px`},"aria-hidden":`true`})}),!X&&(0,u.jsx)(`button`,{className:`sdk-desktop-seek-btn`,style:{pointerEvents:`auto`},onClick:e=>{e.stopPropagation(),Z(U(Math.min(V,H(ei)+10)),{eventType:`fast_forward`,skipSeconds:10})},title:`Forward 10s`,"aria-label":`Skip forward 10 seconds`,children:(0,u.jsxs)(`div`,{style:{position:`relative`,display:`flex`,alignItems:`center`,justifyContent:`center`},children:[(0,u.jsx)(Se,{size:30,"aria-hidden":`true`}),(0,u.jsx)(`span`,{className:`sdk-desktop-seek-label`,"aria-hidden":`true`,children:`10`})]})})]}),L.enableKeyMoments&&Hn&&G.length>0&&Be===`panel`&&(0,u.jsxs)(`div`,{className:`sdk-chapters-panel`,onClick:e=>e.stopPropagation(),children:[(0,u.jsx)(`div`,{className:`sdk-chapters-panel-header`,children:(0,u.jsx)(`span`,{className:`sdk-chapters-panel-title`,children:`Chapters`})}),(0,u.jsx)(`div`,{className:`sdk-chapters-panel-list`,children:G.map((e,t)=>{let n=Ln.index===t;return(0,u.jsxs)(`div`,{role:`button`,tabIndex:0,className:`sdk-chapters-panel-item${n?` active`:``}`,"aria-label":`${e.title}, ${Q(e.startTime)}${n?`, current chapter`:``}`,"aria-current":n?`true`:void 0,onClick:()=>Vr(e.startTime,e),onKeyDown:oi(()=>Vr(e.startTime,e)),children:[(0,u.jsx)(`div`,{className:`sdk-chapters-panel-thumb`,children:Wn[t]||e.thumbnail?(0,u.jsx)(`img`,{src:Wn[t]||e.thumbnail,alt:``,"aria-hidden":`true`,style:{width:`100%`,height:`100%`,objectFit:`cover`,display:`block`}}):(0,u.jsx)(he,{size:18,"aria-hidden":`true`,style:{color:`rgba(255,255,255,0.3)`}})}),(0,u.jsxs)(`div`,{className:`sdk-chapters-panel-info`,children:[(0,u.jsx)(`div`,{className:`sdk-chapters-panel-item-title`,children:e.title}),e.description&&(0,u.jsx)(`div`,{className:`sdk-chapters-panel-item-desc`,children:e.description}),(0,u.jsx)(`div`,{className:`sdk-chapters-panel-item-time`,"aria-hidden":`true`,children:Q(e.startTime)})]})]},t)})})]}),(0,u.jsxs)(`div`,{className:`sdk-desktop-bottom`,children:[L.enableKeyMoments&&Hn&&G.length>0&&Be===`strip`&&(0,u.jsx)(`div`,{className:`sdk-desktop-chapters-strip`,children:G.map((e,t)=>{let n=Ln.index===t;return(0,u.jsxs)(`div`,{role:`button`,tabIndex:0,className:`sdk-desktop-chapter-card${n?` active`:``}`,"aria-label":`${e.title}, ${Q(e.startTime)}${n?`, current chapter`:``}`,"aria-current":n?`true`:void 0,onClick:t=>{t.stopPropagation(),Vr(e.startTime,e)},onKeyDown:oi(()=>Vr(e.startTime,e)),children:[(0,u.jsx)(`div`,{className:`sdk-desktop-chapter-thumb`,children:Wn[t]||e.thumbnail?(0,u.jsx)(`img`,{src:Wn[t]||e.thumbnail,alt:``,"aria-hidden":`true`,style:{width:`100%`,height:`100%`,objectFit:`cover`,display:`block`}}):(0,u.jsx)(he,{size:18,"aria-hidden":`true`,style:{color:`rgba(255,255,255,0.35)`}})}),(0,u.jsx)(`div`,{className:`sdk-desktop-chapter-title`,children:e.title}),(0,u.jsx)(`div`,{className:`sdk-desktop-chapter-time`,"aria-hidden":`true`,children:Q(e.startTime)})]},t)})}),(0,u.jsx)(`div`,{ref:w,role:X?void 0:`slider`,"aria-label":X?void 0:`Seek`,"aria-valuemin":X?void 0:0,"aria-valuemax":X?void 0:Math.round(V),"aria-valuenow":X?void 0:Math.round(H(Y===null?R:Y)),"aria-valuetext":X?void 0:`${Q(H(Y===null?R:Y))} of ${Q(V)}`,tabIndex:X?void 0:0,className:`sdk-seekbar-container sdk-desktop-seekbar${X?` sdk-ad-mode`:``}`,onMouseDown:X?void 0:Fr,onMouseMove:X?void 0:Yr,onMouseLeave:X?void 0:Qr,onTouchStart:X?void 0:Zr,onKeyDown:X?void 0:si,style:{pointerEvents:X?`none`:void 0},children:X?(0,u.jsx)(`div`,{className:`sdk-ad-progress-fill`,style:{width:(()=>{let e=P?P.getCurrentTime():R,t=z.find(t=>e>=t.startTime&&e<t.endTime);return t?`${Math.min(100,Math.max(0,(e-t.startTime)/(t.endTime-t.startTime)*100))}%`:`0%`})()}}):(0,u.jsxs)(u.Fragment,{children:[(0,u.jsx)(`div`,{className:`sdk-seekbar-buffered`,style:{width:`${Pt?(P&&P.getBufferedRanges()[0]?.end||0)/Pt*100:0}%`}}),V>0&&z.filter(e=>!nn.has(e.startTime)).map((e,t)=>(0,u.jsx)(`div`,{className:`sdk-seekbar-adbreak`,style:{left:`${H(e.startTime)/V*100}%`,width:`3px`}},t)),(0,u.jsx)(`div`,{className:`sdk-seekbar-progress`,style:{width:J?`${ti>0?ei/ti*100:0}%`:`${V?H(Y===null?R:Y)/V*100:0}%`,background:`#ffffff`,boxShadow:`none`},children:(0,u.jsx)(`div`,{className:`sdk-seekbar-handle`})}),L.enableKeyMoments&&G.map((e,t)=>V===0?null:(0,u.jsx)(`div`,{className:`sdk-seekbar-chapter-marker sdk-desktop-chapter-dot`,style:{left:`${H(e.startTime)/V*100}%`}},t)),cr!==null&&mr&&(0,u.jsxs)(`div`,{className:`sdk-thumbnail-tooltip`,style:{left:`${ur}px`},children:[(0,u.jsx)(`div`,{className:`sdk-thumbnail-preview`,children:(0,u.jsx)(`img`,{src:mr,alt:`preview`,style:{width:`100%`,height:`100%`,objectFit:`cover`,borderRadius:`8px`,display:`block`}})}),gr&&(0,u.jsx)(`div`,{className:`sdk-thumbnail-chapter-name`,children:gr.title}),(0,u.jsx)(`div`,{className:`sdk-thumbnail-time-label`,children:Q(H(fr))})]})]})}),(0,u.jsxs)(`div`,{className:`sdk-desktop-controls-row`,children:[(0,u.jsxs)(`div`,{className:`sdk-desktop-left-controls`,children:[!X&&(0,u.jsx)(`div`,{className:`sdk-time-display`,children:J?`${Q(ei)} / ${Q(ti)}`:`${Q(H(Y===null?R:Y))} / ${Q(V)}`}),Ve===`slider`&&(0,u.jsxs)(`div`,{className:`sdk-volume-control`,children:[(0,u.jsx)(`button`,{className:`sdk-desktop-icon-btn`,onClick:e=>{e.stopPropagation(),Ir()},title:ri?`Unmute`:`Mute`,"aria-label":ri?`Unmute`:`Mute`,"aria-pressed":ri,children:ai()}),(0,u.jsx)(`input`,{type:`range`,className:`sdk-volume-slider`,min:0,max:1,step:.02,value:ri?0:ni,"aria-label":`Volume`,"aria-valuetext":ri?`Muted`:`${Math.round(ni*100)}%`,style:{"--vol-pct":Math.round((ri?0:ni)*100)},onChange:e=>{let t=parseFloat(e.target.value);J?(P?.casting.remoteSetVolume(t),t>0&&P?.casting.remoteSetMute(!1)):(P?.setVolume(t),t>0&&Rt&&P?.setMute(!1))},onClick:e=>e.stopPropagation()})]})]}),(0,u.jsxs)(`div`,{className:`sdk-desktop-right-icons`,children:[L.enableKeyMoments&&G.length>0&&!X&&(0,u.jsx)(`button`,{className:`sdk-desktop-icon-btn${Hn?` active`:``}`,onClick:e=>{e.stopPropagation(),Un(!Hn)},title:`Key Moments`,"aria-label":Hn?`Hide chapters`:`Show chapters`,"aria-pressed":Hn,children:(0,u.jsx)(he,{size:20,"aria-hidden":`true`})}),L.enableSubtitles&&!X&&jn.some(e=>!e.isNative)&&(0,u.jsxs)(`div`,{className:`sdk-menu-container`,children:[(0,u.jsx)(`button`,{className:`sdk-desktop-icon-btn${W===`off`?``:` active`}`,onClick:e=>{e.stopPropagation(),ci(`subtitles`)},title:`Captions`,"aria-label":`Captions`,"aria-haspopup":`listbox`,"aria-expanded":K===`subtitles`,children:(0,u.jsx)(ue,{size:20,"aria-hidden":`true`})}),K===`subtitles`&&(0,u.jsxs)(`div`,{ref:li,className:`sdk-dropup-menu`,role:`listbox`,"aria-label":`Captions`,children:[(0,u.jsx)(`div`,{className:`sdk-dropup-header`,"aria-hidden":`true`,children:`Subtitles`}),(0,u.jsxs)(`div`,{role:`option`,"aria-selected":W===`off`,tabIndex:0,className:`sdk-dropup-item ${W===`off`?`active`:``}`,onClick:()=>zr(`off`),onKeyDown:$(()=>zr(`off`)),children:[(0,u.jsx)(`span`,{children:`Off`}),W===`off`&&(0,u.jsx)(m,{size:12,"aria-hidden":`true`})]}),jn.map(e=>(0,u.jsxs)(`div`,{role:`option`,"aria-selected":W===e.id,tabIndex:0,className:`sdk-dropup-item ${W===e.id?`active`:``}`,onClick:()=>zr(e.id),onKeyDown:$(()=>zr(e.id)),children:[(0,u.jsx)(`span`,{children:_(e)}),W===e.id&&(0,u.jsx)(m,{size:12,"aria-hidden":`true`})]},e.id))]})]}),L.allowMultipleAudio&&Nn.length>1&&!X&&(0,u.jsxs)(`div`,{className:`sdk-menu-container`,children:[(0,u.jsx)(`button`,{className:`sdk-desktop-icon-btn${K===`audio`?` active`:``}`,onClick:e=>{e.stopPropagation(),ci(`audio`)},title:`Audio Track`,"aria-label":`Audio track`,"aria-haspopup":`listbox`,"aria-expanded":K===`audio`,children:(0,u.jsx)(me,{size:20,"aria-hidden":`true`})}),K===`audio`&&(0,u.jsxs)(`div`,{ref:li,className:`sdk-dropup-menu`,role:`listbox`,"aria-label":`Audio track`,children:[(0,u.jsx)(`div`,{className:`sdk-dropup-header`,"aria-hidden":`true`,children:`Audio Track`}),Nn.map(e=>(0,u.jsxs)(`div`,{role:`option`,"aria-selected":Fn===e.id,tabIndex:0,className:`sdk-dropup-item ${Fn===e.id?`active`:``}`,onClick:()=>{P?.setAudioTrack(e.id),In(e.id),q(`none`),qn(`Audio: ${_(e)}`)},onKeyDown:$(()=>{P?.setAudioTrack(e.id),In(e.id),q(`none`),qn(`Audio: ${_(e)}`)}),children:[(0,u.jsx)(`span`,{children:_(e)}),Fn===e.id&&(0,u.jsx)(m,{size:12,"aria-hidden":`true`})]},e.id))]})]}),L.enablePlaybackSpeed&&!X&&(0,u.jsxs)(`div`,{className:`sdk-menu-container`,children:[(0,u.jsx)(`button`,{className:`sdk-desktop-icon-btn${K===`speed`?` active`:``}`,onClick:e=>{e.stopPropagation(),ci(`speed`)},title:`Playback Speed`,"aria-label":`Playback speed`,"aria-haspopup":`listbox`,"aria-expanded":K===`speed`,children:(0,u.jsx)(pe,{size:20,"aria-hidden":`true`})}),K===`speed`&&(0,u.jsxs)(`div`,{ref:li,className:`sdk-dropup-menu`,role:`listbox`,"aria-label":`Playback speed`,children:[(0,u.jsx)(`div`,{className:`sdk-dropup-header`,"aria-hidden":`true`,children:`Speed`}),[.5,.75,1,1.25,1.5,2].map(e=>(0,u.jsxs)(`div`,{role:`option`,"aria-selected":Bn===e,tabIndex:0,className:`sdk-dropup-item ${Bn===e?`active`:``}`,onClick:()=>Lr(e),onKeyDown:$(()=>Lr(e)),children:[(0,u.jsx)(`span`,{children:e===1?`Normal`:`${e}x`}),Bn===e&&(0,u.jsx)(m,{size:12,"aria-hidden":`true`})]},e))]})]}),L.enableQuality&&!X&&(0,u.jsxs)(`div`,{className:`sdk-menu-container`,children:[(0,u.jsx)(`button`,{className:`sdk-desktop-icon-btn${En.id===-1?``:` active`}`,onClick:e=>{e.stopPropagation(),ci(`quality`)},title:`Quality`,"aria-label":`Video quality`,"aria-haspopup":`listbox`,"aria-expanded":K===`quality`,children:(0,u.jsx)(Ae,{size:20,"aria-hidden":`true`})}),K===`quality`&&(0,u.jsxs)(`div`,{ref:li,className:`sdk-dropup-menu large`,role:`listbox`,"aria-label":`Video quality`,children:[(0,u.jsx)(`div`,{className:`sdk-dropup-header`,"aria-hidden":`true`,children:`Quality`}),wn.map(e=>(0,u.jsxs)(`div`,{role:`option`,"aria-selected":En.id===e.id,tabIndex:0,className:`sdk-dropup-item ${En.id===e.id?`active`:``}`,onClick:()=>Rr(e.id),onKeyDown:$(()=>Rr(e.id)),children:[(0,u.jsx)(`span`,{children:e.label}),En.id===e.id&&(0,u.jsx)(m,{size:12,"aria-hidden":`true`})]},e.id))]})]}),b&&b.length>1&&!X&&(0,u.jsxs)(`div`,{className:`sdk-menu-container`,children:[(0,u.jsx)(`button`,{className:`sdk-desktop-icon-btn${K===`sources`?` active`:``}`,onClick:e=>{e.stopPropagation(),ci(`sources`)},title:`Select Source`,"aria-label":`Select source`,"aria-haspopup":`listbox`,"aria-expanded":K===`sources`,children:(0,u.jsx)(je,{size:20,"aria-hidden":`true`})}),K===`sources`&&(0,u.jsxs)(`div`,{ref:li,className:`sdk-dropup-menu`,role:`listbox`,"aria-label":`Select source`,children:[(0,u.jsx)(`div`,{className:`sdk-dropup-header`,"aria-hidden":`true`,children:`Source`}),b.map((e,t)=>(0,u.jsxs)(`div`,{role:`option`,"aria-selected":x===t,tabIndex:0,className:`sdk-dropup-item ${x===t?`active`:``}`,onClick:()=>Br(t),onKeyDown:$(()=>Br(t)),children:[(0,u.jsx)(`span`,{children:e.label}),x===t&&(0,u.jsx)(m,{size:12,"aria-hidden":`true`})]},t))]})]}),L.enablePiP&&!X&&(0,u.jsx)(`button`,{className:`sdk-desktop-icon-btn${Yt?` active`:``}`,onClick:e=>{e.stopPropagation(),Hr()},title:`Picture-in-Picture`,"aria-label":Yt?`Exit picture-in-picture`:`Enter picture-in-picture`,"aria-pressed":Yt,children:(0,u.jsx)(ye,{size:20,"aria-hidden":`true`})}),Ve===`button`&&(0,u.jsx)(`button`,{className:`sdk-desktop-icon-btn`,onClick:e=>{e.stopPropagation(),Ir()},title:ri?`Unmute`:`Mute`,"aria-label":ri?`Unmute`:`Mute`,"aria-pressed":ri,children:ai()}),g&&(0,u.jsx)(`button`,{className:`sdk-desktop-icon-btn`,onClick:e=>{e.stopPropagation(),Ur()},title:Ht||Wt?`Exit fullscreen`:`Fullscreen`,"aria-label":Ht||Wt?`Exit fullscreen`:`Enter fullscreen`,"aria-pressed":Ht||Wt,children:Ht?(0,u.jsx)(_e,{size:20,"aria-hidden":`true`}):(0,u.jsx)(ge,{size:20,"aria-hidden":`true`})})]})]})]})]})]})]})},Ie=`https://dev-api.go-boss.com`;function y(e){return{"x-player-key":e,"Content-Type":`application/json`}}async function Le(e,t=Ie){let n=await fetch(`${t}/api/player/sdk/init`,{method:`POST`,headers:y(e),body:JSON.stringify({})});if(!n.ok)throw Error(`SDK init failed: ${n.status}`);let r=await n.json();return console.log(`[SDK] Init response:`,r),r}async function Re(e,t,n,r=Ie){let i=await fetch(`${r}/api/player/sdk/session/start`,{method:`POST`,headers:y(e),body:JSON.stringify({sessionId:t,videoId:n})});if(!i.ok)throw Error(`Session start failed: ${i.status}`);let a=await i.json().catch(()=>null);console.log(`[SDK] Session start response:`,a)}async function ze(e,t,n,r,i=Ie){let a={sessionId:t,currentTime:n,duration:r};console.log(`[SDK] Heartbeat request:`,a);let o=await fetch(`${i}/api/player/sdk/session/heartbeat`,{method:`POST`,headers:y(e),body:JSON.stringify(a)});if(!o.ok)throw Error(`Heartbeat failed: ${o.status}`);let s=await o.json().catch(()=>null);console.log(`[SDK] Heartbeat response:`,s)}async function Be(e,t,n=Ie){let r=await fetch(`${n}/api/player/sdk/session/end`,{method:`POST`,headers:y(e),body:JSON.stringify({sessionId:t})});if(!r.ok)throw Error(`Session end failed: ${r.status}`);let i=await r.json().catch(()=>null);console.log(`[SDK] Session end response:`,i)}async function Ve(e,t,n=Ie){console.log(`[SDK] Event request:`,t);let r=await fetch(`${n}/api/player/sdk/events`,{method:`POST`,headers:y(e),body:JSON.stringify(t)});if(!r.ok)throw Error(`Event ${t.eventType} failed: ${r.status}`)}function He(e,t,n=Ie){fetch(`${n}/api/player/sdk/session/end`,{method:`POST`,headers:y(e),body:JSON.stringify({sessionId:t}),keepalive:!0})}var Ue={subtitles:`subtitle_support`,ads:`ad_support`,chapterMarkers:`key_moments`,playbackSpeed:`playback_speed`,airplay:`airplay`,chromecast:`chromecast`,pictureInPicture:`picture_in_picture`,multipleResolution:`multiple_resolution`,multipleAudio:`multiple_audio`,drmProtection:`drm_protection`,screenRecordingPrevention:`screen_recording_prevention`,signalStrength:`signal_strength`};function We(e){let t={m3u8_playback:!0,subtitle_support:!1,playback_speed:!1,airplay:!1,chromecast:!1,picture_in_picture:!1,multiple_resolution:!1,multiple_audio:!1,key_moments:!1,drm_protection:!1,screen_recording_prevention:!1,signal_strength:!1,ad_support:!1};for(let[n,r]of Object.entries(Ue))n in e&&(t[r]=e[n]);return t}function Ge(e){if(!e)return e=>e;let t=[];for(let n of e.split(`,`)){let[e,r]=n.split(`=`);e?.trim()&&r?.trim()&&t.push({domain:e.trim(),proxyPath:r.trim()})}return e=>{for(let{domain:n,proxyPath:r}of t)if(e.includes(n))try{let t=new URL(e);return`${r}${t.pathname}${t.search}`}catch{return e.replace(`https://${n}`,r)}return e}}var Ke=3e4;function qe(e,t){switch(e.eventType){case`pause`:return{eventType:`pause`,extras:{}};case`seek`:return{eventType:`seek`,extras:{seekFrom:e.seekFrom??0,seekTo:e.seekTo??e.currentTime??0}};case`mute`:return{eventType:`mute`,extras:{isMuted:e.isMuted??!0}};case`fast_forward`:return{eventType:`fast_forward`,extras:{skipSeconds:e.skipSeconds??10}};case`fast_backward`:return{eventType:`fast_backward`,extras:{skipSeconds:e.skipSeconds??10}};case`key_moments`:return{eventType:`key_moments`,extras:{momentTitle:e.momentTitle??``,momentTime:e.momentTime??0}};case`buffering_start`:return{eventType:`buffering_start`,extras:{bufferingCount:e.bufferingCount??0}};case`buffering_end`:return{eventType:`buffering_end`,extras:{}};case`quality_change`:return{eventType:`quality_change`,extras:{...t?{from:t}:{},...e.rendition?{to:e.rendition}:{}}};case`speed_change`:return{eventType:`speed_change`,extras:{speed:e.speed??1}};case`subtitle_change`:return e.subtitleEnabled===!1?{eventType:`subtitle_disable`,extras:{enabled:!1}}:{eventType:`subtitle_change`,extras:{language:e.subtitleLanguage??``,enabled:!0}};case`audio_track_change`:return{eventType:`audio_track_change`,extras:{track:e.audioTrack??``}};case`pip_toggle`:return{eventType:`pip_toggle`,extras:{enabled:e.errorMessage===`entered`}};case`fullscreen_enter`:return{eventType:`fullscreen_toggle`,extras:{enabled:!0}};case`fullscreen_exit`:return{eventType:`fullscreen_toggle`,extras:{enabled:!1}};case`error`:return{eventType:`player_error`,extras:{code:e.errorCode==null?`PLAYER_ERROR`:String(e.errorCode),message:e.errorMessage??`Unknown player error`}};case`network_error`:return{eventType:`network_error`,extras:{code:e.errorCode?String(e.errorCode):`NETWORK_ERROR`,message:e.errorMessage??`Network error`}};default:return null}}function b({playerKey:e,src:t,subtitles:n,licenseKey:r,themeColor:i=`#6366f1`,firebaseConfig:a,proxyDomains:o,apiBaseUrl:s,adTrackingUrl:c,overlayAdUrl:d,title:te,watermark:ne,autoplay:re=!1,muted:ie=!1,autoFullscreen:ae=!1,enableControls:oe=!0,enableSkipAd:f,skipAdAfterSeconds:se,chaptersDisplayMode:ce=`strip`,volumeControlType:p=`slider`,subtitleStyle:le,drmConfig:ue,onAnalyticsEvent:de,onKeyMomentsLoaded:m,initialTime:fe,onTimeUpdate:pe}){let[me,he]=(0,l.useState)([]),[ge,_e]=(0,l.useState)(0),ve=Array.isArray(t)?t:[{label:`Default`,url:t}],ye=ve[ge]?.url??ve[0]?.url??``,[be,xe]=(0,l.useState)(`loading`),[Se,Ce]=(0,l.useState)(null),[we,Te]=(0,l.useState)(0),[Ee,De]=(0,l.useState)(`network`),Oe=(0,l.useRef)(null),ke=(0,l.useRef)(!1),h=(0,l.useRef)(``),Ae=(0,l.useRef)(!1),je=(0,l.useRef)(!1),Me=(0,l.useRef)(void 0),Ne=(0,l.useRef)(!1),g=(0,l.useRef)(null),_=(0,l.useRef)(0),v=(0,l.useRef)(null),Pe=(0,l.useRef)({currentTime:0,duration:0}),Ie=(0,l.useRef)(()=>{}),y=ye.split(`/`).filter(Boolean),Ue=(y[y.length-1]??``).replace(/\.m3u8.*$/,``)||`video`,b=(0,l.useCallback)(()=>Ge(o),[o])();(0,l.useEffect)(()=>{document.documentElement.style.setProperty(`--accent-indigo`,i);let e=i.replace(`#`,``),t=`99, 102, 241`;e.length===6&&(t=`${parseInt(e.substring(0,2),16)}, ${parseInt(e.substring(2,4),16)}, ${parseInt(e.substring(4,6),16)}`),document.documentElement.style.setProperty(`--accent-indigo-rgb`,t)},[i]),(0,l.useEffect)(()=>{let t=!1;return Le(e,s).then(e=>{if(t)return;Oe.current=e;let{features:n,planTier:r}=e.result.data,i={package:r,is_active:!0,features:We(n),limits:{streaming_minutes:0}};console.log(`[SDK] Player key validated. Features:`,i.features),Ce(i),xe(`ready`)}).catch(e=>{if(t)return;console.error(`[SDK] Player key validation failed:`,e);let n=e.message??``;De(/init failed: 4\d\d/.test(n)?`auth`:`network`),xe(`error`)}),()=>{t=!0,g.current&&=(clearTimeout(g.current),null),_.current=0,v.current=null,xe(`loading`),Ce(null),Ae.current=!1,h.current=``,je.current=!1,Me.current=void 0}},[e,s,we]);let x=(0,l.useCallback)(()=>{g.current&&(clearTimeout(g.current),g.current=null,v.current!==null&&(_.current+=Date.now()-v.current,v.current=null))},[]),Je=(0,l.useCallback)(()=>{g.current&&=(clearTimeout(g.current),null),_.current=0,v.current=null},[]),S=(0,l.useCallback)(()=>{if(g.current||!h.current)return;v.current=Date.now();let t=Ke-_.current;g.current=setTimeout(()=>{g.current=null,_.current=0,v.current=null;let{currentTime:t,duration:n}=Pe.current;console.log(`[SDK] Heartbeat timer fired — 30s of real content elapsed`),ze(e,h.current,t,n,s).catch(e=>console.warn(`[SDK] Heartbeat failed:`,e.message)),Ie.current()},t)},[e,s]);(0,l.useEffect)(()=>{Ie.current=S},[S]);let Ye=(0,l.useRef)(!0);(0,l.useEffect)(()=>{if(Ye.current){Ye.current=!1;return}Ne.current=!0,x()},[ge,x]),(0,l.useEffect)(()=>{let t=()=>{h.current&&(je.current=!0,Je(),He(e,h.current,s))};return window.addEventListener(`beforeunload`,t),()=>{window.removeEventListener(`beforeunload`,t),Je()}},[e,s,Je]);let Xe=(0,l.useCallback)(t=>{let n=t;if(t.currentTime!==void 0&&(Pe.current={currentTime:t.currentTime,duration:t.duration}),t.eventType===`session_start`&&!Ae.current&&(Ae.current=!0,je.current=!1,h.current=typeof n.sessionId==`string`?n.sessionId:``,Re(e,h.current,Ue,s).catch(e=>console.warn(`[SDK] Session start failed:`,e.message)),ke.current||S()),t.eventType===`play`&&Ae.current&&!ke.current&&!Ne.current&&S(),t.eventType===`pause`&&x(),t.eventType===`buffering_start`&&x(),t.eventType===`buffering_end`&&Ae.current&&!ke.current&&(Ne.current=!1,S()),t.eventType===`ended`&&(Je(),h.current&&(je.current=!0,Be(e,h.current,s).catch(e=>console.warn(`[SDK] Session end failed:`,e.message)))),Ae.current&&h.current&&!je.current){let n=qe(t,Me.current);n&&(Ve(e,{eventType:n.eventType,sessionId:h.current,currentTime:t.currentTime??0,videoId:Ue,...n.extras},s).catch(e=>console.warn(`[SDK] Event ${n.eventType} failed:`,e.message)),t.eventType===`quality_change`&&t.rendition&&(Me.current=t.rendition))}console.log(`[SDK Analytics]`,t),de?.(t)},[e,s,Ue,S,x,Je,de]),C=(0,l.useCallback)(e=>{ke.current=e,e?(x(),console.log(`[SDK] Ad break started — heartbeat timer paused`)):(Ae.current&&S(),console.log(`[SDK] Ad break ended — heartbeat timer resumed`))},[x,S]),Ze=(0,l.useCallback)(e=>{he(e),m?.(e)},[m]);if(be===`loading`)return(0,u.jsxs)(`div`,{style:{width:`100%`,aspectRatio:`16 / 9`,background:`#000`,borderRadius:8,display:`flex`,alignItems:`center`,justifyContent:`center`},children:[(0,u.jsx)(`style`,{children:`@keyframes boss-sdk-spin{to{transform:rotate(360deg)}}`}),(0,u.jsx)(`div`,{style:{width:32,height:32,borderRadius:`50%`,border:`3px solid rgba(255,255,255,0.12)`,borderTopColor:i,animation:`boss-sdk-spin 0.7s linear infinite`}})]});if(be===`error`){let e=Ee===`auth`;return(0,u.jsx)(`div`,{style:{width:`100%`,aspectRatio:`16 / 9`,background:`#09090e`,borderRadius:8,display:`flex`,alignItems:`center`,justifyContent:`center`,flexDirection:`column`,gap:20},children:(0,u.jsx)(ee,{title:e?`Invalid Player Key`:`Something Went Wrong`,subtitle:e?`Your player key is invalid or expired.
|
|
4
|
+
import 'boss-web-player-sdk/css';`))});return()=>window.cancelAnimationFrame(e)},[]),(0,l.useEffect)(()=>{let e=x.current;if(!e)return;let t=new ResizeObserver(e=>{for(let t of e)St(t.contentRect.width<=768)});return t.observe(e),St(e.getBoundingClientRect().width<=768),()=>t.disconnect()},[]);let[N,Dt]=(0,l.useState)(null),Ot=Be??null,P=Ot!=null,F=Ot?.features??{},kt=P?!!(F.drm_protection&&!Ve):!1,I={enableSubtitles:P?!!F.subtitle_support:typeof ce==`boolean`?ce:!0,enableChromecast:P?!!F.chromecast:typeof oe==`boolean`?oe:!0,enableKeyMoments:P?!!F.key_moments:typeof se==`boolean`?se:!0,enableQuality:P?!!F.multiple_resolution:typeof le==`boolean`?le:!0,enablePlaybackSpeed:P?!!F.playback_speed:typeof f==`boolean`?f:!0,enablePiP:P?!!F.picture_in_picture:typeof Pe==`boolean`?Pe:!0,allowAirplay:P?!!F.airplay:!1,allowMultipleAudio:P?!!F.multiple_audio:!0,m3u8_playback:P?!!F.m3u8_playback:!0,drm_protection:P?!!F.drm_protection:!1},[At,jt]=(0,l.useState)(!1),[Mt,Nt]=(0,l.useState)(0),[Pt,Ft]=(0,l.useState)(!1),[L,It]=(0,l.useState)(0),[Lt,Rt]=(0,l.useState)(0),[zt,Bt]=(0,l.useState)(1),[Vt,Ht]=(0,l.useState)(!1),[Ut,Wt]=(0,l.useState)(!1),[Gt,Kt]=(0,l.useState)(!1),[R,qt]=(0,l.useState)(!1),[Jt,Yt]=(0,l.useState)(!1),Xt=xt||(Gt||R)&&Jt,[Zt,Qt]=(0,l.useState)(!1),[$t,en]=(0,l.useState)(!1),[z,tn]=(0,l.useState)([]),B=(0,l.useRef)([]),nn=(0,l.useRef)(new Set),rn=v&&v.length>0?v.map(e=>e.url).join(`|`):e,[an,on]=(0,l.useState)(new Set),[sn,cn]=(0,l.useState)(rn),ln=(0,l.useRef)(null),un=(0,l.useRef)(!1),dn=(0,l.useRef)(null);sn!==rn&&(cn(rn),on(new Set),nn.current=new Set,ln.current=null,un.current=!1);let fn=(0,l.useRef)(null),pn=(0,l.useRef)(!1),[mn,hn]=(0,l.useState)([]),[gn,_n]=(0,l.useState)(null),vn=(0,l.useRef)([]),yn=(0,l.useRef)(null),bn=(0,l.useRef)(new Set),[xn,Sn]=(0,l.useState)([]),Cn=(0,l.useRef)([]),wn=(0,l.useMemo)(()=>z.reduce((e,t)=>e+(t.endTime-t.startTime),0),[z]),Tn=Lt>0?Math.max(0,Lt-wn):0,V=z.length>0&&Tn>0?Tn:Lt,H=(0,l.useCallback)(e=>{let t=e;for(let n of z)e>=n.endTime?t-=n.endTime-n.startTime:e>=n.startTime&&(t-=e-n.startTime);return Math.max(0,t)},[z]),U=(0,l.useCallback)(e=>{let t=e;for(let e of z)t>=e.startTime&&(t+=e.endTime-e.startTime);return t},[z]),[En,Dn]=(0,l.useState)([]),[On,kn]=(0,l.useState)({id:-1,height:0,width:0,bitrate:0,label:`Auto`}),[An,jn]=(0,l.useState)(``),[W,Mn]=(0,l.useState)(`off`),[Nn,Pn]=(0,l.useState)(Ie(a)),[Fn,In]=(0,l.useState)([]),[Ln,Rn]=(0,l.useState)(0);(0,l.useEffect)(()=>{if(N){let e=N.subtitles.getTracks();Pn(Ie([...a,...e.filter(e=>!a.some(t=>t.id===e.id))]))}else Pn(Ie(a))},[a.map(e=>e.id).join(`,`),N]);let[zn,Bn]=(0,l.useState)({chapter:null,index:-1}),[G,Vn]=(0,l.useState)(i||r||[]),[K,q]=(0,l.useState)(`none`),[Hn,Un]=(0,l.useState)(1),[Wn,Gn]=(0,l.useState)(!1),[Kn,qn]=(0,l.useState)({}),[Jn,Yn]=(0,l.useState)(``),[Xn,Zn]=(0,l.useState)(null),Qn=(0,l.useRef)(!1),$n=JSON.stringify(G.map(e=>({title:e.title,startTime:e.startTime})));(0,l.useEffect)(()=>{Vn(i||r||[])},[(i||r||[]).map(e=>`${e.startTime}:${e.title}`).join(`,`)]),(0,l.useEffect)(()=>{if(!e||!G||G.length===0)return;qn({});let t=document.createElement(`video`);t.muted=!0,t.preload=`metadata`,t.crossOrigin=`anonymous`,t.style.cssText=`position:fixed;top:0;left:0;width:10px;height:10px;opacity:0.01;pointer-events:none;z-index:-9999;`,document.body.appendChild(t);let n=null,r=e.includes(`.m3u8`),i=document.createElement(`canvas`);i.width=160,i.height=90;let a=i.getContext(`2d`),o=0,s=!1,l=()=>{if(o>=G.length){te();return}let e=G[o].startTime;t.currentTime=e===0?.01:e},u=()=>{if(a&&t.readyState>=2){a.drawImage(t,0,0,i.width,i.height);let e=i.toDataURL(`image/jpeg`,.8);qn(t=>({...t,[o]:e})),o++,l()}else setTimeout(u,100)},ee=()=>{s||(s=!0,l())};t.addEventListener(`seeked`,u),t.addEventListener(`canplay`,ee),r&&c.u.isSupported()?(n=new c.u({enableWorker:!1,maxBufferLength:5,xhrSetup:(e,t)=>{let n=d?.authToken;try{let r=b(t),i=new URL(r,window.location.origin);n&&i.searchParams.set(`token`,n),e.open(`GET`,i.toString(),!0)}catch(e){console.error(`[WebVideoPlayer tempHls] xhrSetup error:`,e)}}}),n.loadSource(b(e)),n.attachMedia(t)):t.src=e,t.readyState>=2&&ee();let te=()=>{t.removeEventListener(`seeked`,u),t.removeEventListener(`canplay`,ee),n&&n.destroy(),document.body.contains(t)&&document.body.removeChild(t)};return te},[e,$n]);let[J,er]=(0,l.useState)(null),[tr,nr]=(0,l.useState)(null),rr=(0,l.useRef)(!1),[ir,ar]=(0,l.useState)(!1),[or,sr]=(0,l.useState)(!1),[cr,lr]=(0,l.useState)(null),[ur,dr]=(0,l.useState)(null),[fr,pr]=(0,l.useState)(0),[mr,hr]=(0,l.useState)(0),[gr,_r]=(0,l.useState)(null),[vr,yr]=(0,l.useState)(null),[Y,br]=(0,l.useState)(null);(0,l.useEffect)(()=>{if(st.current&&!st.current.querySelector(`google-cast-launcher`)){let e=document.createElement(`google-cast-launcher`);e.style.cursor=`pointer`,e.style.width=`100%`,e.style.height=`100%`,e.style.display=`block`,st.current.appendChild(e)}},[]),(0,l.useEffect)(()=>{if(!N){ar(!1),sr(!1),lr(null);return}let e=e=>ar(e),t=()=>{let e=N.getVideoElement(),t=!!e?.webkitCurrentPlaybackTargetIsWireless;sr(t),lr(t?e.webkitCurrentPlaybackTargetName||`AirPlay device`:null)};e(N.casting.isAirPlayAvailable()),t();let n=N.getVideoElement(),r=t=>{e(t.availability===`available`)},i=()=>{t()};return`webkitShowPlaybackTargetPicker`in n&&(n.addEventListener(`webkitplaybacktargetavailabilitychanged`,r),n.addEventListener(`webkitcurrentplaybacktargetiswirelesschanged`,i)),()=>{`webkitShowPlaybackTargetPicker`in n&&(n.removeEventListener(`webkitplaybacktargetavailabilitychanged`,r),n.removeEventListener(`webkitcurrentplaybacktargetiswirelesschanged`,i))}},[N]);let[xr,Sr]=(0,l.useState)(``),[Cr,wr]=(0,l.useState)(!0),[X,Tr]=(0,l.useState)(!1),Er=(0,l.useRef)(null),Dr=(0,l.useRef)(!1),Or=(0,l.useRef)(!1),kr=(0,l.useRef)(`none`),Ar=(0,l.useRef)(a),jr=()=>{wr(!0),Er.current&&window.clearTimeout(Er.current);let e=Ct.current?3500:1e4;Er.current=window.setTimeout(()=>{Dr.current&&kr.current===`none`&&wr(!1)},e)},Mr=(0,l.useCallback)(e=>{k.current&&=(clearTimeout(k.current),null);let t=_t.current,n=t?.[e]?.label??`This format`,r=t?.[0]?.label??`default`;gt.current=null,Zn(`${n} isn't supported on this device. Switched to ${r}.`),window.setTimeout(()=>Zn(null),4e3),vt.current?.(0)},[]);(0,l.useEffect)(()=>{if(!x.current)return;let r=document.createElement(`video`);r.muted=!0,r.preload=`metadata`,r.crossOrigin=`anonymous`,r.style.cssText=`display:none;position:absolute;pointer-events:none;`,document.body.appendChild(r),C.current=r;let i=e.includes(`.m3u8`);if(i&&c.u.isSupported()){let t=new c.u({enableWorker:!1,maxBufferLength:5,xhrSetup:(e,t)=>{let n=d?.authToken;try{let r=b(t),i=new URL(r,window.location.origin);n&&i.searchParams.set(`token`,n),e.open(`GET`,i.toString(),!0)}catch(e){console.error(`[WebVideoPlayer hiddenHls] xhrSetup error:`,e)}}});t.loadSource(b(e)),t.attachMedia(r),it.current=t,t.on(c.u.Events.MANIFEST_LOADED,(e,t)=>{if(He)return;let n=Ae(t?.networkDetails?.responseText??``);n&&Sr(n)}),t.on(c.u.Events.FRAG_PARSING_METADATA,(e,t)=>{if(!(He||xr))for(let e of t?.samples??[]){let t=je(e.data);if(t){Sr(t);break}}})}else i&&r.canPlayType(`application/vnd.apple.mpegurl`),r.src=e;r.addEventListener(`seeked`,()=>{let e=rt.current;if(!e)return;let t=e.getContext(`2d`);t&&r.readyState>=2&&(t.drawImage(r,0,0,e.width,e.height),_r(e.toDataURL(`image/jpeg`,.82)))});let l;if(te){let e=new c.c(te);et.current=e,l=e.createCallback()}if(kt)return;let u=new c.t({container:x.current,src:e,autoplay:t,muted:n,keyMoments:G,subtitles:a,drm:{watermarkText:o,allowedDomains:[`localhost`,`127.0.0.1`,window.location.hostname],...d},analyticsCallback:e=>{if(e.sessionId&&(ln.current===null?ln.current=e.sessionId:e.sessionId!==ln.current&&(e={...e,sessionId:ln.current})),e.eventType===`session_start`){if(un.current)return;un.current=!0}l?.(e),ne&&ne(e)},analyticsSessionSeed:dn.current?.key===rn?dn.current.snapshot:void 0,watchProgressInterval:ze*1e3,themeColor:s,urlTransformer:Ge});u.on(`keymomentsloaded`,e=>{Vn(e),ie&&ie(e)}),u.on(`chaptersloaded`,e=>{Vn(e),ie&&ie(e)}),u.on(`play`,()=>{Ft(!0),en(!1),se(u.getCurrentTime(),1)}),u.on(`pause`,()=>{Ft(!1),se(u.getCurrentTime(),0)}),u.on(`ended`,()=>{Ft(!1),en(!0)});let ee=()=>{O.current&&(O.current.style.opacity=`1`),ut(u.getVideoElement())},ae=()=>{requestAnimationFrame(()=>{requestAnimationFrame(()=>{O.current&&(O.current.style.opacity=`0`),dt(u.getVideoElement())})})},oe=e=>{w.current=!0;let t=pt.current??e+.5;pt.current=null,T.current=t,E.current=u.getCurrentTime(),ee(),u.seek(t),D.current&&window.clearTimeout(D.current),D.current=window.setTimeout(()=>{w.current=!1,T.current=null,E.current=null,D.current=null,ae()},3e3)};ft.current=oe;let se=(e,t)=>{if(!(`mediaSession`in navigator)||!navigator.mediaSession.setPositionState)return;let n=u.getDuration(),r=B.current.find(t=>e>=t.startTime&&e<t.endTime);if(r){let n=r.endTime-r.startTime,i=Math.max(0,e-r.startTime);if(n>0)try{navigator.mediaSession.setPositionState({duration:n,playbackRate:t,position:Math.min(i,n)})}catch{}}else{let r=B.current.reduce((e,t)=>e+(t.endTime-t.startTime),0),i=n>0?Math.max(0,n-r):0,a=e;for(let t of B.current)e>=t.endTime?a-=t.endTime-t.startTime:e>=t.startTime&&(a-=e-t.startTime);a=Math.max(0,a);let o=B.current.length>0&&i>0?i:n;if(o>0)try{navigator.mediaSession.setPositionState({duration:o,playbackRate:t,position:Math.min(a,o)})}catch{}}};if(u.on(`timeupdate`,e=>{if(!w.current&&j.current===null){let t=B.current.find(t=>nn.current.has(t.startTime)&&e>=t.startTime-.5&&e<t.endTime);if(t){oe(t.endTime);return}pt.current!==null&&B.current.find(t=>e>=t.endTime-.5&&e<t.endTime)&&ee()}if(w.current&&T.current!==null){let t=T.current;if(E.current!==null&&t<E.current?e<=t+2&&e>=t-2:e>=t-2)w.current=!1,T.current=null,E.current=null,D.current&&=(window.clearTimeout(D.current),null),!B.current.some(t=>e>=t.startTime&&e<t.endTime)&&pt.current===null&&ae();else return}It(e),bt.current=e;let t=u.getDuration();if(Rt(t),j.current!==null&&e>=j.current-2){j.current=null,M.current&&=(window.clearTimeout(M.current),null);let t=B.current.find(t=>nn.current.has(t.startTime)&&e>=t.startTime&&e<t.endTime);t&&oe(t.endTime),requestAnimationFrame(()=>{requestAnimationFrame(()=>{A.current&&(A.current.style.opacity=`0`)})})}if(!yt.current&&ht.current===null&&y&&y>0&&t>0&&y<t&&(yt.current=!0,j.current=y,u.seek(y),M.current&&window.clearTimeout(M.current),M.current=window.setTimeout(()=>{j.current=null,M.current=null,A.current&&(A.current.style.opacity=`0`)},4e3)),$e?.(e),vn.current.length>0)if(yn.current){let t=yn.current;(e>=t.startTimeSeconds+t.durationSeconds||e<t.startTimeSeconds)&&(_n(null),yn.current=null)}else{let t=vn.current.find(t=>e>=t.startTimeSeconds&&e<t.startTimeSeconds+t.durationSeconds&&!bn.current.has(t.availId));t&&(_n(t),yn.current=t,t.impressionBeacons.forEach(e=>{fetch(e,{mode:`no-cors`}).catch(()=>{})}))}let n=u.keyMoments.getCurrentMoment(e);Bn({chapter:n.keyMoment,index:n.index}),se(e,+!u.getVideoElement().paused)}),u.on(`qualitylevels`,e=>{Dn(e)}),u.on(`qualitychange`,e=>{kn(e)}),u.on(`buffering`,e=>{if(Wt(e),!e&&(k.current&&=(clearTimeout(k.current),null),gt.current=null,ht.current!==null)){let e=ht.current;ht.current=null,yt.current=!0,j.current=e,M.current&&window.clearTimeout(M.current),M.current=window.setTimeout(()=>{j.current=null,M.current=null,A.current&&(A.current.style.opacity=`0`)},4e3),u.seek(e)}}),u.on(`adbreakchange`,e=>{if(u.analytics.setAdBreak(e,u.getVideoElement()),re&&re(e),e){let e=u.getCurrentTime(),t=B.current.find(t=>e>=t.startTime&&e<t.endTime);if(t&&nn.current.has(t.startTime)){ee(),w.current||oe(t.endTime);return}t&&(fn.current=t.startTime),Tr(!0),q(`none`),ae()}else if(fn.current!==null&&(nn.current.add(fn.current),on(new Set(nn.current)),fn.current=null),Tr(!1),pt.current!==null){let e=pt.current;pt.current=null,w.current=!0,T.current=e,E.current=u.getCurrentTime(),ee(),u.seek(e),D.current&&window.clearTimeout(D.current),D.current=window.setTimeout(()=>{w.current=!1,T.current=null,E.current=null,D.current=null,ae()},3e3)}}),u.on(`adbreaksloaded`,e=>{B.current=e,tn(e)}),u.on(`volumechange`,e=>{Bt(e.volume),lt.current===null&&Ht(e.muted)}),u.on(`pipchange`,e=>{Qt(e)}),u.on(`error`,()=>{jt(!0),Wt(!1),j.current=null,M.current&&=(window.clearTimeout(M.current),null),A.current&&(A.current.style.opacity=`0`)}),u.on(`unsupportedcodec`,()=>{let e=gt.current;e&&e.targetIdx!==0&&(_t.current?.length??0)>1&&Mr(e.targetIdx)}),u.subtitles.onSubtitleChange(e=>{jn(e)}),u.on(`subtitlesloaded`,e=>{if(!I.enableSubtitles)return;Pn(Ie([...e]));let t=e.find(e=>e.isDefault);t&&(u.subtitles.setActiveTrack(t.id),Mn(t.id))}),u.on(`audiotracksloaded`,e=>{In(e),Rn(e[0]?.id??0)}),u.on(`audiotrackchange`,e=>{Rn(e)}),u.casting.onCastStateChange((e,t)=>{if(e){rr.current=u.isMuted(),u.pause();let e=u.getVideoElement();e.muted=!0,er(t)}else{let e=u.casting.getRemoteState();e&&e.currentTime>0&&(w.current=!0,T.current=e.currentTime,E.current=u.getCurrentTime(),u.seek(e.currentTime),D.current&&window.clearTimeout(D.current),D.current=window.setTimeout(()=>{w.current=!1,T.current=null,E.current=null,D.current=null},3e3));let t=u.getVideoElement();t.muted=rr.current,er(null),nr(null)}}),u.casting.onRemoteStateChange(e=>{nr(e)}),Bt(u.getVolume()),Ht(u.isMuted()),`mediaSession`in navigator)try{navigator.mediaSession.setActionHandler(`seekto`,e=>{if(e.seekTime==null||Or.current)return;let t=e.seekTime;for(let e of B.current)t>=e.startTime&&(t+=e.endTime-e.startTime);mt.current?.(t)});let e=(e,t)=>{if(Or.current)return;let n=t&&t>0?t:10,r=u.getCurrentTime(),i=r;for(let e of B.current)r>=e.endTime?i-=e.endTime-e.startTime:r>=e.startTime&&(i-=r-e.startTime);if(e){let e=B.current.reduce((e,t)=>e+(t.endTime-t.startTime),0),t=Math.max(0,u.getDuration()-e),r=Math.min(t,i+n);for(let e of B.current)r>=e.startTime&&(r+=e.endTime-e.startTime);mt.current?.(r,{eventType:`fast_forward`,skipSeconds:n})}else{let e=Math.max(0,i-n);for(let t of B.current)e>=t.startTime&&(e+=t.endTime-t.startTime);mt.current?.(e,{eventType:`fast_backward`,skipSeconds:n})}};navigator.mediaSession.setActionHandler(`seekforward`,t=>e(!0,t.seekOffset??void 0)),navigator.mediaSession.setActionHandler(`seekbackward`,t=>e(!1,t.seekOffset??void 0))}catch{}let ce=u.getVideoElement(),le=()=>{if(!(document.pictureInPictureElement===ce||ce.webkitPresentationMode===`picture-in-picture`)||w.current||j.current!==null||ht.current!==null)return;let e=ce.currentTime,t=bt.current;if(!(Math.abs(e-t)<.5)){if(Or.current){ce.currentTime=t;return}ce.currentTime=t,mt.current?.(e)}};ce.addEventListener(`seeking`,le),Dt(u);let f=gt.current;f&&f.targetIdx!==0&&(k.current&&clearTimeout(k.current),k.current=setTimeout(()=>{k.current=null,!u.getBufferedRanges().some(e=>e.end>e.start)&&Mr(f.targetIdx)},Oe)),ht.current!==null&&(M.current&&window.clearTimeout(M.current),M.current=window.setTimeout(()=>{M.current=null,j.current=null,A.current&&(A.current.style.opacity=`0`),Wt(!1)},12e3)),Re&&x.current&&(tt.current=!0,x.current.requestFullscreen().catch(()=>{tt.current=!1}));let ue=()=>{let e=document,t=!!(document.fullscreenElement||e.webkitFullscreenElement);Kt(t),t||qt(!1);let n=u.getVideoElement();u.analytics.track(t?`fullscreen_enter`:`fullscreen_exit`,n)};document.addEventListener(`fullscreenchange`,ue),document.addEventListener(`webkitfullscreenchange`,ue);let de=e=>{let t=document.activeElement;if(!(t&&(t.tagName===`INPUT`||t.tagName===`TEXTAREA`||t.getAttribute(`contenteditable`)===`true`||t.getAttribute(`role`)===`slider`))){switch(e.key.toLowerCase()){case` `:case`k`:if(e.preventDefault(),u.getVideoElement().paused)u.play();else{u.pause();try{let e=u.getVideoElement();e&&!e.paused&&e.pause()}catch{}if(C.current&&!C.current.paused)try{C.current.pause()}catch{}}break;case`arrowleft`:case`j`:if(e.preventDefault(),!Or.current){let e=u.getCurrentTime(),t=e;for(let n of B.current)e>=n.endTime?t-=n.endTime-n.startTime:e>=n.startTime&&(t-=e-n.startTime);let n=Math.max(0,t-10);for(let e of B.current)n>=e.startTime&&(n+=e.endTime-e.startTime);mt.current?.(n,{eventType:`fast_backward`,skipSeconds:10})}break;case`arrowright`:case`l`:if(e.preventDefault(),!Or.current){let e=u.getCurrentTime(),t=B.current.reduce((e,t)=>e+(t.endTime-t.startTime),0),n=Math.max(0,u.getDuration()-t),r=e;for(let t of B.current)e>=t.endTime?r-=t.endTime-t.startTime:e>=t.startTime&&(r-=e-t.startTime);let i=Math.min(n,r+10);for(let e of B.current)i>=e.startTime&&(i+=e.endTime-e.startTime);mt.current?.(i,{eventType:`fast_forward`,skipSeconds:10})}break;case`arrowup`:e.preventDefault(),u.setVolume(u.getVolume()+.1);break;case`arrowdown`:e.preventDefault(),u.setVolume(u.getVolume()-.1);break;case`m`:e.preventDefault(),u.setMute(!u.isMuted());break;case`f`:e.preventDefault(),ct.current();break;case`p`:e.preventDefault(),Or.current||u.togglePictureInPicture();break;case`c`:if(e.preventDefault(),I.enableSubtitles&&!Or.current)if(u.subtitles.getActiveTrackId()!==`off`)u.subtitles.setActiveTrack(`off`),Mn(`off`);else{let e=Ar.current;e&&e.length>0&&(u.subtitles.setActiveTrack(e[0].id),Mn(e[0].id))}break;default:return}jr()}};return document.addEventListener(`keydown`,de),jr(),()=>{if(dn.current={key:rn,snapshot:u.analytics.getSessionSnapshot()},u.destroy(),et.current?.destroy(),et.current=null,document.body.style.overflow=``,document.body.style.touchAction=``,document.removeEventListener(`fullscreenchange`,ue),document.removeEventListener(`webkitfullscreenchange`,ue),document.removeEventListener(`keydown`,de),Er.current&&window.clearTimeout(Er.current),D.current&&=(window.clearTimeout(D.current),null),k.current&&=(clearTimeout(k.current),null),O.current&&(O.current.style.opacity=`0`),ce.removeEventListener(`seeking`,le),`mediaSession`in navigator){try{navigator.mediaSession.setActionHandler(`seekto`,null)}catch{}try{navigator.mediaSession.setActionHandler(`seekforward`,null)}catch{}try{navigator.mediaSession.setActionHandler(`seekbackward`,null)}catch{}}it.current&&=(it.current.destroy(),null),C.current&&=(document.body.removeChild(C.current),null),yt.current=!1,j.current=null,M.current&&=(window.clearTimeout(M.current),null)}},[e,o,Mt]),(0,l.useEffect)(()=>{if(N){N.keyMoments.setKeyMoments(G);let e=x.current?.querySelector(`video`);if(e){let t=N.keyMoments.getCurrentMoment(e.currentTime);Bn({chapter:t.keyMoment,index:t.index})}}},[$n,N]),(0,l.useEffect)(()=>{let e=e=>{K!==`none`&&(e.target.closest(`.sdk-menu-container`)||q(`none`))};return document.addEventListener(`click`,e),()=>{document.removeEventListener(`click`,e)}},[K]),(0,l.useEffect)(()=>{Dr.current=Pt},[Pt]),(0,l.useEffect)(()=>{Or.current=X},[X]),(0,l.useEffect)(()=>{kr.current=K},[K]),(0,l.useEffect)(()=>{if(!X||!N)return;let e=0,t=N.getCurrentTime(),n=performance.now(),r=()=>{let i=N.getVideoElement?.(),a=N.getCurrentTime(),o=performance.now(),s;if(a!==t)t=a,n=o,s=a;else if(i&&!i.paused&&!i.ended){let e=i.playbackRate||1;s=t+(o-n)/1e3*e}else s=t;let c=B.current.find(e=>a>=e.startTime&&a<e.endTime);if(c){let e=Math.min(s,a+.4,c.endTime),t=Math.min(100,Math.max(0,(e-c.startTime)/(c.endTime-c.startTime)*100));(x.current?.querySelectorAll(`.sdk-ad-progress-fill`))?.forEach(e=>{e.style.width=`${t}%`})}e=requestAnimationFrame(r)};return e=requestAnimationFrame(r),()=>cancelAnimationFrame(e)},[X,N]),(0,l.useEffect)(()=>{Ar.current=Nn},[Nn]),(0,l.useEffect)(()=>{Ct.current=xt},[xt]),(0,l.useEffect)(()=>{B.current=z},[z]),(0,l.useEffect)(()=>{vn.current=mn},[mn]),(0,l.useEffect)(()=>{yn.current=gn},[gn]),(0,l.useEffect)(()=>{Cn.current=xn},[xn]),(0,l.useEffect)(()=>{_t.current=v},[v]),(0,l.useEffect)(()=>{vt.current=Qe},[Qe]),(0,l.useEffect)(()=>{fn.current=null,pn.current=!1,pt.current=null,_n(null),yn.current=null,bn.current=new Set,jt(!1)},[e]),(0,l.useEffect)(()=>{hn([]),Ye&&fetch(Ye).then(e=>e.json()).then(e=>{let t=new Set,n=[];for(let r of e.nonLinearAvails??[]){if(t.has(r.availId))continue;t.add(r.availId);let e=r.nonLinearAdsList?.[0],i=e?.nonLinearAdList?.[0];if(!i?.staticResource)continue;let a=(e?.trackingEvents??[]).filter(e=>e.eventType===`impression`).flatMap(e=>e.beaconUrls??[]),o={};try{o=JSON.parse(i.adParameters??`{}`)}catch{}let s=o.position??`bottom_center`;n.push({availId:r.availId,startTimeSeconds:Le(r.startTime??``),durationSeconds:Le(i.minSuggestedDuration??`00:00:15`),imageUrl:i.staticResource,imageWidth:parseInt(i.width??`320`,10),imageHeight:parseInt(i.height??`50`,10),title:i.adTitle??``,clickThrough:i.clickThrough??``,clickTrackingUrl:i.clickTracking??``,impressionBeacons:a,position:s,dismissible:o.dismissible===!0})}hn(n)}).catch(()=>{})},[Ye,e]),(0,l.useEffect)(()=>{Sn([]),Xe&&fetch(Xe).then(e=>e.json()).then(e=>{Sn((e.avails??[]).map(e=>{let t=e.ads?.[0],n=t?.skipOffset??null,r=!!n,i={};try{i=JSON.parse(t?.adParameters??`{}`)}catch{}let a=i.ctaText&&i.redirectUrl?{text:i.ctaText,url:i.redirectUrl,title:i.title||void 0,description:i.description||void 0}:null;return{startTimeSeconds:e.startTimeInSeconds??0,durationSeconds:e.durationInSeconds??0,skippable:r,skipOffsetSeconds:r?Le(n):0,cta:a}}))}).catch(()=>{})},[Xe,e]),(0,l.useEffect)(()=>{if(!N||xn.length===0)return;let e=xn.map(e=>({startTime:e.startTimeSeconds,endTime:e.startTimeSeconds+e.durationSeconds}));N.setAdBreaks(e)},[N,xn]),(0,l.useEffect)(()=>{if(!N)return;let e=()=>{document.hidden?Ke&&Or.current&&Dr.current&&(N.pause(),pn.current=!0):pn.current&&=(N.play(),!1)};return document.addEventListener(`visibilitychange`,e),()=>{document.removeEventListener(`visibilitychange`,e)}},[N,Ke]);let Nr=()=>{jr()},Pr=()=>{Re&&!tt.current&&x.current&&(tt.current=!0,x.current.requestFullscreen().catch(()=>{}))},Fr=()=>{if(N){if(J){N.casting.remotePlayPause(),jr();return}if($t)Z(0),Pr(),N.play(),en(!1);else if(Pt){N.pause();try{let e=N.getVideoElement?.();e&&!e.paused&&e.pause()}catch{}if(x.current&&x.current.querySelectorAll(`video`).forEach(e=>{try{e.pause()}catch{}}),C.current&&!C.current.paused)try{C.current.pause()}catch{}}else Pr(),N.play();jr()}},Ir=e=>{if(!S.current||!N||V===0)return 0;let t=S.current.getBoundingClientRect();return U(Math.max(0,Math.min(1,(e.clientX-t.left)/t.width))*V)},Lr=e=>{if(!N||X)return;ot.current=!0,br(Ir(e));let t=e=>{if(!ot.current||!S.current)return;let t=S.current.getBoundingClientRect(),n=U(Math.max(0,Math.min(1,(e.clientX-t.left)/t.width))*V);br(n),dr(e.clientX-t.left),hr(n),C.current&&(C.current.currentTime=n),jr()},n=e=>{if(ot.current=!1,S.current){let t=S.current.getBoundingClientRect();Z(U(Math.max(0,Math.min(1,(e.clientX-t.left)/t.width))*V))}br(null),dr(null),_r(null),yr(null),document.removeEventListener(`mousemove`,t),document.removeEventListener(`mouseup`,n)};document.addEventListener(`mousemove`,t),document.addEventListener(`mouseup`,n)},Z=(e,t)=>{if(!N)return;if(J){N.casting.remoteSeek(e);return}let n=Math.max(0,Lt>0?Math.min(e,Lt):e);if(t){let{eventType:e,...n}=t;N.attributeNextSeek(e,n)}let r=N.getCurrentTime();if(n>r&&B.current.length>0){let e=B.current.filter(e=>e.startTime>r&&e.startTime<n&&!nn.current.has(e.startTime)).sort((e,t)=>e.startTime-t.startTime);if(e.length>0){pt.current=n;let t=e[e.length-1].startTime;w.current=!0,T.current=t,E.current=r,It(t),O.current&&(O.current.style.opacity=`1`),ut(N.getVideoElement()),N.seek(t),D.current&&window.clearTimeout(D.current),D.current=window.setTimeout(()=>{w.current=!1,T.current=null,E.current=null,D.current=null,O.current&&(O.current.style.opacity=`0`),dt(N.getVideoElement())},3e3);return}}pt.current=null;let i=B.current.find(e=>nn.current.has(e.startTime)&&n>=e.startTime-.5&&n<e.endTime+2),a=i?Math.max(n,i.endTime+.5):n;w.current=!0,T.current=a,E.current=r,It(a),O.current&&(O.current.style.opacity=`0`),dt(N.getVideoElement()),N.seek(a),D.current&&window.clearTimeout(D.current),D.current=window.setTimeout(()=>{w.current=!1,T.current=null,E.current=null,D.current=null,O.current&&(O.current.style.opacity=`0`)},3e3)};mt.current=Z;let Rr=()=>{if(!N)return;if(J){N.casting.remoteSetMute(!(tr?.isMuted??!1));return}let e=!Vt;N.setMute(e),Ht(e)},zr=e=>{N&&(N.setPlaybackRate(e),Un(e),q(`none`),Yn(`Playback speed: ${e===1?`Normal`:`${e}x`}`))},Br=e=>{if(!N)return;N.setQuality(e);let t=En.find(t=>t.id===e);t&&(kn(t),Yn(`Quality: ${t.label}`)),q(`none`)},Vr=e=>{if(N)if(N.subtitles.setActiveTrack(e),Mn(e),q(`none`),e===`off`)Yn(`Captions off`);else{let t=Nn.find(t=>t.id===e);Yn(`Captions: ${t?g(t):`on`}`)}},Hr=e=>{N&&(k.current&&=(clearTimeout(k.current),null),Zn(null),A.current&&(A.current.style.opacity=`1`),Wt(!0),gt.current===null&&(ht.current=N.getCurrentTime()),gt.current={targetIdx:e},q(`none`),Yn(`Source: ${v?.[e]?.label??``}`),Qe?.(e))},Ur=(e,t)=>{Z(e,{eventType:`key_moments`,momentTitle:t?.title??``,momentTime:e}),q(`none`)},Wr=()=>{N&&N.togglePictureInPicture()},Gr=()=>{if(!x.current)return;let e=x.current,t=document,n=e,r=!!(document.fullscreenElement||t.webkitFullscreenElement),i=()=>{qt(!0),Kt(!0),document.body.style.overflow=`hidden`,document.body.style.touchAction=`none`,N?.analytics.track(`fullscreen_enter`,N.getVideoElement())},a=()=>{qt(!1),Kt(!1),document.body.style.overflow=``,document.body.style.touchAction=``,N?.analytics.track(`fullscreen_exit`,N.getVideoElement())};if(r||R)Yt(!1),document.fullscreenElement?document.exitFullscreen():t.webkitFullscreenElement?t.webkitExitFullscreen?.():a();else{Yt(Ct.current);let t=e.requestFullscreen?.bind(e)??n.webkitRequestFullscreen?.bind(n);t?t().catch(i):i()}};(0,l.useEffect)(()=>{ct.current=Gr});let Kr=()=>{if(!X)return;let e=z.find(e=>L>=e.startTime&&L<e.endTime);e&&ft.current?.(e.endTime)},qr=()=>{yn.current&&bn.current.add(yn.current.availId),_n(null),yn.current=null},Jr=e=>{e.clickTrackingUrl&&fetch(e.clickTrackingUrl,{mode:`no-cors`}).catch(()=>{}),e.clickThrough&&window.open(e.clickThrough,`_blank`,`noopener,noreferrer`)},Yr=e=>{window.open(e.url,`_blank`,`noopener,noreferrer`)},Xr=()=>{N&&(J?N.casting.stopCasting():N.casting.requestSession(e,L))},Zr=()=>{if(!N)return;let e=N.getVideoElement();if(or){N.casting.stopAirPlay(e);return}typeof e.webkitShowPlaybackTargetPicker==`function`||N.casting.isAirPlayAvailable()?N.casting.requestAirPlaySession(e):console.warn(`[PlayerSDK AirPlay] AirPlay is not available on this device.`)},Qr=e=>{if(!S.current||V===0||!N||X)return;let t=S.current.getBoundingClientRect();nt.current=t.width,pr(Math.max(192/2,Math.min(e.clientX-t.left,t.width-192/2)));let n=U(Math.max(0,Math.min(1,(e.clientX-t.left)/t.width))*V);dr(e.clientX-t.left),hr(n),at.current&&window.clearTimeout(at.current),at.current=window.setTimeout(()=>{C.current&&(C.current.currentTime=n)},100),yr(N.keyMoments.getCurrentMoment(n).keyMoment)},$r=e=>{if(!S.current||V===0)return 0;let t=S.current.getBoundingClientRect();return U(Math.max(0,Math.min(1,(e.clientX-t.left)/t.width))*V)},ei=e=>{if(!N||X||V===0)return;e.preventDefault(),ot.current=!0,br($r(e.touches[0]));let t=e=>{if(!ot.current||!S.current)return;let t=e.touches[0],n=S.current.getBoundingClientRect(),r=U(Math.max(0,Math.min(1,(t.clientX-n.left)/n.width))*V);br(r),hr(r),jr()},n=e=>{if(ot.current=!1,S.current&&e.changedTouches[0]){let t=e.changedTouches[0],n=S.current.getBoundingClientRect();Z(U(Math.max(0,Math.min(1,(t.clientX-n.left)/n.width))*V))}br(null),document.removeEventListener(`touchmove`,t),document.removeEventListener(`touchend`,n)};document.addEventListener(`touchmove`,t,{passive:!1}),document.addEventListener(`touchend`,n)},ti=()=>{dr(null),_r(null),yr(null),at.current&&window.clearTimeout(at.current)},Q=e=>{if(isNaN(e)||e<0)return`00:00`;let t=Math.floor(e),n=Math.floor(t/3600),r=Math.floor(t%3600/60),i=t%60,a=e=>String(e).padStart(2,`0`);return n>0?`${a(n)}:${a(r)}:${a(i)}`:`${a(r)}:${a(i)}`};(0,l.useEffect)(()=>{Qn.current&&Yn(Pt?`Playing`:`Paused`)},[Pt]),(0,l.useEffect)(()=>{Qn.current&&Yn(Vt?`Muted`:`Unmuted`)},[Vt]),(0,l.useEffect)(()=>{Qn.current=!0},[]),(0,l.useEffect)(()=>{let e=e=>{e.key===`Escape`&&kr.current!==`none`&&(e.preventDefault(),q(`none`))};return document.addEventListener(`keydown`,e),()=>document.removeEventListener(`keydown`,e)},[]);let ni=J?!(tr?.isPaused??!0):Pt,ri=J?tr?.currentTime??0:L,ii=J?tr?.duration??0:V,ai=J?tr?.volumeLevel??1:zt,oi=J?tr?.isMuted??!1:Vt,si=(0,l.useCallback)(e=>{if(X||e.target.closest(`.sdk-mobile-ctrl`))return;let t=Date.now(),n=x.current?.getBoundingClientRect(),r=e.clientX-(n?.left??0),i=wt.current;if(i&&t-i.time<300){wt.current=null;let e=r<(n?.width??0)/2,t=e?-10:10;Z(U(Math.max(0,Math.min(V,H(ri)+t))),{eventType:e?`fast_backward`:`fast_forward`,skipSeconds:10}),Et(e?`left`:`right`),window.setTimeout(()=>Et(null),700),jr()}else wt.current={time:t,x:r},Cr?(wr(!1),Er.current&&window.clearTimeout(Er.current)):jr()},[X,V,H,ri,U,Z,Cr]),ci=()=>oi||ai===0?(0,u.jsx)(Ee,{size:18}):ai<.3?(0,u.jsx)(De,{size:18}):ai<.7?(0,u.jsx)(we,{size:18}):(0,u.jsx)(Te,{size:18}),$=e=>t=>{t.key===`Enter`||t.key===` `?(t.preventDefault(),e()):t.key===`Escape`&&(t.preventDefault(),q(`none`))},li=e=>t=>{(t.key===`Enter`||t.key===` `)&&(t.preventDefault(),e())},ui=e=>{if(!X)if(e.key===`ArrowLeft`||e.key===`ArrowRight`){e.preventDefault();let t=e.key===`ArrowLeft`?-5:5;Z(U(Math.max(0,Math.min(V,H(ri)+t))))}else e.key===`Home`?(e.preventDefault(),Z(U(0))):e.key===`End`&&(e.preventDefault(),Z(U(V)))},di=e=>{q(K===e?`none`:e)},fi=(0,l.useCallback)(e=>{if(!e)return;e.style.left=``;let t=x.current;if(!t)return;let n=e.getBoundingClientRect(),r=t.getBoundingClientRect(),i=n.right-(r.right-8),a=r.left+8-n.left;i>0?e.style.left=`calc(50% - ${Math.ceil(i)}px)`:a>0&&(e.style.left=`calc(50% + ${Math.ceil(a)}px)`)},[]);return(0,u.jsxs)(`div`,{ref:x,role:`region`,"aria-label":He||xr?`${He||xr} video player`:`Video player`,className:`sdk-player-container ${Cr?`controls-active`:``} ${R?`sdk-fs-simulated`:``}`,onMouseMove:Nr,onTouchStart:Xt?void 0:jr,onMouseLeave:()=>{},style:{border:R?`none`:`1px solid rgba(255, 255, 255, 0.08)`,"--sdk-theme-color":s,"--sdk-theme-color-rgb":Ne(s)},children:[(0,u.jsx)(`canvas`,{ref:rt,width:160,height:90,style:{display:`none`,position:`absolute`,pointerEvents:`none`},"aria-hidden":`true`}),(0,u.jsx)(`div`,{role:`status`,"aria-live":`polite`,"aria-atomic":`true`,className:`sdk-sr-only`,children:Jn}),(0,u.jsx)(`div`,{ref:O,style:{opacity:0,position:`absolute`,inset:0,background:`#000`,zIndex:100,pointerEvents:`none`,willChange:`opacity`},"aria-hidden":`true`}),(0,u.jsx)(`div`,{ref:A,style:{opacity:y&&y>0?1:0,position:`absolute`,inset:0,background:`#000`,zIndex:100,pointerEvents:`none`,willChange:`opacity`},"aria-hidden":`true`}),(0,u.jsx)(`div`,{className:`sdk-spinner-overlay ${Ut?`active`:``}`,"aria-hidden":`true`,children:(0,u.jsx)(`div`,{className:`sdk-spinner`})}),At&&(0,u.jsx)(`div`,{style:{position:`absolute`,inset:0,zIndex:50,background:`rgba(9,9,14,0.96)`,display:`flex`,flexDirection:`column`,alignItems:`center`,justifyContent:`center`,gap:20,padding:`0 24px`},children:(0,u.jsx)(ee,{onRetry:()=>{jt(!1),Nt(e=>e+1)}})}),Xn&&(0,u.jsx)(`div`,{style:{position:`absolute`,top:`50%`,left:`50%`,transform:`translate(-50%, calc(-50% + 70px))`,background:`rgba(0,0,0,0.82)`,color:`#fff`,fontSize:13,fontWeight:500,padding:`8px 16px`,borderRadius:8,zIndex:102,pointerEvents:`none`,maxWidth:`85%`,textAlign:`center`,backdropFilter:`blur(8px)`,border:`1px solid rgba(255,255,255,0.12)`},children:Xn}),I.enableSubtitles&&!X&&An&&W!==`off`&&(0,u.jsx)(`div`,{className:`sdk-subtitles-overlay`,children:(0,u.jsx)(`span`,{className:`sdk-subtitles-text`,style:{fontSize:_.size===`small`?`14px`:_.size===`large`?`24px`:`18px`,color:_.color??`#ffffff`,background:_.background===`none`?`transparent`:_.background===`solid`?`rgba(0, 0, 0, 0.92)`:`rgba(15, 23, 42, 0.78)`,border:_.background===`none`?`none`:`1px solid rgba(255,255,255,0.08)`,backdropFilter:_.background===`none`?`none`:`blur(8px)`},dangerouslySetInnerHTML:{__html:An}})}),gn&&(0,u.jsxs)(`div`,{className:`sdk-overlay-ad sdk-overlay-ad--${gn.position}`,role:`complementary`,"aria-label":`Advertisement`,children:[(0,u.jsxs)(`div`,{className:`sdk-overlay-ad-topbar`,children:[(0,u.jsx)(`span`,{className:`sdk-overlay-ad-label`,children:`Ad`}),gn.dismissible&&(0,u.jsx)(`button`,{className:`sdk-overlay-ad-close`,onClick:qr,"aria-label":`Close advertisement`,children:`✕`})]}),(0,u.jsx)(`img`,{src:gn.imageUrl,width:gn.imageWidth,height:gn.imageHeight,alt:gn.title||`Advertisement`,className:`sdk-overlay-ad-img`,onClick:()=>Jr(gn)})]}),X&&(()=>{let e=z.find(e=>L>=e.startTime&&L<e.endTime),t=e?Math.max(0,e.endTime-L):0,n=e?L-e.startTime:0,r=xn.find(e=>L>=e.startTimeSeconds&&L<e.startTimeSeconds+e.durationSeconds),i=r?r.skippable:qe,a=r?r.skipOffsetSeconds:Je,o=i&&n>=a,s=Math.ceil(a-n);return(0,u.jsxs)(u.Fragment,{children:[(0,u.jsxs)(`div`,{className:`sdk-ad-countdown`,role:`timer`,"aria-label":`Advertisement — ${Q(t)} remaining`,"aria-live":`off`,children:[(0,u.jsx)(`span`,{className:`sdk-ad-countdown-label`,"aria-hidden":`true`,children:`Ad`}),(0,u.jsx)(`span`,{className:`sdk-ad-countdown-sep`,"aria-hidden":`true`,children:`·`}),(0,u.jsx)(`span`,{className:`sdk-ad-countdown-time`,"aria-hidden":`true`,children:Q(t)})]}),i&&(0,u.jsx)(`button`,{className:`sdk-skip-ad-btn ${o?`sdk-skip-ad-btn--ready`:``}`,onClick:o?Kr:void 0,disabled:!o,"aria-label":o?`Skip advertisement`:`Skip advertisement available in ${s} seconds`,"aria-disabled":!o,children:o?`Skip Ad ›`:`Skip in ${s}s`}),r?.cta&&(()=>{let e=r.cta,t=(0,u.jsxs)(`button`,{className:`sdk-ad-cta-btn`,onClick:()=>Yr(e),"aria-label":`${e.text} — opens advertiser site in a new tab`,children:[(0,u.jsx)(`span`,{className:`sdk-ad-cta-btn-text`,children:e.text}),(0,u.jsx)(me,{size:15,"aria-hidden":`true`})]});return(0,u.jsx)(`div`,{className:`sdk-ad-cta`,role:`complementary`,"aria-label":`Advertisement call to action`,children:e.title?(0,u.jsxs)(`div`,{className:`sdk-ad-cta-card`,children:[(0,u.jsxs)(`div`,{className:`sdk-ad-cta-info`,children:[(0,u.jsx)(`div`,{className:`sdk-ad-cta-title`,children:e.title}),e.description&&(0,u.jsx)(`div`,{className:`sdk-ad-cta-desc`,children:e.description})]}),t]}):t})})()]})})(),kt&&(0,u.jsx)(`div`,{style:{position:`absolute`,inset:0,display:`flex`,alignItems:`center`,justifyContent:`center`,background:`rgba(0,0,0,0.72)`,color:`#fff`,zIndex:60},children:(0,u.jsxs)(`div`,{style:{maxWidth:480,textAlign:`center`,padding:24},children:[(0,u.jsx)(`h3`,{style:{margin:`0 0 8px`},children:`Playback restricted`}),(0,u.jsx)(`p`,{style:{margin:0},children:`Your account is missing a required license key. Please contact your administrator.`})]})}),(J||or)&&(0,u.jsx)(`div`,{className:`sdk-cast-bg`}),Xt&&(0,u.jsxs)(`div`,{className:`sdk-mobile-overlay ${Cr?`active`:``}`,onClick:si,children:[Tt&&(0,u.jsx)(`div`,{className:`sdk-mobile-doubletap ${Tt}`,children:(0,u.jsxs)(`div`,{className:`sdk-mobile-doubletap-icon`,children:[Tt===`left`?(0,u.jsx)(Se,{size:26}):(0,u.jsx)(Ce,{size:26}),(0,u.jsx)(`span`,{className:`sdk-mobile-doubletap-label`,children:`10s`})]})}),ae&&(0,u.jsxs)(u.Fragment,{children:[(0,u.jsxs)(`div`,{className:`sdk-mobile-header sdk-mobile-ctrl`,children:[(0,u.jsxs)(`div`,{className:`sdk-mobile-header-left`,children:[(Gt||R)&&(0,u.jsx)(`button`,{className:`sdk-mobile-back-btn`,onClick:Gr,"aria-label":`Exit fullscreen`,children:(0,u.jsx)(pe,{size:22,"aria-hidden":`true`})}),(He||xr)&&(0,u.jsx)(`div`,{className:`sdk-mobile-title`,children:He||xr})]}),(0,u.jsxs)(`div`,{className:`sdk-mobile-header-actions`,children:[I.enablePiP&&(0,u.jsx)(`button`,{className:`sdk-mobile-hdr-btn`,onClick:()=>{X||Wr()},style:{color:Zt?s:``},"aria-label":Zt?`Exit picture-in-picture`:`Enter picture-in-picture`,"aria-pressed":Zt,children:(0,u.jsx)(be,{size:20,"aria-hidden":`true`})}),I.enableChromecast&&!X&&(0,u.jsx)(`button`,{className:`sdk-mobile-hdr-btn`,onClick:Xr,title:J?`Casting to ${J} — tap to disconnect`:`Cast to device`,"aria-label":J?`Stop casting to ${J}`:`Cast to device`,"aria-pressed":!!J,style:{color:J?`#3b82f6`:``},children:(0,u.jsx)(fe,{size:20,fill:J?`currentColor`:`none`,"aria-hidden":`true`})}),I.allowAirplay&&ir&&(0,u.jsx)(`button`,{className:`sdk-mobile-hdr-btn`,onClick:Zr,"aria-label":or?`Stop AirPlay to ${cr||`device`}`:`AirPlay to device`,"aria-pressed":or,style:{color:or?s:``},children:(0,u.jsx)(ue,{size:20,"aria-hidden":`true`})})]})]}),(0,u.jsxs)(`div`,{className:`sdk-mobile-center-controls sdk-mobile-ctrl`,children:[!X&&(0,u.jsxs)(`button`,{className:`sdk-mobile-seek-btn`,onClick:()=>Z(U(Math.max(0,H(ri)-10)),{eventType:`fast_backward`,skipSeconds:10}),"aria-label":`Rewind 10 seconds`,children:[(0,u.jsx)(Se,{size:22,"aria-hidden":`true`}),(0,u.jsx)(`span`,{className:`sdk-mobile-seek-label`,"aria-hidden":`true`,children:`10`})]}),(0,u.jsx)(`button`,{className:`sdk-mobile-play-btn`,onClick:Fr,"aria-label":$t?`Replay`:ni?`Pause`:`Play`,children:$t?(0,u.jsx)(Se,{size:38,"aria-hidden":`true`}):ni?(0,u.jsx)(m,{size:38,fill:`currentColor`,"aria-hidden":`true`}):(0,u.jsx)(xe,{size:38,fill:`currentColor`,style:{marginLeft:`3px`},"aria-hidden":`true`})}),!X&&(0,u.jsxs)(`button`,{className:`sdk-mobile-seek-btn`,onClick:()=>Z(U(Math.min(V,H(ri)+10)),{eventType:`fast_forward`,skipSeconds:10}),"aria-label":`Skip forward 10 seconds`,children:[(0,u.jsx)(Ce,{size:22,"aria-hidden":`true`}),(0,u.jsx)(`span`,{className:`sdk-mobile-seek-label`,"aria-hidden":`true`,children:`10`})]})]}),(0,u.jsxs)(`div`,{className:`sdk-mobile-bottom-bar sdk-mobile-ctrl`,children:[I.enableKeyMoments&&Wn&&G.length>0&&(0,u.jsx)(`div`,{className:`sdk-mobile-chapters-scroll`,children:G.map((e,t)=>{let n=zn.index===t;return(0,u.jsxs)(`div`,{role:`button`,tabIndex:0,className:`sdk-mobile-chapter-card${n?` active`:``}`,style:{borderColor:n?s:void 0},"aria-label":`${e.title}, ${Q(e.startTime)}${n?`, current chapter`:``}`,"aria-current":n?`true`:void 0,onClick:()=>{Ur(e.startTime,e)},onKeyDown:li(()=>Ur(e.startTime,e)),children:[(0,u.jsxs)(`div`,{className:`sdk-mobile-chapter-thumb`,children:[Kn[t]||e.thumbnail?(0,u.jsx)(`img`,{src:Kn[t]||e.thumbnail,alt:``,"aria-hidden":`true`,style:{width:`100%`,height:`100%`,objectFit:`cover`,display:`block`}}):(0,u.jsx)(_e,{size:16,"aria-hidden":`true`,style:{color:n?s:`rgba(255,255,255,0.3)`}}),(0,u.jsx)(`span`,{className:`sdk-mobile-chapter-time-badge`,"aria-hidden":`true`,children:Q(e.startTime)})]}),(0,u.jsx)(`div`,{className:`sdk-mobile-chapter-title`,style:{color:n?s:void 0},children:e.title})]},t)})}),(0,u.jsx)(`div`,{ref:S,role:X?void 0:`slider`,"aria-label":X?void 0:`Seek`,"aria-valuemin":X?void 0:0,"aria-valuemax":X?void 0:Math.round(V),"aria-valuenow":X?void 0:Math.round(H(Y===null?L:Y)),"aria-valuetext":X?void 0:`${Q(H(Y===null?L:Y))} of ${Q(V)}`,tabIndex:X?void 0:0,className:`sdk-seekbar-container sdk-mobile-seekbar${X?` sdk-ad-mode`:``}`,onMouseDown:X?void 0:Lr,onMouseMove:X?void 0:Qr,onMouseLeave:X?void 0:ti,onTouchStart:X?void 0:ei,onKeyDown:X?void 0:ui,style:{pointerEvents:X?`none`:void 0,touchAction:`none`},children:X?(0,u.jsx)(`div`,{className:`sdk-ad-progress-fill`,style:{width:(()=>{let e=N?N.getCurrentTime():L,t=z.find(t=>e>=t.startTime&&e<t.endTime);return t?`${Math.min(100,Math.max(0,(e-t.startTime)/(t.endTime-t.startTime)*100))}%`:`0%`})()}}):(0,u.jsxs)(u.Fragment,{children:[(0,u.jsx)(`div`,{className:`sdk-seekbar-buffered`,style:{width:`${Lt?(N&&N.getBufferedRanges()[0]?.end||0)/Lt*100:0}%`}}),V>0&&z.filter(e=>!an.has(e.startTime)).map((e,t)=>(0,u.jsx)(`div`,{className:`sdk-seekbar-adbreak`,style:{left:`${H(e.startTime)/V*100}%`,width:`3px`}},t)),(0,u.jsx)(`div`,{className:`sdk-seekbar-progress`,style:{width:J?`${ii>0?ri/ii*100:0}%`:`${V?H(Y===null?L:Y)/V*100:0}%`,background:`#ffffff`,boxShadow:`none`},children:(0,u.jsx)(`div`,{className:`sdk-seekbar-handle`,style:{opacity:1,transform:`scale(1)`}})}),I.enableKeyMoments&&G.map((e,t)=>V===0?null:(0,u.jsx)(`div`,{className:`sdk-seekbar-chapter-marker sdk-desktop-chapter-dot`,style:{left:`${H(e.startTime)/V*100}%`}},t))]})}),(0,u.jsxs)(`div`,{className:`sdk-mobile-controls-row`,children:[!X&&(0,u.jsx)(`span`,{className:`sdk-time-display`,children:J?`${Q(ri)} / ${Q(ii)}`:`${Q(H(Y===null?L:Y))} / ${Q(V)}`}),(0,u.jsxs)(`div`,{className:`sdk-mobile-bottom-icons`,children:[I.enableKeyMoments&&G.length>0&&!X&&(0,u.jsx)(`button`,{className:`sdk-mobile-icon-btn${Wn?` active`:``}`,onClick:()=>{Gn(!Wn)},"aria-label":Wn?`Hide chapters`:`Show chapters`,"aria-pressed":Wn,children:(0,u.jsx)(_e,{size:18,"aria-hidden":`true`})}),I.enableSubtitles&&!X&&Nn.some(e=>!e.isNative)&&(0,u.jsxs)(`div`,{className:`sdk-menu-container`,children:[(0,u.jsx)(`button`,{className:`sdk-mobile-icon-btn${W===`off`?``:` active`}`,onClick:()=>{di(`subtitles`)},"aria-label":`Captions`,"aria-haspopup":`listbox`,"aria-expanded":K===`subtitles`,children:(0,u.jsx)(de,{size:18,"aria-hidden":`true`})}),K===`subtitles`&&(0,u.jsxs)(`div`,{ref:fi,className:`sdk-dropup-menu`,role:`listbox`,"aria-label":`Captions`,children:[(0,u.jsx)(`div`,{className:`sdk-dropup-header`,"aria-hidden":`true`,children:`Subtitles`}),(0,u.jsxs)(`div`,{role:`option`,"aria-selected":W===`off`,tabIndex:0,className:`sdk-dropup-item ${W===`off`?`active`:``}`,onClick:()=>Vr(`off`),onKeyDown:$(()=>Vr(`off`)),children:[(0,u.jsx)(`span`,{children:`Off`}),W===`off`&&(0,u.jsx)(p,{size:12,"aria-hidden":`true`})]}),Nn.map(e=>(0,u.jsxs)(`div`,{role:`option`,"aria-selected":W===e.id,tabIndex:0,className:`sdk-dropup-item ${W===e.id?`active`:``}`,onClick:()=>Vr(e.id),onKeyDown:$(()=>Vr(e.id)),children:[(0,u.jsx)(`span`,{children:g(e)}),W===e.id&&(0,u.jsx)(p,{size:12,"aria-hidden":`true`})]},e.id))]})]}),I.allowMultipleAudio&&Fn.length>1&&!X&&(0,u.jsxs)(`div`,{className:`sdk-menu-container`,children:[(0,u.jsx)(`button`,{className:`sdk-mobile-icon-btn${K===`audio`?` active`:``}`,onClick:()=>{di(`audio`)},"aria-label":`Audio track`,"aria-haspopup":`listbox`,"aria-expanded":K===`audio`,children:(0,u.jsx)(ge,{size:18,"aria-hidden":`true`})}),K===`audio`&&(0,u.jsxs)(`div`,{ref:fi,className:`sdk-dropup-menu`,role:`listbox`,"aria-label":`Audio track`,children:[(0,u.jsx)(`div`,{className:`sdk-dropup-header`,"aria-hidden":`true`,children:`Audio Track`}),Fn.map(e=>(0,u.jsxs)(`div`,{role:`option`,"aria-selected":Ln===e.id,tabIndex:0,className:`sdk-dropup-item ${Ln===e.id?`active`:``}`,onClick:()=>{N?.setAudioTrack(e.id),Rn(e.id),q(`none`),Yn(`Audio: ${g(e)}`)},onKeyDown:$(()=>{N?.setAudioTrack(e.id),Rn(e.id),q(`none`),Yn(`Audio: ${g(e)}`)}),children:[(0,u.jsx)(`span`,{children:g(e)}),Ln===e.id&&(0,u.jsx)(p,{size:12,"aria-hidden":`true`})]},e.id))]})]}),I.enablePlaybackSpeed&&!X&&(0,u.jsxs)(`div`,{className:`sdk-menu-container`,children:[(0,u.jsx)(`button`,{className:`sdk-mobile-icon-btn${K===`speed`?` active`:``}`,onClick:()=>{di(`speed`)},"aria-label":`Playback speed`,"aria-haspopup":`listbox`,"aria-expanded":K===`speed`,children:(0,u.jsx)(he,{size:18,"aria-hidden":`true`})}),K===`speed`&&(0,u.jsxs)(`div`,{ref:fi,className:`sdk-dropup-menu`,role:`listbox`,"aria-label":`Playback speed`,children:[(0,u.jsx)(`div`,{className:`sdk-dropup-header`,"aria-hidden":`true`,children:`Speed`}),[.5,.75,1,1.25,1.5,2].map(e=>(0,u.jsxs)(`div`,{role:`option`,"aria-selected":Hn===e,tabIndex:0,className:`sdk-dropup-item ${Hn===e?`active`:``}`,onClick:()=>zr(e),onKeyDown:$(()=>zr(e)),children:[(0,u.jsx)(`span`,{children:e===1?`Normal`:`${e}x`}),Hn===e&&(0,u.jsx)(p,{size:12,"aria-hidden":`true`})]},e))]})]}),I.enableQuality&&!X&&(0,u.jsxs)(`div`,{className:`sdk-menu-container`,children:[(0,u.jsx)(`button`,{className:`sdk-mobile-icon-btn${On.id===-1?``:` active`}`,onClick:()=>{di(`quality`)},"aria-label":`Video quality`,"aria-haspopup":`listbox`,"aria-expanded":K===`quality`,children:(0,u.jsx)(h,{size:18,"aria-hidden":`true`})}),K===`quality`&&(0,u.jsxs)(`div`,{ref:fi,className:`sdk-dropup-menu large`,role:`listbox`,"aria-label":`Video quality`,children:[(0,u.jsx)(`div`,{className:`sdk-dropup-header`,"aria-hidden":`true`,children:`Quality`}),En.map(e=>(0,u.jsxs)(`div`,{role:`option`,"aria-selected":On.id===e.id,tabIndex:0,className:`sdk-dropup-item ${On.id===e.id?`active`:``}`,onClick:()=>Br(e.id),onKeyDown:$(()=>Br(e.id)),children:[(0,u.jsx)(`span`,{children:e.label}),On.id===e.id&&(0,u.jsx)(p,{size:12,"aria-hidden":`true`})]},e.id))]})]}),v&&v.length>1&&!X&&(0,u.jsxs)(`div`,{className:`sdk-menu-container`,children:[(0,u.jsx)(`button`,{className:`sdk-mobile-icon-btn${K===`sources`?` active`:``}`,onClick:()=>{di(`sources`)},"aria-label":`Select source`,"aria-haspopup":`listbox`,"aria-expanded":K===`sources`,children:(0,u.jsx)(Me,{size:18,"aria-hidden":`true`})}),K===`sources`&&(0,u.jsxs)(`div`,{ref:fi,className:`sdk-dropup-menu`,role:`listbox`,"aria-label":`Select source`,children:[(0,u.jsx)(`div`,{className:`sdk-dropup-header`,"aria-hidden":`true`,children:`Source`}),v.map((e,t)=>(0,u.jsxs)(`div`,{role:`option`,"aria-selected":Ze===t,tabIndex:0,className:`sdk-dropup-item ${Ze===t?`active`:``}`,onClick:()=>Hr(t),onKeyDown:$(()=>Hr(t)),children:[(0,u.jsx)(`span`,{children:e.label}),Ze===t&&(0,u.jsx)(p,{size:12,"aria-hidden":`true`})]},t))]})]}),(0,u.jsx)(`button`,{className:`sdk-mobile-icon-btn`,onClick:Gr,"aria-label":Gt||R?`Exit fullscreen`:`Enter fullscreen`,"aria-pressed":Gt||R,children:Gt?(0,u.jsx)(ye,{size:18,"aria-hidden":`true`}):(0,u.jsx)(ve,{size:18,"aria-hidden":`true`})})]})]})]})]})]}),!Xt&&(0,u.jsxs)(`div`,{className:`sdk-controls-overlay`,onClick:e=>{X||e.target.closest(`.sdk-desktop-header`)||e.target.closest(`.sdk-desktop-center-controls`)||e.target.closest(`.sdk-desktop-bottom`)||Fr()},children:[(0,u.jsxs)(`div`,{className:`sdk-desktop-header`,children:[(0,u.jsxs)(`div`,{className:`sdk-desktop-header-left`,children:[(Gt||R)&&(0,u.jsx)(`button`,{className:`sdk-desktop-back-btn`,onClick:e=>{e.stopPropagation(),Gr()},"aria-label":`Exit fullscreen`,children:(0,u.jsx)(pe,{size:22,"aria-hidden":`true`})}),(He||xr)&&(0,u.jsx)(`span`,{className:`sdk-desktop-title`,children:He||xr})]}),(0,u.jsxs)(`div`,{className:`sdk-desktop-header-right`,children:[I.enableChromecast&&!X&&(0,u.jsx)(`button`,{className:`sdk-desktop-hdr-btn`,onClick:e=>{e.stopPropagation(),Xr()},title:J?`Casting to ${J} — click to disconnect`:`Cast to device`,"aria-label":J?`Stop casting to ${J}`:`Cast to device`,"aria-pressed":!!J,style:{color:J?`#3b82f6`:``},children:(0,u.jsx)(fe,{size:20,fill:J?`currentColor`:`none`,"aria-hidden":`true`})}),J&&(0,u.jsxs)(`span`,{className:`sdk-cast-indicator`,"aria-hidden":`true`,children:[(0,u.jsx)(fe,{size:10,fill:`currentColor`,"aria-hidden":`true`}),J]}),I.allowAirplay&&ir&&(0,u.jsx)(`button`,{className:`sdk-desktop-hdr-btn`,onClick:e=>{e.stopPropagation(),Zr()},title:or?`AirPlay to ${cr||`device`} — click to disconnect`:`AirPlay to device`,"aria-label":or?`Stop AirPlay to ${cr||`device`}`:`AirPlay to device`,"aria-pressed":or,style:{color:or?s:``},children:(0,u.jsx)(ue,{size:20,"aria-hidden":`true`})})]})]}),ae&&(0,u.jsxs)(u.Fragment,{children:[(0,u.jsxs)(`div`,{className:`sdk-desktop-center-controls`,style:{pointerEvents:`none`},children:[!X&&(0,u.jsx)(`button`,{className:`sdk-desktop-seek-btn`,style:{pointerEvents:`auto`},onClick:e=>{e.stopPropagation(),Z(U(Math.max(0,H(ri)-10)),{eventType:`fast_backward`,skipSeconds:10})},title:`Rewind 10s`,"aria-label":`Rewind 10 seconds`,children:(0,u.jsxs)(`div`,{style:{position:`relative`,display:`flex`,alignItems:`center`,justifyContent:`center`},children:[(0,u.jsx)(Se,{size:30,"aria-hidden":`true`}),(0,u.jsx)(`span`,{className:`sdk-desktop-seek-label`,"aria-hidden":`true`,children:`10`})]})}),(0,u.jsx)(`button`,{className:`sdk-desktop-play-btn`,style:{pointerEvents:`auto`},onClick:e=>{e.stopPropagation(),Fr()},title:$t?`Replay`:ni?`Pause`:`Play`,"aria-label":$t?`Replay`:ni?`Pause`:`Play`,children:$t?(0,u.jsx)(Se,{size:38,"aria-hidden":`true`}):ni?(0,u.jsx)(m,{size:38,fill:`currentColor`,"aria-hidden":`true`}):(0,u.jsx)(xe,{size:38,fill:`currentColor`,style:{marginLeft:`4px`},"aria-hidden":`true`})}),!X&&(0,u.jsx)(`button`,{className:`sdk-desktop-seek-btn`,style:{pointerEvents:`auto`},onClick:e=>{e.stopPropagation(),Z(U(Math.min(V,H(ri)+10)),{eventType:`fast_forward`,skipSeconds:10})},title:`Forward 10s`,"aria-label":`Skip forward 10 seconds`,children:(0,u.jsxs)(`div`,{style:{position:`relative`,display:`flex`,alignItems:`center`,justifyContent:`center`},children:[(0,u.jsx)(Ce,{size:30,"aria-hidden":`true`}),(0,u.jsx)(`span`,{className:`sdk-desktop-seek-label`,"aria-hidden":`true`,children:`10`})]})})]}),I.enableKeyMoments&&Wn&&G.length>0&&Ue===`panel`&&(0,u.jsxs)(`div`,{className:`sdk-chapters-panel`,onClick:e=>e.stopPropagation(),children:[(0,u.jsx)(`div`,{className:`sdk-chapters-panel-header`,children:(0,u.jsx)(`span`,{className:`sdk-chapters-panel-title`,children:`Chapters`})}),(0,u.jsx)(`div`,{className:`sdk-chapters-panel-list`,children:G.map((e,t)=>{let n=zn.index===t;return(0,u.jsxs)(`div`,{role:`button`,tabIndex:0,className:`sdk-chapters-panel-item${n?` active`:``}`,"aria-label":`${e.title}, ${Q(e.startTime)}${n?`, current chapter`:``}`,"aria-current":n?`true`:void 0,onClick:()=>Ur(e.startTime,e),onKeyDown:li(()=>Ur(e.startTime,e)),children:[(0,u.jsx)(`div`,{className:`sdk-chapters-panel-thumb`,children:Kn[t]||e.thumbnail?(0,u.jsx)(`img`,{src:Kn[t]||e.thumbnail,alt:``,"aria-hidden":`true`,style:{width:`100%`,height:`100%`,objectFit:`cover`,display:`block`}}):(0,u.jsx)(_e,{size:18,"aria-hidden":`true`,style:{color:`rgba(255,255,255,0.3)`}})}),(0,u.jsxs)(`div`,{className:`sdk-chapters-panel-info`,children:[(0,u.jsx)(`div`,{className:`sdk-chapters-panel-item-title`,children:e.title}),e.description&&(0,u.jsx)(`div`,{className:`sdk-chapters-panel-item-desc`,children:e.description}),(0,u.jsx)(`div`,{className:`sdk-chapters-panel-item-time`,"aria-hidden":`true`,children:Q(e.startTime)})]})]},t)})})]}),(0,u.jsxs)(`div`,{className:`sdk-desktop-bottom`,children:[I.enableKeyMoments&&Wn&&G.length>0&&Ue===`strip`&&(0,u.jsx)(`div`,{className:`sdk-desktop-chapters-strip`,children:G.map((e,t)=>{let n=zn.index===t;return(0,u.jsxs)(`div`,{role:`button`,tabIndex:0,className:`sdk-desktop-chapter-card${n?` active`:``}`,"aria-label":`${e.title}, ${Q(e.startTime)}${n?`, current chapter`:``}`,"aria-current":n?`true`:void 0,onClick:t=>{t.stopPropagation(),Ur(e.startTime,e)},onKeyDown:li(()=>Ur(e.startTime,e)),children:[(0,u.jsx)(`div`,{className:`sdk-desktop-chapter-thumb`,children:Kn[t]||e.thumbnail?(0,u.jsx)(`img`,{src:Kn[t]||e.thumbnail,alt:``,"aria-hidden":`true`,style:{width:`100%`,height:`100%`,objectFit:`cover`,display:`block`}}):(0,u.jsx)(_e,{size:18,"aria-hidden":`true`,style:{color:`rgba(255,255,255,0.35)`}})}),(0,u.jsx)(`div`,{className:`sdk-desktop-chapter-title`,children:e.title}),(0,u.jsx)(`div`,{className:`sdk-desktop-chapter-time`,"aria-hidden":`true`,children:Q(e.startTime)})]},t)})}),(0,u.jsx)(`div`,{ref:S,role:X?void 0:`slider`,"aria-label":X?void 0:`Seek`,"aria-valuemin":X?void 0:0,"aria-valuemax":X?void 0:Math.round(V),"aria-valuenow":X?void 0:Math.round(H(Y===null?L:Y)),"aria-valuetext":X?void 0:`${Q(H(Y===null?L:Y))} of ${Q(V)}`,tabIndex:X?void 0:0,className:`sdk-seekbar-container sdk-desktop-seekbar${X?` sdk-ad-mode`:``}`,onMouseDown:X?void 0:Lr,onMouseMove:X?void 0:Qr,onMouseLeave:X?void 0:ti,onTouchStart:X?void 0:ei,onKeyDown:X?void 0:ui,style:{pointerEvents:X?`none`:void 0},children:X?(0,u.jsx)(`div`,{className:`sdk-ad-progress-fill`,style:{width:(()=>{let e=N?N.getCurrentTime():L,t=z.find(t=>e>=t.startTime&&e<t.endTime);return t?`${Math.min(100,Math.max(0,(e-t.startTime)/(t.endTime-t.startTime)*100))}%`:`0%`})()}}):(0,u.jsxs)(u.Fragment,{children:[(0,u.jsx)(`div`,{className:`sdk-seekbar-buffered`,style:{width:`${Lt?(N&&N.getBufferedRanges()[0]?.end||0)/Lt*100:0}%`}}),V>0&&z.filter(e=>!an.has(e.startTime)).map((e,t)=>(0,u.jsx)(`div`,{className:`sdk-seekbar-adbreak`,style:{left:`${H(e.startTime)/V*100}%`,width:`3px`}},t)),(0,u.jsx)(`div`,{className:`sdk-seekbar-progress`,style:{width:J?`${ii>0?ri/ii*100:0}%`:`${V?H(Y===null?L:Y)/V*100:0}%`,background:`#ffffff`,boxShadow:`none`},children:(0,u.jsx)(`div`,{className:`sdk-seekbar-handle`})}),I.enableKeyMoments&&G.map((e,t)=>V===0?null:(0,u.jsx)(`div`,{className:`sdk-seekbar-chapter-marker sdk-desktop-chapter-dot`,style:{left:`${H(e.startTime)/V*100}%`}},t)),ur!==null&&gr&&(0,u.jsxs)(`div`,{className:`sdk-thumbnail-tooltip`,style:{left:`${fr}px`},children:[(0,u.jsx)(`div`,{className:`sdk-thumbnail-preview`,children:(0,u.jsx)(`img`,{src:gr,alt:`preview`,style:{width:`100%`,height:`100%`,objectFit:`cover`,borderRadius:`8px`,display:`block`}})}),vr&&(0,u.jsx)(`div`,{className:`sdk-thumbnail-chapter-name`,children:vr.title}),(0,u.jsx)(`div`,{className:`sdk-thumbnail-time-label`,children:Q(H(mr))})]})]})}),(0,u.jsxs)(`div`,{className:`sdk-desktop-controls-row`,children:[(0,u.jsxs)(`div`,{className:`sdk-desktop-left-controls`,children:[!X&&(0,u.jsx)(`div`,{className:`sdk-time-display`,children:J?`${Q(ri)} / ${Q(ii)}`:`${Q(H(Y===null?L:Y))} / ${Q(V)}`}),We===`slider`&&(0,u.jsxs)(`div`,{className:`sdk-volume-control`,children:[(0,u.jsx)(`button`,{className:`sdk-desktop-icon-btn`,onClick:e=>{e.stopPropagation(),Rr()},title:oi?`Unmute`:`Mute`,"aria-label":oi?`Unmute`:`Mute`,"aria-pressed":oi,children:ci()}),(0,u.jsx)(`input`,{type:`range`,className:`sdk-volume-slider`,min:0,max:1,step:.02,value:oi?0:ai,"aria-label":`Volume`,"aria-valuetext":oi?`Muted`:`${Math.round(ai*100)}%`,style:{"--vol-pct":Math.round((oi?0:ai)*100)},onChange:e=>{let t=parseFloat(e.target.value);J?(N?.casting.remoteSetVolume(t),t>0&&N?.casting.remoteSetMute(!1)):(N?.setVolume(t),t>0&&Vt&&N?.setMute(!1))},onClick:e=>e.stopPropagation()})]})]}),(0,u.jsxs)(`div`,{className:`sdk-desktop-right-icons`,children:[I.enableKeyMoments&&G.length>0&&!X&&(0,u.jsx)(`button`,{className:`sdk-desktop-icon-btn${Wn?` active`:``}`,onClick:e=>{e.stopPropagation(),Gn(!Wn)},title:`Key Moments`,"aria-label":Wn?`Hide chapters`:`Show chapters`,"aria-pressed":Wn,children:(0,u.jsx)(_e,{size:20,"aria-hidden":`true`})}),I.enableSubtitles&&!X&&Nn.some(e=>!e.isNative)&&(0,u.jsxs)(`div`,{className:`sdk-menu-container`,children:[(0,u.jsx)(`button`,{className:`sdk-desktop-icon-btn${W===`off`?``:` active`}`,onClick:e=>{e.stopPropagation(),di(`subtitles`)},title:`Captions`,"aria-label":`Captions`,"aria-haspopup":`listbox`,"aria-expanded":K===`subtitles`,children:(0,u.jsx)(de,{size:20,"aria-hidden":`true`})}),K===`subtitles`&&(0,u.jsxs)(`div`,{ref:fi,className:`sdk-dropup-menu`,role:`listbox`,"aria-label":`Captions`,children:[(0,u.jsx)(`div`,{className:`sdk-dropup-header`,"aria-hidden":`true`,children:`Subtitles`}),(0,u.jsxs)(`div`,{role:`option`,"aria-selected":W===`off`,tabIndex:0,className:`sdk-dropup-item ${W===`off`?`active`:``}`,onClick:()=>Vr(`off`),onKeyDown:$(()=>Vr(`off`)),children:[(0,u.jsx)(`span`,{children:`Off`}),W===`off`&&(0,u.jsx)(p,{size:12,"aria-hidden":`true`})]}),Nn.map(e=>(0,u.jsxs)(`div`,{role:`option`,"aria-selected":W===e.id,tabIndex:0,className:`sdk-dropup-item ${W===e.id?`active`:``}`,onClick:()=>Vr(e.id),onKeyDown:$(()=>Vr(e.id)),children:[(0,u.jsx)(`span`,{children:g(e)}),W===e.id&&(0,u.jsx)(p,{size:12,"aria-hidden":`true`})]},e.id))]})]}),I.allowMultipleAudio&&Fn.length>1&&!X&&(0,u.jsxs)(`div`,{className:`sdk-menu-container`,children:[(0,u.jsx)(`button`,{className:`sdk-desktop-icon-btn${K===`audio`?` active`:``}`,onClick:e=>{e.stopPropagation(),di(`audio`)},title:`Audio Track`,"aria-label":`Audio track`,"aria-haspopup":`listbox`,"aria-expanded":K===`audio`,children:(0,u.jsx)(ge,{size:20,"aria-hidden":`true`})}),K===`audio`&&(0,u.jsxs)(`div`,{ref:fi,className:`sdk-dropup-menu`,role:`listbox`,"aria-label":`Audio track`,children:[(0,u.jsx)(`div`,{className:`sdk-dropup-header`,"aria-hidden":`true`,children:`Audio Track`}),Fn.map(e=>(0,u.jsxs)(`div`,{role:`option`,"aria-selected":Ln===e.id,tabIndex:0,className:`sdk-dropup-item ${Ln===e.id?`active`:``}`,onClick:()=>{N?.setAudioTrack(e.id),Rn(e.id),q(`none`),Yn(`Audio: ${g(e)}`)},onKeyDown:$(()=>{N?.setAudioTrack(e.id),Rn(e.id),q(`none`),Yn(`Audio: ${g(e)}`)}),children:[(0,u.jsx)(`span`,{children:g(e)}),Ln===e.id&&(0,u.jsx)(p,{size:12,"aria-hidden":`true`})]},e.id))]})]}),I.enablePlaybackSpeed&&!X&&(0,u.jsxs)(`div`,{className:`sdk-menu-container`,children:[(0,u.jsx)(`button`,{className:`sdk-desktop-icon-btn${K===`speed`?` active`:``}`,onClick:e=>{e.stopPropagation(),di(`speed`)},title:`Playback Speed`,"aria-label":`Playback speed`,"aria-haspopup":`listbox`,"aria-expanded":K===`speed`,children:(0,u.jsx)(he,{size:20,"aria-hidden":`true`})}),K===`speed`&&(0,u.jsxs)(`div`,{ref:fi,className:`sdk-dropup-menu`,role:`listbox`,"aria-label":`Playback speed`,children:[(0,u.jsx)(`div`,{className:`sdk-dropup-header`,"aria-hidden":`true`,children:`Speed`}),[.5,.75,1,1.25,1.5,2].map(e=>(0,u.jsxs)(`div`,{role:`option`,"aria-selected":Hn===e,tabIndex:0,className:`sdk-dropup-item ${Hn===e?`active`:``}`,onClick:()=>zr(e),onKeyDown:$(()=>zr(e)),children:[(0,u.jsx)(`span`,{children:e===1?`Normal`:`${e}x`}),Hn===e&&(0,u.jsx)(p,{size:12,"aria-hidden":`true`})]},e))]})]}),I.enableQuality&&!X&&(0,u.jsxs)(`div`,{className:`sdk-menu-container`,children:[(0,u.jsx)(`button`,{className:`sdk-desktop-icon-btn${On.id===-1?``:` active`}`,onClick:e=>{e.stopPropagation(),di(`quality`)},title:`Quality`,"aria-label":`Video quality`,"aria-haspopup":`listbox`,"aria-expanded":K===`quality`,children:(0,u.jsx)(h,{size:20,"aria-hidden":`true`})}),K===`quality`&&(0,u.jsxs)(`div`,{ref:fi,className:`sdk-dropup-menu large`,role:`listbox`,"aria-label":`Video quality`,children:[(0,u.jsx)(`div`,{className:`sdk-dropup-header`,"aria-hidden":`true`,children:`Quality`}),En.map(e=>(0,u.jsxs)(`div`,{role:`option`,"aria-selected":On.id===e.id,tabIndex:0,className:`sdk-dropup-item ${On.id===e.id?`active`:``}`,onClick:()=>Br(e.id),onKeyDown:$(()=>Br(e.id)),children:[(0,u.jsx)(`span`,{children:e.label}),On.id===e.id&&(0,u.jsx)(p,{size:12,"aria-hidden":`true`})]},e.id))]})]}),v&&v.length>1&&!X&&(0,u.jsxs)(`div`,{className:`sdk-menu-container`,children:[(0,u.jsx)(`button`,{className:`sdk-desktop-icon-btn${K===`sources`?` active`:``}`,onClick:e=>{e.stopPropagation(),di(`sources`)},title:`Select Source`,"aria-label":`Select source`,"aria-haspopup":`listbox`,"aria-expanded":K===`sources`,children:(0,u.jsx)(Me,{size:20,"aria-hidden":`true`})}),K===`sources`&&(0,u.jsxs)(`div`,{ref:fi,className:`sdk-dropup-menu`,role:`listbox`,"aria-label":`Select source`,children:[(0,u.jsx)(`div`,{className:`sdk-dropup-header`,"aria-hidden":`true`,children:`Source`}),v.map((e,t)=>(0,u.jsxs)(`div`,{role:`option`,"aria-selected":Ze===t,tabIndex:0,className:`sdk-dropup-item ${Ze===t?`active`:``}`,onClick:()=>Hr(t),onKeyDown:$(()=>Hr(t)),children:[(0,u.jsx)(`span`,{children:e.label}),Ze===t&&(0,u.jsx)(p,{size:12,"aria-hidden":`true`})]},t))]})]}),I.enablePiP&&!X&&(0,u.jsx)(`button`,{className:`sdk-desktop-icon-btn${Zt?` active`:``}`,onClick:e=>{e.stopPropagation(),Wr()},title:`Picture-in-Picture`,"aria-label":Zt?`Exit picture-in-picture`:`Enter picture-in-picture`,"aria-pressed":Zt,children:(0,u.jsx)(be,{size:20,"aria-hidden":`true`})}),We===`button`&&(0,u.jsx)(`button`,{className:`sdk-desktop-icon-btn`,onClick:e=>{e.stopPropagation(),Rr()},title:oi?`Unmute`:`Mute`,"aria-label":oi?`Unmute`:`Mute`,"aria-pressed":oi,children:ci()}),Fe&&(0,u.jsx)(`button`,{className:`sdk-desktop-icon-btn`,onClick:e=>{e.stopPropagation(),Gr()},title:Gt||R?`Exit fullscreen`:`Fullscreen`,"aria-label":Gt||R?`Exit fullscreen`:`Enter fullscreen`,"aria-pressed":Gt||R,children:Gt?(0,u.jsx)(ye,{size:20,"aria-hidden":`true`}):(0,u.jsx)(ve,{size:20,"aria-hidden":`true`})})]})]})]})]})]})]})},ze=`https://dev-api.go-boss.com`;function _(e){return{"x-player-key":e,"Content-Type":`application/json`}}async function Be(e,t=ze){let n=await fetch(`${t}/api/player/sdk/init`,{method:`POST`,headers:_(e),body:JSON.stringify({})});if(!n.ok)throw Error(`SDK init failed: ${n.status}`);return await n.json()}async function Ve(e,t,n,r=ze){let i=await fetch(`${r}/api/player/sdk/session/start`,{method:`POST`,headers:_(e),body:JSON.stringify({sessionId:t,videoId:n})});if(!i.ok)throw Error(`Session start failed: ${i.status}`)}async function He(e,t,n,r,i=ze){let a={sessionId:t,currentTime:n,duration:r},o=await fetch(`${i}/api/player/sdk/session/heartbeat`,{method:`POST`,headers:_(e),body:JSON.stringify(a)});if(!o.ok)throw Error(`Heartbeat failed: ${o.status}`)}async function Ue(e,t,n=ze){let r=await fetch(`${n}/api/player/sdk/session/end`,{method:`POST`,headers:_(e),body:JSON.stringify({sessionId:t})});if(!r.ok)throw Error(`Session end failed: ${r.status}`)}async function We(e,t,n=ze){let r=await fetch(`${n}/api/player/sdk/events`,{method:`POST`,headers:_(e),body:JSON.stringify(t)});if(!r.ok)throw Error(`Event ${t.eventType} failed: ${r.status}`)}function Ge(e,t,n=ze){fetch(`${n}/api/player/sdk/session/end`,{method:`POST`,headers:_(e),body:JSON.stringify({sessionId:t}),keepalive:!0})}function Ke(){if(!(typeof screen>`u`))return screen.orientation?.type??void 0}var qe=class{constructor(){this.autoplay=!1,this.keyMoments=[],this.isPlaybackActive=!1,this.hasFinished=!1,this.hasDismissed=!1,this.lastCurrentTime=0,this.lastDuration=0,this.lastWatchDuration=0,this.prevSpeed=1,this.pendingSeek=null}setDelegate(e){this.delegate=e}setAutoplay(e){this.autoplay=e}setKeyMoments(e){this.keyMoments=e}handleAnalyticsEvent(e){switch(typeof e.currentTime==`number`&&!Number.isNaN(e.currentTime)&&(this.lastCurrentTime=e.currentTime),typeof e.duration==`number`&&!Number.isNaN(e.duration)&&(this.lastDuration=e.duration),typeof e.totalWatchTime==`number`&&(this.lastWatchDuration=e.totalWatchTime),e.eventType){case`play`:this.isPlaybackActive?this.call(`playerDidResumePlaying`,e.currentTime):(this.isPlaybackActive=!0,this.hasFinished=!1,this.call(`playerDidStartPlaying`,e.currentTime,this.autoplay));break;case`pause`:e.duration>0&&e.currentTime>=e.duration-.25||this.call(`playerDidPause`,e.currentTime);break;case`ended`:this.isPlaybackActive=!1,this.hasFinished=!0,this.call(`playerDidFinishPlaying`,e.currentTime,e.totalWatchTime??this.lastWatchDuration);break;case`seek`:this.beginSeek(e.seekFrom??this.lastCurrentTime,e.seekTo??e.currentTime);break;case`fast_forward`:this.beginSeek(Math.max(0,e.currentTime-(e.skipSeconds??10)),e.currentTime);break;case`fast_backward`:this.beginSeek(e.currentTime+(e.skipSeconds??10),e.currentTime);break;case`buffering_start`:this.call(`playerDidStartBuffering`,e.currentTime);break;case`buffering_end`:this.call(`playerDidFinishBuffering`,e.currentTime);break;case`quality_change`:{let t=e.rendition;t&&t!==this.prevQuality&&(this.call(`playerDidChangeQuality`,this.prevQuality,t,e.isAutoSwitch??!1),this.prevQuality=t);break}case`subtitle_change`:if(e.subtitleEnabled===!1)this.call(`playerDidDisableSubtitle`,this.prevSubtitle),this.prevSubtitle=void 0;else{let t=e.subtitleLanguage??``;this.call(`playerDidChangeSubtitle`,this.prevSubtitle,t),this.prevSubtitle=t}break;case`audio_track_change`:{let t=e.audioTrack??``;this.call(`playerDidChangeAudioTrack`,this.prevAudioTrack,t),this.prevAudioTrack=t;break}case`speed_change`:{let t=e.speed??1;t!==this.prevSpeed&&(this.call(`playerDidChangePlaybackSpeed`,this.prevSpeed,t),this.prevSpeed=t);break}case`fullscreen_enter`:this.call(`playerDidEnterFullscreen`,Ke());break;case`fullscreen_exit`:this.call(`playerDidExitFullscreen`,Ke());break;case`key_moments`:{let t=e.momentTitle??``,n=e.momentTime??e.currentTime,r=this.keyMoments,i=r.findIndex(e=>t&&e.title===t||e.startTime===n),a=i>=0?r[i]:void 0;this.call(`playerDidSelectKeyMoment`,i>=0?String(i):void 0,a?.title??t,a?.startTime??n,a?.endTime??n);break}case`pip_toggle`:(e.pipState?e.pipState===`entered`:e.errorMessage===`entered`)?this.call(`playerDidEnterPictureInPicture`,e.currentTime):this.call(`playerDidExitPictureInPicture`,e.currentTime);break;case`error`:this.call(`playerDidEncounterPlaybackError`,e.errorCode==null?`PLAYER_ERROR`:String(e.errorCode),e.errorMessage??`Unknown player error`,e.isRecoverable??!1);break;case`network_error`:this.call(`playerDidEncounterNetworkError`,e.errorCode??0,e.errorMessage??`Network error`,e.isRecoverable??!1);break}}handleTimeUpdate(e){if(this.lastCurrentTime=e,this.pendingSeek){let{fromTime:t,startedWallMs:n}=this.pendingSeek;this.pendingSeek=null,this.call(`playerDidFinishSeeking`,t,e,(Date.now()-n)/1e3)}this.call(`playerDidUpdateCurrentTime`,e,this.lastDuration)}notifyDismissed(){this.hasDismissed||!this.isPlaybackActive||this.hasFinished||(this.hasDismissed=!0,this.call(`playerDidDismiss`,this.lastCurrentTime,this.lastWatchDuration))}beginSeek(e,t){if(this.pendingSeek){this.pendingSeek.toTime=t;return}this.pendingSeek={fromTime:e,toTime:t,startedWallMs:Date.now()},this.call(`playerDidStartSeeking`,e)}call(e,...t){let n=this.delegate,r=n?.[e];if(typeof r==`function`)try{r.apply(n,t)}catch(t){console.error(`[PlayerSDK Delegate] ${String(e)} callback failed:`,t)}}},Je={subtitles:`subtitle_support`,ads:`ad_support`,chapterMarkers:`key_moments`,playbackSpeed:`playback_speed`,airplay:`airplay`,chromecast:`chromecast`,pictureInPicture:`picture_in_picture`,multipleResolution:`multiple_resolution`,multipleAudio:`multiple_audio`,drmProtection:`drm_protection`,screenRecordingPrevention:`screen_recording_prevention`,signalStrength:`signal_strength`};function Ye(e){let t={m3u8_playback:!0,subtitle_support:!1,playback_speed:!1,airplay:!1,chromecast:!1,picture_in_picture:!1,multiple_resolution:!1,multiple_audio:!1,key_moments:!1,drm_protection:!1,screen_recording_prevention:!1,signal_strength:!1,ad_support:!1};for(let[n,r]of Object.entries(Je))n in e&&(t[r]=e[n]);return t}function Xe(e){if(!e)return e=>e;let t=[];for(let n of e.split(`,`)){let[e,r]=n.split(`=`);e?.trim()&&r?.trim()&&t.push({domain:e.trim(),proxyPath:r.trim()})}return e=>{for(let{domain:n,proxyPath:r}of t)if(e.includes(n))try{let t=new URL(e);return`${r}${t.pathname}${t.search}`}catch{return e.replace(`https://${n}`,r)}return e}}function v(e){let t=e.replace(`#`,``);return t.length===6?`${parseInt(t.substring(0,2),16)}, ${parseInt(t.substring(2,4),16)}, ${parseInt(t.substring(4,6),16)}`:`99, 102, 241`}var Ze=3e4;function Qe(e,t){switch(e.eventType){case`pause`:return{eventType:`pause`,extras:{}};case`seek`:return{eventType:`seek`,extras:{seekFrom:e.seekFrom??0,seekTo:e.seekTo??e.currentTime??0}};case`mute`:return{eventType:`mute`,extras:{isMuted:e.isMuted??!0}};case`fast_forward`:return{eventType:`fast_forward`,extras:{skipSeconds:e.skipSeconds??10}};case`fast_backward`:return{eventType:`fast_backward`,extras:{skipSeconds:e.skipSeconds??10}};case`key_moments`:return{eventType:`key_moments`,extras:{momentTitle:e.momentTitle??``,momentTime:e.momentTime??0}};case`buffering_start`:return{eventType:`buffering_start`,extras:{bufferingCount:e.bufferingCount??0}};case`buffering_end`:return{eventType:`buffering_end`,extras:{}};case`quality_change`:return!t||!e.rendition||t===e.rendition?null:{eventType:`quality_change`,extras:{from:t,to:e.rendition}};case`speed_change`:return{eventType:`speed_change`,extras:{speed:e.speed??1}};case`subtitle_change`:return e.subtitleEnabled===!1?{eventType:`subtitle_disable`,extras:{enabled:!1}}:{eventType:`subtitle_change`,extras:{language:e.subtitleLanguage??``,enabled:!0}};case`audio_track_change`:return{eventType:`audio_track_change`,extras:{track:e.audioTrack??``}};case`pip_toggle`:return{eventType:`pip_toggle`,extras:{enabled:e.errorMessage===`entered`}};case`fullscreen_enter`:return{eventType:`fullscreen_toggle`,extras:{enabled:!0}};case`fullscreen_exit`:return{eventType:`fullscreen_toggle`,extras:{enabled:!1}};case`error`:return{eventType:`player_error`,extras:{code:e.errorCode==null?`PLAYER_ERROR`:String(e.errorCode),message:e.errorMessage??`Unknown player error`}};case`network_error`:return{eventType:`network_error`,extras:{code:e.errorCode?String(e.errorCode):`NETWORK_ERROR`,message:e.errorMessage??`Network error`}};default:return null}}function y({playerKey:e,src:t,subtitles:n,licenseKey:r,themeColor:i=`#6366f1`,firebaseConfig:a,proxyDomains:o,apiBaseUrl:s,adTrackingUrl:c,overlayAdUrl:d,title:te,watermark:ne,autoplay:re=!1,muted:ie=!1,autoFullscreen:ae=!1,enableControls:oe=!0,enableSkipAd:se,skipAdAfterSeconds:ce,chaptersDisplayMode:le=`strip`,volumeControlType:f=`slider`,subtitleStyle:ue,drmConfig:de,onAnalyticsEvent:fe,delegate:p,onKeyMomentsLoaded:pe,initialTime:me,onTimeUpdate:he}){let[ge,_e]=(0,l.useState)([]),[ve,ye]=(0,l.useState)(0),[m]=(0,l.useState)(()=>new qe);(0,l.useEffect)(()=>{m.setDelegate(p),m.setAutoplay(re)},[m,p,re]),(0,l.useEffect)(()=>()=>m.notifyDismissed(),[m]);let be=Array.isArray(t)?t:[{label:`Default`,url:t}],xe=be[ve]?.url??be[0]?.url??``,[Se,Ce]=(0,l.useState)(`loading`),[we,Te]=(0,l.useState)(null),[Ee,De]=(0,l.useState)(0),[Oe,ke]=(0,l.useState)(`network`),Ae=(0,l.useRef)(null),je=(0,l.useRef)(!1),h=(0,l.useRef)(``),Me=(0,l.useRef)(!1),Ne=(0,l.useRef)(!1),Pe=(0,l.useRef)(void 0),Fe=(0,l.useRef)(!1),g=(0,l.useRef)(null),Ie=(0,l.useRef)(0),Le=(0,l.useRef)(null),ze=(0,l.useRef)({currentTime:0,duration:0}),_=(0,l.useRef)(()=>{}),Ke=xe.split(`/`).filter(Boolean),Je=(Ke[Ke.length-1]??``).replace(/\.m3u8.*$/,``)||`video`,y=(0,l.useCallback)(()=>Xe(o),[o])(),$e=v(i);(0,l.useEffect)(()=>{document.documentElement.style.setProperty(`--accent-indigo`,i),document.documentElement.style.setProperty(`--accent-indigo-rgb`,$e)},[i,$e]),(0,l.useEffect)(()=>{let t=!1;return Be(e,s).then(e=>{if(t)return;Ae.current=e;let{features:n,planTier:r}=e.result.data,i={package:r,is_active:!0,features:Ye(n),limits:{streaming_minutes:0}};console.log(`[SDK] Player key validated. Features:`,i.features),Te(i),Ce(`ready`)}).catch(e=>{if(t)return;console.error(`[SDK] Player key validation failed:`,e);let n=e.message??``;ke(/init failed: 4\d\d/.test(n)?`auth`:`network`),Ce(`error`)}),()=>{t=!0,g.current&&=(clearTimeout(g.current),null),Ie.current=0,Le.current=null,Ce(`loading`),Te(null),Me.current=!1,h.current=``,Ne.current=!1,Pe.current=void 0}},[e,s,Ee]);let b=(0,l.useCallback)(()=>{g.current&&(clearTimeout(g.current),g.current=null,Le.current!==null&&(Ie.current+=Date.now()-Le.current,Le.current=null))},[]),x=(0,l.useCallback)(()=>{g.current&&=(clearTimeout(g.current),null),Ie.current=0,Le.current=null},[]),et=(0,l.useCallback)(()=>{if(g.current||!h.current)return;Le.current=Date.now();let t=Ze-Ie.current;g.current=setTimeout(()=>{g.current=null,Ie.current=0,Le.current=null;let{currentTime:t,duration:n}=ze.current;console.log(`[SDK] Heartbeat timer fired — 30s of real content elapsed`),He(e,h.current,t,n,s).catch(e=>console.warn(`[SDK] Heartbeat failed:`,e.message)),_.current()},t)},[e,s]);(0,l.useEffect)(()=>{_.current=et},[et]);let tt=(0,l.useRef)(!0);(0,l.useEffect)(()=>{if(tt.current){tt.current=!1;return}Fe.current=!0,Pe.current=void 0,b()},[ve,b]),(0,l.useEffect)(()=>{let t=()=>{m.notifyDismissed(),h.current&&(Ne.current=!0,x(),Ge(e,h.current,s))};return window.addEventListener(`beforeunload`,t),()=>{window.removeEventListener(`beforeunload`,t),x()}},[e,s,x,m]);let S=(0,l.useCallback)(t=>{let n=t;if(t.currentTime!==void 0&&(ze.current={currentTime:t.currentTime,duration:t.duration}),t.eventType===`session_start`&&!Me.current&&(Me.current=!0,Ne.current=!1,h.current=typeof n.sessionId==`string`?n.sessionId:``,Ve(e,h.current,Je,s).catch(e=>console.warn(`[SDK] Session start failed:`,e.message)),je.current||et()),t.eventType===`play`&&Me.current&&!je.current&&!Fe.current&&et(),t.eventType===`pause`&&b(),t.eventType===`buffering_start`&&b(),t.eventType===`buffering_end`&&Me.current&&!je.current&&(Fe.current=!1,et()),t.eventType===`ended`&&(x(),h.current&&(Ne.current=!0,Ue(e,h.current,s).catch(e=>console.warn(`[SDK] Session end failed:`,e.message)))),Me.current&&h.current&&!Ne.current){let n=Qe(t,Pe.current);n&&We(e,{eventType:n.eventType,sessionId:h.current,currentTime:t.currentTime??0,videoId:Je,...n.extras},s).catch(e=>console.warn(`[SDK] Event ${n.eventType} failed:`,e.message))}t.eventType===`quality_change`&&t.rendition&&(Pe.current=t.rendition),console.log(`[SDK Analytics]`,t),m.handleAnalyticsEvent(t),fe?.(t)},[e,s,Je,et,b,x,fe,m]),nt=(0,l.useCallback)(e=>{je.current=e,e?(b(),console.log(`[SDK] Ad break started — heartbeat timer paused`)):(Me.current&&et(),console.log(`[SDK] Ad break ended — heartbeat timer resumed`))},[b,et]),rt=(0,l.useCallback)(e=>{m.setKeyMoments(e),_e(e),pe?.(e)},[pe,m]),C=(0,l.useCallback)(e=>{m.handleTimeUpdate(e),he?.(e)},[he,m]);if(Se===`loading`)return(0,u.jsxs)(`div`,{style:{width:`100%`,aspectRatio:`16 / 9`,background:`#000`,borderRadius:8,display:`flex`,alignItems:`center`,justifyContent:`center`},children:[(0,u.jsx)(`style`,{children:`@keyframes boss-sdk-spin{to{transform:rotate(360deg)}}`}),(0,u.jsx)(`div`,{style:{width:60,height:60,borderRadius:`50%`,border:`4px solid rgba(${$e}, 0.1)`,borderLeftColor:i,borderRightColor:`rgba(${$e}, 0.2)`,filter:`drop-shadow(0 0 10px rgba(${$e}, 0.5))`,animation:`boss-sdk-spin 1s linear infinite`}})]});if(Se===`error`){let e=Oe===`auth`;return(0,u.jsx)(`div`,{style:{width:`100%`,aspectRatio:`16 / 9`,background:`#09090e`,borderRadius:8,display:`flex`,alignItems:`center`,justifyContent:`center`,flexDirection:`column`,gap:20},children:(0,u.jsx)(ee,{title:e?`Invalid Player Key`:`Something Went Wrong`,subtitle:e?`Your player key is invalid or expired.
|
|
5
5
|
Please check your configuration.`:`We encountered an error while connecting.
|
|
6
|
-
Please try again.`,onRetry:()=>
|
|
6
|
+
Please try again.`,onRetry:()=>De(e=>e+1)})})}return(0,u.jsx)(Re,{src:xe,sources:be,activeSourceIndex:ve,onSourceChange:e=>ye(e),subtitles:n,keyMoments:ge,themeColor:i,firebaseConfig:a,resolvedEntitlement:we,licenseKey:r,title:te,watermark:ne,autoplay:re,muted:ie,autoFullscreen:ae,enableControls:oe,enableSkipAd:se,skipAdAfterSeconds:ce,chaptersDisplayMode:le,volumeControlType:f,subtitleStyle:ue,drmConfig:de,overlayAdUrl:d,adTrackingUrl:c,urlTransformer:y,onAnalyticsEvent:S,onAdBreakChange:nt,onKeyMomentsLoaded:rt,initialTime:me,onTimeUpdate:C})}function $e(e,t){let n=(0,d.createRoot)(e),r=t;return n.render((0,l.createElement)(y,r)),{update(e){r={...r,...e},n.render((0,l.createElement)(y,r))},destroy(){n.unmount()}}}exports.BossVideoPlayer=y,exports.FirebaseAnalyticsProvider=c.c,exports.VideoPlayerSDK=c.t,exports.WebVideoPlayer=Re,exports.createPlayer=$e,exports.endSession=Ue,exports.initSdk=Be,exports.sendEvent=We,exports.sendHeartbeat=He,exports.startSession=Ve;
|
|
7
7
|
//# sourceMappingURL=index.cjs.map
|