@goboss/web-video-player-sdk 1.0.4 → 1.0.5
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.d.ts +1 -0
- package/dist/index.js +298 -288
- package/dist/index.js.map +1 -1
- package/dist/index.umd.js +1 -1
- package/dist/index.umd.js.map +1 -1
- package/package.json +1 -9
package/dist/index.umd.js
CHANGED
|
@@ -45,5 +45,5 @@ Schedule: ${a.map(e=>Ic(e))} pos: ${this.timelinePos}`),s.length&&this.log(`Remo
|
|
|
45
45
|
</div>
|
|
46
46
|
`,Error(t)}this.videoElement=document.createElement(`video`),this.videoElement.className=`sdk-html5-video`,this.videoElement.style.width=`100%`,this.videoElement.style.height=`100%`,this.videoElement.style.display=`block`,this.videoElement.style.backgroundColor=`#000000`,this.videoElement.playsInline=!0,this.videoElement.controls=!1,this.videoElement.muted=!!this.options.muted,this.options.container.appendChild(this.videoElement),this.drm.setupWatermark(this.options.container),this.bindMediaEvents(),this.loadSource(this.options.src),this.setupBackgroundControls()}bindMediaEvents(){let e=this.videoElement;e.addEventListener(`play`,()=>{this.analytics.track(`play`,e,this.getAnalyticsPayload()),this.analytics.startHeartbeat(e,()=>this.getAnalyticsPayload()),this.emit(`play`,null)}),e.addEventListener(`pause`,()=>{this.analytics.track(`pause`,e,this.getAnalyticsPayload()),this.analytics.stopHeartbeat(),this.emit(`pause`,null)}),e.addEventListener(`timeupdate`,()=>{let t=e.currentTime;if(this.chapters.updateTime(t),this.subtitles.updateTime(t),this.hlsActiveSubtitleKey!==null){let e=(this.hlsSubtitleCues.get(this.hlsActiveSubtitleKey)??[]).filter(e=>t>=e.startTime&&t<e.endTime);this.subtitles.setCustomSubtitleText(e.map(e=>e.text).join(`<br />`))}this.emit(`timeupdate`,t)}),e.addEventListener(`seeking`,()=>{this.analytics.track(`seek`,e,this.getAnalyticsPayload()),this.emit(`seeking`,e.currentTime)}),e.addEventListener(`waiting`,()=>{this.analytics.setBuffering(!0,e,()=>this.getAnalyticsPayload()),this.emit(`buffering`,!0)}),e.addEventListener(`playing`,()=>{this.analytics.setBuffering(!1,e,()=>this.getAnalyticsPayload()),this.emit(`buffering`,!1)}),e.addEventListener(`volumechange`,()=>{this.analytics.track(`volume_change`,e,this.getAnalyticsPayload()),this.emit(`volumechange`,{volume:e.volume,muted:e.muted})}),e.addEventListener(`ratechange`,()=>{this.analytics.track(`speed_change`,e,this.getAnalyticsPayload()),this.emit(`ratechange`,e.playbackRate)}),e.addEventListener(`ended`,()=>{this.analytics.track(`ended`,e,this.getAnalyticsPayload()),this.analytics.track(`complete`,e,{...this.getAnalyticsPayload(),watchPercentage:100}),this.analytics.stopHeartbeat(),this.emit(`ended`,null)}),e.addEventListener(`enterpictureinpicture`,()=>{this.analytics.track(`pip_toggle`,e,{...this.getAnalyticsPayload(),errorMessage:`entered`}),this.emit(`pipchange`,!0)}),e.addEventListener(`leavepictureinpicture`,()=>{this.analytics.track(`pip_toggle`,e,{...this.getAnalyticsPayload(),errorMessage:`exited`}),this.emit(`pipchange`,!1)}),e.addEventListener(`error`,()=>{let t=e.error;this.analytics.track(`error`,e,{...this.getAnalyticsPayload(),errorMessage:t?`${t.code}: ${t.message}`:`Unknown HTML5 video playback error`}),this.emit(`error`,t)});let t=e.textTracks;if(t){let n=(e,t)=>{if(e.kind!==`subtitles`&&e.kind!==`captions`||this.subtitles.getTracks().some(e=>e.isNative&&e.nativeTrackIndex===t))return;let n=e.kind===`captions`;this.subtitles.addTrack({id:`native-${t}`,label:e.label||e.language||(n?`CC ${t+1}`:`Track ${t+1}`),lang:e.language||`und`,isDefault:!this.hlsInstance&&(e.default||e.mode===`showing`),isNative:!0,nativeTrackIndex:t})};e.addEventListener(`loadedmetadata`,()=>{this.analytics.track(`video_loaded`,e,this.getAnalyticsPayload());let r=0,i=this.hlsInstance?[`captions`]:[`subtitles`,`captions`];for(let e=0;e<t.length;e++){if(!i.includes(t[e].kind))continue;let a=this.subtitles.getTracks().length;n(t[e],e),this.subtitles.getTracks().length>a&&r++}r>0&&this.emit(`subtitlesloaded`,this.subtitles.getTracks())}),t.addEventListener(`addtrack`,e=>{let r=e.track;if(r)for(let e=0;e<t.length;e++){if(t[e]!==r)continue;let i=this.subtitles.getTracks().length;n(r,e),this.subtitles.getTracks().length>i&&this.emit(`subtitlesloaded`,this.subtitles.getTracks());break}})}this.subtitles.onTrackSwitch(e=>{if(e===null){if(this.hlsInstance)this.hlsInstance.subtitleTrack=-1;else if(t){for(let e=0;e<t.length;e++)t[e].mode=`disabled`,t[e].oncuechange=null;this.subtitles.setCustomSubtitleText(``)}}else if(e.isHls)this.hlsInstance&&e.hlsTrackId!==void 0&&(this.hlsInstance.subtitleTrack=e.hlsTrackId);else if(e.isNative&&t&&e.nativeTrackIndex!==void 0&&t[e.nativeTrackIndex])for(let n=0;n<t.length;n++)if(t[n].oncuechange=null,n===e.nativeTrackIndex){t[n].mode=`hidden`;let e=t[n];e.oncuechange=()=>{let t=e.activeCues;if(t&&t.length>0){let e=Array.from(t).map(e=>e.text).join(`<br />`);this.subtitles.setCustomSubtitleText(e)}else this.subtitles.setCustomSubtitleText(``)}}else t[n].mode=`disabled`})}rewriteToProxy(e){if(e.includes(`d3queh3es1i8u.cloudfront.net`))try{let t=new URL(e);return`/video-proxy${t.pathname}${t.search}`}catch{return e.replace(`https://d3queh3es1i8u.cloudfront.net`,`/video-proxy`)}return e}async loadSource(e){this.extractKeyMomentsFromManifest(e),this.extractSubtitlesFromManifest(e);let t=this.rewriteToProxy(e),n=t.endsWith(`.m3u8`)||t.includes(`.m3u8`),r=t.endsWith(`.mpd`)||t.includes(`.mpd`);if(n)if(Lu.isSupported()){let n=new Lu({enableWorker:!0,lowLatencyMode:!0,backBufferLength:90,maxMaxBufferLength:30,renderTextTracksNatively:!1,xhrSetup:(t,n)=>{let r=this.drm.getAuthToken();if(!r)try{let t=new URL(e),n=t.searchParams.get(`token`)||t.searchParams.get(`key`)||t.searchParams.get(`auth`)||t.searchParams.get(`authToken`);n&&(r=n)}catch{}try{let e=this.rewriteToProxy(n),i=new URL(e,window.location.origin);r&&i.searchParams.set(`token`,r),t.open(`GET`,i.toString(),!0)}catch(e){console.error(`[PlayerSDK Core] Error in xhrSetup URL parsing:`,e)}}});this.hlsInstance=n,n.loadSource(t),n.attachMedia(this.videoElement),n.on(Lu.Events.SUBTITLE_TRACK_SWITCH,(e,t)=>{if(this.hlsActiveSubtitleKey=null,this.subtitles.setCustomSubtitleText(``),t.id!==-1){let e=n.subtitleTracks[t.id];this.hlsActiveSubtitleKey=e?.default?`default`:`subtitles${t.id}`}}),n.on(Lu.Events.CUES_PARSED,(e,t)=>{let n=this.hlsSubtitleCues.get(t.track)??[],r=t.cues.filter(e=>!n.some(t=>t.startTime===e.startTime&&t.endTime===e.endTime));r.length>0&&this.hlsSubtitleCues.set(t.track,[...n,...r])}),n.on(Lu.Events.MANIFEST_PARSED,()=>{this.qualityLevels=n.levels.map((e,t)=>({id:t,height:e.height,width:e.width,bitrate:e.bitrate,label:e.height?`${e.height}p`:`Option ${t+1}`}));let e={id:-1,height:0,width:0,bitrate:0,label:`Auto`};this.qualityLevels.unshift(e),this.activeQuality=e,this.emit(`qualitylevels`,this.qualityLevels),this.options.autoplay&&this.play()}),n.on(Lu.Events.AUDIO_TRACKS_UPDATED,()=>{n.audioTracks.length>1&&(this.audioTrackList=n.audioTracks.map((e,t)=>({id:t,label:e.name||e.lang||`Audio ${t+1}`,lang:e.lang||``})),this.emit(`audiotracksloaded`,this.audioTrackList))}),n.on(Lu.Events.AUDIO_TRACK_SWITCHED,(e,t)=>{this.analytics.track(`audio_track_change`,this.videoElement,this.getAnalyticsPayload()),this.emit(`audiotrackchange`,t.id)}),n.on(Lu.Events.LEVEL_SWITCHED,(e,t)=>{let n=this.qualityLevels.find(e=>e.id===t.level);n&&(this.analytics.track(`quality_change`,this.videoElement,{...this.getAnalyticsPayload(),rendition:n.label,bitrate:n.bitrate}),this.emit(`qualitychange`,n))}),n.on(Lu.Events.ERROR,(e,t)=>{t.fatal&&(t.type===Lu.ErrorTypes.NETWORK_ERROR?(this.analytics.track(`network_error`,this.videoElement,{...this.getAnalyticsPayload(),errorMessage:t.details,errorCode:0}),n.startLoad()):t.type===Lu.ErrorTypes.MEDIA_ERROR?n.recoverMediaError():this.destroy())})}else this.videoElement.canPlayType(`application/vnd.apple.mpegurl`)&&(this.videoElement.src=e,this.qualityLevels=[{id:0,height:720,width:1280,bitrate:2e6,label:`720p (Native)`}],this.activeQuality=this.qualityLevels[0],this.options.autoplay&&this.videoElement.play().catch(console.error));else if(r){let t=await import(`dashjs`).catch(()=>null);if(!t){console.error(`[SDK] dashjs not installed — install it to use DASH streams`);return}let n=t.MediaPlayer().create();this.dashInstance=n,n.initialize(this.videoElement,e,!!this.options.autoplay),n.updateSettings({streaming:{abr:{autoSwitchBitrate:{video:!0,audio:!0}},buffer:{bufferTimeAtTopQuality:30}}}),this.qualityLevels=[{id:0,height:0,width:0,bitrate:0,label:`Auto (DASH)`}],this.activeQuality=this.qualityLevels[0],this.emit(`qualitylevels`,this.qualityLevels)}else this.videoElement.src=e,this.qualityLevels=[{id:0,height:1080,width:1920,bitrate:45e5,label:`1080p (Source)`}],this.activeQuality=this.qualityLevels[0],this.options.autoplay&&this.videoElement.play().catch(console.error)}setupBackgroundControls(){if(`mediaSession`in navigator){navigator.mediaSession.metadata=new MediaMetadata({title:`Video Player`,album:`Video Player`,artwork:[{src:`https://images.unsplash.com/photo-1618005182384-a83a8bd57fbe?w=512&q=80`,sizes:`512x512`,type:`image/jpeg`}]});try{navigator.mediaSession.setActionHandler(`play`,()=>this.play()),navigator.mediaSession.setActionHandler(`pause`,()=>this.pause()),navigator.mediaSession.setActionHandler(`seekbackward`,e=>{let t=e.seekOffset||10;this.seek(this.videoElement.currentTime-t)}),navigator.mediaSession.setActionHandler(`seekforward`,e=>{let t=e.seekOffset||10;this.seek(this.videoElement.currentTime+t)})}catch{console.warn(`[PlayerSDK Session] Action handler binding is unsupported by browser.`)}}}play(){this.videoElement.play().catch(e=>{console.warn(`[PlayerSDK Play] Autoplay blocked, wait for user interaction:`,e)})}pause(){this.videoElement.pause()}seek(e){let t=Math.max(0,Math.min(e,this.getDuration()));this.videoElement.currentTime=t}setVolume(e){let t=Math.max(0,Math.min(e,1));this.videoElement.volume=t,this.videoElement.muted=t===0}setMute(e){this.videoElement.muted=e}setPlaybackRate(e){this.videoElement.playbackRate=e}setQuality(e){let t=this.qualityLevels.find(t=>t.id===e);t&&(this.activeQuality=t,this.hlsInstance?this.hlsInstance.currentLevel=e:console.warn(`[PlayerSDK Core] Manual rendition switching is not supported by standard native players.`))}async togglePictureInPicture(){if(!document.pictureInPictureEnabled)return console.warn(`[PlayerSDK Core] Picture-in-Picture is disabled or unsupported.`),!1;try{return document.pictureInPictureElement?(await document.exitPictureInPicture(),!1):(await this.videoElement.requestPictureInPicture(),!0)}catch(e){return console.error(`[PlayerSDK Core] PiP toggle failed:`,e),!1}}toggleFullscreen(){let e=this.options.container;document.fullscreenElement?document.exitFullscreen():e.requestFullscreen().catch(e=>{console.error(`[PlayerSDK Fullscreen] Failed entering fullscreen:`,e)})}getVideoElement(){return this.videoElement}getCurrentTime(){return this.videoElement.currentTime}getDuration(){return this.videoElement.duration||0}getVolume(){return this.videoElement.volume}isMuted(){return this.videoElement.muted}getPlaybackRate(){return this.videoElement.playbackRate}getActiveQuality(){return this.activeQuality}getQualityLevels(){return this.qualityLevels}getBufferLength(){let e=this.videoElement.buffered,t=this.videoElement.currentTime;for(let n=0;n<e.length;n++)if(t>=e.start(n)&&t<=e.end(n))return e.end(n)-t;return 0}getBufferedRanges(){let e=this.videoElement.buffered,t=[];for(let n=0;n<e.length;n++)t.push({start:e.start(n),end:e.end(n)});return t}getAnalyticsPayload(){return{rendition:this.activeQuality.label,bitrate:this.activeQuality.bitrate,volume:this.videoElement.volume,speed:this.videoElement.playbackRate}}on(e,t){this.eventListeners[e]||(this.eventListeners[e]=[]),this.eventListeners[e].push(t)}off(e,t){this.eventListeners[e]&&(this.eventListeners[e]=this.eventListeners[e].filter(e=>e!==t))}emit(e,...t){this.eventListeners[e]&&this.eventListeners[e].forEach(e=>e(...t))}async extractSubtitlesFromManifest(e){try{let t=this.rewriteToProxy(e),n=await fetch(t);if(!n.ok)return;let r=(await n.text()).split(`
|
|
47
47
|
`),i=this.drm.getAuthToken()||void 0;if(!i)try{let t=new URL(e);i=t.searchParams.get(`token`)||t.searchParams.get(`key`)||t.searchParams.get(`auth`)||t.searchParams.get(`authToken`)||void 0}catch{}let a=e.substring(0,e.lastIndexOf(`/`)+1),o=[];for(let e of r){if(!e.startsWith(`#EXT-X-MEDIA:TYPE=SUBTITLES`))continue;let t=e.match(/NAME="([^"]+)"/),n=e.match(/LANGUAGE="([^"]+)"/),r=e.match(/URI="([^"]+)"/),s=/DEFAULT=YES/i.test(e);if(!r)continue;let c=r[1],l=o.length,u=t?t[1]:n?n[1]:`Track ${l+1}`,d=n?n[1]:`und`;if(/\.m3u8?(\?|$)/i.test(c)){o.push({id:`subtitle-${l}`,label:u,lang:d,isDefault:s,isHls:!0,hlsTrackId:l});continue}let f=c.startsWith(`http`)?c:a+c,p=this.rewriteToProxy(f);if(i)try{let e=new URL(p,window.location.origin);e.searchParams.set(`token`,i),p=e.toString()}catch{}o.push({id:`subtitle-${l}`,label:u,lang:d,isDefault:s,src:p})}o.length>0&&(this.subtitles.setHlsTracks(o),this.emit(`subtitlesloaded`,this.subtitles.getTracks()))}catch(e){console.error(`[PlayerSDK] Error extracting subtitles from manifest:`,e)}}async extractKeyMomentsFromManifest(e){try{let t=this.rewriteToProxy(e),n=await fetch(t);if(!n.ok)return;let r=(await n.text()).split(`
|
|
48
|
-
`),i=[];for(let e of r)if(e.startsWith(`#EXT-X-DATERANGE:`)){let t=e.match(/ID="([^"]+)"/),n=e.match(/START-DATE="([^"]+)"/),r=e.match(/X-TITLE="([^"]+)"/);t&&n&&r&&(i.some(e=>e.id===t[1])||i.push({id:t[1],startDate:n[1],title:r[1]}))}if(i.length>0){i.sort((e,t)=>e.startDate.localeCompare(t.startDate));let e=new Date(i[0].startDate).getTime(),t=i.map(t=>{let n=(new Date(t.startDate).getTime()-e)/1e3;return{title:t.title,startTime:n,endTime:0}});for(let e=0;e<t.length;e++)e<t.length-1?t[e].endTime=t[e+1].startTime:t[e].endTime=99999;this.keyMoments.setKeyMoments(t),this.emit(`keymomentsloaded`,t),this.emit(`chaptersloaded`,t)}}catch(e){console.error(`Error parsing manifest key moments:`,e)}}getAudioTracks(){return this.audioTrackList}setAudioTrack(e){this.hlsInstance&&(this.hlsInstance.audioTrack=e)}destroy(){this.hlsSubtitleCues.clear(),this.hlsActiveSubtitleKey=null,this.analytics.stopHeartbeat(),this.drm.removeWatermark(),this.hlsInstance&&=(this.hlsInstance.destroy(),null),this.dashInstance&&=(this.dashInstance.reset(),null),this.videoElement&&(this.videoElement.pause(),this.videoElement.removeAttribute(`src`),this.videoElement.load(),this.videoElement.parentElement&&this.videoElement.parentElement.removeChild(this.videoElement)),this.eventListeners={}}},Cd=e=>{if(e.includes(`d3queh3es1i8u.cloudfront.net`))try{let t=new URL(e);return`/video-proxy${t.pathname}${t.search}`}catch{return e.replace(`https://d3queh3es1i8u.cloudfront.net`,`/video-proxy`)}return e},wd=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`},Td={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`},Ed=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)/);if(n&&Td[n[0]])return Td[n[0]];for(let[e,n]of Object.entries(Td))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`:/russian|русский/i.test(t)?`Russian`:/arabic|العربية/i.test(t)?`Arabic`:/hindi|हिन्दी/i.test(t)?`Hindi`:null},Dd=e=>{if(e.lang){let t=Ed(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=Ed(n[e]);if(t)return t}let r=t.replace(/^[#\d\.\s]+/,``).trim();return Ed(r)||r}return`Unknown`},Od=e=>{let t=new Set;return e.filter(e=>{let n=`${Dd(e).toLowerCase()}|${(e.lang||``).trim().toLowerCase()}`;return t.has(n)?!1:(t.add(n),!0)})},kd=({src:e,autoplay:n=!1,muted:r=!1,chapters:i=[],keyMoments:o,subtitles:s=[],watermark:c,themeColor:l=`#6366f1`,drmConfig:u,firebaseConfig:d,onAnalyticsEvent:f,onKeyMomentsLoaded:p,enableControls:m=!0,enableChromecast:h=!0,enableKeyMoments:g=!0,enableSubtitles:_=!0,enableQuality:v=!0,enablePlaybackSpeed:y=!0,enablePiP:b=!0,enableFullscreen:x=!0,subtitleStyle:S={}})=>{let C=(0,t.useRef)(null),w=(0,t.useRef)(null),T=(0,t.useRef)(null),E=(0,t.useRef)(null),D=(0,t.useRef)(null),O=(0,t.useRef)(null),k=(0,t.useRef)(null),A=(0,t.useRef)(!1),j=(0,t.useRef)(!1),M=(0,t.useRef)(null),N=(0,t.useRef)(null),P=(0,t.useRef)(null),[F,ee]=(0,t.useState)(null),[I,te]=(0,t.useState)(!1),[ne,re]=(0,t.useState)(0),[L,R]=(0,t.useState)(0),[ie,ae]=(0,t.useState)(1),[oe,se]=(0,t.useState)(!1),[ce,le]=(0,t.useState)(!1),[ue,z]=(0,t.useState)(!1),[de,B]=(0,t.useState)(!1),[fe,pe]=(0,t.useState)(!1),[me,he]=(0,t.useState)([]),[ge,_e]=(0,t.useState)({id:-1,height:0,width:0,bitrate:0,label:`Auto`}),[ve,V]=(0,t.useState)(``),[ye,H]=(0,t.useState)(`off`),[be,xe]=(0,t.useState)(Od(s)),[Se,U]=(0,t.useState)([]),[Ce,we]=(0,t.useState)(0);(0,t.useEffect)(()=>{if(F){let e=F.subtitles.getTracks();xe(Od([...s,...e.filter(e=>!s.some(t=>t.id===e.id))]))}else xe(Od(s))},[s,F]);let[Te,Ee]=(0,t.useState)({chapter:null,index:-1}),[De,Oe]=(0,t.useState)(o||i||[]),[ke,Ae]=(0,t.useState)(`none`),[je,Me]=(0,t.useState)(1),[Ne,Pe]=(0,t.useState)(!1),[Fe,Ie]=(0,t.useState)({}),Le=JSON.stringify(De.map(e=>({title:e.title,startTime:e.startTime})));(0,t.useEffect)(()=>{Oe(o||i||[])},[o,i]),(0,t.useEffect)(()=>{if(!e||!De||De.length===0)return;Ie({});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,c=()=>{if(o>=De.length){f();return}let e=De[o].startTime;t.currentTime=e===0?.01:e},l=()=>{if(a&&t.readyState>=2){a.drawImage(t,0,0,i.width,i.height);let e=i.toDataURL(`image/jpeg`,.8);Ie(t=>({...t,[o]:e})),o++,c()}else setTimeout(l,100)},d=()=>{s||(s=!0,c())};t.addEventListener(`seeked`,l),t.addEventListener(`canplay`,d),r&&Lu.isSupported()?(n=new Lu({enableWorker:!1,maxBufferLength:5,xhrSetup:(t,n)=>{let r=u?.authToken;if(!r)try{let t=new URL(e),n=t.searchParams.get(`token`)||t.searchParams.get(`key`)||t.searchParams.get(`auth`)||t.searchParams.get(`authToken`);n&&(r=n)}catch{}try{let e=Cd(n),i=new URL(e,window.location.origin);r&&i.searchParams.set(`token`,r),t.open(`GET`,i.toString(),!0)}catch(e){console.error(`[WebVideoPlayer tempHls] xhrSetup error:`,e)}}}),n.loadSource(Cd(e)),n.attachMedia(t)):t.src=e,t.readyState>=2&&d();let f=()=>{t.removeEventListener(`seeked`,l),t.removeEventListener(`canplay`,d),n&&n.destroy(),document.body.contains(t)&&document.body.removeChild(t)};return f},[e,Le]);let[Re,ze]=(0,t.useState)(null),[Be,Ve]=(0,t.useState)(!1),[He,Ue]=(0,t.useState)(!1),[We,Ge]=(0,t.useState)(null),[Ke,qe]=(0,t.useState)(null),[Je,Ye]=(0,t.useState)(0),[Xe,Ze]=(0,t.useState)(null),[Qe,$e]=(0,t.useState)(null),[et,tt]=(0,t.useState)(null);(0,t.useEffect)(()=>{if(P.current&&!P.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`,P.current.appendChild(e)}},[]),(0,t.useEffect)(()=>{if(!F){Ve(!1),Ue(!1),Ge(null);return}let e=e=>Ve(e),t=()=>{let e=F.getVideoElement(),t=!!e?.webkitCurrentPlaybackTargetIsWireless;Ue(t),Ge(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[nt,rt]=(0,t.useState)(!0),it=(0,t.useRef)(null),at=(0,t.useRef)(!1),ot=(0,t.useRef)(`none`),st=(0,t.useRef)(s);(0,t.useEffect)(()=>{if(!C.current)return;let t=document.createElement(`video`);t.muted=!0,t.preload=`metadata`,t.crossOrigin=`anonymous`,t.style.cssText=`display:none;position:absolute;pointer-events:none;`,document.body.appendChild(t),D.current=t;let i=e.includes(`.m3u8`);if(i&&Lu.isSupported()){let n=new Lu({enableWorker:!1,maxBufferLength:5,xhrSetup:(t,n)=>{let r=u?.authToken;if(!r)try{let t=new URL(e),n=t.searchParams.get(`token`)||t.searchParams.get(`key`)||t.searchParams.get(`auth`)||t.searchParams.get(`authToken`);n&&(r=n)}catch{}try{let e=Cd(n),i=new URL(e,window.location.origin);r&&i.searchParams.set(`token`,r),t.open(`GET`,i.toString(),!0)}catch(e){console.error(`[WebVideoPlayer hiddenHls] xhrSetup error:`,e)}}});n.loadSource(Cd(e)),n.attachMedia(t),O.current=n}else i&&t.canPlayType(`application/vnd.apple.mpegurl`),t.src=e;t.addEventListener(`seeked`,()=>{let e=E.current;if(!e)return;let n=e.getContext(`2d`);n&&t.readyState>=2&&(n.drawImage(t,0,0,e.width,e.height),Ze(e.toDataURL(`image/jpeg`,.82)))});let a;if(d){let e=new gd(d);w.current=e,a=e.createCallback()}let o=new Sd({container:C.current,src:e,autoplay:n,muted:r,keyMoments:De,subtitles:s,drm:{watermarkText:c,allowedDomains:[`localhost`,`127.0.0.1`],...u},analyticsCallback:e=>{a?.(e),f&&f(e)},themeColor:l});o.on(`keymomentsloaded`,e=>{Oe(e),p&&p(e)}),o.on(`chaptersloaded`,e=>{Oe(e),p&&p(e)}),o.on(`play`,()=>{te(!0),pe(!1)}),o.on(`pause`,()=>te(!1)),o.on(`ended`,()=>{te(!1),pe(!0)}),o.on(`timeupdate`,e=>{if(j.current&&M.current!==null)if(Math.abs(e-M.current)<5)j.current=!1,M.current=null,N.current&&=(window.clearTimeout(N.current),null);else return;re(e),R(o.getDuration());let t=o.keyMoments.getCurrentMoment(e);Ee({chapter:t.keyMoment,index:t.index})}),o.on(`qualitylevels`,e=>{he(e)}),o.on(`qualitychange`,e=>{_e(e)}),o.on(`buffering`,e=>{le(e)}),o.on(`volumechange`,e=>{ae(e.volume),se(e.muted)}),o.on(`pipchange`,e=>{B(e)}),o.subtitles.onSubtitleChange(e=>{V(e)}),o.on(`subtitlesloaded`,e=>{xe(Od([...e]));let t=e.find(e=>e.isDefault);t&&(o.subtitles.setActiveTrack(t.id),H(t.id))}),o.on(`audiotracksloaded`,e=>{U(e),we(e[0]?.id??0)}),o.on(`audiotrackchange`,e=>{we(e)}),o.casting.onCastStateChange((e,t)=>{ze(e?t:null)}),ae(o.getVolume()),se(o.isMuted()),ee(o);let m=()=>{let e=!!document.fullscreenElement;z(e);let t=o.getVideoElement();o.analytics.track(e?`fullscreen_enter`:`fullscreen_exit`,t)};document.addEventListener(`fullscreenchange`,m);let h=e=>{let t=document.activeElement;if(!(t&&(t.tagName===`INPUT`||t.tagName===`TEXTAREA`||t.getAttribute(`contenteditable`)===`true`))){switch(e.key.toLowerCase()){case` `:case`k`:e.preventDefault(),o.getVideoElement().paused?o.play():o.pause();break;case`arrowleft`:case`j`:e.preventDefault(),o.seek(o.getCurrentTime()-10);break;case`arrowright`:case`l`:e.preventDefault(),o.seek(o.getCurrentTime()+10);break;case`arrowup`:e.preventDefault(),o.setVolume(o.getVolume()+.1);break;case`arrowdown`:e.preventDefault(),o.setVolume(o.getVolume()-.1);break;case`m`:e.preventDefault(),o.setMute(!o.isMuted());break;case`f`:e.preventDefault(),o.toggleFullscreen();break;case`p`:e.preventDefault(),o.togglePictureInPicture();break;case`c`:if(e.preventDefault(),o.subtitles.getActiveTrackId()!==`off`)o.subtitles.setActiveTrack(`off`),H(`off`);else{let e=st.current;e&&e.length>0&&(o.subtitles.setActiveTrack(e[0].id),H(e[0].id))}break;default:return}ct()}};return document.addEventListener(`keydown`,h),ct(),()=>{o.destroy(),w.current?.destroy(),w.current=null,document.removeEventListener(`fullscreenchange`,m),document.removeEventListener(`keydown`,h),it.current&&window.clearTimeout(it.current),O.current&&=(O.current.destroy(),null),D.current&&=(document.body.removeChild(D.current),null)}},[e,c]),(0,t.useEffect)(()=>{if(F){F.keyMoments.setKeyMoments(De);let e=C.current?.querySelector(`video`);if(e){let t=F.keyMoments.getCurrentMoment(e.currentTime);Ee({chapter:t.keyMoment,index:t.index})}}},[Le,F]),(0,t.useEffect)(()=>{let e=e=>{ke!==`none`&&(e.target.closest(`.sdk-menu-container`)||Ae(`none`))};return document.addEventListener(`click`,e),()=>{document.removeEventListener(`click`,e)}},[ke]),at.current=I,ot.current=ke,st.current=be;let ct=()=>{rt(!0),it.current&&window.clearTimeout(it.current),it.current=window.setTimeout(()=>{at.current&&ot.current===`none`&&rt(!1)},1e4)},lt=()=>{ct()},ut=()=>{F&&(fe?(pt(0),F.play(),pe(!1)):I?F.pause():F.play(),ct())},dt=e=>{if(!T.current||!F||L===0)return 0;let t=T.current.getBoundingClientRect();return Math.max(0,Math.min(1,(e.clientX-t.left)/t.width))*L},ft=e=>{if(!F)return;A.current=!0,tt(dt(e));let t=e=>{if(!A.current||!T.current)return;let t=T.current.getBoundingClientRect(),n=Math.max(0,Math.min(1,(e.clientX-t.left)/t.width))*L;tt(n),qe(e.clientX-t.left),Ye(n),D.current&&(D.current.currentTime=n),ct()},n=e=>{if(A.current=!1,T.current){let t=T.current.getBoundingClientRect();pt(Math.max(0,Math.min(1,(e.clientX-t.left)/t.width))*L)}tt(null),document.removeEventListener(`mousemove`,t),document.removeEventListener(`mouseup`,n)};document.addEventListener(`mousemove`,t),document.addEventListener(`mouseup`,n)},pt=e=>{if(!F)return;let t=Math.max(0,L>0?Math.min(e,L):e);j.current=!0,M.current=t,re(t),F.seek(t),N.current&&window.clearTimeout(N.current),N.current=window.setTimeout(()=>{j.current=!1,M.current=null,N.current=null},3e3)},mt=e=>{if(!F)return;let t=parseFloat(e.target.value);F.setVolume(t),ae(t),se(t===0)},ht=()=>{if(!F)return;let e=!oe;F.setMute(e),se(e)},gt=e=>{F&&(F.setPlaybackRate(e),Me(e),Ae(`none`))},_t=e=>{if(!F)return;F.setQuality(e);let t=me.find(t=>t.id===e);t&&_e(t),Ae(`none`)},vt=e=>{F&&(F.subtitles.setActiveTrack(e),H(e),Ae(`none`))},yt=e=>{pt(e),Ae(`none`)},bt=()=>{F&&F.togglePictureInPicture()},xt=()=>{F&&F.toggleFullscreen()},St=()=>{F&&(Re?F.casting.stopCasting():F.casting.requestSession(e,ne))},Ct=()=>{if(!F)return;let e=F.getVideoElement();if(He){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.`)},wt=e=>{if(!T.current||L===0||!F)return;let t=T.current.getBoundingClientRect(),n=Math.max(0,Math.min(1,(e.clientX-t.left)/t.width))*L;qe(e.clientX-t.left),Ye(n),k.current&&window.clearTimeout(k.current),k.current=window.setTimeout(()=>{D.current&&(D.current.currentTime=n)},100),$e(F.keyMoments.getCurrentMoment(n).keyMoment)},Tt=()=>{qe(null),Ze(null),$e(null),k.current&&window.clearTimeout(k.current)},Et=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)}`},Dt=()=>oe||ie===0?(0,a.jsx)(ud,{size:18}):ie<.3?(0,a.jsx)(dd,{size:18}):ie<.7?(0,a.jsx)(cd,{size:18}):(0,a.jsx)(ld,{size:18}),Ot=e=>{Ae(ke===e?`none`:e)};return(0,a.jsxs)(`div`,{ref:C,className:`sdk-player-container ${nt?`controls-active`:``}`,onMouseMove:lt,onMouseLeave:()=>{},style:{border:`1px solid rgba(255, 255, 255, 0.08)`,"--sdk-theme-color":l,"--sdk-theme-color-rgb":wd(l)},children:[(0,a.jsx)(`canvas`,{ref:E,width:160,height:90,style:{display:`none`,position:`absolute`,pointerEvents:`none`}}),(0,a.jsx)(`div`,{className:`sdk-spinner-overlay ${ce?`active`:``}`,children:(0,a.jsx)(`div`,{className:`sdk-spinner`})}),ve&&ye!==`off`&&(0,a.jsx)(`div`,{className:`sdk-subtitles-overlay`,children:(0,a.jsx)(`span`,{className:`sdk-subtitles-text`,style:{fontSize:S.size===`small`?`14px`:S.size===`large`?`24px`:`18px`,color:S.color??`#ffffff`,background:S.background===`none`?`transparent`:S.background===`solid`?`rgba(0, 0, 0, 0.92)`:`rgba(15, 23, 42, 0.78)`,border:S.background===`none`?`none`:`1px solid rgba(255,255,255,0.08)`,backdropFilter:S.background===`none`?`none`:`blur(8px)`},dangerouslySetInnerHTML:{__html:ve}})}),(Re||He)&&(0,a.jsxs)(`div`,{className:`sdk-cast-screen`,children:[(0,a.jsx)(Yu,{size:64,className:`sdk-cast-icon-glow`}),(0,a.jsx)(`div`,{className:`sdk-cast-title`,children:Re?`Casting to ${Re}`:`AirPlay to ${We||`device`}`}),(0,a.jsx)(`div`,{className:`sdk-cast-desc`,children:Re?`This media asset is currently streaming on your external screen.`:`This media asset is currently streaming via AirPlay${We?` to ${We}`:``}.`}),(0,a.jsx)(`button`,{className:`sdk-cast-disconnect-btn`,onClick:()=>{Re?F?.casting.stopCasting():He&&F?.casting.stopAirPlay(F.getVideoElement())},children:`Disconnect Streaming`})]}),!Re&&!I&&(0,a.jsx)(`div`,{className:`sdk-center-action-overlay`,onClick:ut,children:(0,a.jsx)(`div`,{className:`sdk-center-action-btn`,children:fe?(0,a.jsx)(ad,{size:32,className:`sdk-center-icon`}):(0,a.jsx)(id,{size:32,className:`sdk-center-icon`,style:{marginLeft:`4px`},fill:`currentColor`})})}),!Re&&(0,a.jsx)(`div`,{className:`sdk-controls-overlay`,onClick:e=>{e.target===e.currentTarget&&ut()},children:m&&(0,a.jsxs)(`div`,{className:`sdk-control-bar`,children:[(0,a.jsxs)(`div`,{ref:T,className:`sdk-seekbar-container`,onMouseDown:ft,onMouseMove:wt,onMouseLeave:Tt,children:[(0,a.jsx)(`div`,{className:`sdk-seekbar-buffered`,style:{width:`${L?(F&&F.getBufferedRanges()[0]?.end||0)/L*100:0}%`}}),(0,a.jsx)(`div`,{className:`sdk-seekbar-progress`,style:{width:`${L?(et===null?ne:et)/L*100:0}%`,background:l},children:(0,a.jsx)(`div`,{className:`sdk-seekbar-handle`})}),g&&De.map((e,t)=>L===0?null:(0,a.jsx)(`div`,{className:`sdk-seekbar-chapter-marker`,style:{left:`${e.startTime/L*100}%`}},t)),Ke!==null&&Xe&&(0,a.jsxs)(`div`,{className:`sdk-thumbnail-tooltip`,style:{left:`${Ke}px`},children:[(0,a.jsx)(`div`,{className:`sdk-thumbnail-preview`,children:(0,a.jsx)(`img`,{src:Xe,alt:`preview`,style:{width:`100%`,height:`100%`,objectFit:`cover`,borderRadius:`6px 6px 0 0`,display:`block`}})}),(0,a.jsxs)(`div`,{className:`sdk-thumbnail-text`,children:[Et(Je),Qe&&(0,a.jsx)(`div`,{className:`sdk-thumbnail-chapter`,children:Qe.title})]})]})]}),(0,a.jsxs)(`div`,{className:`sdk-control-row`,children:[(0,a.jsxs)(`div`,{className:`sdk-control-group`,children:[(0,a.jsx)(`button`,{className:`sdk-control-btn`,onClick:ut,title:I?`Pause`:`Play`,children:I?(0,a.jsx)(nd,{size:18,fill:`currentColor`}):(0,a.jsx)(id,{size:18,fill:`currentColor`})}),(0,a.jsx)(`button`,{className:`sdk-control-btn`,onClick:()=>{pt(0),I||F?.play()},title:`Replay from beginning`,children:(0,a.jsx)(ad,{size:18})}),(0,a.jsx)(`button`,{className:`sdk-control-btn`,onClick:()=>pt(ne-10),title:`Rewind 10s`,children:(0,a.jsxs)(`div`,{style:{position:`relative`,display:`flex`,alignItems:`center`,justifyContent:`center`,width:`18px`,height:`18px`},children:[(0,a.jsx)(ad,{size:18}),(0,a.jsx)(`span`,{style:{position:`absolute`,fontSize:`6px`,fontWeight:`bold`,top:`52%`,left:`50%`,transform:`translate(-50%, -50%)`,pointerEvents:`none`,fontFamily:`sans-serif`,lineHeight:1},children:`10`})]})}),(0,a.jsx)(`button`,{className:`sdk-control-btn`,onClick:()=>pt(ne+10),title:`Forward 10s`,children:(0,a.jsxs)(`div`,{style:{position:`relative`,display:`flex`,alignItems:`center`,justifyContent:`center`,width:`18px`,height:`18px`},children:[(0,a.jsx)(od,{size:18}),(0,a.jsx)(`span`,{style:{position:`absolute`,fontSize:`6px`,fontWeight:`bold`,top:`52%`,left:`50%`,transform:`translate(-50%, -50%)`,pointerEvents:`none`,fontFamily:`sans-serif`,lineHeight:1},children:`10`})]})}),(0,a.jsxs)(`div`,{className:`sdk-volume-group`,children:[(0,a.jsx)(`button`,{className:`sdk-control-btn`,onClick:ht,children:Dt()}),(0,a.jsx)(`div`,{className:`sdk-volume-slider-container`,children:(0,a.jsx)(`input`,{type:`range`,min:`0`,max:`1`,step:`0.05`,value:oe?0:ie,onChange:mt,className:`sdk-volume-slider`,style:{"--volume-pct":`${(oe?0:ie)*100}%`}})})]}),(0,a.jsxs)(`div`,{className:`sdk-time-display`,children:[Et(et===null?ne:et),` / `,Et(L)]}),g&&Te.chapter&&(0,a.jsxs)(`div`,{className:`sdk-chapter-badge ${Ne?`active`:``}`,title:`Toggle Key Moments side panel`,onClick:()=>Pe(!Ne),style:{cursor:`pointer`,display:`flex`,alignItems:`center`},children:[(0,a.jsx)($u,{size:10,style:{marginRight:`5px`}}),(0,a.jsx)(`span`,{style:{marginRight:`3px`},children:Te.chapter.title}),(0,a.jsx)(Zu,{size:10,style:{opacity:.8,transform:Ne?`rotate(90deg)`:`none`,transition:`transform 0.2s ease`}})]})]}),(0,a.jsxs)(`div`,{className:`sdk-control-group`,children:[h&&(0,a.jsx)(`button`,{className:`sdk-control-btn`,onClick:St,title:`Cast Stream`,style:{color:Re?`#3b82f6`:``},children:(0,a.jsx)(Yu,{size:18})}),Be&&(0,a.jsx)(`button`,{className:`sdk-control-btn`,onClick:Ct,title:`AirPlay`,style:{color:l},children:(0,a.jsx)(qu,{size:18})}),Se.length>1&&(0,a.jsxs)(`div`,{className:`sdk-menu-container`,children:[(0,a.jsx)(`button`,{className:`sdk-control-btn`,onClick:()=>Ot(`audio`),title:`Audio track`,style:{color:ke===`audio`?l:``},children:(0,a.jsx)(Qu,{size:18})}),ke===`audio`&&(0,a.jsxs)(`div`,{className:`sdk-dropup-menu`,children:[(0,a.jsx)(`div`,{className:`sdk-dropup-header`,children:`Audio Tracks`}),Se.map(e=>(0,a.jsxs)(`div`,{className:`sdk-dropup-item ${Ce===e.id?`active`:``}`,onClick:()=>{F?.setAudioTrack(e.id),we(e.id),Ae(`none`)},children:[(0,a.jsx)(`span`,{children:Dd(e)}),Ce===e.id&&(0,a.jsx)(Xu,{size:12})]},e.id))]})]}),_&&(0,a.jsxs)(`div`,{className:`sdk-menu-container`,children:[(0,a.jsx)(`button`,{className:`sdk-control-btn`,onClick:()=>Ot(`subtitles`),title:`Subtitles track selector`,style:{color:ye===`off`?``:l},children:(0,a.jsx)(Ju,{size:18})}),ke===`subtitles`&&(0,a.jsxs)(`div`,{className:`sdk-dropup-menu`,children:[(0,a.jsx)(`div`,{className:`sdk-dropup-header`,children:`Subtitles`}),(0,a.jsxs)(`div`,{className:`sdk-dropup-item ${ye===`off`?`active`:``}`,onClick:()=>vt(`off`),children:[(0,a.jsx)(`span`,{children:`Off`}),ye===`off`&&(0,a.jsx)(Xu,{size:12})]}),be.map(e=>(0,a.jsxs)(`div`,{className:`sdk-dropup-item ${ye===e.id?`active`:``}`,onClick:()=>vt(e.id),children:[(0,a.jsx)(`span`,{children:Dd(e)}),ye===e.id&&(0,a.jsx)(Xu,{size:12})]},e.id))]})]}),v&&(0,a.jsxs)(`div`,{className:`sdk-menu-container`,children:[(0,a.jsx)(`button`,{className:`sdk-control-btn`,onClick:()=>Ot(`quality`),title:`Stream Quality settings`,style:{color:ge.id===-1?``:l},children:(0,a.jsx)(sd,{size:18})}),ke===`quality`&&(0,a.jsxs)(`div`,{className:`sdk-dropup-menu large`,children:[(0,a.jsx)(`div`,{className:`sdk-dropup-header`,children:`Quality Options`}),me.map(e=>(0,a.jsxs)(`div`,{className:`sdk-dropup-item ${ge.id===e.id?`active`:``}`,onClick:()=>_t(e.id),children:[(0,a.jsx)(`span`,{children:e.label}),ge.id===e.id&&(0,a.jsx)(Xu,{size:12})]},e.id))]})]}),y&&(0,a.jsxs)(`div`,{className:`sdk-menu-container`,children:[(0,a.jsx)(`button`,{className:`sdk-control-btn`,onClick:()=>Ot(`speed`),title:`Playback Speed`,children:(0,a.jsxs)(`span`,{style:{fontSize:`11px`,fontWeight:`bold`},children:[je,`x`]})}),ke===`speed`&&(0,a.jsxs)(`div`,{className:`sdk-dropup-menu`,children:[(0,a.jsx)(`div`,{className:`sdk-dropup-header`,children:`Speed`}),[.5,.75,1,1.25,1.5,2].map(e=>(0,a.jsxs)(`div`,{className:`sdk-dropup-item ${je===e?`active`:``}`,onClick:()=>gt(e),children:[(0,a.jsx)(`span`,{children:e===1?`Normal`:`${e}x`}),je===e&&(0,a.jsx)(Xu,{size:12})]},e))]})]}),b&&(0,a.jsx)(`button`,{className:`sdk-control-btn`,onClick:bt,title:`Picture-in-Picture`,style:{color:de?l:``},children:(0,a.jsx)(rd,{size:18})}),x&&(0,a.jsx)(`button`,{className:`sdk-control-btn`,onClick:xt,title:`Fullscreen`,children:ue?(0,a.jsx)(td,{size:18}):(0,a.jsx)(ed,{size:18})})]})]})]})}),g&&Ne&&De.length>0&&(0,a.jsxs)(`div`,{className:`sdk-sidebar-panel`,children:[(0,a.jsxs)(`div`,{className:`sdk-sidebar-header`,children:[(0,a.jsx)(`div`,{className:`sdk-sidebar-title`,children:`In this video`}),(0,a.jsx)(`button`,{className:`sdk-sidebar-close-btn`,onClick:()=>Pe(!1),title:`Close panel`,children:(0,a.jsx)(fd,{size:16})})]}),(0,a.jsx)(`div`,{className:`sdk-sidebar-tabs`,children:(0,a.jsx)(`button`,{className:`sdk-sidebar-tab active`,children:`Key Moments`})}),(0,a.jsx)(`div`,{className:`sdk-sidebar-content`,children:De.map((e,t)=>{let n=Te.index===t;return(0,a.jsxs)(`div`,{className:`sdk-sidebar-chapter-row ${n?`active`:``}`,onClick:()=>yt(e.startTime),children:[(0,a.jsxs)(`div`,{className:`sdk-sidebar-chapter-thumbnail`,style:{overflow:`hidden`},children:[Fe[t]||e.thumbnail?(0,a.jsx)(`img`,{src:Fe[t]||e.thumbnail,alt:e.title,style:{width:`100%`,height:`100%`,objectFit:`cover`,display:`block`}}):(0,a.jsx)($u,{size:14,className:`sdk-sidebar-chapter-icon`,style:{color:n?l:`rgba(255,255,255,0.4)`}}),(0,a.jsx)(`span`,{className:`sdk-sidebar-chapter-time`,children:Et(e.startTime)})]}),(0,a.jsxs)(`div`,{className:`sdk-sidebar-chapter-info`,children:[(0,a.jsx)(`div`,{className:`sdk-sidebar-chapter-title`,style:{color:n?l:`#ffffff`},children:e.title}),(0,a.jsxs)(`div`,{className:`sdk-sidebar-chapter-duration`,children:[`Start at `,Et(e.startTime)]})]})]},t)})})]})]})};function Ad(e,r){let i=(0,n.createRoot)(e),a=r;return i.render((0,t.createElement)(kd,a)),{update(e){a={...a,...e},i.render((0,t.createElement)(kd,a))},destroy(){i.unmount()}}}e.FirebaseAnalyticsProvider=gd,e.VideoPlayerSDK=Sd,e.WebVideoPlayer=kd,e.createPlayer=Ad});
|
|
48
|
+
`),i=[];for(let e of r)if(e.startsWith(`#EXT-X-DATERANGE:`)){let t=e.match(/ID="([^"]+)"/),n=e.match(/START-DATE="([^"]+)"/),r=e.match(/X-TITLE="([^"]+)"/);t&&n&&r&&(i.some(e=>e.id===t[1])||i.push({id:t[1],startDate:n[1],title:r[1]}))}if(i.length>0){i.sort((e,t)=>e.startDate.localeCompare(t.startDate));let e=new Date(i[0].startDate).getTime(),t=i.map(t=>{let n=(new Date(t.startDate).getTime()-e)/1e3;return{title:t.title,startTime:n,endTime:0}});for(let e=0;e<t.length;e++)e<t.length-1?t[e].endTime=t[e+1].startTime:t[e].endTime=99999;this.keyMoments.setKeyMoments(t),this.emit(`keymomentsloaded`,t),this.emit(`chaptersloaded`,t)}}catch(e){console.error(`Error parsing manifest key moments:`,e)}}getAudioTracks(){return this.audioTrackList}setAudioTrack(e){this.hlsInstance&&(this.hlsInstance.audioTrack=e)}destroy(){this.hlsSubtitleCues.clear(),this.hlsActiveSubtitleKey=null,this.analytics.stopHeartbeat(),this.drm.removeWatermark(),this.hlsInstance&&=(this.hlsInstance.destroy(),null),this.dashInstance&&=(this.dashInstance.reset(),null),this.videoElement&&(this.videoElement.pause(),this.videoElement.removeAttribute(`src`),this.videoElement.load(),this.videoElement.parentElement&&this.videoElement.parentElement.removeChild(this.videoElement)),this.eventListeners={}}},Cd=e=>{if(e.includes(`d3queh3es1i8u.cloudfront.net`))try{let t=new URL(e);return`/video-proxy${t.pathname}${t.search}`}catch{return e.replace(`https://d3queh3es1i8u.cloudfront.net`,`/video-proxy`)}return e},wd=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`},Td={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`},Ed=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)/);if(n&&Td[n[0]])return Td[n[0]];for(let[e,n]of Object.entries(Td))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`:/russian|русский/i.test(t)?`Russian`:/arabic|العربية/i.test(t)?`Arabic`:/hindi|हिन्दी/i.test(t)?`Hindi`:null},Dd=e=>{if(e.lang){let t=Ed(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=Ed(n[e]);if(t)return t}let r=t.replace(/^[#\d\.\s]+/,``).trim();return Ed(r)||r}return`Unknown`},Od=e=>{let t=new Set;return e.filter(e=>{let n=`${Dd(e).toLowerCase()}|${(e.lang||``).trim().toLowerCase()}`;return t.has(n)?!1:(t.add(n),!0)})},kd=({src:e,autoplay:n=!1,muted:r=!1,chapters:i=[],keyMoments:o,subtitles:s=[],watermark:c,themeColor:l=`#6366f1`,drmConfig:u,firebaseConfig:d,onAnalyticsEvent:f,onKeyMomentsLoaded:p,enableControls:m=!0,enableChromecast:h=!0,enableKeyMoments:g=!0,enableSubtitles:_=!0,enableQuality:v=!0,enablePlaybackSpeed:y=!0,enablePiP:b=!0,enableFullscreen:x=!0,autoFullscreen:S=!1,subtitleStyle:C={}})=>{let w=(0,t.useRef)(null),T=(0,t.useRef)(null),E=(0,t.useRef)(!1),D=(0,t.useRef)(null),O=(0,t.useRef)(null),k=(0,t.useRef)(null),A=(0,t.useRef)(null),j=(0,t.useRef)(null),M=(0,t.useRef)(!1),N=(0,t.useRef)(!1),P=(0,t.useRef)(null),F=(0,t.useRef)(null),ee=(0,t.useRef)(null),[I,te]=(0,t.useState)(null),[ne,re]=(0,t.useState)(!1),[L,R]=(0,t.useState)(0),[ie,ae]=(0,t.useState)(0),[oe,se]=(0,t.useState)(1),[ce,le]=(0,t.useState)(!1),[ue,z]=(0,t.useState)(!1),[de,B]=(0,t.useState)(!1),[fe,pe]=(0,t.useState)(!1),[me,he]=(0,t.useState)(!1),[ge,_e]=(0,t.useState)([]),[ve,V]=(0,t.useState)({id:-1,height:0,width:0,bitrate:0,label:`Auto`}),[ye,H]=(0,t.useState)(``),[be,xe]=(0,t.useState)(`off`),[Se,U]=(0,t.useState)(Od(s)),[Ce,we]=(0,t.useState)([]),[Te,Ee]=(0,t.useState)(0);(0,t.useEffect)(()=>{if(I){let e=I.subtitles.getTracks();U(Od([...s,...e.filter(e=>!s.some(t=>t.id===e.id))]))}else U(Od(s))},[s.map(e=>e.id).join(`,`),I]);let[De,Oe]=(0,t.useState)({chapter:null,index:-1}),[ke,Ae]=(0,t.useState)(o||i||[]),[je,Me]=(0,t.useState)(`none`),[Ne,Pe]=(0,t.useState)(1),[Fe,Ie]=(0,t.useState)(!1),[Le,Re]=(0,t.useState)({}),ze=JSON.stringify(ke.map(e=>({title:e.title,startTime:e.startTime})));(0,t.useEffect)(()=>{Ae(o||i||[])},[(o||i||[]).map(e=>`${e.startTime}:${e.title}`).join(`,`)]),(0,t.useEffect)(()=>{if(!e||!ke||ke.length===0)return;Re({});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,c=()=>{if(o>=ke.length){f();return}let e=ke[o].startTime;t.currentTime=e===0?.01:e},l=()=>{if(a&&t.readyState>=2){a.drawImage(t,0,0,i.width,i.height);let e=i.toDataURL(`image/jpeg`,.8);Re(t=>({...t,[o]:e})),o++,c()}else setTimeout(l,100)},d=()=>{s||(s=!0,c())};t.addEventListener(`seeked`,l),t.addEventListener(`canplay`,d),r&&Lu.isSupported()?(n=new Lu({enableWorker:!1,maxBufferLength:5,xhrSetup:(t,n)=>{let r=u?.authToken;if(!r)try{let t=new URL(e),n=t.searchParams.get(`token`)||t.searchParams.get(`key`)||t.searchParams.get(`auth`)||t.searchParams.get(`authToken`);n&&(r=n)}catch{}try{let e=Cd(n),i=new URL(e,window.location.origin);r&&i.searchParams.set(`token`,r),t.open(`GET`,i.toString(),!0)}catch(e){console.error(`[WebVideoPlayer tempHls] xhrSetup error:`,e)}}}),n.loadSource(Cd(e)),n.attachMedia(t)):t.src=e,t.readyState>=2&&d();let f=()=>{t.removeEventListener(`seeked`,l),t.removeEventListener(`canplay`,d),n&&n.destroy(),document.body.contains(t)&&document.body.removeChild(t)};return f},[e,ze]);let[Be,Ve]=(0,t.useState)(null),[He,Ue]=(0,t.useState)(!1),[We,Ge]=(0,t.useState)(!1),[Ke,qe]=(0,t.useState)(null),[Je,Ye]=(0,t.useState)(null),[Xe,Ze]=(0,t.useState)(0),[Qe,$e]=(0,t.useState)(null),[et,tt]=(0,t.useState)(null),[nt,rt]=(0,t.useState)(null);(0,t.useEffect)(()=>{if(ee.current&&!ee.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`,ee.current.appendChild(e)}},[]),(0,t.useEffect)(()=>{if(!I){Ue(!1),Ge(!1),qe(null);return}let e=e=>Ue(e),t=()=>{let e=I.getVideoElement(),t=!!e?.webkitCurrentPlaybackTargetIsWireless;Ge(t),qe(t?e.webkitCurrentPlaybackTargetName||`AirPlay device`:null)};e(I.casting.isAirPlayAvailable()),t();let n=I.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))}},[I]);let[it,at]=(0,t.useState)(!0),ot=(0,t.useRef)(null),st=(0,t.useRef)(!1),ct=(0,t.useRef)(`none`),lt=(0,t.useRef)(s);(0,t.useEffect)(()=>{if(!w.current)return;let t=document.createElement(`video`);t.muted=!0,t.preload=`metadata`,t.crossOrigin=`anonymous`,t.style.cssText=`display:none;position:absolute;pointer-events:none;`,document.body.appendChild(t),k.current=t;let i=e.includes(`.m3u8`);if(i&&Lu.isSupported()){let n=new Lu({enableWorker:!1,maxBufferLength:5,xhrSetup:(t,n)=>{let r=u?.authToken;if(!r)try{let t=new URL(e),n=t.searchParams.get(`token`)||t.searchParams.get(`key`)||t.searchParams.get(`auth`)||t.searchParams.get(`authToken`);n&&(r=n)}catch{}try{let e=Cd(n),i=new URL(e,window.location.origin);r&&i.searchParams.set(`token`,r),t.open(`GET`,i.toString(),!0)}catch(e){console.error(`[WebVideoPlayer hiddenHls] xhrSetup error:`,e)}}});n.loadSource(Cd(e)),n.attachMedia(t),A.current=n}else i&&t.canPlayType(`application/vnd.apple.mpegurl`),t.src=e;t.addEventListener(`seeked`,()=>{let e=O.current;if(!e)return;let n=e.getContext(`2d`);n&&t.readyState>=2&&(n.drawImage(t,0,0,e.width,e.height),$e(e.toDataURL(`image/jpeg`,.82)))});let a;if(d){let e=new gd(d);T.current=e,a=e.createCallback()}let o=new Sd({container:w.current,src:e,autoplay:n,muted:r,keyMoments:ke,subtitles:s,drm:{watermarkText:c,allowedDomains:[`localhost`,`127.0.0.1`],...u},analyticsCallback:e=>{a?.(e),f&&f(e)},themeColor:l});o.on(`keymomentsloaded`,e=>{Ae(e),p&&p(e)}),o.on(`chaptersloaded`,e=>{Ae(e),p&&p(e)}),o.on(`play`,()=>{re(!0),he(!1)}),o.on(`pause`,()=>re(!1)),o.on(`ended`,()=>{re(!1),he(!0)}),o.on(`timeupdate`,e=>{if(N.current&&P.current!==null)if(Math.abs(e-P.current)<5)N.current=!1,P.current=null,F.current&&=(window.clearTimeout(F.current),null);else return;R(e),ae(o.getDuration());let t=o.keyMoments.getCurrentMoment(e);Oe({chapter:t.keyMoment,index:t.index})}),o.on(`qualitylevels`,e=>{_e(e)}),o.on(`qualitychange`,e=>{V(e)}),o.on(`buffering`,e=>{z(e)}),o.on(`volumechange`,e=>{se(e.volume),le(e.muted)}),o.on(`pipchange`,e=>{pe(e)}),o.subtitles.onSubtitleChange(e=>{H(e)}),o.on(`subtitlesloaded`,e=>{U(Od([...e]));let t=e.find(e=>e.isDefault);t&&(o.subtitles.setActiveTrack(t.id),xe(t.id))}),o.on(`audiotracksloaded`,e=>{we(e),Ee(e[0]?.id??0)}),o.on(`audiotrackchange`,e=>{Ee(e)}),o.casting.onCastStateChange((e,t)=>{Ve(e?t:null)}),se(o.getVolume()),le(o.isMuted()),te(o),S&&w.current&&(E.current=!0,w.current.requestFullscreen().catch(()=>{E.current=!1}));let m=()=>{let e=!!document.fullscreenElement;B(e);let t=o.getVideoElement();o.analytics.track(e?`fullscreen_enter`:`fullscreen_exit`,t)};document.addEventListener(`fullscreenchange`,m);let h=e=>{let t=document.activeElement;if(!(t&&(t.tagName===`INPUT`||t.tagName===`TEXTAREA`||t.getAttribute(`contenteditable`)===`true`))){switch(e.key.toLowerCase()){case` `:case`k`:e.preventDefault(),o.getVideoElement().paused?o.play():o.pause();break;case`arrowleft`:case`j`:e.preventDefault(),o.seek(o.getCurrentTime()-10);break;case`arrowright`:case`l`:e.preventDefault(),o.seek(o.getCurrentTime()+10);break;case`arrowup`:e.preventDefault(),o.setVolume(o.getVolume()+.1);break;case`arrowdown`:e.preventDefault(),o.setVolume(o.getVolume()-.1);break;case`m`:e.preventDefault(),o.setMute(!o.isMuted());break;case`f`:e.preventDefault(),o.toggleFullscreen();break;case`p`:e.preventDefault(),o.togglePictureInPicture();break;case`c`:if(e.preventDefault(),o.subtitles.getActiveTrackId()!==`off`)o.subtitles.setActiveTrack(`off`),xe(`off`);else{let e=lt.current;e&&e.length>0&&(o.subtitles.setActiveTrack(e[0].id),xe(e[0].id))}break;default:return}ut()}};return document.addEventListener(`keydown`,h),ut(),()=>{o.destroy(),T.current?.destroy(),T.current=null,document.removeEventListener(`fullscreenchange`,m),document.removeEventListener(`keydown`,h),ot.current&&window.clearTimeout(ot.current),A.current&&=(A.current.destroy(),null),k.current&&=(document.body.removeChild(k.current),null)}},[e,c]),(0,t.useEffect)(()=>{if(I){I.keyMoments.setKeyMoments(ke);let e=w.current?.querySelector(`video`);if(e){let t=I.keyMoments.getCurrentMoment(e.currentTime);Oe({chapter:t.keyMoment,index:t.index})}}},[ze,I]),(0,t.useEffect)(()=>{let e=e=>{je!==`none`&&(e.target.closest(`.sdk-menu-container`)||Me(`none`))};return document.addEventListener(`click`,e),()=>{document.removeEventListener(`click`,e)}},[je]),(0,t.useEffect)(()=>{st.current=ne},[ne]),(0,t.useEffect)(()=>{ct.current=je},[je]),(0,t.useEffect)(()=>{lt.current=Se},[Se]);let ut=()=>{at(!0),ot.current&&window.clearTimeout(ot.current),ot.current=window.setTimeout(()=>{st.current&&ct.current===`none`&&at(!1)},1e4)},dt=()=>{ut()},ft=()=>{S&&!E.current&&w.current&&(E.current=!0,w.current.requestFullscreen().catch(()=>{}))},pt=()=>{I&&(me?(gt(0),ft(),I.play(),he(!1)):ne?I.pause():(ft(),I.play()),ut())},mt=e=>{if(!D.current||!I||ie===0)return 0;let t=D.current.getBoundingClientRect();return Math.max(0,Math.min(1,(e.clientX-t.left)/t.width))*ie},ht=e=>{if(!I)return;M.current=!0,rt(mt(e));let t=e=>{if(!M.current||!D.current)return;let t=D.current.getBoundingClientRect(),n=Math.max(0,Math.min(1,(e.clientX-t.left)/t.width))*ie;rt(n),Ye(e.clientX-t.left),Ze(n),k.current&&(k.current.currentTime=n),ut()},n=e=>{if(M.current=!1,D.current){let t=D.current.getBoundingClientRect();gt(Math.max(0,Math.min(1,(e.clientX-t.left)/t.width))*ie)}rt(null),document.removeEventListener(`mousemove`,t),document.removeEventListener(`mouseup`,n)};document.addEventListener(`mousemove`,t),document.addEventListener(`mouseup`,n)},gt=e=>{if(!I)return;let t=Math.max(0,ie>0?Math.min(e,ie):e);N.current=!0,P.current=t,R(t),I.seek(t),F.current&&window.clearTimeout(F.current),F.current=window.setTimeout(()=>{N.current=!1,P.current=null,F.current=null},3e3)},_t=e=>{if(!I)return;let t=parseFloat(e.target.value);I.setVolume(t),se(t),le(t===0)},vt=()=>{if(!I)return;let e=!ce;I.setMute(e),le(e)},yt=e=>{I&&(I.setPlaybackRate(e),Pe(e),Me(`none`))},bt=e=>{if(!I)return;I.setQuality(e);let t=ge.find(t=>t.id===e);t&&V(t),Me(`none`)},xt=e=>{I&&(I.subtitles.setActiveTrack(e),xe(e),Me(`none`))},St=e=>{gt(e),Me(`none`)},Ct=()=>{I&&I.togglePictureInPicture()},wt=()=>{I&&I.toggleFullscreen()},Tt=()=>{I&&(Be?I.casting.stopCasting():I.casting.requestSession(e,L))},Et=()=>{if(!I)return;let e=I.getVideoElement();if(We){I.casting.stopAirPlay(e);return}typeof e.webkitShowPlaybackTargetPicker==`function`||I.casting.isAirPlayAvailable()?I.casting.requestAirPlaySession(e):console.warn(`[PlayerSDK AirPlay] AirPlay is not available on this device.`)},Dt=e=>{if(!D.current||ie===0||!I)return;let t=D.current.getBoundingClientRect(),n=Math.max(0,Math.min(1,(e.clientX-t.left)/t.width))*ie;Ye(e.clientX-t.left),Ze(n),j.current&&window.clearTimeout(j.current),j.current=window.setTimeout(()=>{k.current&&(k.current.currentTime=n)},100),tt(I.keyMoments.getCurrentMoment(n).keyMoment)},Ot=()=>{Ye(null),$e(null),tt(null),j.current&&window.clearTimeout(j.current)},kt=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)}`},At=()=>ce||oe===0?(0,a.jsx)(ud,{size:18}):oe<.3?(0,a.jsx)(dd,{size:18}):oe<.7?(0,a.jsx)(cd,{size:18}):(0,a.jsx)(ld,{size:18}),jt=e=>{Me(je===e?`none`:e)};return(0,a.jsxs)(`div`,{ref:w,className:`sdk-player-container ${it?`controls-active`:``}`,onMouseMove:dt,onMouseLeave:()=>{},style:{border:`1px solid rgba(255, 255, 255, 0.08)`,"--sdk-theme-color":l,"--sdk-theme-color-rgb":wd(l)},children:[(0,a.jsx)(`canvas`,{ref:O,width:160,height:90,style:{display:`none`,position:`absolute`,pointerEvents:`none`}}),(0,a.jsx)(`div`,{className:`sdk-spinner-overlay ${ue?`active`:``}`,children:(0,a.jsx)(`div`,{className:`sdk-spinner`})}),ye&&be!==`off`&&(0,a.jsx)(`div`,{className:`sdk-subtitles-overlay`,children:(0,a.jsx)(`span`,{className:`sdk-subtitles-text`,style:{fontSize:C.size===`small`?`14px`:C.size===`large`?`24px`:`18px`,color:C.color??`#ffffff`,background:C.background===`none`?`transparent`:C.background===`solid`?`rgba(0, 0, 0, 0.92)`:`rgba(15, 23, 42, 0.78)`,border:C.background===`none`?`none`:`1px solid rgba(255,255,255,0.08)`,backdropFilter:C.background===`none`?`none`:`blur(8px)`},dangerouslySetInnerHTML:{__html:ye}})}),(Be||We)&&(0,a.jsxs)(`div`,{className:`sdk-cast-screen`,children:[(0,a.jsx)(Yu,{size:64,className:`sdk-cast-icon-glow`}),(0,a.jsx)(`div`,{className:`sdk-cast-title`,children:Be?`Casting to ${Be}`:`AirPlay to ${Ke||`device`}`}),(0,a.jsx)(`div`,{className:`sdk-cast-desc`,children:Be?`This media asset is currently streaming on your external screen.`:`This media asset is currently streaming via AirPlay${Ke?` to ${Ke}`:``}.`}),(0,a.jsx)(`button`,{className:`sdk-cast-disconnect-btn`,onClick:()=>{Be?I?.casting.stopCasting():We&&I?.casting.stopAirPlay(I.getVideoElement())},children:`Disconnect Streaming`})]}),!Be&&!ne&&(0,a.jsx)(`div`,{className:`sdk-center-action-overlay`,onClick:pt,children:(0,a.jsx)(`div`,{className:`sdk-center-action-btn`,children:me?(0,a.jsx)(ad,{size:32,className:`sdk-center-icon`}):(0,a.jsx)(id,{size:32,className:`sdk-center-icon`,style:{marginLeft:`4px`},fill:`currentColor`})})}),!Be&&(0,a.jsx)(`div`,{className:`sdk-controls-overlay`,onClick:e=>{e.target===e.currentTarget&&pt()},children:m&&(0,a.jsxs)(`div`,{className:`sdk-control-bar`,children:[(0,a.jsxs)(`div`,{ref:D,className:`sdk-seekbar-container`,onMouseDown:ht,onMouseMove:Dt,onMouseLeave:Ot,children:[(0,a.jsx)(`div`,{className:`sdk-seekbar-buffered`,style:{width:`${ie?(I&&I.getBufferedRanges()[0]?.end||0)/ie*100:0}%`}}),(0,a.jsx)(`div`,{className:`sdk-seekbar-progress`,style:{width:`${ie?(nt===null?L:nt)/ie*100:0}%`,background:l},children:(0,a.jsx)(`div`,{className:`sdk-seekbar-handle`})}),g&&ke.map((e,t)=>ie===0?null:(0,a.jsx)(`div`,{className:`sdk-seekbar-chapter-marker`,style:{left:`${e.startTime/ie*100}%`}},t)),Je!==null&&Qe&&(0,a.jsxs)(`div`,{className:`sdk-thumbnail-tooltip`,style:{left:`${Je}px`},children:[(0,a.jsx)(`div`,{className:`sdk-thumbnail-preview`,children:(0,a.jsx)(`img`,{src:Qe,alt:`preview`,style:{width:`100%`,height:`100%`,objectFit:`cover`,borderRadius:`6px 6px 0 0`,display:`block`}})}),(0,a.jsxs)(`div`,{className:`sdk-thumbnail-text`,children:[kt(Xe),et&&(0,a.jsx)(`div`,{className:`sdk-thumbnail-chapter`,children:et.title})]})]})]}),(0,a.jsxs)(`div`,{className:`sdk-control-row`,children:[(0,a.jsxs)(`div`,{className:`sdk-control-group`,children:[(0,a.jsx)(`button`,{className:`sdk-control-btn`,onClick:pt,title:ne?`Pause`:`Play`,children:ne?(0,a.jsx)(nd,{size:18,fill:`currentColor`}):(0,a.jsx)(id,{size:18,fill:`currentColor`})}),(0,a.jsx)(`button`,{className:`sdk-control-btn`,onClick:()=>{gt(0),ne||I?.play()},title:`Replay from beginning`,children:(0,a.jsx)(ad,{size:18})}),(0,a.jsx)(`button`,{className:`sdk-control-btn`,onClick:()=>gt(L-10),title:`Rewind 10s`,children:(0,a.jsxs)(`div`,{style:{position:`relative`,display:`flex`,alignItems:`center`,justifyContent:`center`,width:`18px`,height:`18px`},children:[(0,a.jsx)(ad,{size:18}),(0,a.jsx)(`span`,{style:{position:`absolute`,fontSize:`6px`,fontWeight:`bold`,top:`52%`,left:`50%`,transform:`translate(-50%, -50%)`,pointerEvents:`none`,fontFamily:`sans-serif`,lineHeight:1},children:`10`})]})}),(0,a.jsx)(`button`,{className:`sdk-control-btn`,onClick:()=>gt(L+10),title:`Forward 10s`,children:(0,a.jsxs)(`div`,{style:{position:`relative`,display:`flex`,alignItems:`center`,justifyContent:`center`,width:`18px`,height:`18px`},children:[(0,a.jsx)(od,{size:18}),(0,a.jsx)(`span`,{style:{position:`absolute`,fontSize:`6px`,fontWeight:`bold`,top:`52%`,left:`50%`,transform:`translate(-50%, -50%)`,pointerEvents:`none`,fontFamily:`sans-serif`,lineHeight:1},children:`10`})]})}),(0,a.jsxs)(`div`,{className:`sdk-volume-group`,children:[(0,a.jsx)(`button`,{className:`sdk-control-btn`,onClick:vt,children:At()}),(0,a.jsx)(`div`,{className:`sdk-volume-slider-container`,children:(0,a.jsx)(`input`,{type:`range`,min:`0`,max:`1`,step:`0.05`,value:ce?0:oe,onChange:_t,className:`sdk-volume-slider`,style:{"--volume-pct":`${(ce?0:oe)*100}%`}})})]}),(0,a.jsxs)(`div`,{className:`sdk-time-display`,children:[kt(nt===null?L:nt),` / `,kt(ie)]}),g&&De.chapter&&(0,a.jsxs)(`div`,{className:`sdk-chapter-badge ${Fe?`active`:``}`,title:`Toggle Key Moments side panel`,onClick:()=>Ie(!Fe),style:{cursor:`pointer`,display:`flex`,alignItems:`center`},children:[(0,a.jsx)($u,{size:10,style:{marginRight:`5px`}}),(0,a.jsx)(`span`,{style:{marginRight:`3px`},children:De.chapter.title}),(0,a.jsx)(Zu,{size:10,style:{opacity:.8,transform:Fe?`rotate(90deg)`:`none`,transition:`transform 0.2s ease`}})]})]}),(0,a.jsxs)(`div`,{className:`sdk-control-group`,children:[h&&(0,a.jsx)(`button`,{className:`sdk-control-btn`,onClick:Tt,title:`Cast Stream`,style:{color:Be?`#3b82f6`:``},children:(0,a.jsx)(Yu,{size:18})}),He&&(0,a.jsx)(`button`,{className:`sdk-control-btn`,onClick:Et,title:`AirPlay`,style:{color:l},children:(0,a.jsx)(qu,{size:18})}),Ce.length>1&&(0,a.jsxs)(`div`,{className:`sdk-menu-container`,children:[(0,a.jsx)(`button`,{className:`sdk-control-btn`,onClick:()=>jt(`audio`),title:`Audio track`,style:{color:je===`audio`?l:``},children:(0,a.jsx)(Qu,{size:18})}),je===`audio`&&(0,a.jsxs)(`div`,{className:`sdk-dropup-menu`,children:[(0,a.jsx)(`div`,{className:`sdk-dropup-header`,children:`Audio Tracks`}),Ce.map(e=>(0,a.jsxs)(`div`,{className:`sdk-dropup-item ${Te===e.id?`active`:``}`,onClick:()=>{I?.setAudioTrack(e.id),Ee(e.id),Me(`none`)},children:[(0,a.jsx)(`span`,{children:Dd(e)}),Te===e.id&&(0,a.jsx)(Xu,{size:12})]},e.id))]})]}),_&&(0,a.jsxs)(`div`,{className:`sdk-menu-container`,children:[(0,a.jsx)(`button`,{className:`sdk-control-btn`,onClick:()=>jt(`subtitles`),title:`Subtitles track selector`,style:{color:be===`off`?``:l},children:(0,a.jsx)(Ju,{size:18})}),je===`subtitles`&&(0,a.jsxs)(`div`,{className:`sdk-dropup-menu`,children:[(0,a.jsx)(`div`,{className:`sdk-dropup-header`,children:`Subtitles`}),(0,a.jsxs)(`div`,{className:`sdk-dropup-item ${be===`off`?`active`:``}`,onClick:()=>xt(`off`),children:[(0,a.jsx)(`span`,{children:`Off`}),be===`off`&&(0,a.jsx)(Xu,{size:12})]}),Se.map(e=>(0,a.jsxs)(`div`,{className:`sdk-dropup-item ${be===e.id?`active`:``}`,onClick:()=>xt(e.id),children:[(0,a.jsx)(`span`,{children:Dd(e)}),be===e.id&&(0,a.jsx)(Xu,{size:12})]},e.id))]})]}),v&&(0,a.jsxs)(`div`,{className:`sdk-menu-container`,children:[(0,a.jsx)(`button`,{className:`sdk-control-btn`,onClick:()=>jt(`quality`),title:`Stream Quality settings`,style:{color:ve.id===-1?``:l},children:(0,a.jsx)(sd,{size:18})}),je===`quality`&&(0,a.jsxs)(`div`,{className:`sdk-dropup-menu large`,children:[(0,a.jsx)(`div`,{className:`sdk-dropup-header`,children:`Quality Options`}),ge.map(e=>(0,a.jsxs)(`div`,{className:`sdk-dropup-item ${ve.id===e.id?`active`:``}`,onClick:()=>bt(e.id),children:[(0,a.jsx)(`span`,{children:e.label}),ve.id===e.id&&(0,a.jsx)(Xu,{size:12})]},e.id))]})]}),y&&(0,a.jsxs)(`div`,{className:`sdk-menu-container`,children:[(0,a.jsx)(`button`,{className:`sdk-control-btn`,onClick:()=>jt(`speed`),title:`Playback Speed`,children:(0,a.jsxs)(`span`,{style:{fontSize:`11px`,fontWeight:`bold`},children:[Ne,`x`]})}),je===`speed`&&(0,a.jsxs)(`div`,{className:`sdk-dropup-menu`,children:[(0,a.jsx)(`div`,{className:`sdk-dropup-header`,children:`Speed`}),[.5,.75,1,1.25,1.5,2].map(e=>(0,a.jsxs)(`div`,{className:`sdk-dropup-item ${Ne===e?`active`:``}`,onClick:()=>yt(e),children:[(0,a.jsx)(`span`,{children:e===1?`Normal`:`${e}x`}),Ne===e&&(0,a.jsx)(Xu,{size:12})]},e))]})]}),b&&(0,a.jsx)(`button`,{className:`sdk-control-btn`,onClick:Ct,title:`Picture-in-Picture`,style:{color:fe?l:``},children:(0,a.jsx)(rd,{size:18})}),x&&(0,a.jsx)(`button`,{className:`sdk-control-btn`,onClick:wt,title:`Fullscreen`,children:de?(0,a.jsx)(td,{size:18}):(0,a.jsx)(ed,{size:18})})]})]})]})}),g&&Fe&&ke.length>0&&(0,a.jsxs)(`div`,{className:`sdk-sidebar-panel`,children:[(0,a.jsxs)(`div`,{className:`sdk-sidebar-header`,children:[(0,a.jsx)(`div`,{className:`sdk-sidebar-title`,children:`In this video`}),(0,a.jsx)(`button`,{className:`sdk-sidebar-close-btn`,onClick:()=>Ie(!1),title:`Close panel`,children:(0,a.jsx)(fd,{size:16})})]}),(0,a.jsx)(`div`,{className:`sdk-sidebar-tabs`,children:(0,a.jsx)(`button`,{className:`sdk-sidebar-tab active`,children:`Key Moments`})}),(0,a.jsx)(`div`,{className:`sdk-sidebar-content`,children:ke.map((e,t)=>{let n=De.index===t;return(0,a.jsxs)(`div`,{className:`sdk-sidebar-chapter-row ${n?`active`:``}`,onClick:()=>St(e.startTime),children:[(0,a.jsxs)(`div`,{className:`sdk-sidebar-chapter-thumbnail`,style:{overflow:`hidden`},children:[Le[t]||e.thumbnail?(0,a.jsx)(`img`,{src:Le[t]||e.thumbnail,alt:e.title,style:{width:`100%`,height:`100%`,objectFit:`cover`,display:`block`}}):(0,a.jsx)($u,{size:14,className:`sdk-sidebar-chapter-icon`,style:{color:n?l:`rgba(255,255,255,0.4)`}}),(0,a.jsx)(`span`,{className:`sdk-sidebar-chapter-time`,children:kt(e.startTime)})]}),(0,a.jsxs)(`div`,{className:`sdk-sidebar-chapter-info`,children:[(0,a.jsx)(`div`,{className:`sdk-sidebar-chapter-title`,style:{color:n?l:`#ffffff`},children:e.title}),(0,a.jsxs)(`div`,{className:`sdk-sidebar-chapter-duration`,children:[`Start at `,kt(e.startTime)]})]})]},t)})})]})]})};function Ad(e,r){let i=(0,n.createRoot)(e),a=r;return i.render((0,t.createElement)(kd,a)),{update(e){a={...a,...e},i.render((0,t.createElement)(kd,a))},destroy(){i.unmount()}}}e.FirebaseAnalyticsProvider=gd,e.VideoPlayerSDK=Sd,e.WebVideoPlayer=kd,e.createPlayer=Ad});
|
|
49
49
|
//# sourceMappingURL=index.umd.js.map
|