boss-web-player-sdk 1.1.22 → 1.1.23
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/dist/index.cjs +3 -3
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +705 -694
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.cjs
CHANGED
|
@@ -25,9 +25,9 @@ Please try again.`,onRetry:n}){return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(
|
|
|
25
25
|
.gb-pip-progress { position: relative; height: 4px; border-radius: 2px; background: rgba(255,255,255,0.3); cursor: pointer; }
|
|
26
26
|
.gb-pip-progress-fill { position: absolute; inset: 0; width: 0%; border-radius: 2px; background: #fff; }
|
|
27
27
|
.gb-pip-time { font-size: 11px; font-variant-numeric: tabular-nums; opacity: 0.9; }
|
|
28
|
-
`,Oe=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},ke=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,d.jsxs)(`svg`,{width:e,height:e,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`,children:[(0,d.jsx)(`rect`,{x:`2`,y:`5`,width:`20`,height:`14`,rx:`3`}),(0,d.jsx)(`path`,{d:`M7 9v6M7 12h3M10 9v6`}),(0,d.jsx)(`path`,{d:`M14 9h1.5a3 3 0 0 1 0 6H14z`})]}),je=({size:e=20})=>(0,d.jsxs)(`svg`,{width:e,height:e,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`,children:[(0,d.jsx)(`rect`,{x:`2`,y:`5`,width:`20`,height:`14`,rx:`3`}),(0,d.jsx)(`path`,{d:`M7 9v6M7 12h3M10 9v6`}),(0,d.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`},Pe=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},y=e=>{if(e.lang){let t=Pe(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=Pe(n[e]);if(t)return t}let r=t.replace(/^[#\d\.\s]+/,``).trim();return Pe(r)||r}return`Unknown`},Fe=e=>{let t=new Set;return e.filter(e=>{let n=`${y(e).toLowerCase()}|${(e.lang||``).trim().toLowerCase()}`;return t.has(n)?!1:(t.add(n),!0)})},Ie=e=>{let t=(e??``).split(`:`).map(Number);return(t[0]||0)*3600+(t[1]||0)*60+(t[2]||0)},Le=e=>{if(!e)return!1;try{let{protocol:t}=new URL(e,window.location.href);return t===`http:`||t===`https:`}catch{return!1}},Re=e=>{if(typeof e==`number`)return Number.isFinite(e)&&e>=0?e:null;if(typeof e!=`string`)return null;let t=e.trim();if(!t)return null;if(/^\d+:\d{1,2}:\d{1,2}(\.\d+)?$/.test(t))return Ie(t);let n=Number(t);return Number.isFinite(n)&&n>=0?n:null},ze=[0,1e3,2e3,3e3,5e3,8e3];function
|
|
28
|
+
`,Oe=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},ke=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,d.jsxs)(`svg`,{width:e,height:e,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`,children:[(0,d.jsx)(`rect`,{x:`2`,y:`5`,width:`20`,height:`14`,rx:`3`}),(0,d.jsx)(`path`,{d:`M7 9v6M7 12h3M10 9v6`}),(0,d.jsx)(`path`,{d:`M14 9h1.5a3 3 0 0 1 0 6H14z`})]}),je=({size:e=20})=>(0,d.jsxs)(`svg`,{width:e,height:e,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`,children:[(0,d.jsx)(`rect`,{x:`2`,y:`5`,width:`20`,height:`14`,rx:`3`}),(0,d.jsx)(`path`,{d:`M7 9v6M7 12h3M10 9v6`}),(0,d.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`},Pe=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},y=e=>{if(e.lang){let t=Pe(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=Pe(n[e]);if(t)return t}let r=t.replace(/^[#\d\.\s]+/,``).trim();return Pe(r)||r}return`Unknown`},Fe=e=>{let t=new Set;return e.filter(e=>{let n=`${y(e).toLowerCase()}|${(e.lang||``).trim().toLowerCase()}`;return t.has(n)?!1:(t.add(n),!0)})},Ie=e=>{let t=(e??``).split(`:`).map(Number);return(t[0]||0)*3600+(t[1]||0)*60+(t[2]||0)},Le=e=>{if(!e)return!1;try{let{protocol:t}=new URL(e,window.location.href);return t===`http:`||t===`https:`}catch{return!1}},Re=e=>{if(typeof e==`number`)return Number.isFinite(e)&&e>=0?e:null;if(typeof e!=`string`)return null;let t=e.trim();if(!t)return null;if(/^\d+:\d{1,2}:\d{1,2}(\.\d+)?$/.test(t))return Ie(t);let n=Number(t);return Number.isFinite(n)&&n>=0?n:null},ze=[0,1e3,2e3,3e3,5e3,8e3],Be=700,Ve=8;function He(e,t,n){let r=!1,i,a=o=>{i=setTimeout(()=>{r||fetch(e).then(e=>e.json()).then(e=>{if(r)return;let i=t(e);if(i!==null){n(i);return}o+1<ze.length&&a(o+1)}).catch(()=>{r||o+1<ze.length&&a(o+1)})},ze[o])};return a(0),()=>{r=!0,i&&clearTimeout(i)}}var Ue=({src:e,autoplay:t=!1,muted:n=!1,chapters:r=[],keyMoments:i,subtitles:a=[],watermark:o,themeColor:s=`#6366f1`,drmConfig:ee,firebaseConfig:te,videoId:ne,onAnalyticsEvent:re,onAdBreakChange:p,onKeyMomentsLoaded:m,enableControls:ie=!0,enableChromecast:ae,enableKeyMoments:h,enableSubtitles:oe,enableQuality:g,enablePlaybackSpeed:Ne,enablePiP:Pe,enableFullscreen:ze=!0,autoFullscreen:Ue=!1,watchProgressInterval:We=30,subtitleStyle:b={},resolvedEntitlement:Ge,licenseKey:Ke,title:qe,chaptersDisplayMode:Je=`strip`,volumeControlType:Ye=`slider`,urlTransformer:Xe,pauseAdOnTabSwitch:Ze=!0,enableSkipAd:Qe=!1,skipAdAfterSeconds:$e=5,overlayAdUrl:et,adTrackingUrl:tt,sources:x,activeSourceIndex:nt=0,onSourceChange:rt,initialTime:S,onTimeUpdate:it})=>{let at=Xe??(e=>e),C=(0,l.useRef)(null),ot=(0,l.useRef)(null),st=(0,l.useRef)(!1),w=(0,l.useRef)(null),ct=(0,l.useRef)(0),lt=(0,l.useRef)(null),T=(0,l.useRef)(null),ut=(0,l.useRef)(null),dt=(0,l.useRef)(null),ft=(0,l.useRef)(!1),E=(0,l.useRef)(!1),D=(0,l.useRef)(null),O=(0,l.useRef)(null),k=(0,l.useRef)(null),pt=(0,l.useRef)(null),mt=(0,l.useRef)(()=>{}),A=(0,l.useRef)(null),ht=(0,l.useRef)(!1),gt=(0,l.useRef)(null),_t=e=>{!e||gt.current!==null||(gt.current=e.muted,e.muted=!0)},vt=e=>{gt.current!==null&&(e&&(e.muted=gt.current),gt.current=null)},yt=(0,l.useRef)(null),bt=(0,l.useRef)(!1),xt=(0,l.useRef)(null),St=(0,l.useRef)(null),Ct=(0,l.useRef)(null),wt=(0,l.useRef)(null),Tt=(0,l.useRef)(null),Et=(0,l.useRef)(null),Dt=(0,l.useRef)(x),Ot=(0,l.useRef)(rt),kt=(0,l.useRef)(!1),j=(0,l.useRef)(null),M=(0,l.useRef)(null),N=(0,l.useRef)(null),At=(0,l.useRef)(null),jt=(0,l.useRef)(0),Mt=(0,l.useRef)(null),[Nt,Pt]=(0,l.useState)(!1),Ft=(0,l.useRef)(!1),It=(0,l.useRef)(null),[Lt,Rt]=(0,l.useState)(null);(0,l.useEffect)(()=>{if(typeof window>`u`||Ee)return;let e=window.requestAnimationFrame(()=>{let e=C.current;if(!e)return;let t=window.getComputedStyle(e);t.overflow!==`hidden`&&t.borderTopLeftRadius===`0px`&&(Ee=!0,console.warn(`[boss-web-player-sdk] Player styles appear to be missing — the player will look broken/unstyled.
|
|
29
29
|
Import the stylesheet once at your app entry point:
|
|
30
|
-
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)jt(t.contentRect.width<=768)});return t.observe(e),jt(e.getBoundingClientRect().width<=768),()=>t.disconnect()},[]);let[F,It]=(0,l.useState)(null),[Lt,Rt]=(0,l.useState)(!1),zt=Ue??null,Bt=zt!=null,Vt=zt?.features??{},Ht=Bt?!!(Vt.drm_protection&&!We):!1,I={enableSubtitles:Bt?!!Vt.subtitle_support:typeof oe==`boolean`?oe:!0,enableChromecast:Bt?!!Vt.chromecast:typeof ae==`boolean`?ae:!0,enableKeyMoments:Bt?!!Vt.key_moments:typeof h==`boolean`?h:!0,enableQuality:Bt?!!Vt.multiple_resolution:typeof g==`boolean`?g:!0,enablePlaybackSpeed:Bt?!!Vt.playback_speed:typeof Ne==`boolean`?Ne:!0,enablePiP:Bt?!!Vt.picture_in_picture:typeof Pe==`boolean`?Pe:!0,allowAirplay:Bt?!!Vt.airplay:!1,allowMultipleAudio:Bt?!!Vt.multiple_audio:!0,m3u8_playback:Bt?!!Vt.m3u8_playback:!0,drm_protection:Bt?!!Vt.drm_protection:!1},[Ut,Wt]=(0,l.useState)(!1),[Gt,Kt]=(0,l.useState)(0),[qt,Jt]=(0,l.useState)(!1),[L,Yt]=(0,l.useState)(0),[Xt,Zt]=(0,l.useState)(0),[Qt,$t]=(0,l.useState)(1),[en,tn]=(0,l.useState)(!1),[nn,rn]=(0,l.useState)(!1),[an,on]=(0,l.useState)(!1),[sn,cn]=(0,l.useState)(!1),[ln,un]=(0,l.useState)(!1),dn=At||(an||sn)&&ln,[fn,pn]=(0,l.useState)(!1),[mn,hn]=(0,l.useState)(null),[gn,_n]=(0,l.useState)(!1),[R,vn]=(0,l.useState)([]),z=(0,l.useRef)([]),yn=(0,l.useRef)(new Set),bn=x&&x.length>0?x.map(e=>e.url).join(`|`):e,[xn,Sn]=(0,l.useState)(new Set),[Cn,wn]=(0,l.useState)(bn),Tn=(0,l.useRef)(null),En=(0,l.useRef)(!1),Dn=(0,l.useRef)(null);Cn!==bn&&(wn(bn),Sn(new Set),yn.current=new Set,Tn.current=null,En.current=!1);let On=(0,l.useRef)(null),kn=(0,l.useRef)(!1),[An,jn]=(0,l.useState)([]),[Mn,Nn]=(0,l.useState)(null),Pn=(0,l.useRef)([]),Fn=(0,l.useRef)(null),In=(0,l.useRef)(new Set),[Ln,Rn]=(0,l.useState)([]),zn=(0,l.useRef)([]),Bn=(0,l.useRef)(null),[Vn,Hn]=(0,l.useState)({w:0,h:0}),[Un,Wn]=(0,l.useState)([]),Gn=e=>{let t=zn.current.find(t=>e>=t.startTimeSeconds&&e<t.endTimeSeconds);if(t)return{start:t.startTimeSeconds,end:t.endTimeSeconds};let n=z.current.find(t=>e>=t.startTime&&e<t.endTime);return n?{start:n.startTime,end:n.endTime}:null},Kn=(0,l.useMemo)(()=>R.reduce((e,t)=>e+(t.endTime-t.startTime),0),[R]),qn=Xt>0?Math.max(0,Xt-Kn):0,B=R.length>0&&qn>0?qn:Xt,V=(0,l.useCallback)(e=>{let t=e;for(let n of R)e>=n.endTime?t-=n.endTime-n.startTime:e>=n.startTime&&(t-=e-n.startTime);return Math.max(0,t)},[R]),H=(0,l.useCallback)(e=>{let t=e;for(let e of R)t>=e.startTime&&(t+=e.endTime-e.startTime);return t},[R]),[Jn,Yn]=(0,l.useState)([]),[Xn,Zn]=(0,l.useState)({id:-1,height:0,width:0,bitrate:0,label:`Auto`}),[Qn,$n]=(0,l.useState)(``),[U,er]=(0,l.useState)(`off`),[tr,nr]=(0,l.useState)(Fe(a)),[rr,ir]=(0,l.useState)([]),[ar,or]=(0,l.useState)(0);(0,l.useEffect)(()=>{if(F){let e=F.subtitles.getTracks();nr(Fe([...a,...e.filter(e=>!a.some(t=>t.id===e.id))]))}else nr(Fe(a))},[a.map(e=>e.id).join(`,`),F]);let[sr,cr]=(0,l.useState)({chapter:null,index:-1}),[W,lr]=(0,l.useState)(i||r||[]),[G,K]=(0,l.useState)(`none`),[ur,dr]=(0,l.useState)(1),[fr,pr]=(0,l.useState)(!1),[mr,hr]=(0,l.useState)({}),[gr,_r]=(0,l.useState)(``),[vr,yr]=(0,l.useState)(null),br=(0,l.useRef)(!1),xr=JSON.stringify(W.map(e=>({title:e.title,startTime:e.startTime})));(0,l.useEffect)(()=>{lr(i||r||[])},[(i||r||[]).map(e=>`${e.startTime}:${e.title}`).join(`,`)]),(0,l.useEffect)(()=>{if(!e||!W||W.length===0)return;hr({});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>=W.length){f();return}let e=W[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);hr(t=>({...t,[o]:e})),o++,l()}else setTimeout(u,100)},d=()=>{s||(s=!0,l())};t.addEventListener(`seeked`,u),t.addEventListener(`canplay`,d),r&&c.u.isSupported()?(n=new c.u({enableWorker:!1,maxBufferLength:5,xhrSetup:(e,t)=>{let n=ee?.authToken;try{let r=rt(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(rt(e)),n.attachMedia(t)):t.src=e,t.readyState>=2&&d();let f=()=>{t.removeEventListener(`seeked`,u),t.removeEventListener(`canplay`,d),n&&n.destroy(),document.body.contains(t)&&document.body.removeChild(t)};return f},[e,xr]);let[q,Sr]=(0,l.useState)(null),[Cr,wr]=(0,l.useState)(null),Tr=(0,l.useRef)(!1),[Er,Dr]=(0,l.useState)(!1),[Or,kr]=(0,l.useState)(!1),[Ar,jr]=(0,l.useState)(null),[Mr,Nr]=(0,l.useState)(null),[Pr,Fr]=(0,l.useState)(0),[Ir,Lr]=(0,l.useState)(0),[Rr,zr]=(0,l.useState)(null),[Br,Vr]=(0,l.useState)(null),[J,Hr]=(0,l.useState)(null);(0,l.useEffect)(()=>{if(dt.current&&!dt.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`,dt.current.appendChild(e)}},[]),(0,l.useEffect)(()=>{if(!F){Dr(!1),kr(!1),jr(null);return}let e=e=>Dr(e),t=()=>{let e=F.getVideoElement(),t=!!e?.webkitCurrentPlaybackTargetIsWireless;kr(t),jr(t?e.webkitCurrentPlaybackTargetName||`AirPlay device`:null)};e(F.casting.isAirPlayAvailable()),t();let n=F.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))}},[F]);let[Ur,Wr]=(0,l.useState)(``),[Gr,Kr]=(0,l.useState)(!0),[Y,qr]=(0,l.useState)(!1),[Jr,Yr]=(0,l.useState)(!1),Xr=(0,l.useRef)(!1),Zr=(0,l.useRef)(null),Qr=(0,l.useRef)(!1),$r=(0,l.useRef)(!1),ei=(0,l.useRef)(`none`),ti=(0,l.useRef)(a),ni=()=>{Kr(!0),Zr.current&&window.clearTimeout(Zr.current);let e=Mt.current?3500:1e4;Zr.current=window.setTimeout(()=>{Qr.current&&ei.current===`none`&&Kr(!1)},e)},ri=(0,l.useCallback)(e=>{j.current&&=(clearTimeout(j.current),null);let t=wt.current,n=t?.[e]?.label??`This format`,r=t?.[0]?.label??`default`;Ct.current=null,yr(`${n} isn't supported on this device. Switched to ${r}.`),window.setTimeout(()=>yr(null),4e3),Tt.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=ee?.authToken;try{let r=rt(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(rt(e)),t.attachMedia(r),ct.current=t,t.on(c.u.Events.MANIFEST_LOADED,(e,t)=>{if(Ge)return;let n=Oe(t?.networkDetails?.responseText??``);n&&Wr(n)}),t.on(c.u.Events.FRAG_PARSING_METADATA,(e,t)=>{if(!(Ge||Ur))for(let e of t?.samples??[]){let t=ke(e.data);if(t){Wr(t);break}}})}else i&&r.canPlayType(`application/vnd.apple.mpegurl`),r.src=e;r.addEventListener(`seeked`,()=>{let e=st.current;if(!e)return;let t=e.getContext(`2d`);t&&r.readyState>=2&&(t.drawImage(r,0,0,e.width,e.height),zr(e.toDataURL(`image/jpeg`,.82)))});let l;if(te){let e=new c.c(te);it.current=e,l=e.createCallback()}if(Ht)return;let u=new c.t({container:C.current,src:e,videoId:ne,autoplay:t,muted:n,keyMoments:W,subtitles:a,drm:{watermarkText:o,allowedDomains:[`localhost`,`127.0.0.1`,window.location.hostname],...ee},analyticsCallback:e=>{if(e.sessionId&&(Tn.current===null?Tn.current=e.sessionId:e.sessionId!==Tn.current&&(e={...e,sessionId:Tn.current})),e.eventType===`session_start`){if(En.current)return;En.current=!0}l?.(e),re&&re(e)},analyticsSessionSeed:Dn.current?.key===bn?Dn.current.snapshot:void 0,watchProgressInterval:He*1e3,themeColor:s,urlTransformer:Je});u.on(`keymomentsloaded`,e=>{lr(e),m&&m(e)}),u.on(`chaptersloaded`,e=>{lr(e),m&&m(e)}),u.on(`play`,()=>{Jt(!0),_n(!1),ae(u.getCurrentTime(),!1)}),u.on(`pause`,()=>{Jt(!1),ae(u.getCurrentTime(),!0)}),u.on(`ended`,()=>{Jt(!1),_n(!0)});let d=()=>{pt.current=!0,rn(!1),A.current&&(A.current.style.opacity=`1`),ht(u.getVideoElement())},f=()=>{requestAnimationFrame(()=>{requestAnimationFrame(()=>{pt.current=!1,A.current&&(A.current.style.opacity=`0`),gt(u.getVideoElement());let e=u.getVideoElement();e&&!e.paused&&e.readyState<3&&rn(!0)})})},ie=(e,t=!1)=>{E.current=!0;let n=t?e+.5:yt.current??e+.5;t||(yt.current=null),vt.current=t,D.current=n,O.current=u.getCurrentTime(),d(),u.seek(n);let r=u.getVideoElement();if(r){let e=()=>{r.removeEventListener(`seeked`,e),k.current&&=(window.clearTimeout(k.current),null),E.current=!1,D.current=null,O.current=null;let t=vt.current;vt.current=!1,(t||yt.current===null)&&f()};r.addEventListener(`seeked`,e)}k.current&&window.clearTimeout(k.current),k.current=window.setTimeout(()=>{E.current=!1,D.current=null,O.current=null,k.current=null,vt.current=!1,f()},3e3)};_t.current=ie;let ae=(e,t)=>{if(!(`mediaSession`in navigator)||!navigator.mediaSession.setPositionState)return;navigator.mediaSession.playbackState=t?`paused`:`playing`;let n=u.getDuration(),r=z.current.find(t=>e>=t.startTime&&e<t.endTime);if(r){let t=r.endTime-r.startTime,n=Math.max(0,e-r.startTime);if(t>0)try{navigator.mediaSession.setPositionState({duration:t,playbackRate:1,position:Math.min(n,t)})}catch{}}else{let t=z.current.reduce((e,t)=>e+(t.endTime-t.startTime),0),r=n>0?Math.max(0,n-t):0,i=e;for(let t of z.current)e>=t.endTime?i-=t.endTime-t.startTime:e>=t.startTime&&(i-=e-t.startTime);i=Math.max(0,i);let a=z.current.length>0&&r>0?r:n;if(a>0)try{navigator.mediaSession.setPositionState({duration:a,playbackRate:1,position:Math.min(i,a)})}catch{}}};if(u.on(`timeupdate`,e=>{if(!E.current&&N.current===null){let t=z.current.find(t=>yn.current.has(t.startTime)&&e>=t.startTime-.5&&e<t.endTime);if(t){ie(t.endTime);return}yt.current!==null&&z.current.find(t=>e>=t.endTime-.5&&e<t.endTime)&&d()}if(E.current&&D.current!==null){let t=D.current;if(O.current!==null&&t<O.current?e<=t+2&&e>=t-2:e>=t-2){E.current=!1,D.current=null,O.current=null,k.current&&=(window.clearTimeout(k.current),null);let t=z.current.some(t=>e>=t.startTime&&e<t.endTime),n=vt.current;vt.current=!1,(n||!t&&yt.current===null)&&f()}else return}Yt(e),Ot.current=e;let t=u.getDuration();if(Zt(t),N.current!==null&&e>=N.current-2){N.current=null,P.current&&=(window.clearTimeout(P.current),null);let t=z.current.find(t=>yn.current.has(t.startTime)&&e>=t.startTime&&e<t.endTime);t&&ie(t.endTime),requestAnimationFrame(()=>{requestAnimationFrame(()=>{M.current&&(M.current.style.opacity=`0`)})})}if(!Et.current&&xt.current===null&&S&&S>0&&t>0&&S<t){Et.current=!0;let e=z.current.find(e=>S>=e.startTime&&S<e.endTime),t=e?e.startTime:S;Dt.current=e?null:S,N.current=t,u.seek(t),P.current&&window.clearTimeout(P.current),P.current=window.setTimeout(()=>{N.current=null,P.current=null,M.current&&(M.current.style.opacity=`0`)},4e3)}if(nt?.(e),Pn.current.length>0)if(Fn.current){let t=Fn.current;(e>=t.startTimeSeconds+t.durationSeconds||e<t.startTimeSeconds)&&(Nn(null),Fn.current=null)}else{let t=Pn.current.find(t=>e>=t.startTimeSeconds&&e<t.startTimeSeconds+t.durationSeconds&&!In.current.has(t.availId));t&&(Nn(t),Fn.current=t,t.impressionBeacons.forEach(e=>{fetch(e,{mode:`no-cors`}).catch(()=>{})}))}let n=u.keyMoments.getCurrentMoment(e);cr({chapter:n.keyMoment,index:n.index}),ae(e,u.getVideoElement().paused)}),u.on(`qualitylevels`,e=>{Yn(e);let t=St.current;if(!t)return;let n=t.qualityHeight===null?void 0:e.find(e=>e.height===t.qualityHeight);n?(u.setQuality(n.id),Zn(n)):Zn({id:-1,height:0,width:0,bitrate:0,label:`Auto`})}),u.on(`qualitychange`,e=>{Zn(e)}),u.on(`buffering`,e=>{if(rn(e&&!pt.current),!e){j.current&&=(clearTimeout(j.current),null),Ct.current=null;let e=St.current;if(e&&(St.current=null,e.playbackRate!==1&&u.setPlaybackRate(e.playbackRate),u.setVolume(e.volume),u.setMute(e.muted)),xt.current!==null){let e=xt.current;xt.current=null,Et.current=!0,N.current=e,P.current&&window.clearTimeout(P.current),P.current=window.setTimeout(()=>{N.current=null,P.current=null,M.current&&(M.current.style.opacity=`0`)},4e3),u.seek(e)}}}),u.on(`adbreakchange`,e=>{if(u.analytics.setAdBreak(e,u.getVideoElement()),p&&p(e),e){let e=u.getCurrentTime(),t=z.current.find(t=>e>=t.startTime&&e<t.endTime);if(Xr.current=!1,Yr(!1),t&&yn.current.has(t.startTime)){d(),E.current||ie(t.endTime);return}t&&(On.current=t.startTime),qr(!0),K(`none`),f()}else if(On.current!==null&&(yn.current.add(On.current),Sn(new Set(yn.current)),On.current=null),qr(!1),yt.current!==null){let e=yt.current;yt.current=null,E.current=!0,D.current=e,O.current=u.getCurrentTime(),d(),u.seek(e),k.current&&window.clearTimeout(k.current),k.current=window.setTimeout(()=>{E.current=!1,D.current=null,O.current=null,k.current=null,f()},3e3)}}),u.on(`adbreaksloaded`,e=>{z.current=e,vn(e);let t=Dt.current;if(t===null)return;Dt.current=null;let n=e.find(e=>t>=e.startTime&&t<e.endTime);if(!n||yn.current.has(n.startTime))return;let r=u.getCurrentTime();r<n.startTime||r>=n.endTime||(M.current&&(M.current.style.opacity=`1`),N.current=n.startTime,P.current&&window.clearTimeout(P.current),P.current=window.setTimeout(()=>{N.current=null,P.current=null,M.current&&(M.current.style.opacity=`0`)},4e3),u.seek(n.startTime))}),u.on(`volumechange`,e=>{$t(e.volume),mt.current===null&&tn(e.muted)}),u.on(`pipchange`,e=>{pn(e)}),u.on(`error`,()=>{Wt(!0),rn(!1),N.current=null,P.current&&=(window.clearTimeout(P.current),null),M.current&&(M.current.style.opacity=`0`)}),u.on(`unsupportedcodec`,()=>{let e=Ct.current;e&&e.targetIdx!==0&&(wt.current?.length??0)>1&&ri(e.targetIdx)}),u.subtitles.onSubtitleChange(e=>{$n(e)}),u.on(`subtitlesloaded`,e=>{if(!I.enableSubtitles)return;nr(Fe([...e]));let t=St.current;if(t){let n=t.subtitleId===`off`?`off`:e.find(e=>e.id===t.subtitleId)?.id??(t.subtitleLang?e.find(e=>e.lang===t.subtitleLang)?.id:void 0);if(n){u.subtitles.setActiveTrack(n),er(n);return}}let n=e.find(e=>e.isDefault);n&&(u.subtitles.setActiveTrack(n.id),er(n.id))}),u.on(`audiotracksloaded`,e=>{ir(e);let t=St.current,n=t?e.find(e=>t.audioLang&&e.lang===t.audioLang)??e.find(e=>t.audioLabel&&e.label===t.audioLabel):void 0;if(n){u.setAudioTrack(n.id),or(n.id);return}or(e[0]?.id??0)}),u.on(`audiotrackchange`,e=>{or(e)}),u.casting.onCastStateChange((e,t)=>{if(e){Tr.current=u.isMuted(),u.pause();let e=u.getVideoElement();e.muted=!0,Sr(t)}else{let e=u.casting.getRemoteState();e&&e.currentTime>0&&(E.current=!0,D.current=e.currentTime,O.current=u.getCurrentTime(),u.seek(e.currentTime),k.current&&window.clearTimeout(k.current),k.current=window.setTimeout(()=>{E.current=!1,D.current=null,O.current=null,k.current=null},3e3));let t=u.getVideoElement();t.muted=Tr.current,Sr(null),wr(null)}}),u.casting.onRemoteStateChange(e=>{wr(e)}),$t(u.getVolume()),tn(u.isMuted()),`mediaSession`in navigator)try{navigator.mediaSession.setActionHandler(`seekto`,e=>{if(e.seekTime==null||$r.current||Xr.current)return;let t=e.seekTime;for(let e of z.current)t>=e.startTime&&(t+=e.endTime-e.startTime);bt.current?.(t)});let e=(e,t)=>{if($r.current||Xr.current)return;let n=t&&t>0?t:10,r=u.getCurrentTime(),i=r;for(let e of z.current)r>=e.endTime?i-=e.endTime-e.startTime:r>=e.startTime&&(i-=r-e.startTime);if(e){let e=z.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 z.current)r>=e.startTime&&(r+=e.endTime-e.startTime);bt.current?.(r,{eventType:`fast_forward`,skipSeconds:n})}else{let e=Math.max(0,i-n);for(let t of z.current)e>=t.startTime&&(e+=t.endTime-t.startTime);bt.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 h=u.getVideoElement(),oe=()=>{if(!(document.pictureInPictureElement===h||h.webkitPresentationMode===`picture-in-picture`)||E.current||N.current!==null||xt.current!==null)return;let e=h.currentTime,t=Ot.current;if(!(Math.abs(e-t)<.5)){if($r.current){h.currentTime=t;return}h.currentTime=t,bt.current?.(e)}};h.addEventListener(`seeking`,oe),It(u);let g=Ct.current;g&&g.targetIdx!==0&&(j.current&&clearTimeout(j.current),j.current=setTimeout(()=>{j.current=null,!u.getBufferedRanges().some(e=>e.end>e.start)&&ri(g.targetIdx)},Te)),xt.current!==null&&(P.current&&window.clearTimeout(P.current),P.current=window.setTimeout(()=>{P.current=null,N.current=null,M.current&&(M.current.style.opacity=`0`),rn(!1)},12e3)),Ve&&C.current&&(at.current=!0,C.current.requestFullscreen().catch(()=>{at.current=!1}));let se=()=>{let e=document,t=!!(document.fullscreenElement||e.webkitFullscreenElement);on(t),t||cn(!1);let n=u.getVideoElement();u.analytics.track(t?`fullscreen_enter`:`fullscreen_exit`,n)};document.addEventListener(`fullscreenchange`,se),document.addEventListener(`webkitfullscreenchange`,se);let ce=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(),!$r.current){let e=u.getCurrentTime(),t=e;for(let n of z.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 z.current)n>=e.startTime&&(n+=e.endTime-e.startTime);bt.current?.(n,{eventType:`fast_backward`,skipSeconds:10})}break;case`arrowright`:case`l`:if(e.preventDefault(),!$r.current){let e=u.getCurrentTime(),t=z.current.reduce((e,t)=>e+(t.endTime-t.startTime),0),n=Math.max(0,u.getDuration()-t),r=e;for(let t of z.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 z.current)i>=e.startTime&&(i+=e.endTime-e.startTime);bt.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(),ft.current();break;case`p`:e.preventDefault(),$r.current||u.togglePictureInPicture();break;case`c`:if(e.preventDefault(),I.enableSubtitles&&!$r.current)if(u.subtitles.getActiveTrackId()!==`off`)u.subtitles.setActiveTrack(`off`),er(`off`);else{let e=ti.current;e&&e.length>0&&(u.subtitles.setActiveTrack(e[0].id),er(e[0].id))}break;default:return}ni()}};return document.addEventListener(`keydown`,ce),ni(),()=>{if(Dn.current={key:bn,snapshot:u.analytics.getSessionSnapshot()},kt.current){let e=kt.current,t=u.getVideoElement();C.current&&t.ownerDocument!==document&&(t.classList.remove(`gb-pip-video`),C.current.insertBefore(t,C.current.firstChild)),kt.current=null,hn(null),pn(!1),e.close()}if(u.destroy(),it.current?.destroy(),it.current=null,document.body.style.overflow=``,document.body.style.touchAction=``,document.removeEventListener(`fullscreenchange`,se),document.removeEventListener(`webkitfullscreenchange`,se),document.removeEventListener(`keydown`,ce),Zr.current&&window.clearTimeout(Zr.current),k.current&&=(window.clearTimeout(k.current),null),j.current&&=(clearTimeout(j.current),null),pt.current=!1,A.current&&(A.current.style.opacity=`0`),h.removeEventListener(`seeking`,oe),`mediaSession`in navigator){try{navigator.mediaSession.setActionHandler(`seekto`,null)}catch{}try{navigator.mediaSession.setActionHandler(`seekforward`,null)}catch{}try{navigator.mediaSession.setActionHandler(`seekbackward`,null)}catch{}}ct.current&&=(ct.current.destroy(),null),T.current&&=(document.body.removeChild(T.current),null),Et.current=!1,N.current=null,P.current&&=(window.clearTimeout(P.current),null)}},[e,o,Gt]),(0,l.useEffect)(()=>{if(F){F.keyMoments.setKeyMoments(W);let e=C.current?.querySelector(`video`);if(e){let t=F.keyMoments.getCurrentMoment(e.currentTime);cr({chapter:t.keyMoment,index:t.index})}}},[xr,F]),(0,l.useEffect)(()=>{let e=e=>{G!==`none`&&(e.target.closest(`.sdk-menu-container`)||K(`none`))};return document.addEventListener(`click`,e),()=>{document.removeEventListener(`click`,e)}},[G]),(0,l.useEffect)(()=>{Qr.current=qt},[qt]),(0,l.useEffect)(()=>{$r.current=Y},[Y]),(0,l.useEffect)(()=>{Xr.current=Jr},[Jr]);let X=Y||Jr;(0,l.useEffect)(()=>{kt.current=mn},[mn]),(0,l.useEffect)(()=>{ei.current=G},[G]),(0,l.useEffect)(()=>{if(!Y||!F)return;let e=0,t=F.getCurrentTime(),n=performance.now(),r=()=>{let i=F.getVideoElement?.(),a=F.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=Gn(a);if(c){let e=Math.min(s,a+.4,c.end),t=Math.min(100,Math.max(0,(e-c.start)/(c.end-c.start)*100));(C.current?.querySelectorAll(`.sdk-ad-progress-fill`))?.forEach(e=>{e.style.width=`${t}%`})}e=requestAnimationFrame(r)};return e=requestAnimationFrame(r),()=>cancelAnimationFrame(e)},[Y,F]),(0,l.useEffect)(()=>{ti.current=tr},[tr]),(0,l.useEffect)(()=>{Mt.current=At},[At]),(0,l.useEffect)(()=>{z.current=R},[R]),(0,l.useEffect)(()=>{Pn.current=An},[An]),(0,l.useEffect)(()=>{Fn.current=Mn},[Mn]),(0,l.useEffect)(()=>{zn.current=Ln},[Ln]),(0,l.useEffect)(()=>{wt.current=x},[x]),(0,l.useEffect)(()=>{let e=Bn.current;if(!Y||!e||typeof ResizeObserver>`u`)return;let t=()=>{let t=e.getBoundingClientRect();Hn(e=>e.w===t.width&&e.h===t.height?e:{w:t.width,h:t.height})};t();let n=new ResizeObserver(t);return n.observe(e),()=>n.disconnect()},[Y,Ln]),(0,l.useEffect)(()=>{Tt.current=tt},[tt]),(0,l.useEffect)(()=>{On.current=null,kn.current=!1,yt.current=null,Dt.current=null,Nn(null),Fn.current=null,In.current=new Set,Wt(!1)},[e]),(0,l.useEffect)(()=>{Rt(!1)},[e]),(0,l.useEffect)(()=>{if(!F)return;let e=F.getVideoElement();if(e&&e.readyState>=1){Rt(!0);return}let t=()=>Rt(!0);return F.on(`qualitylevels`,t),e?.addEventListener(`loadedmetadata`,t),()=>{F.off(`qualitylevels`,t),e?.removeEventListener(`loadedmetadata`,t)}},[F]),(0,l.useEffect)(()=>{if(jn([]),!(!Qe||!Lt))return Be(Qe,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:Ie(r.startTime??``),durationSeconds:Ie(i.minSuggestedDuration??`00:00:15`),imageUrl:i.staticResource,imageWidth:parseInt(i.width??`320`,10),imageHeight:parseInt(i.height??`50`,10),title:i.adTitle??``,clickThrough:Le(i.clickThrough)?i.clickThrough:``,clickTrackingUrl:i.clickTracking??``,impressionBeacons:a,position:s,dismissible:o.dismissible===!0})}return n.length>0?n:null},jn)},[Qe,e,Lt]),(0,l.useEffect)(()=>{if(Rn([]),Wn([]),!(!$e||!Lt))return Be($e,e=>{let t=[],n=[];for(let r of e.avails??[]){let e=r.ads??[];if(e.length===0)continue;let i=r.startTimeInSeconds??e[0].startTimeInSeconds??0,a=e[e.length-1],o=(a?.startTimeInSeconds??i)+(a?.durationInSeconds??0);n.push({startTime:i,endTime:r.durationInSeconds==null?Math.max(o,i):i+r.durationInSeconds}),e.forEach((n,r)=>{let i=Re(n?.skipOffset),a=i!==null,o={};try{o=JSON.parse(n?.adParameters??`{}`)}catch{}let s=o.ctaText&&Le(o.redirectUrl)?{text:o.ctaText,url:o.redirectUrl,title:o.title||void 0,description:o.description||void 0}:null,c=n.startTimeInSeconds??0,l=n.durationInSeconds??0;t.push({startTimeSeconds:c,endTimeSeconds:c+l,durationSeconds:l,skippable:a,skipOffsetSeconds:i??0,cta:s,podIndex:r,podTotal:e.length})})}return t.length>0?{pods:t,breaks:n}:null},({pods:e,breaks:t})=>{Rn(e),Wn(t)})},[$e,e,Lt]),(0,l.useEffect)(()=>{!F||Un.length===0||F.setAdBreaks(Un)},[F,Un]),(0,l.useEffect)(()=>{if(!F)return;let e=()=>{document.hidden?Ye&&$r.current&&Qr.current&&(F.pause(),kn.current=!0):kn.current&&=(F.play(),!1)};return document.addEventListener(`visibilitychange`,e),()=>{document.removeEventListener(`visibilitychange`,e)}},[F,Ye]);let ii=()=>{ni()},ai=()=>{Ve&&!at.current&&C.current&&(at.current=!0,C.current.requestFullscreen().catch(()=>{}))},oi=()=>{if(F){if(q){F.casting.remotePlayPause(),ni();return}if(gn)Z(0),ai(),F.play(),_n(!1);else if(qt){F.pause();try{let e=F.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 ai(),F.play();ni()}},si=e=>{if(!w.current||!F||B===0)return 0;let t=w.current.getBoundingClientRect();return H(Math.max(0,Math.min(1,(e.clientX-t.left)/t.width))*B)},ci=e=>{if(!F||Y||Jr)return;ut.current=!0,Hr(si(e));let t=e=>{if(!ut.current||!w.current)return;let t=w.current.getBoundingClientRect(),n=H(Math.max(0,Math.min(1,(e.clientX-t.left)/t.width))*B);Hr(n),Nr(e.clientX-t.left),Lr(n),T.current&&(T.current.currentTime=n),ni()},n=e=>{if(ut.current=!1,w.current){let t=w.current.getBoundingClientRect();Z(H(Math.max(0,Math.min(1,(e.clientX-t.left)/t.width))*B))}Hr(null),Nr(null),zr(null),Vr(null),document.removeEventListener(`mousemove`,t),document.removeEventListener(`mouseup`,n)};document.addEventListener(`mousemove`,t),document.addEventListener(`mouseup`,n)},Z=(e,t)=>{if(!F)return;if(Dt.current=null,q){F.casting.remoteSeek(e);return}let n=Math.max(0,Xt>0?Math.min(e,Xt):e);if(t){let{eventType:e,...n}=t;F.attributeNextSeek(e,n)}let r=F.getCurrentTime();if(n>r&&z.current.length>0){let e=z.current.filter(e=>e.startTime<n&&e.endTime>r&&!yn.current.has(e.startTime)).sort((e,t)=>e.startTime-t.startTime);if(e.length>0){yt.current=n;let t=e[e.length-1],i=Math.max(t.startTime,r);E.current=!0,D.current=i,O.current=r,Yt(i),Xr.current=!0,Yr(!0),A.current&&(A.current.style.opacity=`1`),ht(F.getVideoElement()),F.seek(i),k.current&&window.clearTimeout(k.current),k.current=window.setTimeout(()=>{E.current=!1,Xr.current=!1,Yr(!1),D.current=null,O.current=null,k.current=null,pt.current=!1,A.current&&(A.current.style.opacity=`0`),gt(F.getVideoElement())},3e3);return}}yt.current=null;let i=z.current.find(e=>yn.current.has(e.startTime)&&n>=e.startTime-.5&&n<e.endTime+2),a=i?Math.max(n,i.endTime+.5):n;E.current=!0,D.current=a,O.current=r,Yt(a),pt.current=!1,A.current&&(A.current.style.opacity=`0`),gt(F.getVideoElement()),F.seek(a),k.current&&window.clearTimeout(k.current),k.current=window.setTimeout(()=>{E.current=!1,D.current=null,O.current=null,k.current=null,pt.current=!1,A.current&&(A.current.style.opacity=`0`)},3e3)};bt.current=Z;let li=()=>{if(!F)return;if(q){F.casting.remoteSetMute(!(Cr?.isMuted??!1));return}let e=!en;F.setMute(e),tn(e)},ui=e=>{F&&(F.setPlaybackRate(e),dr(e),K(`none`),_r(`Playback speed: ${e===1?`Normal`:`${e}x`}`))},di=e=>{if(!F)return;F.setQuality(e);let t=Jn.find(t=>t.id===e);t&&(Zn(t),_r(`Quality: ${t.label}`)),K(`none`)},fi=e=>{if(F)if(F.subtitles.setActiveTrack(e),er(e),K(`none`),e===`off`)_r(`Captions off`);else{let t=tr.find(t=>t.id===e);_r(`Captions: ${t?y(t):`on`}`)}},pi=e=>{if(F){if(j.current&&=(clearTimeout(j.current),null),yr(null),M.current&&(M.current.style.opacity=`1`),rn(!0),Ct.current===null){xt.current=F.getCurrentTime();let e=tr.find(e=>e.id===U),t=rr.find(e=>e.id===ar);St.current={playbackRate:ur,volume:Qt,muted:en,subtitleId:U,subtitleLang:e?.lang??null,audioLang:t&&ar!==0?t.lang:null,audioLabel:t&&ar!==0?t.label:null,qualityHeight:Xn.id===-1?null:Xn.height}}Ct.current={targetIdx:e},K(`none`),_r(`Source: ${x?.[e]?.label??``}`),tt?.(e)}},mi=(e,t)=>{Z(e,{eventType:`key_moments`,momentTitle:t?.title??``,momentTime:e}),K(`none`)},hi=(0,l.useCallback)(()=>{if(!kt.current)return;let e=F?.getVideoElement?.();e&&C.current&&e.ownerDocument!==document&&(e.classList.remove(`gb-pip-video`),e.style.objectFit=``,C.current.insertBefore(e,C.current.firstChild)),kt.current=null,hn(null),pn(!1)},[F]),gi=async()=>{if(!F)return;let e=window.documentPictureInPicture;if(!e){F.togglePictureInPicture();return}if(kt.current){kt.current.close();return}try{let t=F.getVideoElement(),n=t.videoWidth&&t.videoHeight?t.videoWidth/t.videoHeight:16/9,r=await e.requestWindow({width:360,height:Math.round(360/n)}),i=r.document.createElement(`style`);i.textContent=De,r.document.head.appendChild(i),t.classList.add(`gb-pip-video`),r.document.body.appendChild(t),r.addEventListener(`pagehide`,()=>hi(),{once:!0}),kt.current=r,hn(r),pn(!0)}catch(e){console.error(`[PlayerSDK PiP] Failed to open custom Picture-in-Picture window:`,e)}},_i=e=>{if(Y||Jr)return;let t=e.currentTarget.getBoundingClientRect();Z(H(Math.max(0,Math.min(1,(e.clientX-t.left)/t.width))*B))},vi=()=>{if(!C.current)return;let e=C.current,t=document,n=e,r=!!(document.fullscreenElement||t.webkitFullscreenElement),i=()=>{cn(!0),on(!0),document.body.style.overflow=`hidden`,document.body.style.touchAction=`none`,F?.analytics.track(`fullscreen_enter`,F.getVideoElement())},a=()=>{cn(!1),on(!1),document.body.style.overflow=``,document.body.style.touchAction=``,F?.analytics.track(`fullscreen_exit`,F.getVideoElement())};if(r||sn)un(!1),document.fullscreenElement?document.exitFullscreen():t.webkitFullscreenElement?t.webkitExitFullscreen?.():a();else{un(Mt.current);let t=e.requestFullscreen?.bind(e)??n.webkitRequestFullscreen?.bind(n);t?t().catch(i):i()}};(0,l.useEffect)(()=>{ft.current=vi});let yi=()=>{if(!Y)return;let e=R.find(e=>L>=e.startTime&&L<e.endTime),t=Ln.find(e=>L>=e.startTimeSeconds&&L<e.endTimeSeconds);if(t){let n=t.podIndex>=t.podTotal-1;_t.current?.(n?e?.endTime??t.endTimeSeconds:t.endTimeSeconds,!n);return}e&&_t.current?.(e.endTime)},bi=()=>{Fn.current&&In.current.add(Fn.current.availId),Nn(null),Fn.current=null},xi=e=>{e.clickTrackingUrl&&fetch(e.clickTrackingUrl,{mode:`no-cors`}).catch(()=>{}),e.clickThrough&&window.open(e.clickThrough,`_blank`,`noopener,noreferrer`)},Si=e=>{window.open(e.url,`_blank`,`noopener,noreferrer`)},Ci=()=>{F&&(q?F.casting.stopCasting():F.casting.requestSession(e,L))},wi=()=>{if(!F)return;let e=F.getVideoElement();if(Or){F.casting.stopAirPlay(e);return}typeof e.webkitShowPlaybackTargetPicker==`function`||F.casting.isAirPlayAvailable()?F.casting.requestAirPlaySession(e):console.warn(`[PlayerSDK AirPlay] AirPlay is not available on this device.`)},Ti=e=>{if(!w.current||B===0||!F||Y||Jr)return;let t=w.current.getBoundingClientRect();ot.current=t.width,Fr(Math.max(192/2,Math.min(e.clientX-t.left,t.width-192/2)));let n=H(Math.max(0,Math.min(1,(e.clientX-t.left)/t.width))*B);Nr(e.clientX-t.left),Lr(n),lt.current&&window.clearTimeout(lt.current),lt.current=window.setTimeout(()=>{T.current&&(T.current.currentTime=n)},100),Vr(F.keyMoments.getCurrentMoment(n).keyMoment)},Ei=e=>{if(!w.current||B===0)return 0;let t=w.current.getBoundingClientRect();return H(Math.max(0,Math.min(1,(e.clientX-t.left)/t.width))*B)},Di=e=>{if(!F||Y||Jr||B===0)return;e.preventDefault(),ut.current=!0,Hr(Ei(e.touches[0]));let t=e=>{if(!ut.current||!w.current)return;let t=e.touches[0],n=w.current.getBoundingClientRect(),r=H(Math.max(0,Math.min(1,(t.clientX-n.left)/n.width))*B);Hr(r),Lr(r),ni()},n=e=>{if(ut.current=!1,w.current&&e.changedTouches[0]){let t=e.changedTouches[0],n=w.current.getBoundingClientRect();Z(H(Math.max(0,Math.min(1,(t.clientX-n.left)/n.width))*B))}Hr(null),document.removeEventListener(`touchmove`,t),document.removeEventListener(`touchend`,n)};document.addEventListener(`touchmove`,t,{passive:!1}),document.addEventListener(`touchend`,n)},Oi=()=>{Nr(null),zr(null),Vr(null),lt.current&&window.clearTimeout(lt.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)(()=>{br.current&&_r(qt?`Playing`:`Paused`)},[qt]),(0,l.useEffect)(()=>{br.current&&_r(en?`Muted`:`Unmuted`)},[en]),(0,l.useEffect)(()=>{br.current=!0},[]),(0,l.useEffect)(()=>{let e=e=>{e.key===`Escape`&&ei.current!==`none`&&(e.preventDefault(),K(`none`))};return document.addEventListener(`keydown`,e),()=>document.removeEventListener(`keydown`,e)},[]);let ki=q?!(Cr?.isPaused??!0):qt,$=q?Cr?.currentTime??0:L,Ai=q?Cr?.duration??0:B,ji=q?Cr?.volumeLevel??1:Qt,Mi=q?Cr?.isMuted??!1:en,Ni=(0,l.useCallback)(e=>{if(Y||Jr||e.target.closest(`.sdk-mobile-ctrl`))return;let t=Date.now(),n=C.current?.getBoundingClientRect(),r=e.clientX-(n?.left??0),i=Nt.current;if(i&&t-i.time<300){Nt.current=null;let e=r<(n?.width??0)/2,t=e?-10:10;Z(H(Math.max(0,Math.min(B,V($)+t))),{eventType:e?`fast_backward`:`fast_forward`,skipSeconds:10}),Ft(e?`left`:`right`),window.setTimeout(()=>Ft(null),700),ni()}else Nt.current={time:t,x:r},Gr?(Kr(!1),Zr.current&&window.clearTimeout(Zr.current)):ni()},[Y,Jr,B,V,$,H,Z,Gr]),Pi=()=>Mi||ji===0?(0,d.jsx)(Ce,{size:18}):ji<.3?(0,d.jsx)(we,{size:18}):ji<.7?(0,d.jsx)(xe,{size:18}):(0,d.jsx)(Se,{size:18}),Fi=e=>t=>{t.key===`Enter`||t.key===` `?(t.preventDefault(),e()):t.key===`Escape`&&(t.preventDefault(),K(`none`))},Ii=e=>t=>{(t.key===`Enter`||t.key===` `)&&(t.preventDefault(),e())},Li=e=>{if(!(Y||Jr))if(e.key===`ArrowLeft`||e.key===`ArrowRight`){e.preventDefault();let t=e.key===`ArrowLeft`?-5:5;Z(H(Math.max(0,Math.min(B,V($)+t))))}else e.key===`Home`?(e.preventDefault(),Z(H(0))):e.key===`End`&&(e.preventDefault(),Z(H(B)))},Ri=e=>{K(G===e?`none`:e)},zi=(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,d.jsxs)(`div`,{ref:C,role:`region`,"aria-label":Ge||Ur?`${Ge||Ur} video player`:`Video player`,className:`sdk-player-container ${Gr?`controls-active`:``} ${sn?`sdk-fs-simulated`:``}`,onMouseMove:ii,onTouchStart:dn?void 0:ni,onMouseLeave:()=>{},style:{border:sn?`none`:`1px solid rgba(255, 255, 255, 0.08)`,"--sdk-theme-color":s,"--sdk-theme-color-rgb":Me(s)},children:[(0,d.jsx)(`canvas`,{ref:st,width:160,height:90,style:{display:`none`,position:`absolute`,pointerEvents:`none`},"aria-hidden":`true`}),(0,d.jsx)(`div`,{role:`status`,"aria-live":`polite`,"aria-atomic":`true`,className:`sdk-sr-only`,children:gr}),(0,d.jsx)(`div`,{ref:A,style:{opacity:0,position:`absolute`,inset:0,background:`#000`,zIndex:100,pointerEvents:`none`,willChange:`opacity`},"aria-hidden":`true`}),mn&&(0,d.jsxs)(`div`,{className:`sdk-pip-placeholder`,"aria-hidden":`true`,children:[(0,d.jsx)(_e,{size:32,"aria-hidden":`true`}),(0,d.jsx)(`span`,{children:`Playing in Picture-in-Picture`})]}),(0,d.jsx)(`div`,{ref:M,style:{opacity:S&&S>0?1:0,position:`absolute`,inset:0,background:`#000`,zIndex:100,pointerEvents:`none`,willChange:`opacity`},"aria-hidden":`true`}),(0,d.jsx)(`div`,{className:`sdk-spinner-overlay ${nn?`active`:``}`,"aria-hidden":`true`,children:(0,d.jsx)(`div`,{className:`sdk-spinner`})}),Ut&&(0,d.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,d.jsx)(f,{onRetry:()=>{Wt(!1),Kt(e=>e+1)}})}),vr&&(0,d.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:vr}),I.enableSubtitles&&!Y&&Qn&&U!==`off`&&(0,d.jsx)(`div`,{className:`sdk-subtitles-overlay`,children:(0,d.jsx)(`span`,{className:`sdk-subtitles-text`,style:{fontSize:b.size===`small`?`14px`:b.size===`large`?`24px`:`18px`,color:b.color??`#ffffff`,background:b.background===`none`?`transparent`:b.background===`solid`?`rgba(0, 0, 0, 0.92)`:`rgba(15, 23, 42, 0.78)`,border:b.background===`none`?`none`:`1px solid rgba(255,255,255,0.08)`,backdropFilter:b.background===`none`?`none`:`blur(8px)`},dangerouslySetInnerHTML:{__html:Qn}})}),Mn&&(0,d.jsxs)(`div`,{className:`sdk-overlay-ad sdk-overlay-ad--${Mn.position}`,role:`complementary`,"aria-label":`Advertisement`,children:[(0,d.jsxs)(`div`,{className:`sdk-overlay-ad-topbar`,children:[(0,d.jsx)(`span`,{className:`sdk-overlay-ad-label`,children:`Ad`}),Mn.dismissible&&(0,d.jsx)(`button`,{className:`sdk-overlay-ad-close`,onClick:bi,"aria-label":`Close advertisement`,children:`✕`})]}),(0,d.jsx)(`img`,{src:Mn.imageUrl,width:Mn.imageWidth,height:Mn.imageHeight,alt:Mn.title||`Advertisement`,className:`sdk-overlay-ad-img`,onClick:()=>xi(Mn)})]}),Y&&(()=>{let e=Ln.find(e=>L>=e.startTimeSeconds&&L<e.endTimeSeconds),t=R.find(e=>L>=e.startTime&&L<e.endTime),n=e?Math.max(0,e.endTimeSeconds-L):t?Math.max(0,t.endTime-L):0,r=e?L-e.startTimeSeconds:t?L-t.startTime:0,i=!!e&&e.podTotal>1,a=e?e.skippable:Xe,o=e?e.skipOffsetSeconds:Ze,s=a&&r>=o,c=Math.ceil(o-r),l=r+n,u=l>0?Math.min(1,Math.max(0,r/l)):0,ee=2.5,{w:f,h:te}=Vn,ne=Math.max(0,f-ee),re=Math.max(0,te-ee),p=Math.min(22-ee/2,re/2),m=Math.max(0,ne-2*p),ie=Math.max(0,re-2*p),ae=`M${1.25+p+m/2},1.25h${m/2}a${p},${p} 0 0 1 ${p},${p}v${ie}a${p},${p} 0 0 1 ${-p},${p}h${-m}a${p},${p} 0 0 1 ${-p},${-p}v${-ie}a${p},${p} 0 0 1 ${p},${-p}h${m/2}`,h=2*m+2*ie+2*Math.PI*p;return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsxs)(`div`,{ref:Bn,className:`sdk-ad-countdown`,role:`timer`,"aria-label":i?`Advertisement ${e.podIndex+1} of ${e.podTotal} — ${Q(n)} remaining`:`Advertisement — ${Q(n)} remaining`,"aria-live":`off`,children:[f>0&&te>0&&(0,d.jsxs)(`svg`,{className:`sdk-ad-countdown-border`,width:f,height:te,viewBox:`0 0 ${f} ${te}`,"aria-hidden":`true`,children:[(0,d.jsx)(`path`,{className:`sdk-ad-countdown-border-track`,d:ae,strokeWidth:ee}),(0,d.jsx)(`path`,{className:`sdk-ad-countdown-border-fill`,d:ae,strokeWidth:ee,strokeDasharray:h,strokeDashoffset:h*(1-u)})]}),(0,d.jsx)(`span`,{className:`sdk-ad-countdown-badge`,"aria-hidden":`true`,children:`Ad`}),i&&(0,d.jsxs)(`span`,{className:`sdk-ad-countdown-count`,"aria-hidden":`true`,children:[e.podIndex+1,` of `,e.podTotal]}),(0,d.jsx)(`span`,{className:`sdk-ad-countdown-sep`,"aria-hidden":`true`}),(0,d.jsx)(`span`,{className:`sdk-ad-countdown-time`,"aria-hidden":`true`,children:Q(n)})]}),a&&(0,d.jsx)(`button`,{className:`sdk-skip-ad-btn ${s?`sdk-skip-ad-btn--ready`:``}`,onClick:s?yi:void 0,disabled:!s,"aria-label":s?`Skip advertisement`:`Skip advertisement available in ${c} seconds`,"aria-disabled":!s,children:s?`Skip Ad ›`:`Skip in ${c}s`}),e?.cta&&(()=>{let t=e.cta,n=(0,d.jsxs)(`button`,{className:`sdk-ad-cta-btn`,onClick:()=>Si(t),"aria-label":`${t.text} — opens advertiser site in a new tab`,children:[(0,d.jsx)(`span`,{className:`sdk-ad-cta-btn-text`,children:t.text}),(0,d.jsx)(de,{size:15,"aria-hidden":`true`})]});return(0,d.jsx)(`div`,{className:`sdk-ad-cta`,role:`complementary`,"aria-label":`Advertisement call to action`,children:t.title?(0,d.jsxs)(`div`,{className:`sdk-ad-cta-card`,children:[(0,d.jsxs)(`div`,{className:`sdk-ad-cta-info`,children:[(0,d.jsx)(`div`,{className:`sdk-ad-cta-title`,children:t.title}),t.description&&(0,d.jsx)(`div`,{className:`sdk-ad-cta-desc`,children:t.description})]}),n]}):n})})()]})})(),Ht&&(0,d.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,d.jsxs)(`div`,{style:{maxWidth:480,textAlign:`center`,padding:24},children:[(0,d.jsx)(`h3`,{style:{margin:`0 0 8px`},children:`Playback restricted`}),(0,d.jsx)(`p`,{style:{margin:0},children:`Your account is missing a required license key. Please contact your administrator.`})]})}),(q||Or)&&(0,d.jsx)(`div`,{className:`sdk-cast-bg`}),dn&&(0,d.jsxs)(`div`,{className:`sdk-mobile-overlay ${Gr?`active`:``}`,onClick:Ni,children:[Pt&&(0,d.jsx)(`div`,{className:`sdk-mobile-doubletap ${Pt}`,children:(0,d.jsxs)(`div`,{className:`sdk-mobile-doubletap-icon`,children:[Pt===`left`?(0,d.jsx)(ye,{size:26}):(0,d.jsx)(be,{size:26}),(0,d.jsx)(`span`,{className:`sdk-mobile-doubletap-label`,children:`10s`})]})}),ie&&(0,d.jsxs)(d.Fragment,{children:[(0,d.jsxs)(`div`,{className:`sdk-mobile-header sdk-mobile-ctrl`,children:[(0,d.jsxs)(`div`,{className:`sdk-mobile-header-left`,children:[(an||sn)&&(0,d.jsx)(`button`,{className:`sdk-mobile-back-btn`,onClick:vi,"aria-label":`Exit fullscreen`,children:(0,d.jsx)(ue,{size:22,"aria-hidden":`true`})}),(Ge||Ur)&&(0,d.jsx)(`div`,{className:`sdk-mobile-title`,children:Ge||Ur})]}),(0,d.jsxs)(`div`,{className:`sdk-mobile-header-actions`,children:[I.enablePiP&&(0,d.jsx)(`button`,{className:`sdk-mobile-hdr-btn`,onClick:()=>{Y||gi()},style:{color:fn?s:``},"aria-label":fn?`Exit picture-in-picture`:`Enter picture-in-picture`,"aria-pressed":fn,children:(0,d.jsx)(_e,{size:20,"aria-hidden":`true`})}),I.enableChromecast&&!Y&&(0,d.jsx)(`button`,{className:`sdk-mobile-hdr-btn`,onClick:Ci,"data-tooltip":q?`Casting to ${q} — tap to disconnect`:`Cast to device`,"aria-label":q?`Stop casting to ${q}`:`Cast to device`,"aria-pressed":!!q,style:{color:q?`#3b82f6`:``},children:(0,d.jsx)(le,{size:20,fill:q?`currentColor`:`none`,"aria-hidden":`true`})}),I.allowAirplay&&Er&&(0,d.jsx)(`button`,{className:`sdk-mobile-hdr-btn`,onClick:wi,"aria-label":Or?`Stop AirPlay to ${Ar||`device`}`:`AirPlay to device`,"aria-pressed":Or,style:{color:Or?s:``},children:(0,d.jsx)(se,{size:20,"aria-hidden":`true`})})]})]}),(0,d.jsxs)(`div`,{className:`sdk-mobile-center-controls sdk-mobile-ctrl`,children:[!Y&&(0,d.jsxs)(`button`,{className:`sdk-mobile-seek-btn`,onClick:()=>Z(H(Math.max(0,V($)-10)),{eventType:`fast_backward`,skipSeconds:10}),"aria-label":`Rewind 10 seconds`,children:[(0,d.jsx)(ye,{size:22,"aria-hidden":`true`}),(0,d.jsx)(`span`,{className:`sdk-mobile-seek-label`,"aria-hidden":`true`,children:`10`})]}),(0,d.jsx)(`button`,{className:`sdk-mobile-play-btn`,onClick:oi,"aria-label":gn?`Replay`:ki?`Pause`:`Play`,children:gn?(0,d.jsx)(ye,{size:38,"aria-hidden":`true`}):ki?(0,d.jsx)(v,{size:38,fill:`currentColor`,"aria-hidden":`true`}):(0,d.jsx)(ve,{size:38,fill:`currentColor`,style:{marginLeft:`3px`},"aria-hidden":`true`})}),!Y&&(0,d.jsxs)(`button`,{className:`sdk-mobile-seek-btn`,onClick:()=>Z(H(Math.min(B,V($)+10)),{eventType:`fast_forward`,skipSeconds:10}),"aria-label":`Skip forward 10 seconds`,children:[(0,d.jsx)(be,{size:22,"aria-hidden":`true`}),(0,d.jsx)(`span`,{className:`sdk-mobile-seek-label`,"aria-hidden":`true`,children:`10`})]})]}),(0,d.jsxs)(`div`,{className:`sdk-mobile-bottom-bar sdk-mobile-ctrl`,children:[I.enableKeyMoments&&fr&&W.length>0&&(0,d.jsx)(`div`,{className:`sdk-mobile-chapters-scroll`,children:W.map((e,t)=>{let n=sr.index===t;return(0,d.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:()=>{mi(e.startTime,e)},onKeyDown:Ii(()=>mi(e.startTime,e)),children:[(0,d.jsxs)(`div`,{className:`sdk-mobile-chapter-thumb`,children:[mr[t]||e.thumbnail?(0,d.jsx)(`img`,{src:mr[t]||e.thumbnail,alt:``,"aria-hidden":`true`,style:{width:`100%`,height:`100%`,objectFit:`cover`,display:`block`}}):(0,d.jsx)(me,{size:16,"aria-hidden":`true`,style:{color:n?s:`rgba(255,255,255,0.3)`}}),(0,d.jsx)(`span`,{className:`sdk-mobile-chapter-time-badge`,"aria-hidden":`true`,children:Q(e.startTime)})]}),(0,d.jsx)(`div`,{className:`sdk-mobile-chapter-title`,style:{color:n?s:void 0},children:e.title})]},t)})}),(0,d.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(B),"aria-valuenow":X?void 0:Math.round(V(J===null?L:J)),"aria-valuetext":X?void 0:`${Q(V(J===null?L:J))} of ${Q(B)}`,tabIndex:X?void 0:0,className:`sdk-seekbar-container sdk-mobile-seekbar${Y?` sdk-ad-mode`:``}`,onMouseDown:X?void 0:ci,onMouseMove:X?void 0:Ti,onMouseLeave:X?void 0:Oi,onTouchStart:X?void 0:Di,onKeyDown:X?void 0:Li,style:{pointerEvents:X?`none`:void 0,touchAction:`none`},children:Y?(0,d.jsx)(`div`,{className:`sdk-ad-progress-fill`,style:{width:(()=>{let e=F?F.getCurrentTime():L,t=Gn(e);return t?`${Math.min(100,Math.max(0,(e-t.start)/(t.end-t.start)*100))}%`:`0%`})()}}):(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(`div`,{className:`sdk-seekbar-buffered`,style:{width:`${Xt?(F&&F.getBufferedRanges()[0]?.end||0)/Xt*100:0}%`}}),B>0&&R.filter(e=>!xn.has(e.startTime)).map((e,t)=>(0,d.jsx)(`div`,{className:`sdk-seekbar-adbreak`,style:{left:`${V(e.startTime)/B*100}%`,width:`3px`}},t)),(0,d.jsx)(`div`,{className:`sdk-seekbar-progress`,style:{width:q?`${Ai>0?$/Ai*100:0}%`:`${B?V(J===null?L:J)/B*100:0}%`,background:`#ffffff`,boxShadow:`none`},children:(0,d.jsx)(`div`,{className:`sdk-seekbar-handle`,style:{opacity:1,transform:`scale(1)`}})}),I.enableKeyMoments&&W.map((e,t)=>B===0?null:(0,d.jsx)(`div`,{className:`sdk-seekbar-chapter-marker sdk-desktop-chapter-dot`,style:{left:`${V(e.startTime)/B*100}%`}},t))]})}),(0,d.jsxs)(`div`,{className:`sdk-mobile-controls-row`,children:[!Y&&(0,d.jsx)(`span`,{className:`sdk-time-display`,children:q?`${Q($)} / ${Q(Ai)}`:`${Q(V(J===null?L:J))} / ${Q(B)}`}),(0,d.jsxs)(`div`,{className:`sdk-mobile-bottom-icons`,children:[I.enableKeyMoments&&W.length>0&&!Y&&(0,d.jsx)(`button`,{className:`sdk-mobile-icon-btn${fr?` active`:``}`,onClick:()=>{pr(!fr)},"aria-label":fr?`Hide chapters`:`Show chapters`,"aria-pressed":fr,children:(0,d.jsx)(me,{size:18,"aria-hidden":`true`})}),I.enableSubtitles&&!Y&&tr.some(e=>!e.isNative)&&(0,d.jsxs)(`div`,{className:`sdk-menu-container`,children:[(0,d.jsx)(`button`,{className:`sdk-mobile-icon-btn${U===`off`?``:` active`}`,onClick:()=>{Ri(`subtitles`)},"aria-label":`Captions`,"aria-haspopup":`listbox`,"aria-expanded":G===`subtitles`,children:(0,d.jsx)(ce,{size:18,"aria-hidden":`true`})}),G===`subtitles`&&(0,d.jsxs)(`div`,{ref:zi,className:`sdk-dropup-menu`,role:`listbox`,"aria-label":`Captions`,children:[(0,d.jsx)(`div`,{className:`sdk-dropup-header`,"aria-hidden":`true`,children:`Subtitles`}),(0,d.jsxs)(`div`,{role:`option`,"aria-selected":U===`off`,tabIndex:0,className:`sdk-dropup-item ${U===`off`?`active`:``}`,onClick:()=>fi(`off`),onKeyDown:Fi(()=>fi(`off`)),children:[(0,d.jsx)(`span`,{children:`Off`}),U===`off`&&(0,d.jsx)(_,{size:12,"aria-hidden":`true`})]}),tr.map(e=>(0,d.jsxs)(`div`,{role:`option`,"aria-selected":U===e.id,tabIndex:0,className:`sdk-dropup-item ${U===e.id?`active`:``}`,onClick:()=>fi(e.id),onKeyDown:Fi(()=>fi(e.id)),children:[(0,d.jsx)(`span`,{children:y(e)}),U===e.id&&(0,d.jsx)(_,{size:12,"aria-hidden":`true`})]},e.id))]})]}),I.allowMultipleAudio&&rr.length>1&&!Y&&(0,d.jsxs)(`div`,{className:`sdk-menu-container`,children:[(0,d.jsx)(`button`,{className:`sdk-mobile-icon-btn${G===`audio`?` active`:``}`,onClick:()=>{Ri(`audio`)},"aria-label":`Audio track`,"aria-haspopup":`listbox`,"aria-expanded":G===`audio`,children:(0,d.jsx)(pe,{size:18,"aria-hidden":`true`})}),G===`audio`&&(0,d.jsxs)(`div`,{ref:zi,className:`sdk-dropup-menu`,role:`listbox`,"aria-label":`Audio track`,children:[(0,d.jsx)(`div`,{className:`sdk-dropup-header`,"aria-hidden":`true`,children:`Audio Track`}),rr.map(e=>(0,d.jsxs)(`div`,{role:`option`,"aria-selected":ar===e.id,tabIndex:0,className:`sdk-dropup-item ${ar===e.id?`active`:``}`,onClick:()=>{F?.setAudioTrack(e.id),or(e.id),K(`none`),_r(`Audio: ${y(e)}`)},onKeyDown:Fi(()=>{F?.setAudioTrack(e.id),or(e.id),K(`none`),_r(`Audio: ${y(e)}`)}),children:[(0,d.jsx)(`span`,{children:y(e)}),ar===e.id&&(0,d.jsx)(_,{size:12,"aria-hidden":`true`})]},e.id))]})]}),I.enablePlaybackSpeed&&!Y&&(0,d.jsxs)(`div`,{className:`sdk-menu-container`,children:[(0,d.jsx)(`button`,{className:`sdk-mobile-icon-btn${G===`speed`?` active`:``}`,onClick:()=>{Ri(`speed`)},"aria-label":`Playback speed`,"aria-haspopup":`listbox`,"aria-expanded":G===`speed`,children:(0,d.jsx)(fe,{size:18,"aria-hidden":`true`})}),G===`speed`&&(0,d.jsxs)(`div`,{ref:zi,className:`sdk-dropup-menu`,role:`listbox`,"aria-label":`Playback speed`,children:[(0,d.jsx)(`div`,{className:`sdk-dropup-header`,"aria-hidden":`true`,children:`Speed`}),[.5,.75,1,1.25,1.5,2].map(e=>(0,d.jsxs)(`div`,{role:`option`,"aria-selected":ur===e,tabIndex:0,className:`sdk-dropup-item ${ur===e?`active`:``}`,onClick:()=>ui(e),onKeyDown:Fi(()=>ui(e)),children:[(0,d.jsx)(`span`,{children:e===1?`Normal`:`${e}x`}),ur===e&&(0,d.jsx)(_,{size:12,"aria-hidden":`true`})]},e))]})]}),I.enableQuality&&!Y&&(0,d.jsxs)(`div`,{className:`sdk-menu-container`,children:[(0,d.jsx)(`button`,{className:`sdk-mobile-icon-btn${Xn.id===-1?``:` active`}`,onClick:()=>{Ri(`quality`)},"aria-label":`Video quality`,"aria-haspopup":`listbox`,"aria-expanded":G===`quality`,children:(0,d.jsx)(Ae,{size:18,"aria-hidden":`true`})}),G===`quality`&&(0,d.jsxs)(`div`,{ref:zi,className:`sdk-dropup-menu large`,role:`listbox`,"aria-label":`Video quality`,children:[(0,d.jsx)(`div`,{className:`sdk-dropup-header`,"aria-hidden":`true`,children:`Quality`}),Jn.map(e=>(0,d.jsxs)(`div`,{role:`option`,"aria-selected":Xn.id===e.id,tabIndex:0,className:`sdk-dropup-item ${Xn.id===e.id?`active`:``}`,onClick:()=>di(e.id),onKeyDown:Fi(()=>di(e.id)),children:[(0,d.jsx)(`span`,{children:e.label}),Xn.id===e.id&&(0,d.jsx)(_,{size:12,"aria-hidden":`true`})]},e.id))]})]}),x&&x.length>1&&!Y&&(0,d.jsxs)(`div`,{className:`sdk-menu-container`,children:[(0,d.jsx)(`button`,{className:`sdk-mobile-icon-btn${G===`sources`?` active`:``}`,onClick:()=>{Ri(`sources`)},"aria-label":`Select source`,"aria-haspopup":`listbox`,"aria-expanded":G===`sources`,children:(0,d.jsx)(je,{size:18,"aria-hidden":`true`})}),G===`sources`&&(0,d.jsxs)(`div`,{ref:zi,className:`sdk-dropup-menu`,role:`listbox`,"aria-label":`Select source`,children:[(0,d.jsx)(`div`,{className:`sdk-dropup-header`,"aria-hidden":`true`,children:`Source`}),x.map((e,t)=>(0,d.jsxs)(`div`,{role:`option`,"aria-selected":et===t,tabIndex:0,className:`sdk-dropup-item ${et===t?`active`:``}`,onClick:()=>pi(t),onKeyDown:Fi(()=>pi(t)),children:[(0,d.jsx)(`span`,{children:e.label}),et===t&&(0,d.jsx)(_,{size:12,"aria-hidden":`true`})]},t))]})]}),(0,d.jsx)(`button`,{className:`sdk-mobile-icon-btn`,onClick:vi,"aria-label":an||sn?`Exit fullscreen`:`Enter fullscreen`,"aria-pressed":an||sn,children:an?(0,d.jsx)(ge,{size:18,"aria-hidden":`true`}):(0,d.jsx)(he,{size:18,"aria-hidden":`true`})})]})]})]})]})]}),!dn&&(0,d.jsxs)(`div`,{className:`sdk-controls-overlay`,onClick:e=>{Y||e.target.closest(`.sdk-desktop-header`)||e.target.closest(`.sdk-desktop-center-controls`)||e.target.closest(`.sdk-desktop-bottom`)||oi()},children:[(0,d.jsxs)(`div`,{className:`sdk-desktop-header`,children:[(0,d.jsxs)(`div`,{className:`sdk-desktop-header-left`,children:[(an||sn)&&(0,d.jsx)(`button`,{className:`sdk-desktop-back-btn`,onClick:e=>{e.stopPropagation(),vi()},"aria-label":`Exit fullscreen`,children:(0,d.jsx)(ue,{size:22,"aria-hidden":`true`})}),(Ge||Ur)&&(0,d.jsx)(`span`,{className:`sdk-desktop-title`,children:Ge||Ur})]}),(0,d.jsxs)(`div`,{className:`sdk-desktop-header-right`,children:[I.enableChromecast&&!Y&&(0,d.jsx)(`button`,{className:`sdk-desktop-hdr-btn`,onClick:e=>{e.stopPropagation(),Ci()},"data-tooltip":q?`Casting to ${q} — click to disconnect`:`Cast to device`,"aria-label":q?`Stop casting to ${q}`:`Cast to device`,"aria-pressed":!!q,style:{color:q?`#3b82f6`:``},children:(0,d.jsx)(le,{size:20,fill:q?`currentColor`:`none`,"aria-hidden":`true`})}),q&&(0,d.jsxs)(`span`,{className:`sdk-cast-indicator`,"aria-hidden":`true`,children:[(0,d.jsx)(le,{size:10,fill:`currentColor`,"aria-hidden":`true`}),q]}),I.allowAirplay&&Er&&(0,d.jsx)(`button`,{className:`sdk-desktop-hdr-btn`,onClick:e=>{e.stopPropagation(),wi()},"data-tooltip":Or?`AirPlay to ${Ar||`device`} — click to disconnect`:`AirPlay to device`,"aria-label":Or?`Stop AirPlay to ${Ar||`device`}`:`AirPlay to device`,"aria-pressed":Or,style:{color:Or?s:``},children:(0,d.jsx)(se,{size:20,"aria-hidden":`true`})})]})]}),ie&&(0,d.jsxs)(d.Fragment,{children:[(0,d.jsxs)(`div`,{className:`sdk-desktop-center-controls`,style:{pointerEvents:`none`},children:[!Y&&(0,d.jsx)(`button`,{className:`sdk-desktop-seek-btn`,style:{pointerEvents:`auto`},onClick:e=>{e.stopPropagation(),Z(H(Math.max(0,V($)-10)),{eventType:`fast_backward`,skipSeconds:10})},"aria-label":`Rewind 10 seconds`,children:(0,d.jsxs)(`div`,{style:{position:`relative`,display:`flex`,alignItems:`center`,justifyContent:`center`},children:[(0,d.jsx)(ye,{size:30,"aria-hidden":`true`}),(0,d.jsx)(`span`,{className:`sdk-desktop-seek-label`,"aria-hidden":`true`,children:`10`})]})}),(0,d.jsx)(`button`,{className:`sdk-desktop-play-btn`,style:{pointerEvents:`auto`},onClick:e=>{e.stopPropagation(),oi()},"aria-label":gn?`Replay`:ki?`Pause`:`Play`,children:gn?(0,d.jsx)(ye,{size:38,"aria-hidden":`true`}):ki?(0,d.jsx)(v,{size:38,fill:`currentColor`,"aria-hidden":`true`}):(0,d.jsx)(ve,{size:38,fill:`currentColor`,style:{marginLeft:`4px`},"aria-hidden":`true`})}),!Y&&(0,d.jsx)(`button`,{className:`sdk-desktop-seek-btn`,style:{pointerEvents:`auto`},onClick:e=>{e.stopPropagation(),Z(H(Math.min(B,V($)+10)),{eventType:`fast_forward`,skipSeconds:10})},"aria-label":`Skip forward 10 seconds`,children:(0,d.jsxs)(`div`,{style:{position:`relative`,display:`flex`,alignItems:`center`,justifyContent:`center`},children:[(0,d.jsx)(be,{size:30,"aria-hidden":`true`}),(0,d.jsx)(`span`,{className:`sdk-desktop-seek-label`,"aria-hidden":`true`,children:`10`})]})})]}),I.enableKeyMoments&&fr&&W.length>0&&Ke===`panel`&&(0,d.jsxs)(`div`,{className:`sdk-chapters-panel`,onClick:e=>e.stopPropagation(),children:[(0,d.jsx)(`div`,{className:`sdk-chapters-panel-header`,children:(0,d.jsx)(`span`,{className:`sdk-chapters-panel-title`,children:`Chapters`})}),(0,d.jsx)(`div`,{className:`sdk-chapters-panel-list`,children:W.map((e,t)=>{let n=sr.index===t;return(0,d.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:()=>mi(e.startTime,e),onKeyDown:Ii(()=>mi(e.startTime,e)),children:[(0,d.jsx)(`div`,{className:`sdk-chapters-panel-thumb`,children:mr[t]||e.thumbnail?(0,d.jsx)(`img`,{src:mr[t]||e.thumbnail,alt:``,"aria-hidden":`true`,style:{width:`100%`,height:`100%`,objectFit:`cover`,display:`block`}}):(0,d.jsx)(me,{size:18,"aria-hidden":`true`,style:{color:`rgba(255,255,255,0.3)`}})}),(0,d.jsxs)(`div`,{className:`sdk-chapters-panel-info`,children:[(0,d.jsx)(`div`,{className:`sdk-chapters-panel-item-title`,children:e.title}),e.description&&(0,d.jsx)(`div`,{className:`sdk-chapters-panel-item-desc`,children:e.description}),(0,d.jsx)(`div`,{className:`sdk-chapters-panel-item-time`,"aria-hidden":`true`,children:Q(e.startTime)})]})]},t)})})]}),(0,d.jsxs)(`div`,{className:`sdk-desktop-bottom`,children:[I.enableKeyMoments&&fr&&W.length>0&&Ke===`strip`&&(0,d.jsx)(`div`,{className:`sdk-desktop-chapters-strip`,children:W.map((e,t)=>{let n=sr.index===t;return(0,d.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(),mi(e.startTime,e)},onKeyDown:Ii(()=>mi(e.startTime,e)),children:[(0,d.jsx)(`div`,{className:`sdk-desktop-chapter-thumb`,children:mr[t]||e.thumbnail?(0,d.jsx)(`img`,{src:mr[t]||e.thumbnail,alt:``,"aria-hidden":`true`,style:{width:`100%`,height:`100%`,objectFit:`cover`,display:`block`}}):(0,d.jsx)(me,{size:18,"aria-hidden":`true`,style:{color:`rgba(255,255,255,0.35)`}})}),(0,d.jsx)(`div`,{className:`sdk-desktop-chapter-title`,children:e.title}),(0,d.jsx)(`div`,{className:`sdk-desktop-chapter-time`,"aria-hidden":`true`,children:Q(e.startTime)})]},t)})}),(0,d.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(B),"aria-valuenow":X?void 0:Math.round(V(J===null?L:J)),"aria-valuetext":X?void 0:`${Q(V(J===null?L:J))} of ${Q(B)}`,tabIndex:X?void 0:0,className:`sdk-seekbar-container sdk-desktop-seekbar${Y?` sdk-ad-mode`:``}`,onMouseDown:X?void 0:ci,onMouseMove:X?void 0:Ti,onMouseLeave:X?void 0:Oi,onTouchStart:X?void 0:Di,onKeyDown:X?void 0:Li,style:{pointerEvents:X?`none`:void 0},children:Y?(0,d.jsx)(`div`,{className:`sdk-ad-progress-fill`,style:{width:(()=>{let e=F?F.getCurrentTime():L,t=Gn(e);return t?`${Math.min(100,Math.max(0,(e-t.start)/(t.end-t.start)*100))}%`:`0%`})()}}):(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(`div`,{className:`sdk-seekbar-buffered`,style:{width:`${Xt?(F&&F.getBufferedRanges()[0]?.end||0)/Xt*100:0}%`}}),B>0&&R.filter(e=>!xn.has(e.startTime)).map((e,t)=>(0,d.jsx)(`div`,{className:`sdk-seekbar-adbreak`,style:{left:`${V(e.startTime)/B*100}%`,width:`3px`}},t)),(0,d.jsx)(`div`,{className:`sdk-seekbar-progress`,style:{width:q?`${Ai>0?$/Ai*100:0}%`:`${B?V(J===null?L:J)/B*100:0}%`,background:`#ffffff`,boxShadow:`none`},children:(0,d.jsx)(`div`,{className:`sdk-seekbar-handle`})}),I.enableKeyMoments&&W.map((e,t)=>B===0?null:(0,d.jsx)(`div`,{className:`sdk-seekbar-chapter-marker sdk-desktop-chapter-dot`,style:{left:`${V(e.startTime)/B*100}%`}},t)),Mr!==null&&Rr&&(0,d.jsxs)(`div`,{className:`sdk-thumbnail-tooltip`,style:{left:`${Pr}px`},children:[(0,d.jsx)(`div`,{className:`sdk-thumbnail-preview`,children:(0,d.jsx)(`img`,{src:Rr,alt:`preview`,style:{width:`100%`,height:`100%`,objectFit:`cover`,borderRadius:`8px`,display:`block`}})}),Br&&(0,d.jsx)(`div`,{className:`sdk-thumbnail-chapter-name`,children:Br.title}),(0,d.jsx)(`div`,{className:`sdk-thumbnail-time-label`,children:Q(V(Ir))})]})]})}),(0,d.jsxs)(`div`,{className:`sdk-desktop-controls-row`,children:[(0,d.jsxs)(`div`,{className:`sdk-desktop-left-controls`,children:[!Y&&(0,d.jsx)(`div`,{className:`sdk-time-display`,children:q?`${Q($)} / ${Q(Ai)}`:`${Q(V(J===null?L:J))} / ${Q(B)}`}),qe===`slider`&&(0,d.jsxs)(`div`,{className:`sdk-volume-control`,children:[(0,d.jsx)(`button`,{className:`sdk-desktop-icon-btn`,onClick:e=>{e.stopPropagation(),li()},"data-tooltip":Mi?`Unmute`:`Mute`,"aria-label":Mi?`Unmute`:`Mute`,"aria-pressed":Mi,children:Pi()}),(0,d.jsx)(`input`,{type:`range`,className:`sdk-volume-slider`,min:0,max:1,step:.02,value:Mi?0:ji,"aria-label":`Volume`,"aria-valuetext":Mi?`Muted`:`${Math.round(ji*100)}%`,style:{"--vol-pct":Math.round((Mi?0:ji)*100)},onChange:e=>{let t=parseFloat(e.target.value);q?(F?.casting.remoteSetVolume(t),t>0&&F?.casting.remoteSetMute(!1)):(F?.setVolume(t),t>0&&en&&F?.setMute(!1))},onClick:e=>e.stopPropagation()})]})]}),(0,d.jsxs)(`div`,{className:`sdk-desktop-right-icons`,children:[I.enableKeyMoments&&W.length>0&&!Y&&(0,d.jsx)(`button`,{className:`sdk-desktop-icon-btn${fr?` active`:``}`,onClick:e=>{e.stopPropagation(),pr(!fr)},"data-tooltip":`Key Moments`,"aria-label":fr?`Hide chapters`:`Show chapters`,"aria-pressed":fr,children:(0,d.jsx)(me,{size:20,"aria-hidden":`true`})}),I.enableSubtitles&&!Y&&tr.some(e=>!e.isNative)&&(0,d.jsxs)(`div`,{className:`sdk-menu-container`,children:[(0,d.jsx)(`button`,{className:`sdk-desktop-icon-btn${U===`off`?``:` active`}`,onClick:e=>{e.stopPropagation(),Ri(`subtitles`)},"data-tooltip":`Captions`,"aria-label":`Captions`,"aria-haspopup":`listbox`,"aria-expanded":G===`subtitles`,children:(0,d.jsx)(ce,{size:20,"aria-hidden":`true`})}),G===`subtitles`&&(0,d.jsxs)(`div`,{ref:zi,className:`sdk-dropup-menu`,role:`listbox`,"aria-label":`Captions`,children:[(0,d.jsx)(`div`,{className:`sdk-dropup-header`,"aria-hidden":`true`,children:`Subtitles`}),(0,d.jsxs)(`div`,{role:`option`,"aria-selected":U===`off`,tabIndex:0,className:`sdk-dropup-item ${U===`off`?`active`:``}`,onClick:()=>fi(`off`),onKeyDown:Fi(()=>fi(`off`)),children:[(0,d.jsx)(`span`,{children:`Off`}),U===`off`&&(0,d.jsx)(_,{size:12,"aria-hidden":`true`})]}),tr.map(e=>(0,d.jsxs)(`div`,{role:`option`,"aria-selected":U===e.id,tabIndex:0,className:`sdk-dropup-item ${U===e.id?`active`:``}`,onClick:()=>fi(e.id),onKeyDown:Fi(()=>fi(e.id)),children:[(0,d.jsx)(`span`,{children:y(e)}),U===e.id&&(0,d.jsx)(_,{size:12,"aria-hidden":`true`})]},e.id))]})]}),I.allowMultipleAudio&&rr.length>1&&!Y&&(0,d.jsxs)(`div`,{className:`sdk-menu-container`,children:[(0,d.jsx)(`button`,{className:`sdk-desktop-icon-btn${G===`audio`?` active`:``}`,onClick:e=>{e.stopPropagation(),Ri(`audio`)},"data-tooltip":`Audio Track`,"aria-label":`Audio track`,"aria-haspopup":`listbox`,"aria-expanded":G===`audio`,children:(0,d.jsx)(pe,{size:20,"aria-hidden":`true`})}),G===`audio`&&(0,d.jsxs)(`div`,{ref:zi,className:`sdk-dropup-menu`,role:`listbox`,"aria-label":`Audio track`,children:[(0,d.jsx)(`div`,{className:`sdk-dropup-header`,"aria-hidden":`true`,children:`Audio Track`}),rr.map(e=>(0,d.jsxs)(`div`,{role:`option`,"aria-selected":ar===e.id,tabIndex:0,className:`sdk-dropup-item ${ar===e.id?`active`:``}`,onClick:()=>{F?.setAudioTrack(e.id),or(e.id),K(`none`),_r(`Audio: ${y(e)}`)},onKeyDown:Fi(()=>{F?.setAudioTrack(e.id),or(e.id),K(`none`),_r(`Audio: ${y(e)}`)}),children:[(0,d.jsx)(`span`,{children:y(e)}),ar===e.id&&(0,d.jsx)(_,{size:12,"aria-hidden":`true`})]},e.id))]})]}),I.enablePlaybackSpeed&&!Y&&(0,d.jsxs)(`div`,{className:`sdk-menu-container`,children:[(0,d.jsx)(`button`,{className:`sdk-desktop-icon-btn${G===`speed`?` active`:``}`,onClick:e=>{e.stopPropagation(),Ri(`speed`)},"data-tooltip":`Playback Speed`,"aria-label":`Playback speed`,"aria-haspopup":`listbox`,"aria-expanded":G===`speed`,children:(0,d.jsx)(fe,{size:20,"aria-hidden":`true`})}),G===`speed`&&(0,d.jsxs)(`div`,{ref:zi,className:`sdk-dropup-menu`,role:`listbox`,"aria-label":`Playback speed`,children:[(0,d.jsx)(`div`,{className:`sdk-dropup-header`,"aria-hidden":`true`,children:`Speed`}),[.5,.75,1,1.25,1.5,2].map(e=>(0,d.jsxs)(`div`,{role:`option`,"aria-selected":ur===e,tabIndex:0,className:`sdk-dropup-item ${ur===e?`active`:``}`,onClick:()=>ui(e),onKeyDown:Fi(()=>ui(e)),children:[(0,d.jsx)(`span`,{children:e===1?`Normal`:`${e}x`}),ur===e&&(0,d.jsx)(_,{size:12,"aria-hidden":`true`})]},e))]})]}),I.enableQuality&&!Y&&(0,d.jsxs)(`div`,{className:`sdk-menu-container`,children:[(0,d.jsx)(`button`,{className:`sdk-desktop-icon-btn${Xn.id===-1?``:` active`}`,onClick:e=>{e.stopPropagation(),Ri(`quality`)},"data-tooltip":`Quality`,"aria-label":`Video quality`,"aria-haspopup":`listbox`,"aria-expanded":G===`quality`,children:(0,d.jsx)(Ae,{size:20,"aria-hidden":`true`})}),G===`quality`&&(0,d.jsxs)(`div`,{ref:zi,className:`sdk-dropup-menu large`,role:`listbox`,"aria-label":`Video quality`,children:[(0,d.jsx)(`div`,{className:`sdk-dropup-header`,"aria-hidden":`true`,children:`Quality`}),Jn.map(e=>(0,d.jsxs)(`div`,{role:`option`,"aria-selected":Xn.id===e.id,tabIndex:0,className:`sdk-dropup-item ${Xn.id===e.id?`active`:``}`,onClick:()=>di(e.id),onKeyDown:Fi(()=>di(e.id)),children:[(0,d.jsx)(`span`,{children:e.label}),Xn.id===e.id&&(0,d.jsx)(_,{size:12,"aria-hidden":`true`})]},e.id))]})]}),x&&x.length>1&&!Y&&(0,d.jsxs)(`div`,{className:`sdk-menu-container`,children:[(0,d.jsx)(`button`,{className:`sdk-desktop-icon-btn${G===`sources`?` active`:``}`,onClick:e=>{e.stopPropagation(),Ri(`sources`)},"data-tooltip":`Select Source`,"aria-label":`Select source`,"aria-haspopup":`listbox`,"aria-expanded":G===`sources`,children:(0,d.jsx)(je,{size:20,"aria-hidden":`true`})}),G===`sources`&&(0,d.jsxs)(`div`,{ref:zi,className:`sdk-dropup-menu`,role:`listbox`,"aria-label":`Select source`,children:[(0,d.jsx)(`div`,{className:`sdk-dropup-header`,"aria-hidden":`true`,children:`Source`}),x.map((e,t)=>(0,d.jsxs)(`div`,{role:`option`,"aria-selected":et===t,tabIndex:0,className:`sdk-dropup-item ${et===t?`active`:``}`,onClick:()=>pi(t),onKeyDown:Fi(()=>pi(t)),children:[(0,d.jsx)(`span`,{children:e.label}),et===t&&(0,d.jsx)(_,{size:12,"aria-hidden":`true`})]},t))]})]}),I.enablePiP&&!Y&&(0,d.jsx)(`button`,{className:`sdk-desktop-icon-btn${fn?` active`:``}`,onClick:e=>{e.stopPropagation(),gi()},"data-tooltip":`Picture-in-Picture`,"aria-label":fn?`Exit picture-in-picture`:`Enter picture-in-picture`,"aria-pressed":fn,children:(0,d.jsx)(_e,{size:20,"aria-hidden":`true`})}),qe===`button`&&(0,d.jsx)(`button`,{className:`sdk-desktop-icon-btn`,onClick:e=>{e.stopPropagation(),li()},"data-tooltip":Mi?`Unmute`:`Mute`,"aria-label":Mi?`Unmute`:`Mute`,"aria-pressed":Mi,children:Pi()}),ze&&(0,d.jsx)(`button`,{className:`sdk-desktop-icon-btn`,onClick:e=>{e.stopPropagation(),vi()},"data-tooltip":an||sn?`Exit fullscreen`:`Fullscreen`,"aria-label":an||sn?`Exit fullscreen`:`Enter fullscreen`,"aria-pressed":an||sn,children:an?(0,d.jsx)(ge,{size:20,"aria-hidden":`true`}):(0,d.jsx)(he,{size:20,"aria-hidden":`true`})})]})]})]})]})]}),mn&&(()=>{let e=R.find(e=>$>=e.startTime&&$<e.endTime),t=e?e.endTime-e.startTime:B,n=e?Math.max(0,$-e.startTime):V($);return(0,u.createPortal)((0,d.jsxs)(`div`,{className:`gb-pip-overlay${ki?``:` gb-pip-paused`}`,children:[(0,d.jsx)(`div`,{}),(0,d.jsxs)(`div`,{className:`gb-pip-center`,children:[(0,d.jsx)(`button`,{className:`gb-pip-btn`,onClick:()=>Z(H(Math.max(0,V($)-10)),{eventType:`fast_backward`,skipSeconds:10}),"aria-label":`Rewind 10 seconds`,disabled:Y,children:(0,d.jsx)(ye,{size:20,"aria-hidden":`true`})}),(0,d.jsx)(`button`,{className:`gb-pip-btn gb-pip-play`,onClick:oi,"aria-label":gn?`Replay`:ki?`Pause`:`Play`,children:gn?(0,d.jsx)(ye,{size:24,"aria-hidden":`true`}):ki?(0,d.jsx)(v,{size:24,"aria-hidden":`true`}):(0,d.jsx)(ve,{size:24,"aria-hidden":`true`,style:{marginLeft:2}})}),(0,d.jsx)(`button`,{className:`gb-pip-btn`,onClick:()=>Z(H(Math.min(B,V($)+10)),{eventType:`fast_forward`,skipSeconds:10}),"aria-label":`Skip forward 10 seconds`,disabled:Y,children:(0,d.jsx)(be,{size:20,"aria-hidden":`true`})})]}),(0,d.jsxs)(`div`,{className:`gb-pip-bottom`,children:[(0,d.jsx)(`div`,{className:`gb-pip-progress`,onClick:_i,children:(0,d.jsx)(`div`,{className:`gb-pip-progress-fill`,style:{width:`${t?n/t*100:0}%`}})}),(0,d.jsxs)(`div`,{className:`gb-pip-time`,children:[Q(n),` / `,Q(t)]})]})]}),mn.document.body)})()]})},He=`https://dev-api.go-boss.com`;function b(e){return{"x-player-key":e,"Content-Type":`application/json`}}async function Ue(e,t=He,n={}){let r=await fetch(`${t}/api/player/sdk/init`,{method:`POST`,headers:b(e),body:JSON.stringify({videoUrl:n.videoUrl})});if(!r.ok)throw Error(`SDK init failed: ${r.status}`);return await r.json()}async function We(e,t,n=He){let{sessionId:r,videoId:i,videoTitle:a,videoUrl:o,contentDurationSec:s}=t,c=await fetch(`${n}/api/player/sdk/session/start`,{method:`POST`,headers:b(e),body:JSON.stringify({sessionId:r,videoId:i,videoTitle:a,videoUrl:o,contentDurationSec:typeof s==`number`&&Number.isFinite(s)&&s>0?s:void 0})});if(!c.ok)throw Error(`Session start failed: ${c.status}`)}async function Ge(e,t,n,r,i=He){let a={sessionId:t,currentTime:n,duration:r},o=await fetch(`${i}/api/player/sdk/session/heartbeat`,{method:`POST`,headers:b(e),body:JSON.stringify(a)});if(!o.ok)throw Error(`Heartbeat failed: ${o.status}`)}async function Ke(e,t,n=0,r=0,i=He){let a=await fetch(`${i}/api/player/sdk/session/end`,{method:`POST`,headers:b(e),body:JSON.stringify({sessionId:t,currentTime:n,duration:r})});if(!a.ok)throw Error(`Session end failed: ${a.status}`)}async function qe(e,t,n=He){let r=await fetch(`${n}/api/player/sdk/events`,{method:`POST`,headers:b(e),body:JSON.stringify(t)});if(!r.ok)throw Error(`Event ${t.eventType} failed: ${r.status}`)}function Je(e,t,n=0,r=0,i=He){fetch(`${i}/api/player/sdk/session/end`,{method:`POST`,headers:b(e),body:JSON.stringify({sessionId:t,currentTime:n,duration:r}),keepalive:!0})}function Ye(){if(!(typeof screen>`u`))return screen.orientation?.type??void 0}var Xe=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`,Ye());break;case`fullscreen_exit`:this.call(`playerDidExitFullscreen`,Ye());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)}}},Ze={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 Qe(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(Ze))n in e&&(t[r]=e[n]);return t}function $e(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 x(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 et=30*1e3;function tt(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 S({playerKey:e,src:t,subtitles:n,licenseKey:r,themeColor:i=`#6366f1`,firebaseConfig:a,proxyDomains:o,apiBaseUrl:s,adTrackingUrl:c,overlayAdUrl:u,videoId:ee,title:te,watermark:ne,autoplay:re=!1,muted:p=!1,autoFullscreen:m=!1,enableControls:ie=!0,enableSkipAd:ae,skipAdAfterSeconds:h,chaptersDisplayMode:oe=`strip`,volumeControlType:g=`slider`,subtitleStyle:se,drmConfig:ce,onAnalyticsEvent:le,delegate:_,onKeyMomentsLoaded:ue,initialTime:de,onTimeUpdate:fe}){let[pe,me]=(0,l.useState)([]),[he,ge]=(0,l.useState)(0),[v]=(0,l.useState)(()=>new Xe);(0,l.useEffect)(()=>{v.setDelegate(_),v.setAutoplay(re)},[v,_,re]),(0,l.useEffect)(()=>()=>v.notifyDismissed(),[v]);let _e=Array.isArray(t)?t:[{label:`Default`,url:t}],ve=_e[he]?.url??_e[0]?.url??``,[ye,be]=(0,l.useState)(`loading`),[xe,Se]=(0,l.useState)(null),[Ce,we]=(0,l.useState)(0),[Te,Ee]=(0,l.useState)(`network`),De=(0,l.useRef)(null),Oe=(0,l.useRef)(!1),ke=(0,l.useRef)(``),Ae=(0,l.useRef)(!1),je=(0,l.useRef)(!1),Me=(0,l.useRef)(void 0),Ne=(0,l.useRef)(!1),Pe=(0,l.useRef)(et),y=(0,l.useRef)(null),Fe=(0,l.useRef)(0),Ie=(0,l.useRef)(null),Le=(0,l.useRef)({currentTime:0,duration:0}),Re=(0,l.useRef)(()=>{}),ze=ve.split(`/`).filter(Boolean),Be=ee||(ze[ze.length-1]??``).replace(/\.m3u8.*$/,``)||`video`,He=(0,l.useRef)(ve);(0,l.useEffect)(()=>{He.current=ve},[ve]);let b=(0,l.useCallback)(()=>$e(o),[o])(),Ye=x(i);(0,l.useEffect)(()=>{document.documentElement.style.setProperty(`--accent-indigo`,i),document.documentElement.style.setProperty(`--accent-indigo-rgb`,Ye)},[i,Ye]),(0,l.useEffect)(()=>{let t=!1;return Ue(e,s,{videoUrl:He.current}).then(e=>{if(t)return;De.current=e;let{features:n,planTier:r,heartbeatIntervalSeconds:i}=e.result.data;Pe.current=typeof i==`number`&&i>0?i*1e3:et;let a={package:r,is_active:!0,features:Qe(n),limits:{streaming_minutes:0}};console.log(`[SDK] Player key validated. Features:`,a.features),Se(a),be(`ready`)}).catch(e=>{if(t)return;console.error(`[SDK] Player key validation failed:`,e);let n=e.message??``;Ee(/init failed: 4\d\d/.test(n)?`auth`:`network`),be(`error`)}),()=>{t=!0,y.current&&=(clearTimeout(y.current),null),Fe.current=0,Ie.current=null,be(`loading`),Se(null),Ae.current=!1,ke.current=``,je.current=!1,Me.current=void 0}},[e,s,Ce]);let Ze=(0,l.useCallback)(()=>{y.current&&(clearTimeout(y.current),y.current=null,Ie.current!==null&&(Fe.current+=Date.now()-Ie.current,Ie.current=null))},[]),S=(0,l.useCallback)(()=>{y.current&&=(clearTimeout(y.current),null),Fe.current=0,Ie.current=null},[]),nt=(0,l.useCallback)(()=>{if(y.current||!ke.current)return;Ie.current=Date.now();let t=Pe.current-Fe.current;y.current=setTimeout(()=>{y.current=null,Fe.current=0,Ie.current=null;let{currentTime:t,duration:n}=Le.current;console.log(`[SDK] Heartbeat timer fired — ${Pe.current/1e3}s of real content elapsed`),Ge(e,ke.current,t,n,s).catch(e=>console.warn(`[SDK] Heartbeat failed:`,e.message)),Re.current()},t)},[e,s]);(0,l.useEffect)(()=>{Re.current=nt},[nt]);let rt=(0,l.useRef)(!0);(0,l.useEffect)(()=>{if(rt.current){rt.current=!1;return}Ne.current=!0,Me.current=void 0,Ze()},[he,Ze]),(0,l.useEffect)(()=>{let t=()=>{if(v.notifyDismissed(),!ke.current)return;je.current=!0,S();let{currentTime:t,duration:n}=Le.current;Je(e,ke.current,t,n,s)};return window.addEventListener(`beforeunload`,t),()=>{window.removeEventListener(`beforeunload`,t),S()}},[e,s,S,v]);let C=(0,l.useCallback)(t=>{let n=t;if(t.currentTime!==void 0&&(Le.current={currentTime:t.currentTime,duration:t.duration}),t.eventType===`session_start`&&!Ae.current&&(Ae.current=!0,je.current=!1,ke.current=typeof n.sessionId==`string`?n.sessionId:``,We(e,{sessionId:ke.current,videoId:Be,videoTitle:te,videoUrl:He.current,contentDurationSec:t.duration},s).catch(e=>console.warn(`[SDK] Session start failed:`,e.message)),Oe.current||nt()),t.eventType===`play`&&Ae.current&&!Oe.current&&!Ne.current&&nt(),t.eventType===`pause`&&Ze(),t.eventType===`buffering_start`&&Ze(),t.eventType===`buffering_end`&&Ae.current&&!Oe.current&&(Ne.current=!1,nt()),t.eventType===`ended`&&(S(),ke.current)){je.current=!0;let{currentTime:t,duration:n}=Le.current;Ke(e,ke.current,t,n,s).catch(e=>console.warn(`[SDK] Session end failed:`,e.message))}if(Ae.current&&ke.current&&!je.current){let n=tt(t,Me.current);n&&qe(e,{eventType:n.eventType,sessionId:ke.current,currentTime:t.currentTime??0,videoId:Be,videoTitle:te,...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),v.handleAnalyticsEvent(t),le?.(t)},[e,s,Be,te,nt,Ze,S,le,v]),it=(0,l.useCallback)(e=>{Oe.current=e,e?(Ze(),console.log(`[SDK] Ad break started — heartbeat timer paused`)):(Ae.current&&nt(),console.log(`[SDK] Ad break ended — heartbeat timer resumed`))},[Ze,nt]),at=(0,l.useCallback)(e=>{v.setKeyMoments(e),me(e),ue?.(e)},[ue,v]),w=(0,l.useCallback)(e=>{v.handleTimeUpdate(e),fe?.(e)},[fe,v]);if(ye===`loading`)return(0,d.jsxs)(`div`,{style:{width:`100%`,aspectRatio:`16 / 9`,background:`#000`,borderRadius:8,display:`flex`,alignItems:`center`,justifyContent:`center`},children:[(0,d.jsx)(`style`,{children:`@keyframes boss-sdk-spin{to{transform:rotate(360deg)}}`}),(0,d.jsx)(`div`,{style:{width:60,height:60,borderRadius:`50%`,border:`4px solid rgba(${Ye}, 0.1)`,borderLeftColor:i,borderRightColor:`rgba(${Ye}, 0.2)`,filter:`drop-shadow(0 0 10px rgba(${Ye}, 0.5))`,animation:`boss-sdk-spin 1s linear infinite`}})]});if(ye===`error`){let e=Te===`auth`;return(0,d.jsx)(`div`,{style:{width:`100%`,aspectRatio:`16 / 9`,background:`#09090e`,borderRadius:8,display:`flex`,alignItems:`center`,justifyContent:`center`,flexDirection:`column`,gap:20},children:(0,d.jsx)(f,{title:e?`Invalid Player Key`:`Something Went Wrong`,subtitle:e?`Your player key is invalid or expired.
|
|
30
|
+
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)Pt(t.contentRect.width<=768)});return t.observe(e),Pt(e.getBoundingClientRect().width<=768),()=>t.disconnect()},[]);let[P,zt]=(0,l.useState)(null),[Bt,Vt]=(0,l.useState)(!1),Ht=Ge??null,Ut=Ht!=null,Wt=Ht?.features??{},Gt=Ut?!!(Wt.drm_protection&&!Ke):!1,F={enableSubtitles:Ut?!!Wt.subtitle_support:typeof oe==`boolean`?oe:!0,enableChromecast:Ut?!!Wt.chromecast:typeof ae==`boolean`?ae:!0,enableKeyMoments:Ut?!!Wt.key_moments:typeof h==`boolean`?h:!0,enableQuality:Ut?!!Wt.multiple_resolution:typeof g==`boolean`?g:!0,enablePlaybackSpeed:Ut?!!Wt.playback_speed:typeof Ne==`boolean`?Ne:!0,enablePiP:Ut?!!Wt.picture_in_picture:typeof Pe==`boolean`?Pe:!0,allowAirplay:Ut?!!Wt.airplay:!1,allowMultipleAudio:Ut?!!Wt.multiple_audio:!0,m3u8_playback:Ut?!!Wt.m3u8_playback:!0,drm_protection:Ut?!!Wt.drm_protection:!1},[Kt,qt]=(0,l.useState)(!1),[Jt,Yt]=(0,l.useState)(0),[Xt,Zt]=(0,l.useState)(!1),[I,Qt]=(0,l.useState)(0),[$t,en]=(0,l.useState)(0),[tn,nn]=(0,l.useState)(1),[rn,an]=(0,l.useState)(!1),[on,sn]=(0,l.useState)(!1),[cn,ln]=(0,l.useState)(!1),[un,dn]=(0,l.useState)(!1),[fn,pn]=(0,l.useState)(!1),mn=Nt||(cn||un)&&fn,[hn,gn]=(0,l.useState)(!1),[_n,vn]=(0,l.useState)(null),[yn,bn]=(0,l.useState)(!1),[L,xn]=(0,l.useState)([]),R=(0,l.useRef)([]),Sn=(0,l.useRef)(new Set),Cn=x&&x.length>0?x.map(e=>e.url).join(`|`):e,[wn,Tn]=(0,l.useState)(new Set),[En,Dn]=(0,l.useState)(Cn),On=(0,l.useRef)(null),kn=(0,l.useRef)(!1),An=(0,l.useRef)(null);En!==Cn&&(Dn(Cn),Tn(new Set),Sn.current=new Set,On.current=null,kn.current=!1);let jn=(0,l.useRef)(null),Mn=(0,l.useRef)(!1),[Nn,Pn]=(0,l.useState)([]),[Fn,In]=(0,l.useState)(null),Ln=(0,l.useRef)([]),Rn=(0,l.useRef)(null),zn=(0,l.useRef)(new Set),[Bn,Vn]=(0,l.useState)([]),Hn=(0,l.useRef)([]),Un=(0,l.useRef)(null),[Wn,Gn]=(0,l.useState)({w:0,h:0}),[Kn,qn]=(0,l.useState)([]),[Jn,Yn]=(0,l.useState)(0),Xn=(0,l.useRef)(0),Zn=(0,l.useRef)(0),Qn=e=>{let t=Hn.current.find(t=>e>=t.startTimeSeconds&&e<t.endTimeSeconds);if(t)return{start:t.startTimeSeconds,end:t.endTimeSeconds};let n=R.current.find(t=>e>=t.startTime&&e<t.endTime);return n?{start:n.startTime,end:n.endTime}:null},$n=(0,l.useMemo)(()=>L.reduce((e,t)=>e+(t.endTime-t.startTime),0),[L]),er=$t>0?Math.max(0,$t-$n):0,z=L.length>0&&er>0?er:$t,B=(0,l.useCallback)(e=>{let t=e;for(let n of L)e>=n.endTime?t-=n.endTime-n.startTime:e>=n.startTime&&(t-=e-n.startTime);return Math.max(0,t)},[L]),V=(0,l.useCallback)(e=>{let t=e;for(let e of L)t>=e.startTime&&(t+=e.endTime-e.startTime);return t},[L]),[tr,nr]=(0,l.useState)([]),[rr,ir]=(0,l.useState)({id:-1,height:0,width:0,bitrate:0,label:`Auto`}),[ar,or]=(0,l.useState)(``),[H,sr]=(0,l.useState)(`off`),[cr,lr]=(0,l.useState)(Fe(a)),[ur,dr]=(0,l.useState)([]),[fr,pr]=(0,l.useState)(0);(0,l.useEffect)(()=>{if(P){let e=P.subtitles.getTracks();lr(Fe([...a,...e.filter(e=>!a.some(t=>t.id===e.id))]))}else lr(Fe(a))},[a.map(e=>e.id).join(`,`),P]);let[mr,hr]=(0,l.useState)({chapter:null,index:-1}),[U,gr]=(0,l.useState)(i||r||[]),[W,G]=(0,l.useState)(`none`),[_r,vr]=(0,l.useState)(1),[yr,br]=(0,l.useState)(!1),[xr,Sr]=(0,l.useState)({}),[Cr,wr]=(0,l.useState)(``),[Tr,Er]=(0,l.useState)(null),Dr=(0,l.useRef)(!1),Or=JSON.stringify(U.map(e=>({title:e.title,startTime:e.startTime})));(0,l.useEffect)(()=>{gr(i||r||[])},[(i||r||[]).map(e=>`${e.startTime}:${e.title}`).join(`,`)]),(0,l.useEffect)(()=>{if(!e||!U||U.length===0)return;Sr({});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>=U.length){f();return}let e=U[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);Sr(t=>({...t,[o]:e})),o++,l()}else setTimeout(u,100)},d=()=>{s||(s=!0,l())};t.addEventListener(`seeked`,u),t.addEventListener(`canplay`,d),r&&c.u.isSupported()?(n=new c.u({enableWorker:!1,maxBufferLength:5,xhrSetup:(e,t)=>{let n=ee?.authToken;try{let r=at(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(at(e)),n.attachMedia(t)):t.src=e,t.readyState>=2&&d();let f=()=>{t.removeEventListener(`seeked`,u),t.removeEventListener(`canplay`,d),n&&n.destroy(),document.body.contains(t)&&document.body.removeChild(t)};return f},[e,Or]);let[K,kr]=(0,l.useState)(null),[Ar,jr]=(0,l.useState)(null),Mr=(0,l.useRef)(!1),[Nr,Pr]=(0,l.useState)(!1),[Fr,Ir]=(0,l.useState)(!1),[Lr,Rr]=(0,l.useState)(null),[zr,Br]=(0,l.useState)(null),[Vr,Hr]=(0,l.useState)(0),[Ur,Wr]=(0,l.useState)(0),[Gr,Kr]=(0,l.useState)(null),[qr,Jr]=(0,l.useState)(null),[q,Yr]=(0,l.useState)(null);(0,l.useEffect)(()=>{if(pt.current&&!pt.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`,pt.current.appendChild(e)}},[]),(0,l.useEffect)(()=>{if(!P){Pr(!1),Ir(!1),Rr(null);return}let e=e=>Pr(e),t=()=>{let e=P.getVideoElement(),t=!!e?.webkitCurrentPlaybackTargetIsWireless;Ir(t),Rr(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[Xr,Zr]=(0,l.useState)(``),[Qr,$r]=(0,l.useState)(!0),[J,ei]=(0,l.useState)(!1),[ti,ni]=(0,l.useState)(!1),ri=(0,l.useRef)(!1),ii=(0,l.useRef)(null),ai=(0,l.useRef)(!1),oi=(0,l.useRef)(!1),si=(0,l.useRef)(`none`),ci=(0,l.useRef)(a),li=()=>{$r(!0),ii.current&&window.clearTimeout(ii.current);let e=Ft.current?3500:1e4;ii.current=window.setTimeout(()=>{ai.current&&si.current===`none`&&$r(!1)},e)},ui=(0,l.useCallback)(e=>{Tt.current&&=(clearTimeout(Tt.current),null);let t=Dt.current,n=t?.[e]?.label??`This format`,r=t?.[0]?.label??`default`;Et.current=null,Er(`${n} isn't supported on this device. Switched to ${r}.`),window.setTimeout(()=>Er(null),4e3),Ot.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=ee?.authToken;try{let r=at(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(at(e)),t.attachMedia(r),ut.current=t,t.on(c.u.Events.MANIFEST_LOADED,(e,t)=>{if(qe)return;let n=Oe(t?.networkDetails?.responseText??``);n&&Zr(n)}),t.on(c.u.Events.FRAG_PARSING_METADATA,(e,t)=>{if(!(qe||Xr))for(let e of t?.samples??[]){let t=ke(e.data);if(t){Zr(t);break}}})}else i&&r.canPlayType(`application/vnd.apple.mpegurl`),r.src=e;r.addEventListener(`seeked`,()=>{let e=lt.current;if(!e)return;let t=e.getContext(`2d`);t&&r.readyState>=2&&(t.drawImage(r,0,0,e.width,e.height),Kr(e.toDataURL(`image/jpeg`,.82)))});let l;if(te){let e=new c.c(te);ot.current=e,l=e.createCallback()}if(Gt)return;let u=new c.t({container:C.current,src:e,videoId:ne,autoplay:t,muted:n,keyMoments:U,subtitles:a,drm:{watermarkText:o,allowedDomains:[`localhost`,`127.0.0.1`,window.location.hostname],...ee},analyticsCallback:e=>{if(e.sessionId&&(On.current===null?On.current=e.sessionId:e.sessionId!==On.current&&(e={...e,sessionId:On.current})),e.eventType===`session_start`){if(kn.current)return;kn.current=!0}l?.(e),re&&re(e)},analyticsSessionSeed:An.current?.key===Cn?An.current.snapshot:void 0,watchProgressInterval:We*1e3,themeColor:s,urlTransformer:Xe});u.on(`keymomentsloaded`,e=>{gr(e),m&&m(e)}),u.on(`chaptersloaded`,e=>{gr(e),m&&m(e)}),u.on(`play`,()=>{Zt(!0),bn(!1),ae(u.getCurrentTime(),!1)}),u.on(`pause`,()=>{Zt(!1),ae(u.getCurrentTime(),!0)}),u.on(`ended`,()=>{Zt(!1),bn(!0)});let d=()=>{ht.current=!0,sn(!1),A.current&&(A.current.style.opacity=`1`),_t(u.getVideoElement())},f=()=>{requestAnimationFrame(()=>{requestAnimationFrame(()=>{ht.current=!1,A.current&&(A.current.style.opacity=`0`),vt(u.getVideoElement());let e=u.getVideoElement();e&&!e.paused&&e.readyState<3&&sn(!0)})})},ie=(e,t=!1)=>{E.current=!0;let n=t?e+.5:xt.current??e+.5;t||(xt.current=null),bt.current=t,D.current=n,O.current=u.getCurrentTime(),d(),u.seek(n);let r=u.getVideoElement();if(r){let e=()=>{r.removeEventListener(`seeked`,e),k.current&&=(window.clearTimeout(k.current),null),E.current=!1,D.current=null,O.current=null;let t=bt.current;bt.current=!1,(t||xt.current===null)&&f()};r.addEventListener(`seeked`,e)}k.current&&window.clearTimeout(k.current),k.current=window.setTimeout(()=>{E.current=!1,D.current=null,O.current=null,k.current=null,bt.current=!1,f()},3e3)};yt.current=ie;let ae=(e,t)=>{if(!(`mediaSession`in navigator)||!navigator.mediaSession.setPositionState)return;navigator.mediaSession.playbackState=t?`paused`:`playing`;let n=u.getDuration(),r=R.current.find(t=>e>=t.startTime&&e<t.endTime);if(r){let t=r.endTime-r.startTime,n=Math.max(0,e-r.startTime);if(t>0)try{navigator.mediaSession.setPositionState({duration:t,playbackRate:1,position:Math.min(n,t)})}catch{}}else{let t=R.current.reduce((e,t)=>e+(t.endTime-t.startTime),0),r=n>0?Math.max(0,n-t):0,i=e;for(let t of R.current)e>=t.endTime?i-=t.endTime-t.startTime:e>=t.startTime&&(i-=e-t.startTime);i=Math.max(0,i);let a=R.current.length>0&&r>0?r:n;if(a>0)try{navigator.mediaSession.setPositionState({duration:a,playbackRate:1,position:Math.min(i,a)})}catch{}}};if(u.on(`timeupdate`,e=>{if(!E.current&&M.current===null){let t=R.current.find(t=>Sn.current.has(t.startTime)&&e>=t.startTime-.5&&e<t.endTime);if(t){ie(t.endTime);return}xt.current!==null&&R.current.find(t=>e>=t.endTime-.5&&e<t.endTime)&&d()}if(E.current&&D.current!==null){let t=D.current;if(O.current!==null&&t<O.current?e<=t+2&&e>=t-2:e>=t-2){E.current=!1,D.current=null,O.current=null,k.current&&=(window.clearTimeout(k.current),null);let t=R.current.some(t=>e>=t.startTime&&e<t.endTime),n=bt.current;bt.current=!1,(n||!t&&xt.current===null)&&f()}else return}Qt(e),jt.current=e;let t=u.getDuration();if(en(t),M.current!==null&&e>=M.current-2){M.current=null,N.current&&=(window.clearTimeout(N.current),null);let t=R.current.find(t=>Sn.current.has(t.startTime)&&e>=t.startTime&&e<t.endTime);t&&ie(t.endTime),requestAnimationFrame(()=>{requestAnimationFrame(()=>{j.current&&(j.current.style.opacity=`0`)})})}if(!kt.current&&Ct.current===null&&S&&S>0&&t>0&&S<t){kt.current=!0;let e=R.current.find(e=>S>=e.startTime&&S<e.endTime),t=e?e.startTime:S;At.current=e?null:S,M.current=t,u.seek(t),N.current&&window.clearTimeout(N.current),N.current=window.setTimeout(()=>{M.current=null,N.current=null,j.current&&(j.current.style.opacity=`0`)},4e3)}if(it?.(e),Ln.current.length>0)if(Rn.current){let t=Rn.current;(e>=t.startTimeSeconds+t.durationSeconds||e<t.startTimeSeconds)&&(In(null),Rn.current=null)}else{let t=Ln.current.find(t=>e>=t.startTimeSeconds&&e<t.startTimeSeconds+t.durationSeconds&&!zn.current.has(t.availId));t&&(In(t),Rn.current=t,t.impressionBeacons.forEach(e=>{fetch(e,{mode:`no-cors`}).catch(()=>{})}))}let n=u.keyMoments.getCurrentMoment(e);hr({chapter:n.keyMoment,index:n.index}),ae(e,u.getVideoElement().paused)}),u.on(`qualitylevels`,e=>{nr(e);let t=wt.current;if(!t)return;let n=t.qualityHeight===null?void 0:e.find(e=>e.height===t.qualityHeight);n?(u.setQuality(n.id),ir(n)):ir({id:-1,height:0,width:0,bitrate:0,label:`Auto`})}),u.on(`qualitychange`,e=>{ir(e)}),u.on(`buffering`,e=>{if(sn(e&&!ht.current),!e){Tt.current&&=(clearTimeout(Tt.current),null),Et.current=null;let e=wt.current;if(e&&(wt.current=null,e.playbackRate!==1&&u.setPlaybackRate(e.playbackRate),u.setVolume(e.volume),u.setMute(e.muted)),Ct.current!==null){let e=Ct.current;Ct.current=null,kt.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()),p&&p(e),e){let e=u.getCurrentTime(),t=R.current.find(t=>e>=t.startTime&&e<t.endTime);if(ri.current=!1,ni(!1),t&&Sn.current.has(t.startTime)){d(),E.current||ie(t.endTime);return}t&&(jn.current=t.startTime),ei(!0),G(`none`),f()}else if(jn.current!==null&&(Sn.current.add(jn.current),Tn(new Set(Sn.current)),jn.current=null),ei(!1),xt.current!==null){let e=xt.current;xt.current=null,E.current=!0,D.current=e,O.current=u.getCurrentTime(),d(),u.seek(e),k.current&&window.clearTimeout(k.current),k.current=window.setTimeout(()=>{E.current=!1,D.current=null,O.current=null,k.current=null,f()},3e3)}}),u.on(`adbreaksloaded`,e=>{R.current=e,xn(e);let t=At.current;if(t===null)return;At.current=null;let n=e.find(e=>t>=e.startTime&&t<e.endTime);if(!n||Sn.current.has(n.startTime))return;let r=u.getCurrentTime();r<n.startTime||r>=n.endTime||(j.current&&(j.current.style.opacity=`1`),M.current=n.startTime,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(n.startTime))}),u.on(`volumechange`,e=>{nn(e.volume),gt.current===null&&an(e.muted)}),u.on(`pipchange`,e=>{gn(e)}),u.on(`error`,()=>{qt(!0),sn(!1),M.current=null,N.current&&=(window.clearTimeout(N.current),null),j.current&&(j.current.style.opacity=`0`)}),u.on(`unsupportedcodec`,()=>{let e=Et.current;e&&e.targetIdx!==0&&(Dt.current?.length??0)>1&&ui(e.targetIdx)}),u.subtitles.onSubtitleChange(e=>{or(e)}),u.on(`subtitlesloaded`,e=>{if(!F.enableSubtitles)return;lr(Fe([...e]));let t=wt.current;if(t){let n=t.subtitleId===`off`?`off`:e.find(e=>e.id===t.subtitleId)?.id??(t.subtitleLang?e.find(e=>e.lang===t.subtitleLang)?.id:void 0);if(n){u.subtitles.setActiveTrack(n),sr(n);return}}let n=e.find(e=>e.isDefault);n&&(u.subtitles.setActiveTrack(n.id),sr(n.id))}),u.on(`audiotracksloaded`,e=>{dr(e);let t=wt.current,n=t?e.find(e=>t.audioLang&&e.lang===t.audioLang)??e.find(e=>t.audioLabel&&e.label===t.audioLabel):void 0;if(n){u.setAudioTrack(n.id),pr(n.id);return}pr(e[0]?.id??0)}),u.on(`audiotrackchange`,e=>{pr(e)}),u.casting.onCastStateChange((e,t)=>{if(e){Mr.current=u.isMuted(),u.pause();let e=u.getVideoElement();e.muted=!0,kr(t)}else{let e=u.casting.getRemoteState();e&&e.currentTime>0&&(E.current=!0,D.current=e.currentTime,O.current=u.getCurrentTime(),u.seek(e.currentTime),k.current&&window.clearTimeout(k.current),k.current=window.setTimeout(()=>{E.current=!1,D.current=null,O.current=null,k.current=null},3e3));let t=u.getVideoElement();t.muted=Mr.current,kr(null),jr(null)}}),u.casting.onRemoteStateChange(e=>{jr(e)}),nn(u.getVolume()),an(u.isMuted()),`mediaSession`in navigator)try{navigator.mediaSession.setActionHandler(`seekto`,e=>{if(e.seekTime==null||oi.current||ri.current)return;let t=e.seekTime;for(let e of R.current)t>=e.startTime&&(t+=e.endTime-e.startTime);St.current?.(t)});let e=(e,t)=>{if(oi.current||ri.current)return;let n=t&&t>0?t:10,r=u.getCurrentTime(),i=r;for(let e of R.current)r>=e.endTime?i-=e.endTime-e.startTime:r>=e.startTime&&(i-=r-e.startTime);if(e){let e=R.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 R.current)r>=e.startTime&&(r+=e.endTime-e.startTime);St.current?.(r,{eventType:`fast_forward`,skipSeconds:n})}else{let e=Math.max(0,i-n);for(let t of R.current)e>=t.startTime&&(e+=t.endTime-t.startTime);St.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 h=u.getVideoElement(),oe=()=>{if(!(document.pictureInPictureElement===h||h.webkitPresentationMode===`picture-in-picture`)||E.current||M.current!==null||Ct.current!==null)return;let e=h.currentTime,t=jt.current;if(!(Math.abs(e-t)<.5)){if(oi.current){h.currentTime=t;return}h.currentTime=t,St.current?.(e)}};h.addEventListener(`seeking`,oe),zt(u);let g=Et.current;g&&g.targetIdx!==0&&(Tt.current&&clearTimeout(Tt.current),Tt.current=setTimeout(()=>{Tt.current=null,!u.getBufferedRanges().some(e=>e.end>e.start)&&ui(g.targetIdx)},Te)),Ct.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`),sn(!1)},12e3)),Ue&&C.current&&(st.current=!0,C.current.requestFullscreen().catch(()=>{st.current=!1}));let se=()=>{let e=document,t=!!(document.fullscreenElement||e.webkitFullscreenElement);ln(t),t||dn(!1);let n=u.getVideoElement();u.analytics.track(t?`fullscreen_enter`:`fullscreen_exit`,n)};document.addEventListener(`fullscreenchange`,se),document.addEventListener(`webkitfullscreenchange`,se);let ce=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(),!oi.current){let e=u.getCurrentTime(),t=e;for(let n of R.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 R.current)n>=e.startTime&&(n+=e.endTime-e.startTime);St.current?.(n,{eventType:`fast_backward`,skipSeconds:10})}break;case`arrowright`:case`l`:if(e.preventDefault(),!oi.current){let e=u.getCurrentTime(),t=R.current.reduce((e,t)=>e+(t.endTime-t.startTime),0),n=Math.max(0,u.getDuration()-t),r=e;for(let t of R.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 R.current)i>=e.startTime&&(i+=e.endTime-e.startTime);St.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(),mt.current();break;case`p`:e.preventDefault(),oi.current||u.togglePictureInPicture();break;case`c`:if(e.preventDefault(),F.enableSubtitles&&!oi.current)if(u.subtitles.getActiveTrackId()!==`off`)u.subtitles.setActiveTrack(`off`),sr(`off`);else{let e=ci.current;e&&e.length>0&&(u.subtitles.setActiveTrack(e[0].id),sr(e[0].id))}break;default:return}li()}};return document.addEventListener(`keydown`,ce),li(),()=>{if(An.current={key:Cn,snapshot:u.analytics.getSessionSnapshot()},Mt.current){let e=Mt.current,t=u.getVideoElement();C.current&&t.ownerDocument!==document&&(t.classList.remove(`gb-pip-video`),C.current.insertBefore(t,C.current.firstChild)),Mt.current=null,vn(null),gn(!1),e.close()}if(u.destroy(),ot.current?.destroy(),ot.current=null,document.body.style.overflow=``,document.body.style.touchAction=``,document.removeEventListener(`fullscreenchange`,se),document.removeEventListener(`webkitfullscreenchange`,se),document.removeEventListener(`keydown`,ce),ii.current&&window.clearTimeout(ii.current),k.current&&=(window.clearTimeout(k.current),null),Tt.current&&=(clearTimeout(Tt.current),null),ht.current=!1,A.current&&(A.current.style.opacity=`0`),h.removeEventListener(`seeking`,oe),`mediaSession`in navigator){try{navigator.mediaSession.setActionHandler(`seekto`,null)}catch{}try{navigator.mediaSession.setActionHandler(`seekforward`,null)}catch{}try{navigator.mediaSession.setActionHandler(`seekbackward`,null)}catch{}}ut.current&&=(ut.current.destroy(),null),T.current&&=(document.body.removeChild(T.current),null),kt.current=!1,M.current=null,N.current&&=(window.clearTimeout(N.current),null)}},[e,o,Jt]),(0,l.useEffect)(()=>{if(P){P.keyMoments.setKeyMoments(U);let e=C.current?.querySelector(`video`);if(e){let t=P.keyMoments.getCurrentMoment(e.currentTime);hr({chapter:t.keyMoment,index:t.index})}}},[Or,P]),(0,l.useEffect)(()=>{let e=e=>{W!==`none`&&(e.target.closest(`.sdk-menu-container`)||G(`none`))};return document.addEventListener(`click`,e),()=>{document.removeEventListener(`click`,e)}},[W]),(0,l.useEffect)(()=>{ai.current=Xt},[Xt]),(0,l.useEffect)(()=>{oi.current=J},[J]),(0,l.useEffect)(()=>{ri.current=ti},[ti]);let Y=J||ti;(0,l.useEffect)(()=>{Mt.current=_n},[_n]),(0,l.useEffect)(()=>{si.current=W},[W]),(0,l.useEffect)(()=>{if(!J||!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=Qn(a);if(c){let e=Math.min(s,a+.4,c.end),t=Math.min(100,Math.max(0,(e-c.start)/(c.end-c.start)*100));(C.current?.querySelectorAll(`.sdk-ad-progress-fill`))?.forEach(e=>{e.style.width=`${t}%`})}e=requestAnimationFrame(r)};return e=requestAnimationFrame(r),()=>cancelAnimationFrame(e)},[J,P]),(0,l.useEffect)(()=>{ci.current=cr},[cr]),(0,l.useEffect)(()=>{Ft.current=Nt},[Nt]),(0,l.useEffect)(()=>{R.current=L},[L]),(0,l.useEffect)(()=>{Ln.current=Nn},[Nn]),(0,l.useEffect)(()=>{Rn.current=Fn},[Fn]),(0,l.useEffect)(()=>{Hn.current=Bn},[Bn]),(0,l.useEffect)(()=>{Zn.current=I},[I]),(0,l.useEffect)(()=>{Dt.current=x},[x]),(0,l.useEffect)(()=>{let e=Un.current;if(!J||!e||typeof ResizeObserver>`u`)return;let t=()=>{let t=e.getBoundingClientRect();Gn(e=>e.w===t.width&&e.h===t.height?e:{w:t.width,h:t.height})};t();let n=new ResizeObserver(t);return n.observe(e),()=>n.disconnect()},[J,Bn]),(0,l.useEffect)(()=>{Ot.current=rt},[rt]),(0,l.useEffect)(()=>{jn.current=null,Mn.current=!1,xt.current=null,At.current=null,In(null),Rn.current=null,zn.current=new Set,qt(!1)},[e]),(0,l.useEffect)(()=>{Vt(!1)},[e]),(0,l.useEffect)(()=>{if(!P)return;let e=P.getVideoElement();if(e&&e.readyState>=1){Vt(!0);return}let t=()=>Vt(!0);return P.on(`qualitylevels`,t),e?.addEventListener(`loadedmetadata`,t),()=>{P.off(`qualitylevels`,t),e?.removeEventListener(`loadedmetadata`,t)}},[P]),(0,l.useEffect)(()=>{if(Pn([]),!(!et||!Bt))return He(et,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:Ie(r.startTime??``),durationSeconds:Ie(i.minSuggestedDuration??`00:00:15`),imageUrl:i.staticResource,imageWidth:parseInt(i.width??`320`,10),imageHeight:parseInt(i.height??`50`,10),title:i.adTitle??``,clickThrough:Le(i.clickThrough)?i.clickThrough:``,clickTrackingUrl:i.clickTracking??``,impressionBeacons:a,position:s,dismissible:o.dismissible===!0})}return n.length>0?n:null},Pn)},[et,e,Bt]),(0,l.useEffect)(()=>{Vn([]),qn([]),Xn.current=0},[e]),(0,l.useEffect)(()=>{if(tt)return He(tt,e=>{let t=[],n=[];for(let r of e.avails??[]){let e=r.ads??[];if(e.length===0)continue;let i=r.startTimeInSeconds??e[0].startTimeInSeconds??0,a=e[e.length-1],o=(a?.startTimeInSeconds??i)+(a?.durationInSeconds??0);n.push({startTime:i,endTime:r.durationInSeconds==null?Math.max(o,i):i+r.durationInSeconds}),e.forEach((n,r)=>{let i=Re(n?.skipOffset),a=i!==null,o={};try{o=JSON.parse(n?.adParameters??`{}`)}catch{}let s=o.ctaText&&Le(o.redirectUrl)?{text:o.ctaText,url:o.redirectUrl,title:o.title||void 0,description:o.description||void 0}:null,c=n.startTimeInSeconds??0,l=n.durationInSeconds??0;t.push({startTimeSeconds:c,endTimeSeconds:c+l,durationSeconds:l,skippable:a,skipOffsetSeconds:i??0,cta:s,podIndex:r,podTotal:e.length})})}return t.length>0?{pods:t,breaks:n}:null},({pods:e,breaks:t})=>{Vn(e),qn(t)})},[tt,e,Jn]),(0,l.useEffect)(()=>{if(!tt||!J)return;let e=setInterval(()=>{let e=Zn.current;Hn.current.some(t=>e>=t.startTimeSeconds&&e<t.endTimeSeconds)||Xn.current>=Ve||(Xn.current+=1,Yn(e=>e+1))},Be);return()=>clearInterval(e)},[tt,J]),(0,l.useEffect)(()=>{!P||Kn.length===0||P.setAdBreaks(Kn)},[P,Kn]),(0,l.useEffect)(()=>{if(!P)return;let e=()=>{document.hidden?Ze&&oi.current&&ai.current&&(P.pause(),Mn.current=!0):Mn.current&&=(P.play(),!1)};return document.addEventListener(`visibilitychange`,e),()=>{document.removeEventListener(`visibilitychange`,e)}},[P,Ze]);let di=()=>{li()},fi=()=>{Ue&&!st.current&&C.current&&(st.current=!0,C.current.requestFullscreen().catch(()=>{}))},pi=()=>{if(P){if(K){P.casting.remotePlayPause(),li();return}if(yn)X(0),fi(),P.play(),bn(!1);else if(Xt){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 fi(),P.play();li()}},mi=e=>{if(!w.current||!P||z===0)return 0;let t=w.current.getBoundingClientRect();return V(Math.max(0,Math.min(1,(e.clientX-t.left)/t.width))*z)},hi=e=>{if(!P||J||ti)return;ft.current=!0,Yr(mi(e));let t=e=>{if(!ft.current||!w.current)return;let t=w.current.getBoundingClientRect(),n=V(Math.max(0,Math.min(1,(e.clientX-t.left)/t.width))*z);Yr(n),Br(e.clientX-t.left),Wr(n),T.current&&(T.current.currentTime=n),li()},n=e=>{if(ft.current=!1,w.current){let t=w.current.getBoundingClientRect();X(V(Math.max(0,Math.min(1,(e.clientX-t.left)/t.width))*z))}Yr(null),Br(null),Kr(null),Jr(null),document.removeEventListener(`mousemove`,t),document.removeEventListener(`mouseup`,n)};document.addEventListener(`mousemove`,t),document.addEventListener(`mouseup`,n)},X=(e,t)=>{if(!P)return;if(At.current=null,K){P.casting.remoteSeek(e);return}let n=Math.max(0,$t>0?Math.min(e,$t):e);if(t){let{eventType:e,...n}=t;P.attributeNextSeek(e,n)}let r=P.getCurrentTime();if(n>r&&R.current.length>0){let e=R.current.filter(e=>e.startTime<n&&e.endTime>r&&!Sn.current.has(e.startTime)).sort((e,t)=>e.startTime-t.startTime);if(e.length>0){xt.current=n;let t=e[e.length-1],i=Math.max(t.startTime,r);E.current=!0,D.current=i,O.current=r,Qt(i),ri.current=!0,ni(!0),A.current&&(A.current.style.opacity=`1`),_t(P.getVideoElement()),P.seek(i),k.current&&window.clearTimeout(k.current),k.current=window.setTimeout(()=>{E.current=!1,ri.current=!1,ni(!1),D.current=null,O.current=null,k.current=null,ht.current=!1,A.current&&(A.current.style.opacity=`0`),vt(P.getVideoElement())},3e3);return}}xt.current=null;let i=R.current.find(e=>Sn.current.has(e.startTime)&&n>=e.startTime-.5&&n<e.endTime+2),a=i?Math.max(n,i.endTime+.5):n;E.current=!0,D.current=a,O.current=r,Qt(a),ht.current=!1,A.current&&(A.current.style.opacity=`0`),vt(P.getVideoElement()),P.seek(a),k.current&&window.clearTimeout(k.current),k.current=window.setTimeout(()=>{E.current=!1,D.current=null,O.current=null,k.current=null,ht.current=!1,A.current&&(A.current.style.opacity=`0`)},3e3)};St.current=X;let gi=()=>{if(!P)return;if(K){P.casting.remoteSetMute(!(Ar?.isMuted??!1));return}let e=!rn;P.setMute(e),an(e)},_i=e=>{P&&(P.setPlaybackRate(e),vr(e),G(`none`),wr(`Playback speed: ${e===1?`Normal`:`${e}x`}`))},vi=e=>{if(!P)return;P.setQuality(e);let t=tr.find(t=>t.id===e);t&&(ir(t),wr(`Quality: ${t.label}`)),G(`none`)},yi=e=>{if(P)if(P.subtitles.setActiveTrack(e),sr(e),G(`none`),e===`off`)wr(`Captions off`);else{let t=cr.find(t=>t.id===e);wr(`Captions: ${t?y(t):`on`}`)}},bi=e=>{if(P){if(Tt.current&&=(clearTimeout(Tt.current),null),Er(null),j.current&&(j.current.style.opacity=`1`),sn(!0),Et.current===null){Ct.current=P.getCurrentTime();let e=cr.find(e=>e.id===H),t=ur.find(e=>e.id===fr);wt.current={playbackRate:_r,volume:tn,muted:rn,subtitleId:H,subtitleLang:e?.lang??null,audioLang:t&&fr!==0?t.lang:null,audioLabel:t&&fr!==0?t.label:null,qualityHeight:rr.id===-1?null:rr.height}}Et.current={targetIdx:e},G(`none`),wr(`Source: ${x?.[e]?.label??``}`),rt?.(e)}},xi=(e,t)=>{X(e,{eventType:`key_moments`,momentTitle:t?.title??``,momentTime:e}),G(`none`)},Si=(0,l.useCallback)(()=>{if(!Mt.current)return;let e=P?.getVideoElement?.();e&&C.current&&e.ownerDocument!==document&&(e.classList.remove(`gb-pip-video`),e.style.objectFit=``,C.current.insertBefore(e,C.current.firstChild)),Mt.current=null,vn(null),gn(!1)},[P]),Ci=async()=>{if(!P)return;let e=window.documentPictureInPicture;if(!e){P.togglePictureInPicture();return}if(Mt.current){Mt.current.close();return}try{let t=P.getVideoElement(),n=t.videoWidth&&t.videoHeight?t.videoWidth/t.videoHeight:16/9,r=await e.requestWindow({width:360,height:Math.round(360/n)}),i=r.document.createElement(`style`);i.textContent=De,r.document.head.appendChild(i),t.classList.add(`gb-pip-video`),r.document.body.appendChild(t),r.addEventListener(`pagehide`,()=>Si(),{once:!0}),Mt.current=r,vn(r),gn(!0)}catch(e){console.error(`[PlayerSDK PiP] Failed to open custom Picture-in-Picture window:`,e)}},wi=e=>{if(J||ti)return;let t=e.currentTarget.getBoundingClientRect();X(V(Math.max(0,Math.min(1,(e.clientX-t.left)/t.width))*z))},Ti=()=>{if(!C.current)return;let e=C.current,t=document,n=e,r=!!(document.fullscreenElement||t.webkitFullscreenElement),i=()=>{dn(!0),ln(!0),document.body.style.overflow=`hidden`,document.body.style.touchAction=`none`,P?.analytics.track(`fullscreen_enter`,P.getVideoElement())},a=()=>{dn(!1),ln(!1),document.body.style.overflow=``,document.body.style.touchAction=``,P?.analytics.track(`fullscreen_exit`,P.getVideoElement())};if(r||un)pn(!1),document.fullscreenElement?document.exitFullscreen():t.webkitFullscreenElement?t.webkitExitFullscreen?.():a();else{pn(Ft.current);let t=e.requestFullscreen?.bind(e)??n.webkitRequestFullscreen?.bind(n);t?t().catch(i):i()}};(0,l.useEffect)(()=>{mt.current=Ti});let Ei=()=>{if(!J)return;let e=L.find(e=>I>=e.startTime&&I<e.endTime),t=Bn.find(e=>I>=e.startTimeSeconds&&I<e.endTimeSeconds);if(t){let n=t.podIndex>=t.podTotal-1;yt.current?.(n?e?.endTime??t.endTimeSeconds:t.endTimeSeconds,!n);return}e&&yt.current?.(e.endTime)},Di=()=>{Rn.current&&zn.current.add(Rn.current.availId),In(null),Rn.current=null},Oi=e=>{e.clickTrackingUrl&&fetch(e.clickTrackingUrl,{mode:`no-cors`}).catch(()=>{}),e.clickThrough&&window.open(e.clickThrough,`_blank`,`noopener,noreferrer`)},ki=e=>{window.open(e.url,`_blank`,`noopener,noreferrer`)},Ai=()=>{P&&(K?P.casting.stopCasting():P.casting.requestSession(e,I))},ji=()=>{if(!P)return;let e=P.getVideoElement();if(Fr){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.`)},Mi=e=>{if(!w.current||z===0||!P||J||ti)return;let t=w.current.getBoundingClientRect();ct.current=t.width,Hr(Math.max(192/2,Math.min(e.clientX-t.left,t.width-192/2)));let n=V(Math.max(0,Math.min(1,(e.clientX-t.left)/t.width))*z);Br(e.clientX-t.left),Wr(n),dt.current&&window.clearTimeout(dt.current),dt.current=window.setTimeout(()=>{T.current&&(T.current.currentTime=n)},100),Jr(P.keyMoments.getCurrentMoment(n).keyMoment)},Ni=e=>{if(!w.current||z===0)return 0;let t=w.current.getBoundingClientRect();return V(Math.max(0,Math.min(1,(e.clientX-t.left)/t.width))*z)},Pi=e=>{if(!P||J||ti||z===0)return;e.preventDefault(),ft.current=!0,Yr(Ni(e.touches[0]));let t=e=>{if(!ft.current||!w.current)return;let t=e.touches[0],n=w.current.getBoundingClientRect(),r=V(Math.max(0,Math.min(1,(t.clientX-n.left)/n.width))*z);Yr(r),Wr(r),li()},n=e=>{if(ft.current=!1,w.current&&e.changedTouches[0]){let t=e.changedTouches[0],n=w.current.getBoundingClientRect();X(V(Math.max(0,Math.min(1,(t.clientX-n.left)/n.width))*z))}Yr(null),document.removeEventListener(`touchmove`,t),document.removeEventListener(`touchend`,n)};document.addEventListener(`touchmove`,t,{passive:!1}),document.addEventListener(`touchend`,n)},Fi=()=>{Br(null),Kr(null),Jr(null),dt.current&&window.clearTimeout(dt.current)},Z=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)(()=>{Dr.current&&wr(Xt?`Playing`:`Paused`)},[Xt]),(0,l.useEffect)(()=>{Dr.current&&wr(rn?`Muted`:`Unmuted`)},[rn]),(0,l.useEffect)(()=>{Dr.current=!0},[]),(0,l.useEffect)(()=>{let e=e=>{e.key===`Escape`&&si.current!==`none`&&(e.preventDefault(),G(`none`))};return document.addEventListener(`keydown`,e),()=>document.removeEventListener(`keydown`,e)},[]);let Ii=K?!(Ar?.isPaused??!0):Xt,Q=K?Ar?.currentTime??0:I,Li=K?Ar?.duration??0:z,Ri=K?Ar?.volumeLevel??1:tn,zi=K?Ar?.isMuted??!1:rn,Bi=(0,l.useCallback)(e=>{if(J||ti||e.target.closest(`.sdk-mobile-ctrl`))return;let t=Date.now(),n=C.current?.getBoundingClientRect(),r=e.clientX-(n?.left??0),i=It.current;if(i&&t-i.time<300){It.current=null;let e=r<(n?.width??0)/2,t=e?-10:10;X(V(Math.max(0,Math.min(z,B(Q)+t))),{eventType:e?`fast_backward`:`fast_forward`,skipSeconds:10}),Rt(e?`left`:`right`),window.setTimeout(()=>Rt(null),700),li()}else It.current={time:t,x:r},Qr?($r(!1),ii.current&&window.clearTimeout(ii.current)):li()},[J,ti,z,B,Q,V,X,Qr]),Vi=()=>zi||Ri===0?(0,d.jsx)(Ce,{size:18}):Ri<.3?(0,d.jsx)(we,{size:18}):Ri<.7?(0,d.jsx)(xe,{size:18}):(0,d.jsx)(Se,{size:18}),$=e=>t=>{t.key===`Enter`||t.key===` `?(t.preventDefault(),e()):t.key===`Escape`&&(t.preventDefault(),G(`none`))},Hi=e=>t=>{(t.key===`Enter`||t.key===` `)&&(t.preventDefault(),e())},Ui=e=>{if(!(J||ti))if(e.key===`ArrowLeft`||e.key===`ArrowRight`){e.preventDefault();let t=e.key===`ArrowLeft`?-5:5;X(V(Math.max(0,Math.min(z,B(Q)+t))))}else e.key===`Home`?(e.preventDefault(),X(V(0))):e.key===`End`&&(e.preventDefault(),X(V(z)))},Wi=e=>{G(W===e?`none`:e)},Gi=(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,d.jsxs)(`div`,{ref:C,role:`region`,"aria-label":qe||Xr?`${qe||Xr} video player`:`Video player`,className:`sdk-player-container ${Qr?`controls-active`:``} ${un?`sdk-fs-simulated`:``}`,onMouseMove:di,onTouchStart:mn?void 0:li,onMouseLeave:()=>{},style:{border:un?`none`:`1px solid rgba(255, 255, 255, 0.08)`,"--sdk-theme-color":s,"--sdk-theme-color-rgb":Me(s)},children:[(0,d.jsx)(`canvas`,{ref:lt,width:160,height:90,style:{display:`none`,position:`absolute`,pointerEvents:`none`},"aria-hidden":`true`}),(0,d.jsx)(`div`,{role:`status`,"aria-live":`polite`,"aria-atomic":`true`,className:`sdk-sr-only`,children:Cr}),(0,d.jsx)(`div`,{ref:A,style:{opacity:0,position:`absolute`,inset:0,background:`#000`,zIndex:100,pointerEvents:`none`,willChange:`opacity`},"aria-hidden":`true`}),_n&&(0,d.jsxs)(`div`,{className:`sdk-pip-placeholder`,"aria-hidden":`true`,children:[(0,d.jsx)(_e,{size:32,"aria-hidden":`true`}),(0,d.jsx)(`span`,{children:`Playing in Picture-in-Picture`})]}),(0,d.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,d.jsx)(`div`,{className:`sdk-spinner-overlay ${on?`active`:``}`,"aria-hidden":`true`,children:(0,d.jsx)(`div`,{className:`sdk-spinner`})}),Kt&&(0,d.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,d.jsx)(f,{onRetry:()=>{qt(!1),Yt(e=>e+1)}})}),Tr&&(0,d.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:Tr}),F.enableSubtitles&&!J&&ar&&H!==`off`&&(0,d.jsx)(`div`,{className:`sdk-subtitles-overlay`,children:(0,d.jsx)(`span`,{className:`sdk-subtitles-text`,style:{fontSize:b.size===`small`?`14px`:b.size===`large`?`24px`:`18px`,color:b.color??`#ffffff`,background:b.background===`none`?`transparent`:b.background===`solid`?`rgba(0, 0, 0, 0.92)`:`rgba(15, 23, 42, 0.78)`,border:b.background===`none`?`none`:`1px solid rgba(255,255,255,0.08)`,backdropFilter:b.background===`none`?`none`:`blur(8px)`},dangerouslySetInnerHTML:{__html:ar}})}),Fn&&(0,d.jsxs)(`div`,{className:`sdk-overlay-ad sdk-overlay-ad--${Fn.position}`,role:`complementary`,"aria-label":`Advertisement`,children:[(0,d.jsxs)(`div`,{className:`sdk-overlay-ad-topbar`,children:[(0,d.jsx)(`span`,{className:`sdk-overlay-ad-label`,children:`Ad`}),Fn.dismissible&&(0,d.jsx)(`button`,{className:`sdk-overlay-ad-close`,onClick:Di,"aria-label":`Close advertisement`,children:`✕`})]}),(0,d.jsx)(`img`,{src:Fn.imageUrl,width:Fn.imageWidth,height:Fn.imageHeight,alt:Fn.title||`Advertisement`,className:`sdk-overlay-ad-img`,onClick:()=>Oi(Fn)})]}),J&&(()=>{let e=Bn.find(e=>I>=e.startTimeSeconds&&I<e.endTimeSeconds),t=L.find(e=>I>=e.startTime&&I<e.endTime),n=e?Math.max(0,e.endTimeSeconds-I):t?Math.max(0,t.endTime-I):0,r=e?I-e.startTimeSeconds:t?I-t.startTime:0,i=!!e&&e.podTotal>1,a=e?e.skippable:Qe,o=e?e.skipOffsetSeconds:$e,s=a&&r>=o,c=Math.ceil(o-r),l=r+n,u=l>0?Math.min(1,Math.max(0,r/l)):0,ee=2.5,{w:f,h:te}=Wn,ne=Math.max(0,f-ee),re=Math.max(0,te-ee),p=Math.min(22-ee/2,re/2),m=Math.max(0,ne-2*p),ie=Math.max(0,re-2*p),ae=`M${1.25+p+m/2},1.25h${m/2}a${p},${p} 0 0 1 ${p},${p}v${ie}a${p},${p} 0 0 1 ${-p},${p}h${-m}a${p},${p} 0 0 1 ${-p},${-p}v${-ie}a${p},${p} 0 0 1 ${p},${-p}h${m/2}`,h=2*m+2*ie+2*Math.PI*p;return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsxs)(`div`,{ref:Un,className:`sdk-ad-countdown`,role:`timer`,"aria-label":i?`Advertisement ${e.podIndex+1} of ${e.podTotal} — ${Z(n)} remaining`:`Advertisement — ${Z(n)} remaining`,"aria-live":`off`,children:[f>0&&te>0&&(0,d.jsxs)(`svg`,{className:`sdk-ad-countdown-border`,width:f,height:te,viewBox:`0 0 ${f} ${te}`,"aria-hidden":`true`,children:[(0,d.jsx)(`path`,{className:`sdk-ad-countdown-border-track`,d:ae,strokeWidth:ee}),(0,d.jsx)(`path`,{className:`sdk-ad-countdown-border-fill`,d:ae,strokeWidth:ee,strokeDasharray:h,strokeDashoffset:h*(1-u)})]}),(0,d.jsx)(`span`,{className:`sdk-ad-countdown-badge`,"aria-hidden":`true`,children:`Ad`}),i&&(0,d.jsxs)(`span`,{className:`sdk-ad-countdown-count`,"aria-hidden":`true`,children:[e.podIndex+1,` of `,e.podTotal]}),(0,d.jsx)(`span`,{className:`sdk-ad-countdown-sep`,"aria-hidden":`true`}),(0,d.jsx)(`span`,{className:`sdk-ad-countdown-time`,"aria-hidden":`true`,children:Z(n)})]}),a&&(0,d.jsx)(`button`,{className:`sdk-skip-ad-btn ${s?`sdk-skip-ad-btn--ready`:``}`,onClick:s?Ei:void 0,disabled:!s,"aria-label":s?`Skip advertisement`:`Skip advertisement available in ${c} seconds`,"aria-disabled":!s,children:s?`Skip Ad ›`:`Skip in ${c}s`}),e?.cta&&(()=>{let t=e.cta,n=(0,d.jsxs)(`button`,{className:`sdk-ad-cta-btn`,onClick:()=>ki(t),"aria-label":`${t.text} — opens advertiser site in a new tab`,children:[(0,d.jsx)(`span`,{className:`sdk-ad-cta-btn-text`,children:t.text}),(0,d.jsx)(de,{size:15,"aria-hidden":`true`})]});return(0,d.jsx)(`div`,{className:`sdk-ad-cta`,role:`complementary`,"aria-label":`Advertisement call to action`,children:t.title?(0,d.jsxs)(`div`,{className:`sdk-ad-cta-card`,children:[(0,d.jsxs)(`div`,{className:`sdk-ad-cta-info`,children:[(0,d.jsx)(`div`,{className:`sdk-ad-cta-title`,children:t.title}),t.description&&(0,d.jsx)(`div`,{className:`sdk-ad-cta-desc`,children:t.description})]}),n]}):n})})()]})})(),Gt&&(0,d.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,d.jsxs)(`div`,{style:{maxWidth:480,textAlign:`center`,padding:24},children:[(0,d.jsx)(`h3`,{style:{margin:`0 0 8px`},children:`Playback restricted`}),(0,d.jsx)(`p`,{style:{margin:0},children:`Your account is missing a required license key. Please contact your administrator.`})]})}),(K||Fr)&&(0,d.jsx)(`div`,{className:`sdk-cast-bg`}),mn&&(0,d.jsxs)(`div`,{className:`sdk-mobile-overlay ${Qr?`active`:``}`,onClick:Bi,children:[Lt&&(0,d.jsx)(`div`,{className:`sdk-mobile-doubletap ${Lt}`,children:(0,d.jsxs)(`div`,{className:`sdk-mobile-doubletap-icon`,children:[Lt===`left`?(0,d.jsx)(ye,{size:26}):(0,d.jsx)(be,{size:26}),(0,d.jsx)(`span`,{className:`sdk-mobile-doubletap-label`,children:`10s`})]})}),ie&&(0,d.jsxs)(d.Fragment,{children:[(0,d.jsxs)(`div`,{className:`sdk-mobile-header sdk-mobile-ctrl`,children:[(0,d.jsxs)(`div`,{className:`sdk-mobile-header-left`,children:[(cn||un)&&(0,d.jsx)(`button`,{className:`sdk-mobile-back-btn`,onClick:Ti,"aria-label":`Exit fullscreen`,children:(0,d.jsx)(ue,{size:22,"aria-hidden":`true`})}),(qe||Xr)&&(0,d.jsx)(`div`,{className:`sdk-mobile-title`,children:qe||Xr})]}),(0,d.jsxs)(`div`,{className:`sdk-mobile-header-actions`,children:[F.enablePiP&&(0,d.jsx)(`button`,{className:`sdk-mobile-hdr-btn`,onClick:()=>{J||Ci()},style:{color:hn?s:``},"aria-label":hn?`Exit picture-in-picture`:`Enter picture-in-picture`,"aria-pressed":hn,children:(0,d.jsx)(_e,{size:20,"aria-hidden":`true`})}),F.enableChromecast&&!J&&(0,d.jsx)(`button`,{className:`sdk-mobile-hdr-btn`,onClick:Ai,"data-tooltip":K?`Casting to ${K} — tap to disconnect`:`Cast to device`,"aria-label":K?`Stop casting to ${K}`:`Cast to device`,"aria-pressed":!!K,style:{color:K?`#3b82f6`:``},children:(0,d.jsx)(le,{size:20,fill:K?`currentColor`:`none`,"aria-hidden":`true`})}),F.allowAirplay&&Nr&&(0,d.jsx)(`button`,{className:`sdk-mobile-hdr-btn`,onClick:ji,"aria-label":Fr?`Stop AirPlay to ${Lr||`device`}`:`AirPlay to device`,"aria-pressed":Fr,style:{color:Fr?s:``},children:(0,d.jsx)(se,{size:20,"aria-hidden":`true`})})]})]}),(0,d.jsxs)(`div`,{className:`sdk-mobile-center-controls sdk-mobile-ctrl`,children:[!J&&(0,d.jsxs)(`button`,{className:`sdk-mobile-seek-btn`,onClick:()=>X(V(Math.max(0,B(Q)-10)),{eventType:`fast_backward`,skipSeconds:10}),"aria-label":`Rewind 10 seconds`,children:[(0,d.jsx)(ye,{size:22,"aria-hidden":`true`}),(0,d.jsx)(`span`,{className:`sdk-mobile-seek-label`,"aria-hidden":`true`,children:`10`})]}),(0,d.jsx)(`button`,{className:`sdk-mobile-play-btn`,onClick:pi,"aria-label":yn?`Replay`:Ii?`Pause`:`Play`,children:yn?(0,d.jsx)(ye,{size:38,"aria-hidden":`true`}):Ii?(0,d.jsx)(v,{size:38,fill:`currentColor`,"aria-hidden":`true`}):(0,d.jsx)(ve,{size:38,fill:`currentColor`,style:{marginLeft:`3px`},"aria-hidden":`true`})}),!J&&(0,d.jsxs)(`button`,{className:`sdk-mobile-seek-btn`,onClick:()=>X(V(Math.min(z,B(Q)+10)),{eventType:`fast_forward`,skipSeconds:10}),"aria-label":`Skip forward 10 seconds`,children:[(0,d.jsx)(be,{size:22,"aria-hidden":`true`}),(0,d.jsx)(`span`,{className:`sdk-mobile-seek-label`,"aria-hidden":`true`,children:`10`})]})]}),(0,d.jsxs)(`div`,{className:`sdk-mobile-bottom-bar sdk-mobile-ctrl`,children:[F.enableKeyMoments&&yr&&U.length>0&&(0,d.jsx)(`div`,{className:`sdk-mobile-chapters-scroll`,children:U.map((e,t)=>{let n=mr.index===t;return(0,d.jsxs)(`div`,{role:`button`,tabIndex:0,className:`sdk-mobile-chapter-card${n?` active`:``}`,style:{borderColor:n?s:void 0},"aria-label":`${e.title}, ${Z(e.startTime)}${n?`, current chapter`:``}`,"aria-current":n?`true`:void 0,onClick:()=>{xi(e.startTime,e)},onKeyDown:Hi(()=>xi(e.startTime,e)),children:[(0,d.jsxs)(`div`,{className:`sdk-mobile-chapter-thumb`,children:[xr[t]||e.thumbnail?(0,d.jsx)(`img`,{src:xr[t]||e.thumbnail,alt:``,"aria-hidden":`true`,style:{width:`100%`,height:`100%`,objectFit:`cover`,display:`block`}}):(0,d.jsx)(me,{size:16,"aria-hidden":`true`,style:{color:n?s:`rgba(255,255,255,0.3)`}}),(0,d.jsx)(`span`,{className:`sdk-mobile-chapter-time-badge`,"aria-hidden":`true`,children:Z(e.startTime)})]}),(0,d.jsx)(`div`,{className:`sdk-mobile-chapter-title`,style:{color:n?s:void 0},children:e.title})]},t)})}),(0,d.jsx)(`div`,{ref:w,role:Y?void 0:`slider`,"aria-label":Y?void 0:`Seek`,"aria-valuemin":Y?void 0:0,"aria-valuemax":Y?void 0:Math.round(z),"aria-valuenow":Y?void 0:Math.round(B(q===null?I:q)),"aria-valuetext":Y?void 0:`${Z(B(q===null?I:q))} of ${Z(z)}`,tabIndex:Y?void 0:0,className:`sdk-seekbar-container sdk-mobile-seekbar${J?` sdk-ad-mode`:``}`,onMouseDown:Y?void 0:hi,onMouseMove:Y?void 0:Mi,onMouseLeave:Y?void 0:Fi,onTouchStart:Y?void 0:Pi,onKeyDown:Y?void 0:Ui,style:{pointerEvents:Y?`none`:void 0,touchAction:`none`},children:J?(0,d.jsx)(`div`,{className:`sdk-ad-progress-fill`,style:{width:(()=>{let e=P?P.getCurrentTime():I,t=Qn(e);return t?`${Math.min(100,Math.max(0,(e-t.start)/(t.end-t.start)*100))}%`:`0%`})()}}):(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(`div`,{className:`sdk-seekbar-buffered`,style:{width:`${$t?(P&&P.getBufferedRanges()[0]?.end||0)/$t*100:0}%`}}),z>0&&L.filter(e=>!wn.has(e.startTime)).map((e,t)=>(0,d.jsx)(`div`,{className:`sdk-seekbar-adbreak`,style:{left:`${B(e.startTime)/z*100}%`,width:`3px`}},t)),(0,d.jsx)(`div`,{className:`sdk-seekbar-progress`,style:{width:K?`${Li>0?Q/Li*100:0}%`:`${z?B(q===null?I:q)/z*100:0}%`,background:`#ffffff`,boxShadow:`none`},children:(0,d.jsx)(`div`,{className:`sdk-seekbar-handle`,style:{opacity:1,transform:`scale(1)`}})}),F.enableKeyMoments&&U.map((e,t)=>z===0?null:(0,d.jsx)(`div`,{className:`sdk-seekbar-chapter-marker sdk-desktop-chapter-dot`,style:{left:`${B(e.startTime)/z*100}%`}},t))]})}),(0,d.jsxs)(`div`,{className:`sdk-mobile-controls-row`,children:[!J&&(0,d.jsx)(`span`,{className:`sdk-time-display`,children:K?`${Z(Q)} / ${Z(Li)}`:`${Z(B(q===null?I:q))} / ${Z(z)}`}),(0,d.jsxs)(`div`,{className:`sdk-mobile-bottom-icons`,children:[F.enableKeyMoments&&U.length>0&&!J&&(0,d.jsx)(`button`,{className:`sdk-mobile-icon-btn${yr?` active`:``}`,onClick:()=>{br(!yr)},"aria-label":yr?`Hide chapters`:`Show chapters`,"aria-pressed":yr,children:(0,d.jsx)(me,{size:18,"aria-hidden":`true`})}),F.enableSubtitles&&!J&&cr.some(e=>!e.isNative)&&(0,d.jsxs)(`div`,{className:`sdk-menu-container`,children:[(0,d.jsx)(`button`,{className:`sdk-mobile-icon-btn${H===`off`?``:` active`}`,onClick:()=>{Wi(`subtitles`)},"aria-label":`Captions`,"aria-haspopup":`listbox`,"aria-expanded":W===`subtitles`,children:(0,d.jsx)(ce,{size:18,"aria-hidden":`true`})}),W===`subtitles`&&(0,d.jsxs)(`div`,{ref:Gi,className:`sdk-dropup-menu`,role:`listbox`,"aria-label":`Captions`,children:[(0,d.jsx)(`div`,{className:`sdk-dropup-header`,"aria-hidden":`true`,children:`Subtitles`}),(0,d.jsxs)(`div`,{role:`option`,"aria-selected":H===`off`,tabIndex:0,className:`sdk-dropup-item ${H===`off`?`active`:``}`,onClick:()=>yi(`off`),onKeyDown:$(()=>yi(`off`)),children:[(0,d.jsx)(`span`,{children:`Off`}),H===`off`&&(0,d.jsx)(_,{size:12,"aria-hidden":`true`})]}),cr.map(e=>(0,d.jsxs)(`div`,{role:`option`,"aria-selected":H===e.id,tabIndex:0,className:`sdk-dropup-item ${H===e.id?`active`:``}`,onClick:()=>yi(e.id),onKeyDown:$(()=>yi(e.id)),children:[(0,d.jsx)(`span`,{children:y(e)}),H===e.id&&(0,d.jsx)(_,{size:12,"aria-hidden":`true`})]},e.id))]})]}),F.allowMultipleAudio&&ur.length>1&&!J&&(0,d.jsxs)(`div`,{className:`sdk-menu-container`,children:[(0,d.jsx)(`button`,{className:`sdk-mobile-icon-btn${W===`audio`?` active`:``}`,onClick:()=>{Wi(`audio`)},"aria-label":`Audio track`,"aria-haspopup":`listbox`,"aria-expanded":W===`audio`,children:(0,d.jsx)(pe,{size:18,"aria-hidden":`true`})}),W===`audio`&&(0,d.jsxs)(`div`,{ref:Gi,className:`sdk-dropup-menu`,role:`listbox`,"aria-label":`Audio track`,children:[(0,d.jsx)(`div`,{className:`sdk-dropup-header`,"aria-hidden":`true`,children:`Audio Track`}),ur.map(e=>(0,d.jsxs)(`div`,{role:`option`,"aria-selected":fr===e.id,tabIndex:0,className:`sdk-dropup-item ${fr===e.id?`active`:``}`,onClick:()=>{P?.setAudioTrack(e.id),pr(e.id),G(`none`),wr(`Audio: ${y(e)}`)},onKeyDown:$(()=>{P?.setAudioTrack(e.id),pr(e.id),G(`none`),wr(`Audio: ${y(e)}`)}),children:[(0,d.jsx)(`span`,{children:y(e)}),fr===e.id&&(0,d.jsx)(_,{size:12,"aria-hidden":`true`})]},e.id))]})]}),F.enablePlaybackSpeed&&!J&&(0,d.jsxs)(`div`,{className:`sdk-menu-container`,children:[(0,d.jsx)(`button`,{className:`sdk-mobile-icon-btn${W===`speed`?` active`:``}`,onClick:()=>{Wi(`speed`)},"aria-label":`Playback speed`,"aria-haspopup":`listbox`,"aria-expanded":W===`speed`,children:(0,d.jsx)(fe,{size:18,"aria-hidden":`true`})}),W===`speed`&&(0,d.jsxs)(`div`,{ref:Gi,className:`sdk-dropup-menu`,role:`listbox`,"aria-label":`Playback speed`,children:[(0,d.jsx)(`div`,{className:`sdk-dropup-header`,"aria-hidden":`true`,children:`Speed`}),[.5,.75,1,1.25,1.5,2].map(e=>(0,d.jsxs)(`div`,{role:`option`,"aria-selected":_r===e,tabIndex:0,className:`sdk-dropup-item ${_r===e?`active`:``}`,onClick:()=>_i(e),onKeyDown:$(()=>_i(e)),children:[(0,d.jsx)(`span`,{children:e===1?`Normal`:`${e}x`}),_r===e&&(0,d.jsx)(_,{size:12,"aria-hidden":`true`})]},e))]})]}),F.enableQuality&&!J&&(0,d.jsxs)(`div`,{className:`sdk-menu-container`,children:[(0,d.jsx)(`button`,{className:`sdk-mobile-icon-btn${rr.id===-1?``:` active`}`,onClick:()=>{Wi(`quality`)},"aria-label":`Video quality`,"aria-haspopup":`listbox`,"aria-expanded":W===`quality`,children:(0,d.jsx)(Ae,{size:18,"aria-hidden":`true`})}),W===`quality`&&(0,d.jsxs)(`div`,{ref:Gi,className:`sdk-dropup-menu large`,role:`listbox`,"aria-label":`Video quality`,children:[(0,d.jsx)(`div`,{className:`sdk-dropup-header`,"aria-hidden":`true`,children:`Quality`}),tr.map(e=>(0,d.jsxs)(`div`,{role:`option`,"aria-selected":rr.id===e.id,tabIndex:0,className:`sdk-dropup-item ${rr.id===e.id?`active`:``}`,onClick:()=>vi(e.id),onKeyDown:$(()=>vi(e.id)),children:[(0,d.jsx)(`span`,{children:e.label}),rr.id===e.id&&(0,d.jsx)(_,{size:12,"aria-hidden":`true`})]},e.id))]})]}),x&&x.length>1&&!J&&(0,d.jsxs)(`div`,{className:`sdk-menu-container`,children:[(0,d.jsx)(`button`,{className:`sdk-mobile-icon-btn${W===`sources`?` active`:``}`,onClick:()=>{Wi(`sources`)},"aria-label":`Select source`,"aria-haspopup":`listbox`,"aria-expanded":W===`sources`,children:(0,d.jsx)(je,{size:18,"aria-hidden":`true`})}),W===`sources`&&(0,d.jsxs)(`div`,{ref:Gi,className:`sdk-dropup-menu`,role:`listbox`,"aria-label":`Select source`,children:[(0,d.jsx)(`div`,{className:`sdk-dropup-header`,"aria-hidden":`true`,children:`Source`}),x.map((e,t)=>(0,d.jsxs)(`div`,{role:`option`,"aria-selected":nt===t,tabIndex:0,className:`sdk-dropup-item ${nt===t?`active`:``}`,onClick:()=>bi(t),onKeyDown:$(()=>bi(t)),children:[(0,d.jsx)(`span`,{children:e.label}),nt===t&&(0,d.jsx)(_,{size:12,"aria-hidden":`true`})]},t))]})]}),(0,d.jsx)(`button`,{className:`sdk-mobile-icon-btn`,onClick:Ti,"aria-label":cn||un?`Exit fullscreen`:`Enter fullscreen`,"aria-pressed":cn||un,children:cn?(0,d.jsx)(ge,{size:18,"aria-hidden":`true`}):(0,d.jsx)(he,{size:18,"aria-hidden":`true`})})]})]})]})]})]}),!mn&&(0,d.jsxs)(`div`,{className:`sdk-controls-overlay`,onClick:e=>{J||e.target.closest(`.sdk-desktop-header`)||e.target.closest(`.sdk-desktop-center-controls`)||e.target.closest(`.sdk-desktop-bottom`)||pi()},children:[(0,d.jsxs)(`div`,{className:`sdk-desktop-header`,children:[(0,d.jsxs)(`div`,{className:`sdk-desktop-header-left`,children:[(cn||un)&&(0,d.jsx)(`button`,{className:`sdk-desktop-back-btn`,onClick:e=>{e.stopPropagation(),Ti()},"aria-label":`Exit fullscreen`,children:(0,d.jsx)(ue,{size:22,"aria-hidden":`true`})}),(qe||Xr)&&(0,d.jsx)(`span`,{className:`sdk-desktop-title`,children:qe||Xr})]}),(0,d.jsxs)(`div`,{className:`sdk-desktop-header-right`,children:[F.enableChromecast&&!J&&(0,d.jsx)(`button`,{className:`sdk-desktop-hdr-btn`,onClick:e=>{e.stopPropagation(),Ai()},"data-tooltip":K?`Casting to ${K} — click to disconnect`:`Cast to device`,"aria-label":K?`Stop casting to ${K}`:`Cast to device`,"aria-pressed":!!K,style:{color:K?`#3b82f6`:``},children:(0,d.jsx)(le,{size:20,fill:K?`currentColor`:`none`,"aria-hidden":`true`})}),K&&(0,d.jsxs)(`span`,{className:`sdk-cast-indicator`,"aria-hidden":`true`,children:[(0,d.jsx)(le,{size:10,fill:`currentColor`,"aria-hidden":`true`}),K]}),F.allowAirplay&&Nr&&(0,d.jsx)(`button`,{className:`sdk-desktop-hdr-btn`,onClick:e=>{e.stopPropagation(),ji()},"data-tooltip":Fr?`AirPlay to ${Lr||`device`} — click to disconnect`:`AirPlay to device`,"aria-label":Fr?`Stop AirPlay to ${Lr||`device`}`:`AirPlay to device`,"aria-pressed":Fr,style:{color:Fr?s:``},children:(0,d.jsx)(se,{size:20,"aria-hidden":`true`})})]})]}),ie&&(0,d.jsxs)(d.Fragment,{children:[(0,d.jsxs)(`div`,{className:`sdk-desktop-center-controls`,style:{pointerEvents:`none`},children:[!J&&(0,d.jsx)(`button`,{className:`sdk-desktop-seek-btn`,style:{pointerEvents:`auto`},onClick:e=>{e.stopPropagation(),X(V(Math.max(0,B(Q)-10)),{eventType:`fast_backward`,skipSeconds:10})},"aria-label":`Rewind 10 seconds`,children:(0,d.jsxs)(`div`,{style:{position:`relative`,display:`flex`,alignItems:`center`,justifyContent:`center`},children:[(0,d.jsx)(ye,{size:30,"aria-hidden":`true`}),(0,d.jsx)(`span`,{className:`sdk-desktop-seek-label`,"aria-hidden":`true`,children:`10`})]})}),(0,d.jsx)(`button`,{className:`sdk-desktop-play-btn`,style:{pointerEvents:`auto`},onClick:e=>{e.stopPropagation(),pi()},"aria-label":yn?`Replay`:Ii?`Pause`:`Play`,children:yn?(0,d.jsx)(ye,{size:38,"aria-hidden":`true`}):Ii?(0,d.jsx)(v,{size:38,fill:`currentColor`,"aria-hidden":`true`}):(0,d.jsx)(ve,{size:38,fill:`currentColor`,style:{marginLeft:`4px`},"aria-hidden":`true`})}),!J&&(0,d.jsx)(`button`,{className:`sdk-desktop-seek-btn`,style:{pointerEvents:`auto`},onClick:e=>{e.stopPropagation(),X(V(Math.min(z,B(Q)+10)),{eventType:`fast_forward`,skipSeconds:10})},"aria-label":`Skip forward 10 seconds`,children:(0,d.jsxs)(`div`,{style:{position:`relative`,display:`flex`,alignItems:`center`,justifyContent:`center`},children:[(0,d.jsx)(be,{size:30,"aria-hidden":`true`}),(0,d.jsx)(`span`,{className:`sdk-desktop-seek-label`,"aria-hidden":`true`,children:`10`})]})})]}),F.enableKeyMoments&&yr&&U.length>0&&Je===`panel`&&(0,d.jsxs)(`div`,{className:`sdk-chapters-panel`,onClick:e=>e.stopPropagation(),children:[(0,d.jsx)(`div`,{className:`sdk-chapters-panel-header`,children:(0,d.jsx)(`span`,{className:`sdk-chapters-panel-title`,children:`Chapters`})}),(0,d.jsx)(`div`,{className:`sdk-chapters-panel-list`,children:U.map((e,t)=>{let n=mr.index===t;return(0,d.jsxs)(`div`,{role:`button`,tabIndex:0,className:`sdk-chapters-panel-item${n?` active`:``}`,"aria-label":`${e.title}, ${Z(e.startTime)}${n?`, current chapter`:``}`,"aria-current":n?`true`:void 0,onClick:()=>xi(e.startTime,e),onKeyDown:Hi(()=>xi(e.startTime,e)),children:[(0,d.jsx)(`div`,{className:`sdk-chapters-panel-thumb`,children:xr[t]||e.thumbnail?(0,d.jsx)(`img`,{src:xr[t]||e.thumbnail,alt:``,"aria-hidden":`true`,style:{width:`100%`,height:`100%`,objectFit:`cover`,display:`block`}}):(0,d.jsx)(me,{size:18,"aria-hidden":`true`,style:{color:`rgba(255,255,255,0.3)`}})}),(0,d.jsxs)(`div`,{className:`sdk-chapters-panel-info`,children:[(0,d.jsx)(`div`,{className:`sdk-chapters-panel-item-title`,children:e.title}),e.description&&(0,d.jsx)(`div`,{className:`sdk-chapters-panel-item-desc`,children:e.description}),(0,d.jsx)(`div`,{className:`sdk-chapters-panel-item-time`,"aria-hidden":`true`,children:Z(e.startTime)})]})]},t)})})]}),(0,d.jsxs)(`div`,{className:`sdk-desktop-bottom`,children:[F.enableKeyMoments&&yr&&U.length>0&&Je===`strip`&&(0,d.jsx)(`div`,{className:`sdk-desktop-chapters-strip`,children:U.map((e,t)=>{let n=mr.index===t;return(0,d.jsxs)(`div`,{role:`button`,tabIndex:0,className:`sdk-desktop-chapter-card${n?` active`:``}`,"aria-label":`${e.title}, ${Z(e.startTime)}${n?`, current chapter`:``}`,"aria-current":n?`true`:void 0,onClick:t=>{t.stopPropagation(),xi(e.startTime,e)},onKeyDown:Hi(()=>xi(e.startTime,e)),children:[(0,d.jsx)(`div`,{className:`sdk-desktop-chapter-thumb`,children:xr[t]||e.thumbnail?(0,d.jsx)(`img`,{src:xr[t]||e.thumbnail,alt:``,"aria-hidden":`true`,style:{width:`100%`,height:`100%`,objectFit:`cover`,display:`block`}}):(0,d.jsx)(me,{size:18,"aria-hidden":`true`,style:{color:`rgba(255,255,255,0.35)`}})}),(0,d.jsx)(`div`,{className:`sdk-desktop-chapter-title`,children:e.title}),(0,d.jsx)(`div`,{className:`sdk-desktop-chapter-time`,"aria-hidden":`true`,children:Z(e.startTime)})]},t)})}),(0,d.jsx)(`div`,{ref:w,role:Y?void 0:`slider`,"aria-label":Y?void 0:`Seek`,"aria-valuemin":Y?void 0:0,"aria-valuemax":Y?void 0:Math.round(z),"aria-valuenow":Y?void 0:Math.round(B(q===null?I:q)),"aria-valuetext":Y?void 0:`${Z(B(q===null?I:q))} of ${Z(z)}`,tabIndex:Y?void 0:0,className:`sdk-seekbar-container sdk-desktop-seekbar${J?` sdk-ad-mode`:``}`,onMouseDown:Y?void 0:hi,onMouseMove:Y?void 0:Mi,onMouseLeave:Y?void 0:Fi,onTouchStart:Y?void 0:Pi,onKeyDown:Y?void 0:Ui,style:{pointerEvents:Y?`none`:void 0},children:J?(0,d.jsx)(`div`,{className:`sdk-ad-progress-fill`,style:{width:(()=>{let e=P?P.getCurrentTime():I,t=Qn(e);return t?`${Math.min(100,Math.max(0,(e-t.start)/(t.end-t.start)*100))}%`:`0%`})()}}):(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(`div`,{className:`sdk-seekbar-buffered`,style:{width:`${$t?(P&&P.getBufferedRanges()[0]?.end||0)/$t*100:0}%`}}),z>0&&L.filter(e=>!wn.has(e.startTime)).map((e,t)=>(0,d.jsx)(`div`,{className:`sdk-seekbar-adbreak`,style:{left:`${B(e.startTime)/z*100}%`,width:`3px`}},t)),(0,d.jsx)(`div`,{className:`sdk-seekbar-progress`,style:{width:K?`${Li>0?Q/Li*100:0}%`:`${z?B(q===null?I:q)/z*100:0}%`,background:`#ffffff`,boxShadow:`none`},children:(0,d.jsx)(`div`,{className:`sdk-seekbar-handle`})}),F.enableKeyMoments&&U.map((e,t)=>z===0?null:(0,d.jsx)(`div`,{className:`sdk-seekbar-chapter-marker sdk-desktop-chapter-dot`,style:{left:`${B(e.startTime)/z*100}%`}},t)),zr!==null&&Gr&&(0,d.jsxs)(`div`,{className:`sdk-thumbnail-tooltip`,style:{left:`${Vr}px`},children:[(0,d.jsx)(`div`,{className:`sdk-thumbnail-preview`,children:(0,d.jsx)(`img`,{src:Gr,alt:`preview`,style:{width:`100%`,height:`100%`,objectFit:`cover`,borderRadius:`8px`,display:`block`}})}),qr&&(0,d.jsx)(`div`,{className:`sdk-thumbnail-chapter-name`,children:qr.title}),(0,d.jsx)(`div`,{className:`sdk-thumbnail-time-label`,children:Z(B(Ur))})]})]})}),(0,d.jsxs)(`div`,{className:`sdk-desktop-controls-row`,children:[(0,d.jsxs)(`div`,{className:`sdk-desktop-left-controls`,children:[!J&&(0,d.jsx)(`div`,{className:`sdk-time-display`,children:K?`${Z(Q)} / ${Z(Li)}`:`${Z(B(q===null?I:q))} / ${Z(z)}`}),Ye===`slider`&&(0,d.jsxs)(`div`,{className:`sdk-volume-control`,children:[(0,d.jsx)(`button`,{className:`sdk-desktop-icon-btn`,onClick:e=>{e.stopPropagation(),gi()},"data-tooltip":zi?`Unmute`:`Mute`,"aria-label":zi?`Unmute`:`Mute`,"aria-pressed":zi,children:Vi()}),(0,d.jsx)(`input`,{type:`range`,className:`sdk-volume-slider`,min:0,max:1,step:.02,value:zi?0:Ri,"aria-label":`Volume`,"aria-valuetext":zi?`Muted`:`${Math.round(Ri*100)}%`,style:{"--vol-pct":Math.round((zi?0:Ri)*100)},onChange:e=>{let t=parseFloat(e.target.value);K?(P?.casting.remoteSetVolume(t),t>0&&P?.casting.remoteSetMute(!1)):(P?.setVolume(t),t>0&&rn&&P?.setMute(!1))},onClick:e=>e.stopPropagation()})]})]}),(0,d.jsxs)(`div`,{className:`sdk-desktop-right-icons`,children:[F.enableKeyMoments&&U.length>0&&!J&&(0,d.jsx)(`button`,{className:`sdk-desktop-icon-btn${yr?` active`:``}`,onClick:e=>{e.stopPropagation(),br(!yr)},"data-tooltip":`Key Moments`,"aria-label":yr?`Hide chapters`:`Show chapters`,"aria-pressed":yr,children:(0,d.jsx)(me,{size:20,"aria-hidden":`true`})}),F.enableSubtitles&&!J&&cr.some(e=>!e.isNative)&&(0,d.jsxs)(`div`,{className:`sdk-menu-container`,children:[(0,d.jsx)(`button`,{className:`sdk-desktop-icon-btn${H===`off`?``:` active`}`,onClick:e=>{e.stopPropagation(),Wi(`subtitles`)},"data-tooltip":`Captions`,"aria-label":`Captions`,"aria-haspopup":`listbox`,"aria-expanded":W===`subtitles`,children:(0,d.jsx)(ce,{size:20,"aria-hidden":`true`})}),W===`subtitles`&&(0,d.jsxs)(`div`,{ref:Gi,className:`sdk-dropup-menu`,role:`listbox`,"aria-label":`Captions`,children:[(0,d.jsx)(`div`,{className:`sdk-dropup-header`,"aria-hidden":`true`,children:`Subtitles`}),(0,d.jsxs)(`div`,{role:`option`,"aria-selected":H===`off`,tabIndex:0,className:`sdk-dropup-item ${H===`off`?`active`:``}`,onClick:()=>yi(`off`),onKeyDown:$(()=>yi(`off`)),children:[(0,d.jsx)(`span`,{children:`Off`}),H===`off`&&(0,d.jsx)(_,{size:12,"aria-hidden":`true`})]}),cr.map(e=>(0,d.jsxs)(`div`,{role:`option`,"aria-selected":H===e.id,tabIndex:0,className:`sdk-dropup-item ${H===e.id?`active`:``}`,onClick:()=>yi(e.id),onKeyDown:$(()=>yi(e.id)),children:[(0,d.jsx)(`span`,{children:y(e)}),H===e.id&&(0,d.jsx)(_,{size:12,"aria-hidden":`true`})]},e.id))]})]}),F.allowMultipleAudio&&ur.length>1&&!J&&(0,d.jsxs)(`div`,{className:`sdk-menu-container`,children:[(0,d.jsx)(`button`,{className:`sdk-desktop-icon-btn${W===`audio`?` active`:``}`,onClick:e=>{e.stopPropagation(),Wi(`audio`)},"data-tooltip":`Audio Track`,"aria-label":`Audio track`,"aria-haspopup":`listbox`,"aria-expanded":W===`audio`,children:(0,d.jsx)(pe,{size:20,"aria-hidden":`true`})}),W===`audio`&&(0,d.jsxs)(`div`,{ref:Gi,className:`sdk-dropup-menu`,role:`listbox`,"aria-label":`Audio track`,children:[(0,d.jsx)(`div`,{className:`sdk-dropup-header`,"aria-hidden":`true`,children:`Audio Track`}),ur.map(e=>(0,d.jsxs)(`div`,{role:`option`,"aria-selected":fr===e.id,tabIndex:0,className:`sdk-dropup-item ${fr===e.id?`active`:``}`,onClick:()=>{P?.setAudioTrack(e.id),pr(e.id),G(`none`),wr(`Audio: ${y(e)}`)},onKeyDown:$(()=>{P?.setAudioTrack(e.id),pr(e.id),G(`none`),wr(`Audio: ${y(e)}`)}),children:[(0,d.jsx)(`span`,{children:y(e)}),fr===e.id&&(0,d.jsx)(_,{size:12,"aria-hidden":`true`})]},e.id))]})]}),F.enablePlaybackSpeed&&!J&&(0,d.jsxs)(`div`,{className:`sdk-menu-container`,children:[(0,d.jsx)(`button`,{className:`sdk-desktop-icon-btn${W===`speed`?` active`:``}`,onClick:e=>{e.stopPropagation(),Wi(`speed`)},"data-tooltip":`Playback Speed`,"aria-label":`Playback speed`,"aria-haspopup":`listbox`,"aria-expanded":W===`speed`,children:(0,d.jsx)(fe,{size:20,"aria-hidden":`true`})}),W===`speed`&&(0,d.jsxs)(`div`,{ref:Gi,className:`sdk-dropup-menu`,role:`listbox`,"aria-label":`Playback speed`,children:[(0,d.jsx)(`div`,{className:`sdk-dropup-header`,"aria-hidden":`true`,children:`Speed`}),[.5,.75,1,1.25,1.5,2].map(e=>(0,d.jsxs)(`div`,{role:`option`,"aria-selected":_r===e,tabIndex:0,className:`sdk-dropup-item ${_r===e?`active`:``}`,onClick:()=>_i(e),onKeyDown:$(()=>_i(e)),children:[(0,d.jsx)(`span`,{children:e===1?`Normal`:`${e}x`}),_r===e&&(0,d.jsx)(_,{size:12,"aria-hidden":`true`})]},e))]})]}),F.enableQuality&&!J&&(0,d.jsxs)(`div`,{className:`sdk-menu-container`,children:[(0,d.jsx)(`button`,{className:`sdk-desktop-icon-btn${rr.id===-1?``:` active`}`,onClick:e=>{e.stopPropagation(),Wi(`quality`)},"data-tooltip":`Quality`,"aria-label":`Video quality`,"aria-haspopup":`listbox`,"aria-expanded":W===`quality`,children:(0,d.jsx)(Ae,{size:20,"aria-hidden":`true`})}),W===`quality`&&(0,d.jsxs)(`div`,{ref:Gi,className:`sdk-dropup-menu large`,role:`listbox`,"aria-label":`Video quality`,children:[(0,d.jsx)(`div`,{className:`sdk-dropup-header`,"aria-hidden":`true`,children:`Quality`}),tr.map(e=>(0,d.jsxs)(`div`,{role:`option`,"aria-selected":rr.id===e.id,tabIndex:0,className:`sdk-dropup-item ${rr.id===e.id?`active`:``}`,onClick:()=>vi(e.id),onKeyDown:$(()=>vi(e.id)),children:[(0,d.jsx)(`span`,{children:e.label}),rr.id===e.id&&(0,d.jsx)(_,{size:12,"aria-hidden":`true`})]},e.id))]})]}),x&&x.length>1&&!J&&(0,d.jsxs)(`div`,{className:`sdk-menu-container`,children:[(0,d.jsx)(`button`,{className:`sdk-desktop-icon-btn${W===`sources`?` active`:``}`,onClick:e=>{e.stopPropagation(),Wi(`sources`)},"data-tooltip":`Select Source`,"aria-label":`Select source`,"aria-haspopup":`listbox`,"aria-expanded":W===`sources`,children:(0,d.jsx)(je,{size:20,"aria-hidden":`true`})}),W===`sources`&&(0,d.jsxs)(`div`,{ref:Gi,className:`sdk-dropup-menu`,role:`listbox`,"aria-label":`Select source`,children:[(0,d.jsx)(`div`,{className:`sdk-dropup-header`,"aria-hidden":`true`,children:`Source`}),x.map((e,t)=>(0,d.jsxs)(`div`,{role:`option`,"aria-selected":nt===t,tabIndex:0,className:`sdk-dropup-item ${nt===t?`active`:``}`,onClick:()=>bi(t),onKeyDown:$(()=>bi(t)),children:[(0,d.jsx)(`span`,{children:e.label}),nt===t&&(0,d.jsx)(_,{size:12,"aria-hidden":`true`})]},t))]})]}),F.enablePiP&&!J&&(0,d.jsx)(`button`,{className:`sdk-desktop-icon-btn${hn?` active`:``}`,onClick:e=>{e.stopPropagation(),Ci()},"data-tooltip":`Picture-in-Picture`,"aria-label":hn?`Exit picture-in-picture`:`Enter picture-in-picture`,"aria-pressed":hn,children:(0,d.jsx)(_e,{size:20,"aria-hidden":`true`})}),Ye===`button`&&(0,d.jsx)(`button`,{className:`sdk-desktop-icon-btn`,onClick:e=>{e.stopPropagation(),gi()},"data-tooltip":zi?`Unmute`:`Mute`,"aria-label":zi?`Unmute`:`Mute`,"aria-pressed":zi,children:Vi()}),ze&&(0,d.jsx)(`button`,{className:`sdk-desktop-icon-btn`,onClick:e=>{e.stopPropagation(),Ti()},"data-tooltip":cn||un?`Exit fullscreen`:`Fullscreen`,"aria-label":cn||un?`Exit fullscreen`:`Enter fullscreen`,"aria-pressed":cn||un,children:cn?(0,d.jsx)(ge,{size:20,"aria-hidden":`true`}):(0,d.jsx)(he,{size:20,"aria-hidden":`true`})})]})]})]})]})]}),_n&&(()=>{let e=L.find(e=>Q>=e.startTime&&Q<e.endTime),t=e?e.endTime-e.startTime:z,n=e?Math.max(0,Q-e.startTime):B(Q);return(0,u.createPortal)((0,d.jsxs)(`div`,{className:`gb-pip-overlay${Ii?``:` gb-pip-paused`}`,children:[(0,d.jsx)(`div`,{}),(0,d.jsxs)(`div`,{className:`gb-pip-center`,children:[(0,d.jsx)(`button`,{className:`gb-pip-btn`,onClick:()=>X(V(Math.max(0,B(Q)-10)),{eventType:`fast_backward`,skipSeconds:10}),"aria-label":`Rewind 10 seconds`,disabled:J,children:(0,d.jsx)(ye,{size:20,"aria-hidden":`true`})}),(0,d.jsx)(`button`,{className:`gb-pip-btn gb-pip-play`,onClick:pi,"aria-label":yn?`Replay`:Ii?`Pause`:`Play`,children:yn?(0,d.jsx)(ye,{size:24,"aria-hidden":`true`}):Ii?(0,d.jsx)(v,{size:24,"aria-hidden":`true`}):(0,d.jsx)(ve,{size:24,"aria-hidden":`true`,style:{marginLeft:2}})}),(0,d.jsx)(`button`,{className:`gb-pip-btn`,onClick:()=>X(V(Math.min(z,B(Q)+10)),{eventType:`fast_forward`,skipSeconds:10}),"aria-label":`Skip forward 10 seconds`,disabled:J,children:(0,d.jsx)(be,{size:20,"aria-hidden":`true`})})]}),(0,d.jsxs)(`div`,{className:`gb-pip-bottom`,children:[(0,d.jsx)(`div`,{className:`gb-pip-progress`,onClick:wi,children:(0,d.jsx)(`div`,{className:`gb-pip-progress-fill`,style:{width:`${t?n/t*100:0}%`}})}),(0,d.jsxs)(`div`,{className:`gb-pip-time`,children:[Z(n),` / `,Z(t)]})]})]}),_n.document.body)})()]})},We=`https://dev-api.go-boss.com`;function b(e){return{"x-player-key":e,"Content-Type":`application/json`}}async function Ge(e,t=We,n={}){let r=await fetch(`${t}/api/player/sdk/init`,{method:`POST`,headers:b(e),body:JSON.stringify({videoUrl:n.videoUrl})});if(!r.ok)throw Error(`SDK init failed: ${r.status}`);return await r.json()}async function Ke(e,t,n=We){let{sessionId:r,videoId:i,videoTitle:a,videoUrl:o,contentDurationSec:s}=t,c=await fetch(`${n}/api/player/sdk/session/start`,{method:`POST`,headers:b(e),body:JSON.stringify({sessionId:r,videoId:i,videoTitle:a,videoUrl:o,contentDurationSec:typeof s==`number`&&Number.isFinite(s)&&s>0?s:void 0})});if(!c.ok)throw Error(`Session start failed: ${c.status}`)}async function qe(e,t,n,r,i=We){let a={sessionId:t,currentTime:n,duration:r},o=await fetch(`${i}/api/player/sdk/session/heartbeat`,{method:`POST`,headers:b(e),body:JSON.stringify(a)});if(!o.ok)throw Error(`Heartbeat failed: ${o.status}`)}async function Je(e,t,n=0,r=0,i=We){let a=await fetch(`${i}/api/player/sdk/session/end`,{method:`POST`,headers:b(e),body:JSON.stringify({sessionId:t,currentTime:n,duration:r})});if(!a.ok)throw Error(`Session end failed: ${a.status}`)}async function Ye(e,t,n=We){let r=await fetch(`${n}/api/player/sdk/events`,{method:`POST`,headers:b(e),body:JSON.stringify(t)});if(!r.ok)throw Error(`Event ${t.eventType} failed: ${r.status}`)}function Xe(e,t,n=0,r=0,i=We){fetch(`${i}/api/player/sdk/session/end`,{method:`POST`,headers:b(e),body:JSON.stringify({sessionId:t,currentTime:n,duration:r}),keepalive:!0})}function Ze(){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`,Ze());break;case`fullscreen_exit`:this.call(`playerDidExitFullscreen`,Ze());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)}}},$e={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 et(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($e))n in e&&(t[r]=e[n]);return t}function tt(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 x(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 nt=30*1e3;function rt(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 S({playerKey:e,src:t,subtitles:n,licenseKey:r,themeColor:i=`#6366f1`,firebaseConfig:a,proxyDomains:o,apiBaseUrl:s,adTrackingUrl:c,overlayAdUrl:u,videoId:ee,title:te,watermark:ne,autoplay:re=!1,muted:p=!1,autoFullscreen:m=!1,enableControls:ie=!0,enableSkipAd:ae,skipAdAfterSeconds:h,chaptersDisplayMode:oe=`strip`,volumeControlType:g=`slider`,subtitleStyle:se,drmConfig:ce,onAnalyticsEvent:le,delegate:_,onKeyMomentsLoaded:ue,initialTime:de,onTimeUpdate:fe}){let[pe,me]=(0,l.useState)([]),[he,ge]=(0,l.useState)(0),[v]=(0,l.useState)(()=>new Qe);(0,l.useEffect)(()=>{v.setDelegate(_),v.setAutoplay(re)},[v,_,re]),(0,l.useEffect)(()=>()=>v.notifyDismissed(),[v]);let _e=Array.isArray(t)?t:[{label:`Default`,url:t}],ve=_e[he]?.url??_e[0]?.url??``,[ye,be]=(0,l.useState)(`loading`),[xe,Se]=(0,l.useState)(null),[Ce,we]=(0,l.useState)(0),[Te,Ee]=(0,l.useState)(`network`),De=(0,l.useRef)(null),Oe=(0,l.useRef)(!1),ke=(0,l.useRef)(``),Ae=(0,l.useRef)(!1),je=(0,l.useRef)(!1),Me=(0,l.useRef)(void 0),Ne=(0,l.useRef)(!1),Pe=(0,l.useRef)(nt),y=(0,l.useRef)(null),Fe=(0,l.useRef)(0),Ie=(0,l.useRef)(null),Le=(0,l.useRef)({currentTime:0,duration:0}),Re=(0,l.useRef)(()=>{}),ze=ve.split(`/`).filter(Boolean),Be=ee||(ze[ze.length-1]??``).replace(/\.m3u8.*$/,``)||`video`,Ve=(0,l.useRef)(ve);(0,l.useEffect)(()=>{Ve.current=ve},[ve]);let He=(0,l.useCallback)(()=>tt(o),[o])(),We=x(i);(0,l.useEffect)(()=>{document.documentElement.style.setProperty(`--accent-indigo`,i),document.documentElement.style.setProperty(`--accent-indigo-rgb`,We)},[i,We]),(0,l.useEffect)(()=>{let t=!1;return Ge(e,s,{videoUrl:Ve.current}).then(e=>{if(t)return;De.current=e;let{features:n,planTier:r,heartbeatIntervalSeconds:i}=e.result.data;Pe.current=typeof i==`number`&&i>0?i*1e3:nt;let a={package:r,is_active:!0,features:et(n),limits:{streaming_minutes:0}};console.log(`[SDK] Player key validated. Features:`,a.features),Se(a),be(`ready`)}).catch(e=>{if(t)return;console.error(`[SDK] Player key validation failed:`,e);let n=e.message??``;Ee(/init failed: 4\d\d/.test(n)?`auth`:`network`),be(`error`)}),()=>{t=!0,y.current&&=(clearTimeout(y.current),null),Fe.current=0,Ie.current=null,be(`loading`),Se(null),Ae.current=!1,ke.current=``,je.current=!1,Me.current=void 0}},[e,s,Ce]);let b=(0,l.useCallback)(()=>{y.current&&(clearTimeout(y.current),y.current=null,Ie.current!==null&&(Fe.current+=Date.now()-Ie.current,Ie.current=null))},[]),Ze=(0,l.useCallback)(()=>{y.current&&=(clearTimeout(y.current),null),Fe.current=0,Ie.current=null},[]),$e=(0,l.useCallback)(()=>{if(y.current||!ke.current)return;Ie.current=Date.now();let t=Pe.current-Fe.current;y.current=setTimeout(()=>{y.current=null,Fe.current=0,Ie.current=null;let{currentTime:t,duration:n}=Le.current;console.log(`[SDK] Heartbeat timer fired — ${Pe.current/1e3}s of real content elapsed`),qe(e,ke.current,t,n,s).catch(e=>console.warn(`[SDK] Heartbeat failed:`,e.message)),Re.current()},t)},[e,s]);(0,l.useEffect)(()=>{Re.current=$e},[$e]);let S=(0,l.useRef)(!0);(0,l.useEffect)(()=>{if(S.current){S.current=!1;return}Ne.current=!0,Me.current=void 0,b()},[he,b]),(0,l.useEffect)(()=>{let t=()=>{if(v.notifyDismissed(),!ke.current)return;je.current=!0,Ze();let{currentTime:t,duration:n}=Le.current;Xe(e,ke.current,t,n,s)};return window.addEventListener(`beforeunload`,t),()=>{window.removeEventListener(`beforeunload`,t),Ze()}},[e,s,Ze,v]);let it=(0,l.useCallback)(t=>{let n=t;if(t.currentTime!==void 0&&(Le.current={currentTime:t.currentTime,duration:t.duration}),t.eventType===`session_start`&&!Ae.current&&(Ae.current=!0,je.current=!1,ke.current=typeof n.sessionId==`string`?n.sessionId:``,Ke(e,{sessionId:ke.current,videoId:Be,videoTitle:te,videoUrl:Ve.current,contentDurationSec:t.duration},s).catch(e=>console.warn(`[SDK] Session start failed:`,e.message)),Oe.current||$e()),t.eventType===`play`&&Ae.current&&!Oe.current&&!Ne.current&&$e(),t.eventType===`pause`&&b(),t.eventType===`buffering_start`&&b(),t.eventType===`buffering_end`&&Ae.current&&!Oe.current&&(Ne.current=!1,$e()),t.eventType===`ended`&&(Ze(),ke.current)){je.current=!0;let{currentTime:t,duration:n}=Le.current;Je(e,ke.current,t,n,s).catch(e=>console.warn(`[SDK] Session end failed:`,e.message))}if(Ae.current&&ke.current&&!je.current){let n=rt(t,Me.current);n&&Ye(e,{eventType:n.eventType,sessionId:ke.current,currentTime:t.currentTime??0,videoId:Be,videoTitle:te,...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),v.handleAnalyticsEvent(t),le?.(t)},[e,s,Be,te,$e,b,Ze,le,v]),at=(0,l.useCallback)(e=>{Oe.current=e,e?(b(),console.log(`[SDK] Ad break started — heartbeat timer paused`)):(Ae.current&&$e(),console.log(`[SDK] Ad break ended — heartbeat timer resumed`))},[b,$e]),C=(0,l.useCallback)(e=>{v.setKeyMoments(e),me(e),ue?.(e)},[ue,v]),ot=(0,l.useCallback)(e=>{v.handleTimeUpdate(e),fe?.(e)},[fe,v]);if(ye===`loading`)return(0,d.jsxs)(`div`,{style:{width:`100%`,aspectRatio:`16 / 9`,background:`#000`,borderRadius:8,display:`flex`,alignItems:`center`,justifyContent:`center`},children:[(0,d.jsx)(`style`,{children:`@keyframes boss-sdk-spin{to{transform:rotate(360deg)}}`}),(0,d.jsx)(`div`,{style:{width:60,height:60,borderRadius:`50%`,border:`4px solid rgba(${We}, 0.1)`,borderLeftColor:i,borderRightColor:`rgba(${We}, 0.2)`,filter:`drop-shadow(0 0 10px rgba(${We}, 0.5))`,animation:`boss-sdk-spin 1s linear infinite`}})]});if(ye===`error`){let e=Te===`auth`;return(0,d.jsx)(`div`,{style:{width:`100%`,aspectRatio:`16 / 9`,background:`#09090e`,borderRadius:8,display:`flex`,alignItems:`center`,justifyContent:`center`,flexDirection:`column`,gap:20},children:(0,d.jsx)(f,{title:e?`Invalid Player Key`:`Something Went Wrong`,subtitle:e?`Your player key is invalid or expired.
|
|
31
31
|
Please check your configuration.`:`We encountered an error while connecting.
|
|
32
|
-
Please try again.`,onRetry:()=>we(e=>e+1)})})}return(0,d.jsx)(
|
|
32
|
+
Please try again.`,onRetry:()=>we(e=>e+1)})})}return(0,d.jsx)(Ue,{src:ve,sources:_e,activeSourceIndex:he,onSourceChange:e=>ge(e),subtitles:n,keyMoments:pe,themeColor:i,firebaseConfig:a,resolvedEntitlement:xe,licenseKey:r,title:te,watermark:ne,autoplay:re,muted:p,autoFullscreen:m,enableControls:ie,enableSkipAd:ae,skipAdAfterSeconds:h,chaptersDisplayMode:oe,volumeControlType:g,subtitleStyle:se,drmConfig:ce,overlayAdUrl:u,adTrackingUrl:c,videoId:Be,urlTransformer:He,onAnalyticsEvent:it,onAdBreakChange:at,onKeyMomentsLoaded:C,initialTime:de,onTimeUpdate:ot})}function it(e,t){let n=(0,ee.createRoot)(e),r=t;return n.render((0,l.createElement)(S,r)),{update(e){r={...r,...e},n.render((0,l.createElement)(S,r))},destroy(){n.unmount()}}}exports.BossVideoPlayer=S,exports.FirebaseAnalyticsProvider=c.c,exports.VideoPlayerSDK=c.t,exports.WebVideoPlayer=Ue,exports.createPlayer=it,exports.endSession=Je,exports.initSdk=Ge,exports.sendEvent=Ye,exports.sendHeartbeat=qe,exports.startSession=Ke;
|
|
33
33
|
//# sourceMappingURL=index.cjs.map
|