1"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[7040],{4413:function(t,e,i){i.d(e,{$P:function(){return F},Be:function(){return sz},Cv:function(){return sw},DR:function(){return eb},Er:function(){return sy},Ew:function(){return V},F$:function(){return sB},FA:function(){return en},Fl:function(){return sf},G6:function(){return ep},G9:function(){return u},HV:function(){return tm},Id:function(){return sj},Je:function(){return sb},K3:function(){return se},LD:function(){return sK},LK:function(){return ei},QF:function(){return sv},Rt:function(){return sT},S3:function(){return sg},TO:function(){return sC},UP:function(){return sc},Uf:function(){return s2},V6:function(){return eD},Vi:function(){return sL},W6:function(){return h},WU:function(){return sR},WV:function(){return s1},WX:function(){return tO},Xm:function(){return sF},ZJ:function(){return sG},Zf:function(){return sN},_1:function(){return su},_S:function(){return ta},_e:function(){return sD},a2:function(){return tN},al:function(){return sH},bj:function(){return sq},bx:function(){return sp},cA:function(){return sA},cj:function(){return l},dc:function(){return sI},e0:function(){return s_},eV:function(){return sO},fS:function(){return eh},fZ:function(){return sE},gU:function(){return G},gV:function(){return sX},gq:function(){return sx},hA:function(){return sW},ib:function(){return sU},il:function(){return sm},j9:function(){return s8},jh:function(){return sQ},kA:function(){return j},kH:function(){return tn},lk:function(){return _},mr:function(){return eM},n8:function(){return X},nA:function(){return Z},nQ:function(){return O},nl:function(){return J},nq:function(){return iX},ns:function(){return sS},qG:function(){return sP},r4:function(){return s3},tF:function(){return w},tn:function(){return k},u9:function(){return sV},v$:function(){return sM},ve:function(){return U},w_:function(){return tr},xu:function(){return s9},zY:function(){return s$},zh:function(){return sk}});var s=i(2784),a=i(72082),n=i(49703);function r(t){return!(0,a.isString)(t)&&"width"in t&&"height"in t&&(0,a.isNumber)(t.width)&&(0,a.isNumber)(t.height)}let h="undefined"==typeof document,o=h?"":navigator?.userAgent.toLowerCase()||"",l=!h&&/iphone|ipad|ipod|ios|crios|fxios/i.test(o),d=!h&&/(iphone|ipod)/gi.test(navigator?.platform||""),u=!h&&!!window.chrome,c=!h&&(!!window.safari||l);function p(){return!h&&!(0,a.isUndefined)(window.screen.orientation)&&!(0,a.isUndefined)(window.screen.orientation.lock)&&(0,a.isFunction)(screen.orientation.unlock)}function m(t,e){return!h&&(t||(t=document.createElement("audio")),t.canPlayType(e).length>0)}function g(t,e){return!h&&(t||(t=document.createElement("video")),t.canPlayType(e).length>0)}function f(t){return!h&&(t||(t=document.createElement("video")),t.canPlayType("application/vnd.apple.mpegurl").length>0)}function y(t){return!h&&!!document.pictureInPictureEnabled&&!t?.disablePictureInPicture}function b(t){return!h&&(0,a.isFunction)(t?.webkitSupportsPresentationMode)&&(0,a.isFunction)(t?.webkitSetPresentationMode)}async function v(){let t=document.createElement("video");return t.volume=.5,await (0,a.waitTimeout)(0),.5===t.volume}function w(){if(h)return!1;let t=h?void 0:window?.ManagedMediaSource??window?.MediaSource??window?.WebKitMediaSource;if((0,a.isUndefined)(t))return!1;let e=t&&(0,a.isFunction)(t.isTypeSupported)&&t.isTypeSupported('video/mp4; codecs="avc1.42E01E,mp4a.40.2"'),i=h?void 0:window?.SourceBuffer??window?.WebKitSourceBuffer,s=(0,a.isUndefined)(i)||!(0,a.isUndefined)(i.prototype)&&(0,a.isFunction)(i.prototype.appendBuffer)&&(0,a.isFunction)(i.prototype.remove);return!!e&&!!s}class k{#t;get length(){return this.#t.length}constructor(t,e){(0,a.isArray)(t)?this.#t=t:(0,a.isUndefined)(t)||(0,a.isUndefined)(e)?this.#t=[]:this.#t=[[t,e]]}start(t){return this.#t[t][0]??1/0}end(t){return this.#t[t][1]??1/0}}function $(t){if(!t.length)return null;let e=t.start(0);for(let i=1;i<t.length;i++){let s=t.start(i);s<e&&(e=s)}return e}function T(t){if(!t.length)return null;let e=t.end(0);for(let i=1;i<t.length;i++){let s=t.end(i);s>e&&(e=s)}return e}let x=/\.(m4a|m4b|mp4a|mpga|mp2|mp2a|mp3|m2a|m3a|wav|weba|aac|oga|spx|flac)($|\?)/i,S=new Set(["audio/mpeg","audio/ogg","audio/3gp","audio/mp3","audio/webm","audio/flac","audio/m4a","audio/m4b","audio/mp4a","audio/mp4"]),C=/\.(mp4|og[gv]|webm|mov|m4v)(#t=[,\d+]+)?($|\?)/i,P=new Set(["video/mp4","video/webm","video/3gp","video/ogg","video/avi","video/mpeg"]),E=/\.(m3u8)($|\?)/i,A=/\.(mpd)($|\?)/i,q=new Set(["application/vnd.apple.mpegurl","audio/mpegurl","audio/x-mpegurl","application/x-mpegurl","video/x-mpegurl","video/mpegurl","application/mpegurl"]),M=new Set(["application/d
1ash+xml"]);function D({src:t,type:e}){return(0,a.isString)(t)?x.test(t)||S.has(e)||t.startsWith("blob:")&&"audio/object"===e:"audio/object"===e}function R(t){return(0,a.isString)(t.src)?C.test(t.src)||P.has(t.type)||t.src.startsWith("blob:")&&"video/object"===t.type||L(t)&&(h||f()):"video/object"===t.type}function L({src:t,type:e}){return(0,a.isString)(t)&&E.test(t)||q.has(e)}function I({src:t,type:e}){return(0,a.isString)(t)&&A.test(t)||M.has(e)}function V(t){return(0,a.isString)(t.src)&&(D(t)||R(t)||L(t))}function O(t,e){let i=new URL(t);for(let t of Object.keys(e))i.searchParams.set(t,e[t]+"");return i.toString()}function F(t,e="preconnect"){if(h)return!1;let i=document.querySelector(`link[href="${t}"]`);if(!(0,a.isNull)(i))return!0;let s=document.createElement("link");return s.rel=e,s.href=t,s.crossOrigin="true",document.head.append(s),!0}let N={};function U(t){if(N[t])return N[t].promise;let e=(0,a.deferredPromise)(),i=document.querySelector(`script[src="${t}"]`);if(!(0,a.isNull)(i))return e.resolve(),e.promise;N[t]=e;let s=document.createElement("script");return s.src=t,s.onload=()=>{e.resolve(),delete N[t]},s.onerror=()=>{e.reject(),delete N[t]},setTimeout(()=>document.head.append(s),0),e.promise}function K(t){return"use-credentials"===t?"include":(0,a.isString)(t)?"same-origin":void 0}function G({title:t,src:e,download:i}){let s=(0,a.isBoolean)(i)||""===i?e.src:(0,a.isString)(i)?i:i?.url;return!function({url:t,src:e,download:i}){return(0,a.isString)(t)&&(i&&!0!==i||D(e)||R(e))}({url:s,src:e,download:i})?null:{url:s,name:!(0,a.isBoolean)(i)&&!(0,a.isString)(i)&&i?.filename||t.toLowerCase()||"media"}}let B=Symbol(0),Q=Symbol(0),W=Symbol(0),H=Symbol(0),j={crossOrigin:B,readyState:Q,updateActiveCues:W,canLoad:H,onModeChange:Symbol(0),native:Symbol(0),nativeHLS:Symbol(0)};function z(t,e){return e>=t.startTime&&e<t.endTime}function _(t,e,i){let s=null,n=(0,a.getScope)();function r(){let r=(0,a.isString)(e)?[e]:e,h=t.toArray().find(t=>r.includes(t.kind)&&"showing"===t.mode);if(h!==s){if(!h){i(null),s=null;return}2==h.readyState?i(h):(i(null),(0,a.scoped)(()=>{let t=(0,a.listenEvent)(h,"load",()=>{i(h),t()},{once:!0})},n)),s=h}}return r(),(0,a.listenEvent)(t,"mode-change",r)}class X extends a.EventsTarget{static createId(t){return`vds-${t.type}-${t.kind}-${t.src??t.label??"?"}`}src;content;type;encoding;id="";label="";language="";kind;default=!1;#e=!1;#i=0;#s="disabled";#a={};#n=[];#r=[];#h=[];[j.readyState]=0;[j.crossOrigin];[j.onModeChange]=null;[j.native]=null;get metadata(){return this.#a}get regions(){return this.#n}get cues(){return this.#r}get activeCues(){return this.#h}get readyState(){return this[j.readyState]}get mode(){return this.#s}set mode(t){this.setMode(t)}constructor(t){for(let e of(super(),Object.keys(t)))this[e]=t[e];
1this.type||(this.type="vtt"),!h&&t.content?this.#o(t):t.src||(this[j.readyState]=2)}addCue(t,e){let i=0,s=this.#r.length;for(i=0;i<s&&!(t.endTime<=this.#r[i].startTime);i++);i===s?this.#r.push(t):this.#r.splice(i,0,t),t instanceof TextTrackCue||this[j.native]?.track.addCue(t),this.dispatchEvent(new a.DOMEvent("add-cue",{detail:t,trigger:e})),z(t,this.#i)&&this[j.updateActiveCues](this.#i,e)}removeCue(t,e){let i=this.#r.indexOf(t);if(i>=0){let s=this.#h.includes(t);this.#r.splice(i,1),this[j.native]?.track.removeCue(t),this.dispatchEvent(new a.DOMEvent("remove-cue",{detail:t,trigger:e})),s&&this[j.updateActiveCues](this.#i,e)}}setMode(t,e){this.#s!==t&&(this.#s=t,"disabled"===t?(this.#h=[],this.#l()):2===this.readyState?this[j.updateActiveCues](this.#i,e):this.#d(),this.dispatchEvent(new a.DOMEvent("mode-change",{detail:this,trigger:e})),this[j.onModeChange]?.())}[j.updateActiveCues](t,e){if(this.#i=t,"disabled"===this.mode||!this.#r.length)return;let i=[];for(let e=0,s=this.#r.length;e<s;e++){let s=this.#r[e];z(s,t)&&i.push(s)}let s=i.length!==this.#h.length;if(!s){for(let t=0;t<i.length;t++)if(!this.#h.includes(i[t])){s=!0;break}}this.#h=i,s&&this.#l(e)}[j.canLoad](){this.#e=!0,"disabled"!==this.#s&&this.#d()}#o(t){i.e(136).then(i.bind(i,70136)).then(({parseText:e,VTTCue:i,VTTRegion:s})=>{(0,a.isString)(t.content)&&"json"!==t.type?e(t.content,{type:t.type}).then(({cues:t,regions:e})=>{this.#r=t,this.#n=e,this.#u()}):(this.#c(t.content,i,s),3!==this.readyState&&this.#u())})}async #d(){if(this.#e&&!(this[j.readyState]>0)){if(this[j.readyState]=1,this.dispatchEvent(new a.DOMEvent("load-start")),!this.src){this.#u();return}try{let{parseResponse:t,VTTCue:e,VTTRegion:s}=await i.e(136).then(i.bind(i,70136)),a=this[j.crossOrigin]?.(),n=fetch(this.src,{headers:"json"===this.type?{"Content-Type":"application/json"}:void 0,credentials:K(a)});if("json"===this.type)this.#c(await (await n).text(),e,s);else{let{errors:e,metadata:i,regions:s,cues:a}
1=await t(n,{type:this.type,encoding:this.encoding});if(e[0]?.code===0)throw e[0];this.#a=i,this.#n=s,this.#r=a}this.#u()}catch(t){this.#p(t)}}}#u(){if(this[j.readyState]=2,!this.src||"vtt"!==this.type){let t=this[j.native];if(t&&!t.managed)for(let e of this.#r)t.track.addCue(e)}let t=new a.DOMEvent("load");this[j.updateActiveCues](this.#i,t),this.dispatchEvent(t)}#p(t){this[j.readyState]=3,this.dispatchEvent(new a.DOMEvent("error",{detail:t}))}#c(t,e,i){try{let{regions:s,cues:n}=function(t,e,i){let s=(0,a.isString)(t)?JSON.parse(t):t,n=[],r=[];return s.regions&&i&&(n=s.regions.map(t=>Object.assign(new i,t))),(s.cues||(0,a.isArray)(s))&&(r=((0,a.isArray)(s)?s:s.cues).filter(t=>(0,a.isNumber)(t.startTime)&&(0,a.isNumber)(t.endTime)).map(t=>Object.assign(new e(0,0,""),t))),{regions:n,cues:r}}(t,e,i);this.#n=s,this.#r=n}catch(t){this.#p(t)}}#l(t){this.dispatchEvent(new a.DOMEvent("cue-change",{trigger:t}))}}let Y=/captions|subtitles/;function J(t){return Y.test(t.kind)}let Z=new a.State({artist:"",artwork:null,audioTrack:null,audioTracks:[],autoPlay:!1,autoPlayError:null,audioGain:null,buffered:new k,canLoad:!1,canLoadPoster:!1,canFullscreen:!1,canOrientScreen:p(),canPictureInPicture:!1,canPlay:!1,clipStartTime:0,clipEndTime:0,controls:!1,get iOSControl
1s(){return d&&"video"===this.mediaType&&(!this.playsInline||!a.fscreen.fullscreenEnabled&&this.fullscreen)},get nativeControls(){return this.controls||this.iOSControls},controlsVisible:!1,get controlsHidden(){return!this.controlsVisible},crossOrigin:null,ended:!1,error:null,fullscreen:!1,get loop(){return this.providedLoop||this.userPrefersLoop},logLevel:"silent",mediaType:"unknown",muted:!1,paused:!0,played:new k,playing:!1,playsInline:!1,pictureInPicture:!1,preload:"metadata",playbackRate:1,qualities:[],quality:null,autoQuality:!1,canSetQuality:!0,canSetPlaybackRate:!0,canSetVolume:!1,canSetAudioGain:!1,seekable:new k,seeking:!1,source:{src:"",type:""},sources:[],started:!1,textTracks:[],textTrack:null,get hasCaptions(){return this.textTracks.filter(J).length>0},volume:1,waiting:!1,realCurrentTime:0,get currentTime(){return this.ended?this.duration:this.clipStartTime>0?Math.max(0,Math.min(this.realCurrentTime-this.clipStartTime,this.duration)):this.realCurrentTime},providedDuration:-1,intrinsicDuration:0,get duration(){return this.seekableWindow},get title(){return this.providedTitle||this.inferredTitle},get poster(){return this.providedPoster||this.inferredPoster},get viewType(){return"unknown"!==this.providedViewType?this.providedViewType:this.inferredViewType},get streamType(){return"unknown"!==this.providedStreamType?this.providedStreamType:this.inferredStreamType},get currentSrc(){return this.source},get bufferedStart(){return Math.max($(this.buffered)??0,this.clipStartTime)},get bufferedEnd(){let t=T(this.buffered)??0;return Math.min(this.seekableEnd,Math.max(0,t-this.clipStartTime))},get bufferedWindow(){return Math.max(0,this.bufferedEnd-this.bufferedStart)}
1,get seekableStart(){if(this.isLiveDVR&&this.liveDVRWindow>0)return Math.max(0,this.seekableEnd-this.liveDVRWindow);return Math.max($(this.seekable)??0,this.clipStartTime)},get seekableEnd(){if(this.providedDuration>0)return this.providedDuration;let t=this.liveSyncPosition>0?this.liveSyncPosition:this.canPlay?T(this.seekable)??1/0:0;return this.clipEndTime>0?Math.min(this.clipEndTime,t):t},get seekableWindow(){let t=this.seekableEnd-this.seekableStart;return isNaN(t)?1/0:Math.max(0,t)},canAirPlay:!1,canGoogleCast:!1,remotePlaybackState:"disconnected",remotePlaybackType:"none",remotePlaybackLoader:null,remotePlaybackInfo:null,get isAirPlayConnected(){return"airplay"===this.remotePlaybackType&&"connected"===this.remotePlaybackState},get isGoogleCastConnected(){return"google-cast"===this.remotePlaybackType&&"connected"===this.remotePlaybackState},pointer:"fine",orientation:"landscape",width:0,height:0,mediaWidth:0,mediaHeight:0,lastKeyboardAction:null,userBehindLiveEdge:!1,liveEdgeTolerance:10,minLiveDVRWindow:60,get canSeek(){return/unknown|on-demand|:dvr/.test(this.streamType)&&Number.isFinite(this.duration)&&(!this.isLiveDVR||this.duration>=this.liveDVRWindow)},get live(){return this.streamType.includes("live")||!Number.isFinite(this.duration)},get liveEdgeStart(){return this.live&&Number.isFinite(this.seekableEnd)?Math.max(0,this.seekableEnd-this.liveEdgeTolerance):0},get liveEdge(){return this.live&&(!this.canSeek||!this.userBehindLiveEdge&&this.currentTime>=this.liveEdgeStart)},get liveEdgeWindow(){return this.live&&Number.isFinite(this.seekableEnd)?this.seekableEnd-this.liveEdgeStart:0},get isLiveDVR(){return/:dvr/.test(this.streamType)},get liveDVRWindow(){return Math.max(this.inferredLiveDVRWindow,this.minLiveDVRWindow)},autoPlaying:!1,providedTitle:"",inferredTitle:"",providedLoop:!1,userPrefersLoop:!1,providedPoster:"",inferredPoster:"",inferredViewType:"unknown",providedViewType:"unknown",providedStreamType:"unknown",inferredStreamType:"unknown",liveSyncPosition:null,inferredLiveDVRWindow:0,savedState:null}),tt=new Set(["autoPlayError","autoPlaying","buffered","canPlay","error","paused","played","playing","seekable","seeking","waiting"]),te=new Set([...tt,"ended","inferredPoster","inferredStreamType","inferredTitle","intrinsicDuration","inferredLiveDVRWindow","liveSyncPosition","realCurrentTime","savedState","started","userBehindLiveEdge"]);function ti(t,e=!1){let i=e?tt:te;Z.reset(t,t=>i.has(t)),(0,a.tick)()}function ts(t,e){let i=t+e.clipStartTime(),s=Math.floor(t)===Math.floor(e.seekableStart()),a=Math.floor(i)===Math.floor(e.seekableEnd());return s?e.seekableStart():a?e.seekableEnd():e.isLiveDVR()&&e.liveDVRWindow()>0&&i<e.seekableEnd()-e.liveDVRWindow()?e.bufferedStart():Math.min(Math.max(e.seekableStart()+.1,i),e.seekableEnd()-.1)}let ta=(0,a.createContext)();function tn(){return(0,a.useContext)(ta)}class tr{#m=null;#g=null;#f=-1;#y;constructor(t){this.#y=t}setTarget(t){this.#m=t}getPlayer(t){return this.#g||(t??this.#m)?.dispatchEvent(new a.DOMEvent("find-media-player",{detail:t=>void(this.#g=t),bubbles:!0,composed:!0})),this.#g}setPlayer(t){this.#g=t}startLoading(t){this.#b("media-start-loading",t)}startLoadingPoster(t){this.#b("media-poster-start-loading",t)}requestAirPlay(t){this.#b("media-airplay-request",t)}requestGoogleCast(t){this.#b("media-google-cast-request",t)}play(t){this.#b("media-play-request",t)}pause(t){this.#b("media-pause-request",t)}mute(t){this.#b("media-mute-request",t)}unmute(t){this.#b("media-unmute-request",t)}enterFullscreen(t,e){this.#b("media-enter-fullscreen-request",e,t)}exitFullscreen(t,e){this.#b("media-exit-fullscreen-request",e,t)}lockScreenOrientation(t,e){this.#b("media-orientation-lock-request",e,t)}unlockScreenOrientation(t){this.#b("media-orientation-unlock-request",t)}enterPictureInPicture(t){this.#b("media-enter-pip-request",t)}exitPictureInPicture(t){this.#b("media-exit-pip-request",t)}seeking(t,e){this.#b("media-seeking-request",e,t)}seek(t,e){this.#b("media-seek-request",e,t)}seekToLiveEdge(t){this.#b("media-live-edge-request",t)}changeDuration(t,e){this.#b("media-duration-change-request",e,t)}changeClipStart(t,e){this.#b("media-clip-start-change-request",e,t)}changeClipEnd(t,e){this.#b("media-clip-end-change-request",e,t)}changeVolume(t,e){this.#b("media-volume-change-request",e,Math.max(0,Math.min(1,t)))}changeAudioTrack(t,e){this.#b("media-audio-track-change-request",e,t)}changeQuality(t,e){this.#b("media-quality-change-request",e,t)}requestAutoQuality(t){this.changeQuality(-1,t)}changeTextTrackMode(t,e,i){this.#b("media-text-track-change-request",i,{index:t,mode:e})}changePlaybackRate(t,e){this.#b("media-rate-change-request",e,t)}changeAudioGain(t,e){this.#b("media-audio-gain-change-request",e,t)}
1resumeControls(t){this.#b("media-resume-controls-request",t)}pauseControls(t){this.#b("media-pause-controls-request",t)}togglePaused(t){let e=this.getPlayer(t?.target);e&&(e.state.paused?this.play(t):this.pause(t))}toggleControls(t){let e=this.getPlayer(t?.target);e&&(e.controls.showing?e.controls.hide(0,t):e.controls.show(0,t))}toggleMuted(t){let e=this.getPlayer(t?.target);e&&(e.state.muted?this.unmute(t):this.mute(t))}toggleFullscreen(t,e){let i=this.getPlayer(e?.target);i&&(i.state.fullscreen?this.exitFullscreen(t,e):this.enterFullscreen(t,e))}togglePictureInPicture(t){let e=this.getPlayer(t?.target);e&&(e.state.pictureInPicture?this.exitPictureInPicture(t):this.enterPictureInPicture(t))}showCaptions(t){let e=this.getPlayer(t?.target);if(!e)return;let i=e.state.textTracks,s=this.#f;i[s]&&J(i[s])||(s=-1),-1===s&&(s=i.findIndex(t=>J(t)&&t.default)),-1===s&&(s=i.findIndex(t=>J(t))),s>=0&&this.changeTextTrackMode(s,"showing",t),this.#f=-1}disableCaptions(t){let e=this.getPlayer(t?.target);if(!e)return;let i=e.state.textTracks,s=e.state.textTrack;if(s){let e=i.indexOf(s);this.changeTextTrackMode(e,"disabled",t),this.#f=e}}toggleCaptions(t){let e=this.getPlayer(t?.target);e&&(e.state.textTrack?this.disableCaptions():this.showCaptions())}userPrefersLoopChange(t,e){this.#b("media-user-loop-change-request",e,t)}#b(t,e,i){let s=new a.DOMEvent(t,{bubbles:!0,composed:!0,cancelable:!0,detail:i,trigger:e}),n=e?.target||null;n&&n instanceof a.Component&&(n=n.el),n=!n||n===document||n===window||n===document.body||this.#g?.el&&n instanceof Node&&!this.#g.el.contains(n)?this.#m??this.getPlayer()?.el:n??this.#m,this.#g&&("media-play-request"!==t||this.#g.state.canLoad)?this.#g.canPlayQueue.enqueue(t,()=>n?.dispatchEvent(s)):n?.dispatchEvent(s)}#v(t){}}class th{playerId="vds-player";mediaId=null;#w={volume:null,muted:null,audioGain:null,time:null,lang:null,captions:null,rate:null,quality:null};async getVolume(){return this.#w.volume}async setVolume(t){this.#w.volume=t,this.save()}async getMuted(){return this.#w.muted}async setMuted(t){this.#w.muted=t,this.save()}async getTime(){return this.#w.time}async setTime(t,e){let i=t<0;this.#w.time=i?null:t,i||e?this.saveTime():this.saveTimeThrottled()}async getLang(){return this.#w.lang}async setLang(t){this.#w.lang=t,this.save()}async getCaptions(){return this.#w.captions}async setCaptions(t){this.#w.captions=t,this.save()}async getPlaybackRate(){return this.#w.rate}async setPlaybackRate(t){this.#w.rate=t,this.save()}async getAudioGain(){return this.#w.audioGain}async setAudioGain(t){this.#w.audioGain=t,this.save()}async getVideoQuality(){return this.#w.quality}async setVideoQuality(t){this.#w.quality=t,this.save()}onChange(t,e,i="vds-player"){let s=i?localStorage.getItem(i):null,a=e?localStorage.getItem(e):null;this.playerId=i,this.mediaId=e,this.#w={volume:null,muted:null,audioGain:null,lang:null,captions:null,rate:null,quality:null,...s?JSON.parse(s):{},time:a?+a:null}}save(){if(h||!this.playerId)return;let t=JSON.stringify({...this.#w,time:void 0});localStorage.setItem(this.playerId,t)}saveTimeThrottled=(0,a.functionThrottle)(this.saveTime.bind(this),1e3);saveTime(){if(h||!this.mediaId)return;let t=(this.#w.time??0).toString();localStorage.setItem(this.mediaId,t)}}let to=Symbol(0),tl=Symbol(0),td=Symbol(0),tu=Symbol(0),tc=Symbol(0),tp=Symbol(0),tm={add:to,remove:tl,reset:td,select:tu,readonly:tc,setReadonly:tp,onReset:Symbol(0),onRemove:Symbol(0),onUserSelect:Symbol(0)};class tg extends a.EventsTarget{items=[];[tm.readonly]=!1;get length(){return this.items.length}get readonly(){return this[tm.readonly]}indexOf(t){return this.items.indexOf(t)}getById(t){return""===t?null:this.items.find(e=>e.id===t)??null}toArray(){return[...this.items]}[Symbol.iterator](){return this.items.values()}[tm.add](t,e){let i=this.items.length;""+i in this||Object.defineProperty(this,i,{get(){return this.items[i]}}),this.items.includes(t)||(this.items.push(t),this.dispatchEvent(new a.DOMEvent("add",{detail:t,trigger:e})))}[tm.remove](t,e){let i=this.items.indexOf(t);i>=0&&(this[tm.onRemove]?.(t,e),this.items.splice(i,1),this.dispatchEvent(new a.DOMEvent("remove",{detail:t,trigger:e})))}[tm.reset](t){for(let e of[...this.items])this[tm.remove](e,t);this.items=[],this[tm.setReadonly](!1,t),this[tm.onReset]?.()}[tm.setReadonly](t,e){this[tm.readonly]!==t&&(this[tm.readonly]=t,this.dispatchEvent(new a.DOMEvent("readonly-change",{detail:t,trigger:e})))}}let tf=Symbol(0);class ty extends tg{get selected(){return this.items.find(t=>t.selected)??null}get selectedIndex(){return this.items.findIndex(t=>t.selected)}[tm.onRemove](t,e){this[tm.select](t,!1,e)}[tm.add](t,e){t[tf]=!1,Object.defineProperty(t,"selected",{get(){return this[tf]},set:e=>
1{this.readonly||(this[tm.onUserSelect]?.(),this[tm.select](t,e))}}),super[tm.add](t,e)}[tm.select](t,e,i){if(e===t?.[tf])return;let s=this.selected;t&&(t[tf]=e),(e?s!==t:s===t)&&(s&&(s[tf]=!1),this.dispatchEvent(new a.DOMEvent("change",{detail:{prev:s,current:this.selected},trigger:i})))}}class tb extends ty{}function tv(t,e=2){return Number(t.toFixed(e))}function tw(t){return String(t).split(".")[1]?.length??0}function tk(t,e,i){return Math.max(t,Math.min(i,e))}function t$(t,e){let i=e.composedPath()[0];return(0,a.isDOMNode)(i)&&t.contains(i)}let tT=new Set;if(!h){let t=function(){for(let t of tT)try{t()}catch(t){}window.requestAnimationFrame(t)};t()}function tx(t,e,i){t.hasAttribute(e)||t.setAttribute(e,i)}function tS(t,e){if(!(t.hasAttribute("aria-label")||t.hasAttribute("data-no-label"))){if(!(0,a.isFunction)(e)){(0,a.setAttribute)(t,"aria-label",e);return}h?i():(0,a.effect)(i)}function i(){(0,a.setAttribute)(t,"aria-label",e())}}function tC(t){let e=getComputedStyle(t);return"none"!==e.display&&parseInt(e.opacity)>0}function tP(t,e){var i;return i=()=>e(!!t&&("checkVisibility"in t?t.checkVisibility({checkOpacity:!0,checkVisibilityCSS:!0}):tC(t))),tT.add(i),()=>tT.delete(i)}function tE(t,e,i){for(;e;){if(e===t)return!0;if(i?.(e))break;e=e.parentElement}return!1}function tA(t,e){return new a.EventsController(t).add("pointerup",t=>{0!==t.button||t.defaultPrevented||e(t)}).add("keydown",t=>{(0,a.isKeyboardClick)(t)&&e(t)})}function tq(t){return(0,a.isTouchEvent)(t)&&(t.touches.length>1||t.changedTouches.length>1)}function tM(t){if(h)return t();let e=(0,a.getScope)(),i=window.requestAnimationFrame(()=>{(0,a.scoped)(t,e),i=-1});return()=>void window.cancelAnimationFrame(i)}function tD(t,e,i,{offsetVarName:s,xOffset:r,yOffset:h,...o}){if(!t)return;let l=i.replace(" ","-").replace("-center","");if((0,a.setStyle)(t,"visibility",e?null:"hidden"),!e)return;let d=i.includes("top"),u=t=>i.includes("left")?`calc(-1 * ${t})`:t,c=t=>d?`calc(-1 * ${t})`:t;return(0,n.Me)(e,t,()=>{(0,n.oo)(e,t,{placement:l,middleware:[...o.middleware??[],(0,n.RR)({fallbackAxisSideDirection:"start",crossAxis:!1}),(0,n.uY)()],...o}).then(({x:e,y:a,middlewareData:n})=>{let o=!!n.flip?.index;d=i.includes(o?"bottom":"top"),t.setAttribute("data-placement",o?i.startsWith("top")?i.replace("top","bottom"):i.replace("bottom","top"):i),Object.assign(t.style,{top:`calc(${a+"px"} + ${c(h?h+"px":`var(--${s}-y-offset, 0px)`)})`,left:`calc(${e+"px"} + ${u(r?r+"px":`var(--${s}-x-offset, 0px)`)})`})})})}function tR(t){return t instanceof HTMLElement}class tL{priority=0;#k=!0;#$=null;#T=null;#x=new Set;canRender(t,e){return!!e}attach(t){this.#$=t,t&&(t.textTracks.onchange=this.#S.bind(this))}addTrack(t){this.#x.add(t),this.#C(t)}removeTrack(t){t[j.native]?.remove?.(),t[j.native]=null,this.#x.delete(t)}changeTrack(t){let e=t?.[j.native];e&&"showing"!==e.track.mode&&(e.track.mode="showing"),this.#T=t}setDisplay(t){this.#k=t,this.#S()}detach(){for(let t of(this.#$&&(this.#$.textTracks.onchange=null),this.#x))this.removeTrack(t);this.#x.clear(),this.#$=null,this.#T=null}#C(t){if(!this.#$)return;let e=t[j.native]??=this.#P(t);tR(e)&&(this.#$.append(e),e.track.mode=e.default?"showing":"disabled")}#P(t){let e=document.createElement("track"),i=t.default||"showing"===t.mode,s=t.src&&"vtt"===t.type;return e.id=t.id,e.src=s?t.src:"",e.label=t.label,e.kind=t.kind,e.default=i,t.language&&(e.srclang=t.language),i&&!s&&this.#E(t,e.track),e}#E(t,e){if(!(t.src&&"vtt"===t.type||e.cues?.length))for(let i of t.cues)e.addCue(i)}#S(t){for(let e of this.#x){let i=e[j.native];if(!i)continue;if(!this.#k){i.track.mode=i.managed?"hidden":"disabled";continue}let s="showing"===i.track.mode;s&&this.#E(e,i.track),e.setMode(s?"showing":"disabled",t)}}}class tI{#$=null;#A;#q=[];#M;#D=!1;#R=null;#L=null;constructor(t){this.#M=t;let e=t.textTracks;this.#A=e,(0,a.effect)(this.#I.bind(this)),(0,a.onDispose)(this.#V.bind(this)),new a.EventsController(e).add("add",this.#O.bind(this)).add("remove",this.#F.bind(this)).add("mode-change",this.#N.bind(this))}#I(){let{nativeControls:t}=this.#M.$state;this.#D=t(),this.#N()}add(t){this.#q.push(t),(0,a.untrack)(this.#N.bind(this))}
1remove(t){t.detach(),this.#q.splice(this.#q.indexOf(t),1),(0,a.untrack)(this.#N.bind(this))}attachVideo(t){requestAnimationFrame(()=>{if(this.#$=t,t)for(let e of(this.#R=new tL,this.#R.attach(t),this.#A))this.#U(e);this.#N()})}#U(t){J(t)&&this.#R?.addTrack(t)}#K(t){J(t)&&this.#R?.removeTrack(t)}#O(t){this.#U(t.detail)}#F(t){this.#K(t.detail)}#N(){let t=this.#A.selected;if(this.#$&&(this.#D||t?.[j.nativeHLS])){this.#L?.changeTrack(null),this.#R?.setDisplay(!0),this.#R?.changeTrack(t);return}if(this.#R?.setDisplay(!1),this.#R?.changeTrack(null),!t){this.#L?.changeTrack(null);return}let e=this.#q.sort((t,e)=>t.priority-e.priority).find(e=>e.canRender(t,this.#$));this.#L!==e&&(this.#L?.detach(),e?.attach(this.#$),this.#L=e??null),e?.changeTrack(t)}#V(){this.#R?.detach(),this.#R=null,this.#L?.detach(),this.#L=null}}class tV extends tg{#e=!1;#G={};#B=null;#Q=null;[j.crossOrigin];constructor(){super()}get selected(){return this.items.find(t=>"showing"===t.mode&&J(t))??null}get selectedIndex(){let t=this.selected;return t?this.indexOf(t):-1}get preferredLang(){return this.#Q}set preferredLang(t){this.#Q=t,this.#W(t)}add(t,e){let i=t instanceof X?t:new X(t),s="captions"===t.kind||"subtitles"===t.kind?"captions":t.kind;return this.#G[s]&&t.default&&delete t.default,i.addEventListener("mode-change",this.#H),this[tm.add](i,e),i[j.crossOrigin]=this[j.crossOrigin],this.#e&&i[j.canLoad](),t.default&&(this.#G[s]=i),this.#j(),this}remove(t,e){if(this.#z=t,this.items.includes(t))return t===this.#G[t.kind]&&delete this.#G[t.kind],t.mode="disabled",t[j.onModeChange]=null,t.removeEventListener("mode-change",this.#H),this[tm.remove](t,e),this.#z=null,this}clear(t){for(let e of[...this.items])this.remove(e,t);return this}getByKind(t){let e=Array.isArray(t)?t:[t];return this.items.filter(t=>e.includes(t.kind))}[j.canLoad](){if(!this.#e){for(let t of this.items)t[j.canLoad]();this.#e=!0,this.#j()}}#j=(0,a.functionDebounce)(async()=>{if(!this.#e)return;!this.#Q&&this.#B&&(this.#Q=await this.#B.getLang());let t=await this.#B?.getCaptions();for(let e of[["captions","subtitles"],"chapters","descriptions","metadata"]){let i=this.getByKind(e);if(i.find(t=>"showing"===t.mode))continue;let s=this.#Q?i.find(t=>t.language===this.#Q):null,n=(0,a.isArray)(e)?this.#G[e.find(t=>this.#G[t])||""]:this.#G[e],r=s??n,h=r&&J(r);r&&(!h||!1!==t)&&(r.mode="showing",h&&this.#_(r))}},300);#z=null;#H=this.#X.bind(this);#X(t){let e=t.detail;if(this.#B&&J(e)&&e!==this.#z&&this.#_(e),"showing"===e.mode){let t=J(e)?["captions","subtitles"]:[e.kind];for(let i of this.items)"showing"===i.mode&&i!=e&&t.includes(i.kind)&&(i.mode="disabled")}this.dispatchEvent(new a.DOMEvent("mode-change",{detail:t.detail,trigger:t}))}#_(t){"disabled"!==t.mode&&this.#W(t.language),this.#B?.setCaptions?.("showing"===t.mode)}#W(t){this.#B?.setLang?.(this.#Q=t)}setStorage(t){this.#B=t}}let tO={setAuto:Symbol(0),enableAuto:Symbol(0)};class tF extends ty{#Y=!1;switch="current";get auto(){return this.#Y||this.readonly}[tO.enableAuto];[tm.onUserSelect](){this[tO.setAuto](!1)}[tm.onReset](t){this[tO.enableAuto]=void 0,this[tO.setAuto](!1,t)}autoSelect(t){this.readonly||this.#Y||!this[tO.enableAuto]||(this[tO.enableAuto]?.(t),this[tO.setAuto](!0,t))}getBySrc(t){return this.items.find(e=>e.src===t)}[tO.setAuto](t,e){this.#Y!==t&&(this.#Y=t,this.dispatchEvent(new a.DOMEvent("auto-change",{detail:t,trigger:e})))}}function tN(t,e){return[...t].sort(e?tK:tU)}function tU(t,e){return t.height===e.height?(t.bitrate??0)-(e.bitrate??0):t.height-e.height}function tK(t,e){return e.height===t.height?(e.bitrate??0)-(t.bitrate??0):e.height-t.height}class tG extends a.ViewController{}let tB=new Set(["Shift","Alt","Meta","Ctrl"]),tQ='input, textarea, select, [contenteditable], [role^="menuitem"], [role="timer"]';class tW extends tG{#M;constructor(t){super(),this.#M=t}onConnect(){(0,a.effect)(this.#J.bind(this))}#J(){let{keyDisabled:t,keyTarget:e}=this.$props;if(t())return;let i="player"===e()?this.el:document,s=(0,a.signal)(!1);i===this.el?new a.EventsController(this.el).add("focusin",()=>s.set(!0)).add("focusout",t=>{this.el.contains(t.target)||s.set(!1)}):((0,a.peek)(s)||s.set(document.querySelector("[data-media-player]")===this.el),(0,a.listenEvent)(document,"focusin",t=>{let e=t.composedPath().find(t=>t instanceof Element&&"media-player"===t.localName);void 0!==e&&s.set(this.el===e)})),(0,a.effect)(()=>{s()&&new a.EventsController(i).add("keyup",this.#Z.bind(this)).add("keydown",this.#tt.bind(this)).add("keydown",this.#te.bind(this),{capture:!0})})}#Z(t){let e=document.activeElement;if(!t.key||!this.$state.canSeek()||e?.matches(tQ))return;let{method:i,value:s}=this.#ti(t);if(!(0,a.isString)(s)&&!(0,a.isArray)(s)){s?.onKeyUp?.({event:t,player:this.#M.player,remote:this.#M.remote}),s?.callback?.(t,this.#M.remote);return}if(i?.startsWith("seek")&&(t.preventDefault(),t.stopPropagation(),this.#ts?(this.#ta(t,"seekForward"===i),this.#ts=null):(this.#M.remote.seek(this.#tn,t),this.#tn=void 0)),i?.startsWith("volume")){let e=this.el.querySelector("[data-media-volume-slider]");e?.dispatchEvent(new KeyboardEvent("keyup",{key:"volumeUp"===i?"Up":"Down",shiftKey:t.shiftKey,trigger:t}))}}#tt(t){if(!t.key||tB.has(t.key))return;let e=document.activeElement;if(e?.matches(tQ)||(0,a.isKeyboardClick)(t)&&e?.matches('button, [role="button"]'))return;let{method:i,value:s}=this.#ti(t),n=!t.metaKey&&/^[0-9]$/.test(t.key);if(!(0,a.isString)(s)&&!(0,a.isArray)(s)&&!n){s?.onKeyDown?.({event:t,player:this.#M.player,remote:this.#M.remote}),s?.callback?.(t,this.#M.remote);return}if(!i&&n){t.preventDefault(),t.stopPropagation(),this.#M.remote.seek(this.$state.duration()/10*Number(t.key),t);return}if(i){switch(t.preventDefault(),t.stopPropagation(),i){case"seekForward":case"seekBackward":this.#tr(t,i,"seekForward"===i);break;case"volumeUp":case"volumeDown":let e=this.el.querySelector("[data-media-volume-slider]");if(e)e.dispatchEvent(new KeyboardEvent("keydown",{key:"volumeUp"===i?"Up":"Down",shiftKey:t.shiftKey,trigger:t}));else{let e=t.shiftKey?.1:.05;this.#M.remote.changeVolume(this.$state.volume()+("volumeUp"===i?+e:-e),t)}break;case"toggleFullscreen":this.#M.remote.toggleFullscreen("prefer-media",t);break;case"speedUp":case"slowDown":let s=this.$state.playbackRate();this.#M.remote.changePlaybackRate(Math.max(.25,Math.min(2,s+("speedUp"===i?.25:-.25))),t);break;default:this.#M.remote[i]?.(t)}this.$state.lastKeyboardAction.set({action:i,event:t})}}#te(t){var e,i;i=e=t.target,(!h&&i instanceof HTMLAudioElement||!h&&e instanceof HTMLVideoElement)&&this.#ti(t).method&&t.preventDefault()}#ti(t){let e={...this.$props.keyShortcuts(),...this.#M.ariaKeys},i=Object.keys(e).find(i=>{let s=e[i],n=(0,a.isArray)(s)?s.join(" "):(0,a.isString)(s)?s:s?.keys,r=(a.isArray(n)?n:n?.split(" "))?.map(t=>t.replace(/Shift\+(\d)/g,(t,e)=>tH[e-1]).replace(/Control/g,"Ctrl").split("+"));return r?.some(e=>{let i=new Set(e.filter(t=>tB.has(t)));for(let e of tB){let s=e.toLowerCase()+"Key";if(!i.has(e)&&t[s])return!1}return e.every(e=>tB.has(e)?t[e.toLowerCase()+"Key"]:t.key===e.replace("Space"," "))})});return{method:i,value:i?e[i]:null}}#tn;#th(t,e){let i=t.shiftKey?10:5;return this.#tn=Math.max(0,Math.min((this.#tn??this.$state.currentTime())+("seekForward"===e?+i:-i),this.$state.duration()))}#ts=null;#ta(t,e){this.#ts?.dispatchEvent(new KeyboardEvent(t.type,{key:e?"Right":"Left",shiftKey:t.shiftKey,trigger:t}))}#tr(t,e,i){this.$state.canSeek()&&(this.#ts||(this.#ts=this.el.querySelector("[data-media-time-slider]")),this.#ts?this.#ta(t,i):this.#M.remote.seeking(this.#th(t,e),t))}}let tH=["!","@","#","$","%","^","&","*","(",")"];class tj extends a.ViewController{#to;constructor(t){super(),this.#to=t}onAttach(t){let{$props:e,ariaKeys:i}=tn(),s=t.getAttribute("aria-keyshortcuts");if(s){i[this.#to]=s,h||(0,a.onDispose)(()=>{delete i[this.#to]});return}let n=e.keyShortcuts()[this.#to];if(n){let e=(0,a.isArray)(n)?n.join(" "):(0,a.isString)(n)?n:n?.keys;t.setAttribute("aria-keyshortcuts",(0,a.isArray)(e)?e.join(" "):e)}}}class tz extends tG{#tl=-2;#td=!1;#tu=(0,a.signal)(!1);#tc=(0,a.signal)(!1);#tp=null;#tm=(0,a.signal)(!0);defaultDelay=2e3;get canIdle(){return this.#tm()}set canIdle(t){this.#tm.set(t)}get hideOnMouseLeave(){let{hideControlsOnMouseLeave:t}=this.$props;return this.#tu()||t()}set hideOnMouseLeave(t){this.#tu.set(t)}get showing(){return this.$state.controlsVisible()}show(t=0,e){this.#tg(),this.#td||this.#tf(!0,t,e)}hide(t=this.defaultDelay,e){this.#tg(),this.#td||this.#tf(!1,t,e)}pause(t){this.#td=!0,this.#tg(),this.#tf(!0,0,t)}resume(t){this.#td=!1,this.$state.paused()||this.#tf(!1,this.defaultDelay,t)}onConnect(){(0,a.effect)(this.#ty.bind(this))}#ty(){let{viewType:t}=this.$state;if(!this.el||!this.#tm())return;if("audio"===t()){this.show();return}(0,a.effect)(this.#tb.bind(this)),(0,a.effect)(this.#tv.bind(this));let e=this.#tw.bind(this),i=this.#tk.bind(this),s=this.#t$.bind(this);new a.EventsController(this.el).add("can-play",t=>this.show(0,t)).add("play",e).add("pause",i).add("end",s).add("auto-play-fail",i)}#tb(){if(!this.el)return;let{started:t,pointer:e,paused:i}=this.$state;if(!t()||"fine"!==e())return;let s=new a.EventsController(this.el),n=this.hideOnMouseLeave;n&&this.#tc()||(0,a.effect)(()=>{i()||s.add("pointermove",this.#tT.bind(this))}),n&&s.add("mouseenter",this.#tx.bind(this)).add("mouseleave",this.#tS.bind(this))}#tv(){let{paused:t,started:e,autoPlayError:i}=this.$state;if(t()||i()&&!e())return;let s=this.#tT.bind(this);(0,a.effect)(()=>
1{if(!this.el)return;let t=this.$state.pointer(),e=new a.EventsController(this.el);for(let i of["coarse"===t?"touchend":"pointerup","keydown"])e.add(i,s,{passive:!1})})}#tw(t){t.triggers.hasType("ended")||(this.show(0,t),this.hide(void 0,t))}#tk(t){this.show(0,t)}#t$(t){let{loop:e}=this.$state;e()&&this.hide(0,t)}#tx(t){this.#tc.set(!1),this.show(0,t),this.hide(void 0,t)}#tS(t){this.#tc.set(!0),this.hide(0,t)}#tg(){window.clearTimeout(this.#tl),this.#tl=-1}#tT(t){t.MEDIA_GESTURE||this.#td||tq(t)||((0,a.isKeyboardEvent)(t)&&("Escape"===t.key?(this.el?.focus(),this.#tp=null):this.#tp&&(t.preventDefault(),requestAnimationFrame(()=>{this.#tp?.focus(),this.#tp=null}))),this.show(0,t),this.hide(this.defaultDelay,t))}#tf(t,e,i){if(0===e){this.#S(t,i);return}this.#tl=window.setTimeout(()=>{this.scope&&this.#S(t&&!this.#td,i)},e)}#S(t,e){this.$state.controlsVisible()!==t&&(this.$state.controlsVisible.set(t),!t&&document.activeElement&&this.el?.contains(document.activeElement)&&(this.#tp=document.activeElement,requestAnimationFrame(()=>{this.el?.focus({preventScroll:!0})}
1)),this.dispatch("controls-change",{detail:t,trigger:e}))}}let t_=a.fscreen.fullscreenEnabled;class tX extends a.ViewController{#tC=!1;#tP=!1;get active(){return this.#tP}get supported(){return t_}onConnect(){new a.EventsController(a.fscreen).add("fullscreenchange",this.#S.bind(this)).add("fullscreenerror",this.#tE.bind(this)),(0,a.onDispose)(this.#tA.bind(this))}async #tA(){t_&&await this.exit()}#S(t){let e=tY(this.el);e!==this.#tP&&(e||(this.#tC=!1),this.#tP=e,this.dispatch("fullscreen-change",{detail:e,trigger:t}))}#tE(t){this.#tC&&(this.dispatch("fullscreen-error",{detail:null,trigger:t}),this.#tC=!1)}async enter(){try{if(this.#tC=!0,!this.el||tY(this.el))return;return tJ(),a.fscreen.requestFullscreen(this.el)}catch(t){throw this.#tC=!1,t}}async exit(){if(this.el&&tY(this.el))return tJ(),a.fscreen.exitFullscreen()}}function tY(t){if(a.fscreen.fullscreenElement===t)return!0;try{return t.matches(a.fscreen.fullscreenPseudoClass)}catch(t){return!1}}function tJ(){if(!t_)throw Error("[vidstack] no fullscreen API")}class tZ extends a.ViewController{#tq=(0,a.signal)(this.#tM());#tD=(0,a.signal)(!1);#tR;get type(){return this.#tq()}get locked(){return this.#tD()}get portrait(){return this.#tq().startsWith("portrait")}get landscape(){return this.#tq().startsWith("landscape")}static supported=p();get supported(){return tZ.supported}onConnect(){if(this.supported)(0,a.listenEvent)(screen.orientation,"change",this.#tL.bind(this));else{let t=window.matchMedia("(orientation: landscape)");t.onchange=this.#tL.bind(this),(0,a.onDispose)(()=>t.onchange=null)}(0,a.onDispose)(this.#tA.bind(this))}async #tA(){this.supported&&this.#tD()&&await this.unlock()}#tL(t){this.#tq.set(this.#tM()),this.dispatch("orientation-change",{detail:{orientation:(0,a.peek)(this.#tq),lock:this.#tR},trigger:t})}async lock(t){(0,a.peek)(this.#tD)||this.#tR===t||(this.#tI(),await screen.orientation.lock(t),this.#tD.set(!0),this.#tR=t)}async unlock(){(0,a.peek)(this.#tD)&&(this.#tI(),this.#tR=void 0,await screen.orientation.unlock(),this.#tD.set(!1))}#tI(){if(!this.supported)throw Error("[vidstack] no orientation API")}#tM(){return h?"portrait-primary":this.supported?window.screen.orientation.type:window.innerWidth>=window.innerHeight?"landscape-primary":"portrait-primary"}}class t0{name="audio";target;canPlay(t){return!!D(t)&&(h||!(0,a.isString)(t.src)||"?"===t.type||m(this.target,t.type))}mediaType(){return"audio"}async load(t){if(h)throw Error("[vidstack] can not load audio provider server-side");return new(await i.e(7292).then(i.bind(i,57292))).AudioProvider(this.target,t)}}class t1{name="video";target;canPlay(t){return!!R(t)&&(h||!(0,a.isString)(t.src)||"?"===t.type||g(this.target,t.type))}mediaType(){return"video"}async load(t){if(h)throw Error("[vidstack] can not load video provider server-side");return new(await Promise.resolve().then(function(){return em})).VideoProvider(this.target,t)}}class t2 extends t1{static supported=w();name="hls";canPlay(t){return t2.supported&&L(t)}async load(t){if(h)throw Error("[vidstack] can not load hls provider server-side");return new(await i.e(991).then(i.bind(i,20991))).HLSProvider(this.target,t)}}let t3=null,t5=[],t4=[];function t9(){return t3??=new AudioContext}function t7(){t3&&0===t5.length&&0===t4.length&&t3.close().then(()=>{t3=null})}class t6{#M;#S;#tV=null;#tO=null;get currentGain(){return this.#tV?.gain?.value??null}get supported(){return!0}constructor(t,e){this.#M=t,this.#S=e}setGain(t){let e=this.currentGain;if(t!==this.currentGain){if(1===t&&1!==e){this.removeGain();return}!this.#tV&&(this.#tV=function(){let t=t9(),e=t.createGain();return e.connect(t.destination),t5.push(e),e}(),this.#tO&&this.#tO.connect(this.#tV)),this.#tO||(this.#tO=function(t,e){let i=t9().createMediaElementSource(t);return e&&i.connect(e),t4.push(i),i}(this.#M,this.#tV)),this.#tV.gain.value=t,this.#S(t)}}removeGain(){this.#tV&&(this.#tO&&this.#tO.connect(t9().destination),this.#tF(),this.#S(null))}destroy(){this.#tN(),this.#tF()}#tN(){if(this.#tO)try{!function(t){let e=t4.indexOf(t);-1!==e&&(t4.splice(e,1),t.disconnect(),t7())}(this.#tO)}catch(t){}finally{this.#tO=null}}#tF(){if(this.#tV)try{!function(t){let e=t5.indexOf(t);-1!==e&&(t5.splice(e,1),t.disconnect(),t7())}(this.#tV)}catch(t){}finally{this.#tV=null}}}let t8=["focus","blur","visibilitychange","pageshow","pagehide"];class et{#tU=(0,a.signal)(ee());#tK=(0,a.signal)(h?"visible":document.visibilityState);#tG;connect(){let t=new a.EventsController(window),e=this.#tB.bind(this);for(let i of t8)t.add(i,e);c&&t.add("beforeunload",t=>{this.#tG=setTimeout(()=>{t.defaultPrevented||t.returnValue.length>0||(this.#tU.set("hidden"),this.#tK.set("hidden"))},0)})}get pageState(){return this.#tU()}get visibility(){return this.#tK()}#tB(t){c&&window.clearTimeout(this.#tG),("blur"!==t.type||"active"===this.#tU())&&(this.#tU.set(ee(t)),this.#tK.set("hidden"==document.visibilityState?"hidden":"visible"))}}function ee(t){return h||t?.type==="blur"||"hidden"===document.visibilityState?"hidden":document.hasFocus()?"active":"passive"}class ei{#tQ;#tW;constructor(t){this.#tW=t}start(){(0,a.isUndefined)(this.#tQ)&&this.#tH()}stop(){(0,a.isNumber)(this.#tQ)&&window.cancelAnimationFrame(this.#tQ),this.#tQ=void 0}#tH(){this.#tQ=window.requestAnimationFrame(()=>{(0,a.isUndefined)(this.#tQ)||(this.#tW(),this.#tH())})}}class es{#tj;#tz;#t_=!1;#tX=!1;#tY=!1;#tJ=new ei(this.#tZ.bind(this));#t0=new et;#t1;get #M(){return this.#tj.media}constructor(t,e){this.#tj=t,this.#tz=e,this.#t1=new a.EventsController(t.media),this.#t2(),this.#t0.connect(),(0,a.effect)(this.#t3.bind(this)),(0,a.onDispose)(this.#t5.bind(this))}#t5(){this.#tX=!1,this.#tY=!1,this.#tJ.stop(),this.#t1.abort(),this.#t4?.clear()}#t9=0;#t7=-1;#tZ(){let t=this.#M.currentTime;c&&t-this.#t7<.35||this.#t9===t||(this.#t6(t),this.#t9=t)}#t2(){this.#t8("loadstart",this.#et),this.#t8("abort",this.#ee),this.#t8("emptied",this.#ei),this.#t8("error",this.#tE),this.#t8("volumechange",this.#es)}#ea(){this.#tX||(this.#t8("loadeddata",this.#en),this.#t8("loadedmetadata",this.#er),this.#t8("canplay",this.#eh),this.#t8("canplaythrough",this.#eo),this.#t8("durationchange",this.#el),this.#t8("play",this.#t
1w),this.#t8("progress",this.#ed),this.#t8("stalled",this.#eu),this.#t8("suspend",this.#ec),this.#t8("ratechange",this.#ep),this.#tX=!0)}#em(){this.#tY||(this.#t8("pause",this.#tk),this.#t8("playing",this.#eg),this.#t8("seeked",this.#ef),this.#t8("seeking",this.#ey),this.#t8("ended",this.#eb),this.#t8("waiting",this.#ev),this.#tY=!0)}#t4=void 0;#ew=void 0;#t8(t,e){this.#t1.add(t,e.bind(this))}#ek(t){}#t6(t,e){let i=Math.min(t,this.#tz.$state.seekableEnd());this.#tz.notify("time-change",i,e)}#et(t){if(3===this.#M.networkState){this.#ee(t);return}this.#ea(),this.#tz.notify("load-start",void 0,t)}#ee(t){this.#tz.notify("abort",void 0,t)}#ei(){this.#tz.notify("emptied",void 0,event)}#en(t){this.#tz.notify("loaded-data",void 0,t)}#er(t){this.#t9=0,this.#t7=-1,this.#em(),this.#tz.notify("loaded-metadata",void 0,t),(l||c&&L(this.#tz.$state.source()))&&this.#tz.delegate.ready(this.#e$(),t)}#e$(){return{provider:(0,a.peek)(this.#tz.$provider),duration:this.#M.duration,buffered:this.#M.buffered,seekable:this.#M.seekable}}#tw(t){this.#tz.$state.canPlay&&this.#tz.notify("play",void 0,t)}#tk(t){(1!==this.#M.readyState||this.#t_)&&(this.#t_=!1,this.#tJ.stop(),this.#tz.notify("pause",void 0,t))}#eh(t){this.#tz.delegate.ready(this.#e$(),t)}#eo(t){this.#tz.$state.started()||this.#tz.notify("can-play-through",this.#e$(),t)}#eg(t){this.#M.paused||(this.#t_=!1,this.#tz.notify("playing",void 0,t),this.#tJ.start())}#eu(t){this.#tz.notify("stalled",void 0,t),this.#M.readyState<3&&(this.#t_=!0,this.#tz.notify("waiting",void 0,t))}#ev(t){this.#M.readyState<3&&(this.#t_=!0,this.#tz.notify("waiting",void 0,t))}#eb(t){this.#tJ.stop(),this.#t6(this.#M.duration,t),this.#tz.notify("end",void 0,t),this.#tz.$state.loop()&&(0,a.isNil)(this.#M.controls)&&(this.#M.controls=!1)}#t3(){let t=this.#tz.$state.paused(),e="hidden"===this.#t0.visibility;(t||e)&&(0,a.listenEvent)(this.#M,"timeupdate",this.#eT.bind(this))}#eT(t){this.#t6(this.#M.currentTime,t)}#el(t){this.#tz.$state.ended()&&this.#t6(this.#M.duration,t),this.#tz.notify("duration-change",this.#M.duration,t)}#es(t){let e={volume:this.#M.volume,muted:this.#M.muted};this.#tz.notify("volume-change",e,t)}#ef(t){this.#t7=this.#M.currentTime,this.#t6(this.#M.currentTime,t),this.#tz.notify("seeked",this.#M.currentTime,t),Math.trunc(this.#M.currentTime)===Math.trunc(this.#M.duration)&&tw(this.#M.duration)>tw(this.#M.currentTime)&&(this.#t6(this.#M.duration,t),this.#M.ended||this.#tz.player.dispatch(new a.DOMEvent("media-play-request",{trigger:t})))}#ey(t){this.#tz.notify("seeking",this.#M.currentTime,t)}#ed(t){let e={buffered:this.#M.buffered,seekable:this.#M.seekable};this.#tz.notify("progress",e,t)}#ec(t){this.#tz.notify("suspend",void 0,t)}#ep(t){this.#tz.notify("rate-change",this.#M.playbackRate,t)}#tE(t){let e=this.#M.error;if(!e)return;let i={message:e.message,code:e.code,mediaError:e};this.#tz.notify("error",i,t)}}class ea{#tj;#tz;get #ex(){return this.#tj.media.audioTracks}constructor(t,e){this.#tj=t,this.#tz=e,this.#ex.onaddtrack=this.#eS.bind(this),this.#ex.onremovetrack=this.#eC.bind(this),this.#ex.onchange=this.#eP.bind(this),(0,a.listenEvent)(this.#tz.audioTracks,"change",this.#eE.bind(this))}#eS(t){let e=t.track;if(""===e.label)return;let i={id:e.id.toString()||`native-audio-${this.#tz.audioTracks.length}`,label:e.label,language:e.language,kind:e.kind,selected:!1};this.#tz.audioTracks[tm.add](i,t),e.enabled&&(i.selected=!0)}#eC(t){let e=this.#tz.audioTracks.getById(t.track.id);e&&this.#tz.audioTracks[tm.remove](e,t)}#eP(t){let e=this.#eA();if(!e)return;let i=this.#tz.audioTracks.getById(e.id);i&&this.#tz.audioTracks[tm.select](i,!0,t)}#eA(){return Array.from(this.#ex).find(t=>t.enabled)}#eE(t){let{current:e}=t.detail;if(!e)return;let i=this.#ex.getTrackById(e.id);if(i){let t=this.#eA();t&&(t.enabled=!1),i.enabled=!0}}}class en{constructor(t,e){this.media=t,this.ctx=e,this.audioGain=new t6(t,t=>{this.ctx.notify("audio-gain-change",t)})}scope=(0,a.createScope)();currentSrc=null;audioGain;setup(){new es(this,this.ctx),"audioTracks"in this.media&&new ea(this,this.ctx),(0,a.onDispose)(()=>{for(let t of(this.audioGain.destroy(),this.media.srcObject=null,this.media.removeAttribute("src"),this.media.querySelectorAll("source")))t.remove();this.media.load()})}get type(){return""}setPlaybackRate(t){this.media.playbackRate=t}async play(){return this.media.play()}async pause(){return this.media.pause()}setMuted(t){this.media.muted=t}setVolume(t){this.media.volume=t}setCurrentTime(t){this.media.currentTime=t}setPlaysInline(t){(0,a.setAttribute)(this.media,"playsinline",t)}async loadSource({src:t,type:e},i){(this.media.preload=i||"",!h&&void 0!==window.MediaStream&&t instanceof window.MediaStream)?(this.removeSource(),this.media.srcObject=t):(this.media.srcObject=null,(0,a.isString)(t)?"?"!==e?this.appendSource({src:t,type:e}):(this.removeSource(),this.media.src=this.#eq(t)):(this.removeSource(),this.media.src=window.URL.createObjectURL(t))),this.media.load(),this.currentSrc={src:t,type:e}}appendSource(t,e){let i=this.media.querySelector("source[data-vds]"),s=i??document.createElement("source");(0,a.setAttribute)(s,"src",this.#eq(t.src)),(0,a.setAttribute)(s,"type","?"!==t.type?t.type:e),(0,a.setAttribute)(s,"data-vds",""),i||this.media.append(s)}removeSource(){this.media.querySelector("source[data-vds]")?.remove()}#eq(t){let{clipStartTime:e,clipEndTime:i}=this.ctx.$state,s=e(),a=i();return s>0&&a>0?`${t}#t=${s},${a}`:s>0?`${t}#t=${s}`:a>0?`${t}#t=0,${a}`:t}}class er{#M;#tz;#tU;#eM=(0,a.signal)(!1);get supported(){return this.#eM()}constructor(t,e){this.#M=t,this.#tz=e,this.#eD()}#eD(){!h&&this.#M?.remote&&this.canPrompt&&(this.#M.remote.watchAvailability(t=>{this.#eM.set(t)}).catch(()=>{this.#eM.set(!1)}),(0,a.effect)(this.#eR.bind(this)))}#eR(){if(!this.#eM())return;let t=this.#eL.bind(this);t(),(0,a.listenEvent)(this.#M,"playing",t);let e=new a.EventsController(this.#M.remote);for(let i of["connecting","connect","disconnect"])e.add(i,t)}async prompt(){if(!this.supported)throw Error("Not supported on this platform.");return"airplay"===this.type&&this.#M.webkitShowPlaybackTargetPicker?this.#M.webkitShowPlaybackTargetPicker():this.#M.remote.prompt()}#eL(t){let e=this.#M.remote.state;if(e===this.#tU)return;
1let i={type:this.type,state:e};this.#tz.notify("remote-playback-change",i,t),this.#tU=e}}class eh extends er{type="airplay";get canPrompt(){return"WebKitPlaybackTargetAvailabilityEvent"in window}}class eo{#$;#tz;constructor(t,e){this.#$=t,this.#tz=e,t.textTracks.onaddtrack=this.#O.bind(this),(0,a.onDispose)(this.#t5.bind(this))}#O(t){let e=t.track;if(!e||Array.from(this.#$.children).find(t=>t.track===e))return;let i=new X({id:e.id,kind:e.kind,label:e.label??"",language:e.language,type:"vtt"});i[j.native]={track:e},i[j.readyState]=2,i[j.nativeHLS]=!0;let s=0,a=t=>{if(e.cues)for(let a=s;a<e.cues.length;a++)i.addCue(e.cues[a],t),s++};a(t),e.oncuechange=a,this.#tz.textTracks.add(i,t),i.setMode(e.mode,t)}#t5(){for(let t of(this.#$.textTracks.onaddtrack=null,this.#tz.textTracks)){let e=t[j.native]?.track;e?.oncuechange&&(e.oncuechange=null)}}}class el{#$;#M;constructor(t,e){this.#$=t,this.#M=e,new a.EventsController(t).add("enterpictureinpicture",this.#eI.bind(this)).add("leavepictureinpicture",this.#eV.bind(this))}get active(){return document.pictureInPictureElement===this.#$}get supported(){return y(this.#$)}async enter(){return this.#$.requestPictureInPicture()}exit(){return document.exitPictureInPicture()}#eI(t){this.#S(!0,t)}#eV(t){this.#S(!1,t)}#S=(t,e)=>{this.#M.notify("picture-in-picture-change",t,e)}}class ed{#$;#M;#s="inline";get mode(){return this.#s}constructor(t,e){this.#$=t,this.#M=e,(0,a.listenEvent)(t,"webkitpresentationmodechanged",this.#eO.bind(this))}get supported(){return b(this.#$)}async setPresentationMode(t){this.#s!==t&&this.#$.webkitSetPresentationMode(t)}#eO(t){let e=this.#s;this.#s=this.#$.webkitPresentationMode,this.#M.player?.dispatch(new a.DOMEvent("video-presentation-change",{detail:this.#s,trigger:t})),["fullscreen","picture-in-picture"].forEach(i=>{(this.#s===i||e===i)&&this.#M.notify(`${i}-change`,this.#s===i,t)})}}class eu{#eF;get active(){return"fullscreen"===this.#eF.mode}get supported(){return this.#eF.supported}constructor(t){this.#eF=t}async enter(){this.#eF.setPresentationMode("fullscreen")}async exit(){this.#eF.setPresentationMode("inline")}}class ec{#eF;get active(){return"picture-in-picture"===this.#eF.mode}get supported(){return this.#eF.supported}constructor(t){this.#eF=t}async enter(){this.#eF.setPresentationMode("picture-in-picture")}async exit(){this.#eF.setPresentationMode("inline")}}class ep extends en{$$PROVIDER_TYPE="VIDEO";get type(){return"video"}airPlay;fullscreen;pictureInPicture;constructor(t,e){super(t,e),(0,a.scoped)(()=>{if(this.airPlay=new eh(t,e),b(t)){let i=new ed(t,e);this.fullscreen=new eu(i),this.pictureInPicture=new ec(i)}else y(t)&&(this.pictureInPicture=new el(t,e))},this.scope)}setup(){super.setup(),f(this.video)&&new eo(this.video,this.ctx),this.ctx.textRenderers.attachVideo(this.video),(0,a.onDispose)(()=>{this.ctx.textRenderers.attachVideo(null)}),"video"===this.type&&this.ctx.notify("provider-setup",this)}get video(){return this.media}}var em=Object.freeze({__proto__:null,VideoProvider:ep});function eg(t){try{return new Intl.DisplayNames(navigator.languages,{type:"language"}).of(t)??null}catch(t){return null}}let ef=t=>`dash-${(0,a.camelToKebabCase)(t)}`;class ey{#$;#tz;#eN=null;#eU=new Set;#eK=null;config={};get instance(){return this.#eN}constructor(t,e){this.#$=t,this.#tz=e}setup(t){this.#eN=t().create();let e=this.#eG.bind(this);for(let i of Object.values(t.events))this.#eN.on(i,e);for(let e of(this.#eN.on(t.events.ERROR,this.#tE.bind(this)),this.#eU))e(this.#eN);this.#tz.player.dispatch("dash-instance",{detail:this.#eN}),this.#eN.initialize(this.#$,void 0,!1),this.#eN.updateSettings({streaming:{text:{defaultEnabled:!1,dispatchForManualRendering:!0},buffer:{fastSwitchEnabled:!0}},...this.config}),this.#eN.on(t.events.FRAGMENT_LOADING_STARTED,this.#eB.bind(this)),this.#eN.on(t.events.FRAGMENT_LOADING_COMPLETED,this.#eQ.bind(this)),this.#eN.on(t.events.MANIFEST_LOADED,this.#eW.bind(this)),this.#eN.on(t.events.QUALITY_CHANGE_RENDERED,this.#eH.bind(this)),this.#eN.on(t.events.TEXT_TRACKS_ADDED,this.#ej.bind(this)),this.#eN.on(t.events.TRACK_CHANGE_RENDERED,this.#ez.bind(this)),this.#tz.qualities[tO.enableAuto]=this.#e_.bind(this),(0,a.listenEvent)(this.#tz.qualities,"change",this.#eX.bind(this)),(0,a.listenEvent)(this.#tz.audioTracks,"change",this.#eY.bind(this)),this.#eK=(0,a.effect)(this.#eJ.bind(this))}#eZ(t){return new a.DOMEvent(ef(t.type),{detail:t})}
1#eJ(){if(!this.#tz.$state.live())return;let t=new ei(this.#e0.bind(this));return t.start(),t.stop.bind(t)}#e0(){if(!this.#eN)return;let t=this.#eN.duration()-this.#eN.time();this.#tz.$state.liveSyncPosition.set(isNaN(t)?1/0:t)}#eG(t){this.#tz.player?.dispatch(this.#eZ(t))}#e1=null;#e2={};#e3(t){let e=this.#e1?.[j.native],i=(e?.track).cues;if(!e||!i)return;let s=this.#e1.id,a=this.#e2[s]??0,n=this.#eZ(t);for(let t=a;t<i.length;t++){let e=i[t];e.positionAlign||(e.positionAlign="auto"),this.#e1.addCue(e,n)}this.#e2[s]=i.length}#ej(t){if(!this.#eN)return;let e=t.tracks,i=[...this.#$.textTracks].filter(t=>"manualMode"in t),s=this.#eZ(t);for(let t=0;t<i.length;t++){let a=e[t],n=i[t],r=new X({id:`dash-${a.kind}-${t}`,label:a?.label??a.labels.find(t=>t.text)?.text??(a?.lang&&eg(a.lang))??a?.lang??void 0,language:a.lang??void 0,kind:a.kind,default:a.defaultTrack});r[j.native]={managed:!0,track:n},r[j.readyState]=2,r[j.onModeChange]=()=>{this.#eN&&("showing"===r.mode?(this.#eN.setTextTrack(t),this.#e1=r):(this.#eN.setTextTrack(-1),this.#e1=null))},this.#tz.textTracks.add(r,s)}}#ez(t){let{mediaType:e,newMediaInfo:i}=t;if("audio"===e){let e=this.#tz.audioTracks.getById(`dash-audio-${i.index}`);if(e){let i=this.#eZ(t);this.#tz.audioTracks[tm.select](e,!0,i)}}}#eH(t){if("video"!==t.mediaType)return;let e=this.#tz.qualities[t.newQuality];if(e){let i=this.#eZ(t);this.#tz.qualities[tm.select](e,!0,i)}}#eW(t){if(this.#tz.$state.canPlay()||!this.#eN)return;let{type:e,mediaPresentationDuration:i}=t.data,s=this.#eZ(t);this.#tz.notify("stream-type-change","static"!==e?"live":"on-demand",s),this.#tz.notify("duration-change",i,s),this.#tz.qualities[tO.setAuto](!0,s);let n=this.#eN.getVideoElement(),r=this.#eN.getTracksForTypeFromManifest("video",t.data),h=[...new Set(r.map(t=>t.mimeType))].find(t=>t&&g(n,t)),o=r.filter(t=>h===t.mimeType)[0],l=this.#eN.getTracksForTypeFromManifest("audio",t.data),d=[...new Set(l.map(t=>t.mimeType))].find(t=>t&&m(n,t));if(l=l.filter(t=>d===t.mimeType),o.bitrateList.forEach((t,e)=>{let i={id:t.id?.toString()??`dash-bitrate-${e}`,width:t.width??0,height:t.height??0,bitrate:t.bandwidth??0,codec:o.codec,index:e};this.#tz.qualities[tm.add](i,s)}),(0,a.isNumber)(o.index)){let t=this.#tz.qualities[o.index];t&&this.#tz.qualities[tm.select](t,!0,s)}l.forEach((t,e)=>{let i=t.labels.find(t=>navigator.languages.some(e=>t.lang&&e.toLowerCase().startsWith(t.lang.toLowerCase())))||t.labels[0],a={id:`dash-audio-${t?.index}`,label:i?.text??(t.lang&&eg(t.lang))??t.lang??"",language:t.lang??"",kind:"main",mimeType:t.mimeType,codec:t.codec,index:e};this.#tz.audioTracks[tm.add](a,s)}),n.dispatchEvent(new a.DOMEvent("canplay",{trigger:s}))}#tE(t){let{type:e,error:i}=t;27===i.code?this.#e5(i):this.#e4(i)}#eB(){this.#e9>=0&&this.#e7()}#eQ(t){"text"===t.mediaType&&requestAnimationFrame(this.#e3.bind(this,t))}#e9=-1;#e5(t){this.#e7(),this.#eN?.play(),this.#e9=window.setTimeout(()=>{this.#e9=-1,this.#e4(t)},5e3)}#e7(){clearTimeout(this.#e9),this.#e9=-1}#e4(t){this.#tz.notify("error",{message:t.message??"",code:1,error:t})}#e_(){this.#e6("video",!0);let{qualities:t}=this.#tz;this.#eN?.setQualityFor("video",t.selectedIndex,!0)}#e6(t,e){this.#eN?.updateSettings({streaming:{abr:{autoSwitchBitrate:{[t]:e}}}})}#eX(){let{qualities:t}=this.#tz;this.#eN&&!t.auto&&t.selected&&(this.#e6("video",!1),this.#eN.setQualityFor("video",t.selectedIndex,"current"===t.switch),u&&(this.#$.currentTime=this.#$.currentTime))}#eY(){if(!this.#eN)return;let{audioTracks:t}=this.#tz,e=this.#eN.getTracksFor("audio").find(e=>t.selected&&t.selected.id===`dash-audio-${e.index}`);e&&this.#eN.setCurrentTrack(e)}#e8(){this.#e7(),this.#e1=null,this.#e2={}}onInstance(t){return this.#eU.add(t),()=>this.#eU.delete(t)}loadSource(t){this.#e8(),(0,a.isString)(t.src)&&this.#eN?.attachSource(t.src)}destroy(){this.#e8(),this.#eN?.destroy(),this.#eN=null,this.#eK?.(),this.#eK=null}}function eb(t){return t instanceof Error?t:Error("string"==typeof t?t:JSON.stringify(t))}function ev(t,e){if(!t)throw Error("Assertion failed.")}class ew{#it;#tz;#tW;constructor(t,e,i){this.#it=t,this.#tz=e,this.#tW=i,this.#ie()}async #ie(){let t={onLoadStart:this.#et.bind(this),onLoaded:this.#ii.bind(this),onLoadError:this.#is.bind(this)},e=await e$(this.#it,t);return((0,a.isUndefined)(e)&&!(0,a.isString)(this.#it)&&(e=await ek(this.#it,t)),e)?window.dashjs.supportsMediaSource()?e:(this.#tz.player.dis
1patch(new a.DOMEvent("dash-unsupported")),this.#tz.notify("error",{message:"[vidstack] `dash.js` is not supported in this environment",code:4}),null):null}#et(){this.#tz.player.dispatch(new a.DOMEvent("dash-lib-load-start"))}#ii(t){this.#tz.player.dispatch(new a.DOMEvent("dash-lib-loaded",{detail:t})),this.#tW(t)}#is(t){let e=eb(t);this.#tz.player.dispatch(new a.DOMEvent("dash-lib-load-error",{detail:e})),this.#tz.notify("error",{message:e.message,code:4,error:e})}}async function ek(t,e={}){if(!(0,a.isUndefined)(t)){if(e.onLoadStart?.(),t&&t.prototype&&t.prototype!==Function)return e.onLoaded?.(t),t;if(eT(t)){let i=t.MediaPlayer;return e.onLoaded?.(i),i}try{let i=(await t())?.default;if(eT(i))return e.onLoaded?.(i.MediaPlayer),i.MediaPlayer;if(i)e.onLoaded?.(i);else throw Error("");return i}catch(t){e.onLoadError?.(t)}}}async function e$(t,e={}){if((0,a.isString)(t)){e.onLoadStart?.();try{if(await U(t),!(0,a.isFunction)(window.dashjs.MediaPlayer))throw Error("");let i=window.dashjs.MediaPlayer;return e.onLoaded?.(i),i}catch(t){e.onLoadError?.(t)}}}function eT(t){return t&&"MediaPlayer"in t}class ex extends ep{$$PROVIDER_TYPE="DASH";#ia=null;#ir=new ey(this.video,this.ctx);get ctor(){return this.#ia}get instance(){return this.#ir.instance}static supported=w();get type(){return"dash"}get canLiveSync(){return!0}#ih="https://cdn.jsdelivr.net/npm/[email protected]/dist/dash.all.min.js";get config(){return this.#ir.config}set config(t){this.#ir.config=t}get library(){return this.#ih}set library(t){this.#ih=t}preconnect(){(0,a.isString)(this.#ih)&&F(this.#ih)}setup(){super.setup(),new ew(this.#ih,this.ctx,t=>{this.#ia=t,this.#ir.setup(t),this.ctx.notify("provider-setup",this);let e=(0,a.peek)(this.ctx.$state.source);e&&this.loadSource(e)})}async loadSource(t,e){if(!(0,a.isString)(t.src)){this.removeSource();return}this.media.preload=e||"",this.appendSource(t,"application/x-mpegurl"),this.#ir.loadSource(t),this.currentSrc=t}onInstance(t){let e=this.#ir.instance;return e&&t(e),this.#ir.onInstance(t)}destroy(){this.#ir.destroy()}}var eS=Object.freeze({__proto__:null,DASHProvider:ex});class eC extends t1{static supported=w();name="dash";canPlay(t){return eC.supported&&I(t)}async load(t){if(h)throw Error("[vidstack] can not load dash provider server-side");return new(await Promise.resolve().then(function(){return eS})).DASHProvider(this.target,t)}}class eP{name="vimeo";target;preconnect(){for(let t of["https://i.vimeocdn.com","https://f.vimeocdn.com","https://fresnel.vimeocdn.com"])F(t)}canPlay(t){return(0,a.isString)(t.src)&&"video/vimeo"===t.type}mediaType(){return"video"}async load(t){if(h)throw Error("[vidstack] can not load vimeo provider server-side");return new(await i.e(1509).then(i.bind(i,81509))).VimeoProvider(this.target,t)}async loadPoster(t,e,s){let{resolveVimeoVideoId:n,getVimeoVideoInfo:r}=await i.e(759).then(i.bind(i,759));if(!(0,a.isString)(t.src))return null;let{videoId:h,hash:o}=n(t.src);return h?r(h,s,o).then(t=>t?t.poster:null):null}}class eE{name="youtube";target;preconnect(){for(let t of["https://www.google.com","https://i.ytimg.com","https://googleads.g.doubleclick.net","https://static.doubleclick.net"])F(t)}canPlay(t){return(0,a.isString)(t.src)&&"video/youtube"===t.type}mediaType(){return"video"}async load(t){if(h)throw Error("[vidstack] can not load youtube provider server-side");return new(await i.e(987).then(i.bind(i,50987))).YouTubeProvider(this.target,t)}async loadPoster(t,e,s){let{findYouTubePoster:n,resolveYouTubeVideoId:r}=await i.e(9164).then(i.bind(i,9164)),h=(0,a.isString)(t.src)&&r(t.src);return h?n(h,s):null}}function eA(t,e){let i=String(t),s=i.length;if(s<e){let i="0".repeat(e-s);return`${i}${t}`}return i}function eq(t){let e=Number((t-Math.trunc(t)).toPrecision(3));return{hours:Math.trunc(t/3600),minutes:Math.trunc(t%3600/60),seconds:Math.trunc(t%60),fraction:e}}function eM(t,{padHrs:e=null,padMins:i=null,showHrs:s=!1,showMs:n=!1}={}){let{hours:r,minutes:h,seconds:o,fraction:l}=eq(t),d=e?eA(r,2):r,u=i||(0,a.isNull)(i)&&t>=3600?eA(h,2):h,c=eA(o,2),p=n&&l>0?`.${String(l).replace(/^0?\./,"")}`:"",m=`${u}
1:${c}${p}`;return r>0||s?`${d}:${m}`:m}function eD(t){let e=[],{hours:i,minutes:s,seconds:a}=eq(t);return i>0&&e.push(`${i} hour`),s>0&&e.push(`${s} min`),(a>0||0===e.length)&&e.push(`${a} sec`),e.join(" ")}let eR=Symbol(0),eL=["autoPlay","canAirPlay","canFullscreen","canGoogleCast","canLoad","canLoadPoster","canPictureInPicture","canPlay","canSeek","ended","fullscreen","isAirPlayConnected","isGoogleCastConnected","live","liveEdge","loop","mediaType","muted","paused","pictureInPicture","playing","playsInline","remotePlaybackState","remotePlaybackType","seeking","started","streamType","viewType","waiting"],eI={artist:"",artwork:null,autoplay:!1,autoPlay:!1,clipStartTime:0,clipEndTime:0,controls:!1,currentTime:0,crossorigin:null,crossOrigin:null,duration:-1,fullscreenOrientation:"landscape",googleCast:{},load:"visible",posterLoad:"visible",logLevel:"silent",loop:!1,muted:!1,paused:!0,playsinline:!1,playsInline:!1,playbackRate:1,poster:"",preload:"metadata",preferNativeHLS:!1,src:"",title:"",controlsDelay:2e3,hideControlsOnMouseLeave:!1,viewType:"unknown",streamType:"unknown",volume:1,liveEdgeTolerance:10,minLiveDVRWindow:60,keyDisabled:!1,keyTarget:"player",keyShortcuts:{togglePaused:"k Space",toggleMuted:"m",toggleFullscreen:"f",togglePictureInPicture:"i",toggleCaptions:"c",seekBackward:"j J ArrowLeft",seekForward:"l L ArrowRight",volumeUp:"ArrowUp",volumeDown:"ArrowDown",speedUp:">",slowDown:"<"},storage:null};class eV extends tG{#tq;#tW;constructor(t,e){super(),this.#tq=t,this.#tW=e}async onAttach(t){if(h)return;let e=this.$props[this.#tq]();if("eager"===e)requestAnimationFrame(this.#tW);else if("idle"===e)(0,a.waitIdlePeriod)(this.#tW);else if("visible"===e){let e,i=new IntersectionObserver(t=>{this.scope&&t[0].isIntersecting&&(e?.(),e=void 0,this.#tW())});i.observe(t),e=(0,a.onDispose)(()=>i.disconnect())}}}class eO{#io;#M;constructor(t,e){this.#io=t,this.#M=e}notify(t,...e){h||this.#io(new a.DOMEvent(t,{detail:e?.[0],trigger:e?.[1]}))}async ready(t,e){if(!h)return(0,a.untrack)(async()=>{this.#M;let{autoPlay:i,canPlay:s,started:n,duration:r,seekable:h,buffered:o,remotePlaybackInfo:l,playsInline:d,savedState:u,source:c}=this.#M.$state;if(s())return;let p={duration:t?.duration??r(),seekable:t?.seekable??h(),buffered:t?.buffered??o(),provider:this.#M.$provider()};this.notify("can-play",p,e),(0,a.tick)();let m=this.#M.$provider(),{storage:g,qualities:f}=this.#M,{muted:y,volume:b,clipStartTime:v,playbackRate:w}=this.#M.$props;await g?.onLoad?.(c());let k=u()?.currentTime,$=u()?.paused,T=await g?.getTime(),x=k??T??v(),S=!1===$||!0!==$&&!n()&&i();if(m){m.setVolume(await g?.getVolume()??b()),m.setMuted(y()||!!await g?.getMuted());let t=await g?.getAudioGain()??1;t>1&&m.audioGain?.setGain?.(t),m.setPlaybackRate?.(await g?.getPlaybackRate()??w()),m.setPlaysInline?.(d()),x>0&&m.setCurrentTime(x)}let C=await g?.getVideoQuality();if(C&&f.length){let t=null,e=1/0;for(let i of f){let s=Math.abs(C.width-i.width)+Math.abs(C.height-i.height)+(C.bitrate?Math.abs(C.bitrate-(i.bitrate??0)):0);s<e&&(t=i,e=s)}t&&(t.selected=!0)}s()&&S?await this.#il(e):T&&T>0&&this.notify("started",void 0,e),l.set(null)})}async #il(t){let{player:e,$state:{autoPlaying:i,muted:s}}=this.#M;i.set(!0);let n=new a.DOMEvent("auto-play-attempt",{trigger:t});try{await e.play(n)}catch(t){}}}class eF{#id=new Map;enqueue(t,e){this.#id.set(t,e)}serve(t){let e=this.peek(t);return this.#id.delete(t),e}peek(t){return this.#id.get(t)}delete(t){this.#id.delete(t)}clear(){this.#id.clear()}}class eN{#iu=!1;#ic=(0,a.deferredPromise)();#id=new Map;get size(){return this.#id.size}get isServing(){return this.#iu}async waitForFlush(){this.#iu||await this.#ic.promise}enqueue(t,e){if(this.#iu){e();return}this.#id.delete(t),this.#id.set(t,e)}serve(t){this.#id.get(t)?.(),this.#id.delete(t)}start(){this.#ip(),this.#iu=!0,this.#id.size>0&&this.#ip()}stop(){this.#iu=!1}reset(){this.stop(),this.#id.clear(),this.#im()}#ip(){for(let t of this.#id.keys())this.serve(t);this.#im()}#im(){this.#ic.resolve(),this.#ic=(0,a.deferredPromise)()}}class eU extends tG{#ig;#iy;#M;controls;#ib;#iv;#iw;#ik=new eN;constructor(t,e,i){super(),this.#ig=t,this.#iy=e,this.#M=i,this.#iw=i.$provider,this.controls=new tz,this.#ib=new tX,this.#iv=new tZ}onAttach(){this.listen("fullscreen-change",this.#i$.bind(this))}onConnect(t){let e=Object.getOwnPropertyNames(Object.getPrototypeOf(this)),i=new a.EventsController(t),s=this.#iT.bind(this);for(let t of e)t.startsWith("media-")&&i.add(t,s);this.#ix(),(0,a.effect)(this.#iS.bind(this)),(0,a.effect)(this.#iC.bind(this)),(0,a.effect)(this.#iP.bind(this)),(0,a.effect)(this.#iE.bind(this)),(0,a.effect)(this.#iA.bind(this)),(0,a.effect)(this.#iq.bind(this)),(0,a.effect)(this.#iM.bind(this))}onDestroy(){try{let t=this.createEvent("destroy"),{pictureInPicture:e,fullscreen:i}=this.$state;i()&&this.exitFullscreen("prefer-media",t),e()&&this.exitPictureInPicture(t)}catch(t){}this.#ik.reset()}#ix(){let{load:t}=this.$props,{canLoad:e}=this.$state;if("play"!==t()||e())return;
1let i=this.listen("media-play-request",t=>{this.#iD(t),i()})}#iS(){let t=this.#iw(),e=this.$state.canPlay();return t&&e&&this.#ik.start(),()=>{this.#ik.stop()}}#iT(t){t.stopPropagation(),!t.defaultPrevented&&this[t.type]&&((0,a.peek)(this.#iw)?this[t.type](t):this.#ik.enqueue(t.type,()=>{(0,a.peek)(this.#iw)&&this[t.type](t)}))}async play(t){if(h)return;let{canPlay:e,paused:i,autoPlaying:s}=this.$state;if(this.#iD(t)||!(0,a.peek)(i))return;t&&this.#iy.queue.enqueue("media-play-request",t);let n=(0,a.peek)(s);try{let t=(0,a.peek)(this.#iw);return eK(t,(0,a.peek)(e)),await t.play()}catch(i){let e=this.createEvent("play-fail",{detail:eb(i),trigger:t});throw e.autoPlay=n,this.#ig.handle(e),i}}#iD(t){let{load:e}=this.$props,{canLoad:i}=this.$state;if("play"===e()&&!i()){let e=this.createEvent("media-start-loading",{trigger:t});return this.dispatchEvent(e),this.#ik.enqueue("media-play-request",async()=>{try{await this.play(e)}catch(t){}}),!0}return!1}async pause(t){if(h)return;let{canPlay:e,paused:i}=this.$state;if(!(0,a.peek)(i)){t&&this.#iy.queue.enqueue("media-pause-request",t);try{let t=(0,a.peek)(this.#iw);return eK(t,(0,a.peek)(e)),await t.pause()}catch(t){throw this.#iy.queue.delete("media-pause-request"),t}}}setAudioGain(t,e){let{audioGain:i,canSetAudioGain:s}=this.$state;if(i()===t)return;let a=this.#iw();if(!a?.audioGain||!s())throw Error("[vidstack] audio gain api not available");e&&this.#iy.queue.enqueue("media-audio-gain-change-request",e),a.audioGain.setGain(t)}seekToLiveEdge(t){if(h)return;let{canPlay:e,live:i,liveEdge:s,canSeek:n,liveSyncPosition:r,seekableEnd:o,userBehindLiveEdge:l}=this.$state;if(l.set(!1),(0,a.peek)(()=>!i()||s()||!n()))return;let d=(0,a.peek)(this.#iw);eK(d,(0,a.peek)(e)),t&&this.#iy.queue.enqueue("media-seek-request",t);let u=o()-2;d.setCurrentTime(Math.min(u,r()??u))}#iR=!1;async enterFullscreen(t="prefer-media",e){if(h)return;let i=this.#iL(t);if(eG(t,i),!i.active)return(0,a.peek)(this.$state.pictureInPicture)&&(this.#iR=!0,await this.exitPictureInPicture(e)),e&&this.#iy.queue.enqueue("media-enter-fullscreen-request",e),i.enter()}async exitFullscreen(t="prefer-media",e){if(h)return;let i=this.#iL(t);if(eG(t,i),i.active){e&&this.#iy.queue.enqueue("media-exit-fullscreen-request",e);try{let t=await i.exit();return this.#iR&&(0,a.peek)(this.$state.canPictureInPicture)&&await this.enterPictureInPicture(),t}finally{this.#iR=!1}}}#iL(t){let e=(0,a.peek)(this.#iw);return"prefer-media"===t&&this.#ib.supported||"media"===t?this.#ib:e?.fullscreen}async enterPictureInPicture(t){if(!h&&(this.#iI(),!this.$state.pictureInPicture()))return t&&this.#iy.queue.enqueue("media-enter-pip-request",t),await this.#iw().pictureInPicture.enter()}async exitPictureInPicture(t){if(!h&&(this.#iI(),this.$state.pictureInPicture()))return t&&this.#iy.queue.enqueue("media-exit-pip-request",t),await this.#iw().pictureInPicture.exit()}#iI(){if(!this.$state.canPictureInPicture())throw Error("[vidstack] no pip support")}#iC(){this.controls.defaultDelay=this.$props.controlsDelay()}#iP(){let{canSetAudioGain:t}=this.$state,e=!!this.#iw()?.audioGain?.supported;t.set(e)}#iE(){let{canAirPlay:t}=this.$state,e=!!this.#iw()?.airPlay?.supported;t.set(e)}#iA(){let{canGoogleCast:t,source:e}=this.$state,i=u&&!l&&V(e());t.set(i)}#iq(){let{canFullscreen:t}=this.$state,e=this.#ib.supported||!!this.#iw()?.fullscreen?.supported;t.set(e)}#iM(){let{canPictureInPicture:t}=this.$state,e=!!this.#iw()?.pictureInPicture?.supported;t.set(e)}async "media-airplay-request"(t){try{await this.requestAirPlay(t)}catch(t){}}async requestAirPlay(t){try{let e=this.#iw()?.airPlay;if(!e?.supported)throw Error("No AirPlay adapter.");return t&&this.#iy.queue.enqueue("media-airplay-request",t),await e.prompt()}catch(t){throw this.#iy.queue.delete("media-airplay-request"),t}}async "media-google-cast-request"(t){try{await this.requestGoogleCast(t)}catch(t){}}#iV;async requestGoogleCast(t){try{let{canGoogleCast:e}=this.$state;if(!(0,a.peek)(e)){let t=Error("Cast not available.");throw t.code="CAST_NOT_AVAILABLE",t}if(F("https://www.gstatic.com"),!this.#iV){let t=await i.e(4774).then(i.bind(i,4774)).then(function(t){return t.loader});this.#iV=new t.GoogleCastLoader}await this.#iV.prompt(this.#M),t&&this.#iy.queue.enqueue("media-google-cast-request",t);let s="disconnected"!==(0,a.peek)(this.$state.remotePlaybackState);s&&this.$state.savedState.set({paused:(0,a.peek)(this.$state.paused),currentTime:(0,a.peek)(this.$state.currentTime)}),this.$state.remotePlaybackLoader.set(s?this.#iV:null)}catch(t){throw this.#iy.queue.delete("media-google-cast-request"),t}}"media-clip-start-change-request"(t){let{clipStartTime:e}=this.$state;e.set(t.detail)}"media-clip-end-change-request"(t){let{clipEndTime:e}=this.$state;e.set(t.detail),this.dispatch("duration-change",{detail:t.detail,trigger:t})}"media-duration-change-request"(t){let{providedDuration:e,clipEndTime:i}=this.$state;e.set(t.detail),0>=i()&&this.dispatch("duration-change",{detail:t.detail,trigger:t})}"media-audio-track-change-request"(t){let{logger:e,audioTracks:i}=this.#M;
1if(i.readonly)return;let s=i[t.detail];if(s){let e=t.type;this.#iy.queue.enqueue(e,t),s.selected=!0}}async "media-enter-fullscreen-request"(t){try{await this.enterFullscreen(t.detail,t)}catch(e){this.#iO(e,t)}}async "media-exit-fullscreen-request"(t){try{await this.exitFullscreen(t.detail,t)}catch(e){this.#iO(e,t)}}async #i$(t){let e=(0,a.peek)(this.$props.fullscreenOrientation),i=t.detail;if(!(0,a.isUndefined)(e)&&"none"!==e&&this.#iv.supported){if(i){if(this.#iv.locked)return;this.dispatch("media-orientation-lock-request",{detail:e,trigger:t})}else this.#iv.locked&&this.dispatch("media-orientation-unlock-request",{trigger:t})}}#iO(t,e){this.#ig.handle(this.createEvent("fullscreen-error",{detail:eb(t)}))}async "media-orientation-lock-request"(t){let e=t.type;try{this.#iy.queue.enqueue(e,t),await this.#iv.lock(t.detail)}catch(t){this.#iy.queue.delete(e)}}async "media-orientation-unlock-request"(t){let e=t.type;try{this.#iy.queue.enqueue(e,t),await this.#iv.unlock()}catch(t){this.#iy.queue.delete(e)}}async "media-enter-pip-request"(t){try{await this.enterPictureInPicture(t)}catch(e){this.#iF(e,t)}}async "media-exit-pip-request"(t){try{await this.exitPictureInPicture(t)}catch(e){this.#iF(e,t)}}#iF(t,e){this.#ig.handle(this.createEvent("picture-in-picture-error",{detail:eb(t)}))}"media-live-edge-request"(t){let{live:e,liveEdge:i,canSeek:s}=this.$state;if(!(!e()||i())&&s()){this.#iy.queue.enqueue("media-seek-request",t);try{this.seekToLiveEdge()}catch(t){this.#iy.queue.delete("media-seek-request")}}}async "media-loop-request"(t){try{this.#iy.looping=!0,this.#iy.replaying=!0,await this.play(t)}catch(t){this.#iy.looping=!1}}"media-user-loop-change-request"(t){this.$state.userPrefersLoop.set(t.detail)}async "media-pause-request"(t){if(!this.$state.paused())try{await this.pause(t)}catch(t){}}async "media-play-request"(t){if(this.$state.paused())try{await this.play(t)}catch(t){}}"media-rate-change-request"(t){let{playbackRate:e,canSetPlaybackRate:i}=this.$state;if(e()===t.detail||!i())return;let s=this.#iw();s?.setPlaybackRate&&(this.#iy.queue.enqueue("media-rate-change-request",t),s.setPlaybackRate(t.detail))}"media-audio-gain-change-request"(t){try{this.setAudioGain(t.detail,t)}catch(t){}}"media-quality-change-request"(t){let{qualities:e,storage:i,logger:s}=this.#M;if(e.readonly)return;this.#iy.queue.enqueue("media-quality-change-request",t);let a=t.detail;if(a<0)e.autoSelect(t),t.isOriginTrusted&&i?.setVideoQuality?.(null);else{let s=e[a];s&&(s.selected=!0,t.isOriginTrusted&&i?.setVideoQuality?.({id:s.id,width:s.width,height:s.height,bitrate:s.bitrate}))}}"media-pause-controls-request"(t){let e=t.type;this.#iy.queue.enqueue(e,t),this.controls.pause(t)}"media-resume-controls-request"(t){let e=t.type;this.#iy.queue.enqueue(e,t),this.controls.resume(t)}"media-seek-request"(t){let{canSeek:e,ended:i,live:s,seekableEnd:a,userBehindLiveEdge:n}=this.$state,r=t.detail;i()&&(this.#iy.replaying=!0);let h=t.type;this.#iy.seeking=!1,this.#iy.queue.delete(h);let o=ts(r,this.$state);Number.isFinite(o)&&e()&&(this.#iy.queue.enqueue(h,t),this.#iw().setCurrentTime(o),s()&&t.isOriginTrusted&&Math.abs(a()-o)>=2&&n.set(!0))}"media-seeking-request"(t){let e=t.type;this.#iy.queue.enqueue(e,t),this.$state.seeking.set(!0),this.#iy.seeking=!0}"media-start-loading"(t){if(this.$state.canLoad())return;let e=t.type;this.#iy.queue.enqueue(e,t),this.#ig.handle(this.createEvent("can-load"))}"media-poster-start-loading"(t){if(this.$state.canLoadPoster())return;let e=t.type;this.#iy.queue.enqueue(e,t),this.#ig.handle(this.createEvent("can-load-poster"))}"media-text-track-change-request"(t){let{index:e,mode:i}=t.detail,s=this.#M.textTracks[e];if(s){let e=t.type;this.#iy.queue.enqueue(e,t),s.setMode(i,t)}}"media-mute-request"(t){if(this.$state.muted())return;let e=t.type;this.#iy.queue.enqueue(e,t),this.#iw().setMuted(!0)}"media-unmute-request"(t){let{muted:e,volume:i}=this.$state;if(!e())return;let s=t.type;this.#iy.queue.enqueue(s,t),this.#M.$provider().setMuted(!1),0===i()&&(this.#iy.queue.enqueue(s,t),this.#iw().setVolume(.25))}"media-volume-change-request"(t){let{muted:e,volume:i}=this.$state,s=t.detail;if(i()===s)return;let a=t.type;this.#iy.queue.enqueue(a,t),this.#iw().setVolume(s),s>
10&&e()&&(this.#iy.queue.enqueue(a,t),this.#iw().setMuted(!1))}#iN(t,e,i){}}function eK(t,e){if(!t||!e)throw Error("[vidstack] media not ready")}function eG(t,e){if(!e?.supported)throw Error("[vidstack] no fullscreen support")}class eB{seeking=!1;looping=!1;replaying=!1;queue=new eF}let eQ=new Set(["auto-play","auto-play-fail","can-load","sources-change","source-change","load-start","abort","error","loaded-metadata","loaded-data","can-play","play","play-fail","pause","playing","seeking","seeked","waiting"]);class eW extends tG{#iy;#M;#iU=new Map;#iK=!1;#iG=[];#iB=[-1,-1];#iQ=!1;#iW;constructor(t,e){super(),this.#iy=t,this.#M=e}onAttach(t){t.setAttribute("aria-busy","true"),new a.EventsController(this).add("fullscreen-change",this["fullscreen-change"].bind(this)).add("fullscreen-error",this["fullscreen-error"].bind(this)).add("orientation-change",this["orientation-change"].bind(this))}onConnect(t){(0,a.effect)(this.#iH.bind(this)),this.#ij(),this.#iz(),this.#i_(),this.#iX(),(0,a.onDispose)(this.#iY.bind(this))}onDestroy(){let{audioTracks:t,qualities:e,textTracks:i}=this.#M;t[tm.reset](),e[tm.reset](),i[tm.reset](),this.#iJ()}handle(t){if(!this.scope)return;let e=t.type;(0,a.untrack)(()=>this[t.type]?.(t)),h||(eQ.has(e)&&this.#iU.set(e,t),this.dispatch(t))}#iZ=!1;#iX(){this.#iZ&&(requestAnimationFrame(()=>{this.scope&&this.#M.remote.play(new a.DOMEvent("dom-connect"))}),this.#iZ=!1)}#iY(){this.#iZ||(this.#iZ=!this.$state.paused(),this.#M.$provider()?.pause())}#i0(){this.#i1(),this.#iK=!1,this.#iy.replaying=!1,this.#iy.looping=!1,this.#iQ=!1,this.#iW=void 0,this.#iU.clear()}#i2(t,e){let i=this.#iy.queue.serve(t);i&&(e.request=i,e.triggers.add(i))}#ij(){this.#i3(),this.#i5();let t=this.#M.textTracks;new a.EventsController(t).add("add",this.#i3.bind(this)).add("remove",this.#i3.bind(this)).add("mode-change",this.#i5.bind(this))}#iz(){let t=this.#M.qualities;new a.EventsController(t).add("add",this.#i4.bind(this)).add("remove",this.#i4.bind(this)).add("change",this.#eH.bind(this)).add("auto-change",this.#i9.bind(this)).add("readonly-change",this.#i7.bind(this))}#i_(){let t=this.#M.audioTracks;new a.EventsController(t).add("add",this.#i6.bind(this)).add("remove",this.#i6.bind(this)).add("change",this.#i8.bind(this))}#i3(t){let{textTracks:e}=this.$state;e.set(this.#M.textTracks.toArray()),this.dispatch("text-tracks-change",{detail:e(),trigger:t})}#i5(t){t&&this.#i2("media-text-track-change-request",t);let e=this.#M.textTracks.selected,{textTrack:i}=this.$state;i()!==e&&(i.set(e),this.dispatch("text-track-change",{detail:e,trigger:t}))}#i6(t){let{audioTracks:e}=this.$state;e.set(this.#M.audioTracks.toArray()),this.dispatch("audio-tracks-change",{detail:e(),trigger:t})}#i8(t){let{audioTrack:e}=this.$state;e.set(this.#M.audioTracks.selected),t&&this.#i2("media-audio-track-change-request",t),this.dispatch("audio-track-change",{detail:e(),trigger:t})}#i4(t){let{qualities:e}=this.$state;e.set(this.#M.qualities.toArray()),this.dispatch("qualities-change",{detail:e(),trigger:t})}#eH(t){let{quality:e}=this.$state;e.set(this.#M.qualities.selected),t&&this.#i2("media-quality-change-request",t),this.dispatch("quality-change",{detail:e(),trigger:t})}#i9(){let{qualities:t}=this.#M,e=t.auto;this.$state.autoQuality.set(e),e||this.#iJ()}#st=null;#se(){this.#iJ(),this.#st=(0,a.effect)(()=>{let{qualities:t}=this.#M,{mediaWidth:e,mediaHeight:i}=this.$state,s=e(),n=i();if(0===s||0===n)return;let r=null,h=1/0;for(let e of t){let t=Math.abs(e.width-s)+Math.abs(e.height-n);t<h&&(h=t,r=e)}r&&t[tm.select](r,!0,new a.DOMEvent("resize",{detail:{width:s,height:n}}))})}#iJ(){this.#st?.(),this.#st=null}#i7(){this.$state.canSetQuality.set(!this.#M.qualities.readonly)}#iH(){let{canSetVolume:t,isGoogleCastConnected:e}=this.$state;if(e()){t.set(!1);return}v().then(t.set)}"provider-change"(t){let e=this.#M.$provider(),i=t.detail;e?.type!==i?.type&&(e?.destroy?.(),e?.scope?.dispose(),this.#M.$provider.set(t.detail),e&&null===t.detail&&this.#si(t))}"provider-loader-change"(t){}"auto-play"(t){this.$state.autoPlayError.set(null)}"auto-play-fail"(t){this.$state.autoPlayError.set(t.detail),this.#i0()}"can-load"(t){this.$state.canLoad.set(!0),this.#iU.set("can-load",t),this.#M.textTracks[j.canLoad](),this.#i2("media-start-loading",t)}"can-load-poster"(t){this.$state.canLoadPoster.set(!0),this.#iU.set("can-load-poster",t),this.#i2("media-poster-start-loading",t)}"media-type-change"(t){let e=this.#iU.get("source-change");e&&t.triggers.add(e);let i=this.$state.viewType();this.$state.mediaType.set(t.detail);let s=this.$state.providedViewType(),a="unknown"===s?t.detail:s;i!==a&&(h?this.$state.inferredViewType.set(a):setTimeout(()=>{requestAnimationFrame(()=>{this.scope&&(this.$state.inferredViewType.set(t.detail),this.dispatch("view-type-change",{detail:a,trigger:t}))})},0))}"stream-type-change"(t){let e=this.#iU.get("source-change");e&&t.triggers.add(e);let{streamType:i,inferredStreamType:s}=this.$state;s.set(t.detail),t.detail=i()}"rate-change"(t){let{storage:e}=this.#M,{canPlay:i}=this.$state;this.$state.playbackRate.set(t.detail),this.#i2("media-rate-change-request",t),i()&&e?.setPlaybackRate?.(t.detail)}"remote-playback-change"(t){let{remotePlaybackState:e,remotePlaybackType:i}=this.$state,{type:s,state:a}=t.detail,n="connected"===a;
1i.set(s),e.set(a);let r="airplay"===s?"media-airplay-request":"media-google-cast-request";if(n)this.#i2(r,t);else{let e=this.#iy.queue.peek(r);e&&(t.request=e,t.triggers.add(e))}}"sources-change"(t){let e=this.$state.sources(),i=t.detail;this.$state.sources.set(i),this.#ss(e,i,t)}#ss(t,e,i){let{qualities:s}=this.#M,a=!1,n=!1;for(let a of t)if(r(a)&&!e.some(t=>t.src===a.src)){let t=s.getBySrc(a.src);t&&(s[tm.remove](t,i),n=!0)}for(let t of(n&&!s.length&&(this.$state.savedState.set(null),s[tm.reset](i)),e)){if(!r(t)||s.getBySrc(t.src))continue;let e={id:t.id??t.height+"p",bitrate:null,codec:null,...t,selected:!1};s[tm.add](e,i),a=!0}a&&!s[tO.enableAuto]&&(this.#se(),s[tO.enableAuto]=this.#se.bind(this),s[tO.setAuto](!0,i))}"source-change"(t){t.isQualityChange=t.originEvent?.type==="quality-change";let e=t.detail;this.#si(t,t.isQualityChange),this.#iU.set(t.type,t),this.$state.source.set(e),this.el?.setAttribute("aria-busy","true")}#si(t,e=!1){let{audioTracks:i,qualities:s}=this.#M;if(!e){this.#iG=[],this.#iB=[-1,-1],i[tm.reset](t),s[tm.reset](t),ti(this.$state,e),this.#i0();return}ti(this.$state,e),this.#i0()}abort(t){let e=this.#iU.get("source-change");e&&t.triggers.add(e);let i=this.#iU.get("can-load");i&&!t.triggers.hasType("can-load")&&t.triggers.add(i)}"load-start"(t){let e=this.#iU.get("source-change");e&&t.triggers.add(e)}error(t){this.$state.error.set(t.detail);let e=this.#iU.get("abort");e&&t.triggers.add(e)}"loaded-metadata"(t){let e=this.#iU.get("load-start");e&&t.triggers.add(e)}"loaded-data"(t){let e=this.#iU.get("load-start");e&&t.triggers.add(e)}"can-play"(t){let e=this.#iU.get("loaded-metadata");e&&t.triggers.add(e),this.#sa(t.detail),this.el?.setAttribute("aria-busy","false")}"can-play-through"(t){this.#sa(t.detail);let e=this.#iU.get("can-play");e&&t.triggers.add(e)}#sa(t){let{seekable:e,buffered:i,intrinsicDuration:s,canPlay:a}=this.$state;a.set(!0),i.set(t.buffered),e.set(t.seekable);let n=T(t.seekable)??1/0;s.set(n)}"duration-change"(t){let{live:e,intrinsicDuration:i,providedDuration:s,clipEndTime:a,ended:n}=this.$state,r=t.detail;if(!e()){let e=Number.isNaN(r)?0:r;i.set(e),n()&&this.#sn(t)}(s()>0||a()>0)&&t.stopImmediatePropagation()}progress(t){let{buffered:e,seekable:i}=this.$state,{buffered:s,seekable:a}=t.detail,n=T(s),r=s.length!==e().length,h=n!==T(e()),o=T(a),l=a.length!==i().length,d=o!==T(i());(r||h)&&e.set(s),(l||d)&&i.set(a)}play(t){let{paused:e,autoPlayError:i,ended:s,autoPlaying:a,playsInline:n,pointer:r,muted:h,viewType:o,live:l,userBehindLiveEdge:d}=this.$state;if(this.#sr(),!e()){t.stopImmediatePropagation();return}t.autoPlay=a();let u=this.#iU.get("waiting");u&&t.triggers.add(u),this.#i2("media-play-request",t),this.#iU.set("play",t),e.set(!1),i.set(null),t.autoPlay&&(this.handle(this.createEvent("auto-play",{detail:{muted:h()},trigger:t})),a.set(!1)),(s()||this.#iy.replaying)&&(this.#iy.replaying=!1,s.set(!1),this.handle(this.createEvent("replay",{trigger:t}))),n()||"video"!==o()||"coarse"!==r()||this.#M.remote.enterFullscreen("prefer-media",t),l()&&!d()&&this.#M.remote.seekToLiveEdge(t)}#sr(t){if(!(0,a.peek)(this.#M.$provider))return;let{ended:e,seekableStart:i,clipEndTime:s,currentTime:n,realCurrentTime:r,duration:h}=this.$state,o=e()||r()<i()||s()>0&&r()>=s()||.1>Math.abs(n()-h());return o&&this.dispatch("media-seek-request",{detail:i(),trigger:t}),o}"play-fail"(t){let{muted:e,autoPlaying:i}=this.$state,s=this.#iU.get("play");s&&t.triggers.add(s),this.#i2("media-play-request",t);let{paused:a,playing:n}=this.$state;a.set(!0),n.set(!1),this.#i0(),this.#iU.set("play-fail",t),t.autoPlay&&(this.handle(this.createEvent("auto-play-fail",{detail:{muted:e(),error:t.detail},trigger:t})),i.set(!1))}playing(t){let e=this.#iU.get("play"),i=this.#iU.get("seeked");e?t.triggers.add(e):i&&t.triggers.add(i),setTimeout(()=>this.#i0(),0);let{paused:s,playing:a,live:n,liveSyncPosition:r,seekableEnd:h,started:o,currentTime:l,seeking:d,ended:u}=this.$state;if(s.set(!1),a.set(!0),d.set(!1),u.set(!1),this.#iy.looping){this.#iy.looping=!1;return}if(n()&&!o()&&0===l()){let t=r()??h()-2;Number.isFinite(t)&&this.#M.$provider().setCurrentTime(t)}this.started(t)}started(t){let{started:e}=this.$state;e()||(e.set(!0),this.handle(this.createEvent("started",{trigger:t})))}pause(t){this.el?.isConnected||(this.#iZ=!0),this.#i2("media-pause-request",t);let e=this.#iU.get("seeked");e&&t.triggers.add(e);let{paused:i,playing:s}=this.$state;i.set(!0),s.set(!1),this.#iK&&setTimeout(()=>{this.handle(this.createEvent("end",{trigger:t})),this.#iK=!1},0),this.#i0()}"time-change"(t){if(this.#iy.looping){t.stopImmediatePropagation();return}let{waiting:e,played:i,clipEndTime:s,realCurrentTime:a,currentTime:n}=this.$state,r=t.detail,h=s();for(let i of(a.set(r),this.#sh(),e.set(!1),this.#M.textTracks))i[j.updateActiveCues](r,t);h>0&&r>=h&&(this.#iK=!0,this.dispatch("media-pause-request",{trigger:t})),this.#so(),this.dispatch("time-update",{detail:{currentTime:n(),played:i()},trigger:t})}#sh(){var t,e,i;let s,a;let{currentTime:n,played:r,paused:h}=this.$state;h()||(this.#iB=(t=this.#iG,e=this.#iB,i=n(),s=e[0],a=e[1],i<s?[i,-1]:(i===s||(-1===s?e[0]=i:(i>s&&(e[1]=i,-1===a&&t.push(e)),function(t){if(t.length<=1)return;t.sort((t,e)=>t[0]-e[0]);let e=[],i=t[0];for(let s=1;s<t.length;s++){let a=t[s];i[1]>=a[0]-1?i=[i[0],Math.max(i[1],a[1])]:(e.push(i),i=a)}e.push(i)}(t))),e)),r.set(new k(this.#iG)))}#sn(t){let{clipStartTime:e,clipEndTime:i,duration:s}=this.$state;e()>0||i()>0||this.handle(this.createEvent("time-change",{detail:s(),trigger:t}))}#so(){let{storage:t}=this.#M,{canPlay:e,realCurrentTime:i}=this.$state;e()&&t?.setTime?.(i())}"audio-gain-change"(t){let{storage:e}=this.#M,{canPlay:i,audioGain:s}=this.$state;s.set(t.detail),this.#i2("media-audio-gain-change-request",t),i()&&e?.setAudioGain?.(s())}"volume-change"(t){let{storage:e}=this.#M,{volume:i,muted:s,canPlay:a}=this.$state,n=t.detail;i.set(n.volume),s.set(n.muted||0===n.volume),this.#i2("media-volume-change-request",t),this.#i2(n.muted?"media-mute-request":"media-unmute-request",t),a()&&(e?.setVolume?.(i()),e?.setMuted?.(s()))}seeking=(0,a.functionThrottle)(t=>{let{seeking:e,realCurrentTime:i,paused:s}=this.$state;e.set(!0),i.set(t.detail),this.#i2("media-seeking-request",t),s()&&(this.#iW=t,this.#sl()),this.#iB=[-1,-1]},150,{leading:!0});seeked(t){let{seeking:e,currentTime:i,realCurrentTime:s,paused:a,seekableEnd:n,ended:r,live:h}=this.$state;if(this.#iy.seeking)e.set(!0),t.stopImmediatePropagation();else if(e()){let i=this.#iU.get("waiting");i&&t.triggers.add(i);let n=this.#iU.get("seeking");n&&!t.triggers.has(n)&&t.triggers.add(n),a()&&this.#i1(),e.set(!1),s.set(t.detail),this.#i2("media-seek-request",t);let r=t?.originEvent;!r?.isTrusted||r instanceof MessageEvent||/seek/.test(r.type)||this.started(t)}h()||(Math.floor(i())!==Math.floor(n())?r.set(!1):this.end(t))}waiting(t){this.#iQ||this.#iy.seeking||(t.stopImmediatePropagation(),this.#iW=t,this.#sl())}#sl=(0,a.functionDebounce)(()=>
1{if(!this.#iW)return;this.#iQ=!0;let{waiting:t,playing:e}=this.$state;t.set(!0),e.set(!1);let i=this.createEvent("waiting",{trigger:this.#iW});this.#iU.set("waiting",i),this.dispatch(i),this.#iW=void 0,this.#iQ=!1},300);end(t){let{loop:e,ended:i}=this.$state;if(!(!e()&&i())){if(e()){setTimeout(()=>{requestAnimationFrame(()=>{this.#sr(t),this.dispatch("media-loop-request",{trigger:t})})},10);return}setTimeout(()=>this.#eb(t),0)}}#eb(t){let{storage:e}=this.#M,{paused:i,seeking:s,ended:a,duration:n}=this.$state;this.#sn(t),i()||this.dispatch("pause",{trigger:t}),s()&&this.dispatch("seeked",{detail:n(),trigger:t}),a.set(!0),this.#i0(),e?.setTime?.(n(),!0),this.dispatch("ended",{trigger:t})}#i1(){this.#sl.cancel(),this.$state.waiting.set(!1)}"fullscreen-change"(t){let e=t.detail;this.$state.fullscreen.set(e),this.#i2(e?"media-enter-fullscreen-request":"media-exit-fullscreen-request",t)}"fullscreen-error"(t){this.#i2("media-enter-fullscreen-request",t),this.#i2("media-exit-fullscreen-request",t)}"orientation-change"(t){let e=t.detail.lock;this.#i2(e?"media-orientation-lock-request":"media-orientation-unlock-request",t)}"picture-in-picture-change"(t){let e=t.detail;this.$state.pictureInPicture.set(e),this.#i2(e?"media-enter-pip-request":"media-exit-pip-request",t)}"picture-in-picture-error"(t){this.#i2("media-enter-pip-request",t),this.#i2("media-exit-pip-request",t)}"title-change"(t){t.trigger&&(t.stopImmediatePropagation(),this.$state.inferredTitle.set(t.detail))}"poster-change"(t){t.trigger&&(t.stopImmediatePropagation(),this.$state.inferredPoster.set(t.detail))}}class eH extends tG{onSetup(){if(this.#ty(),!h)for(let t of[this.#sd,this.#su,this.#sc,this.#sp,this.#I,this.#sm,this.#sg,this.#sf,this.#sy,this.#sb,this.#sv,this.#sw,this.#sk,this.#s$,this.#sT])(0,a.effect)(t.bind(this))}#ty(){let t={duration:"providedDuration",loop:"providedLoop",poster:"providedPoster",streamType:"providedStreamType",title:"providedTitle",viewType:"providedViewType"},e=new Set(["currentTime","paused","playbackRate","volume"]);for(let i of Object.keys(this.$props))e.has(i)||this.$state[t[i]??i]?.set(this.$props[i]());this.$state.muted.set(this.$props.muted()||0===this.$props.volume())}#s$(){let{viewType:t,streamType:e,title:i,poster:s,loop:a}=this.$props,n=this.$state;n.providedPoster.set(s()),n.providedStreamType.set(e()),n.providedViewType.set(t()),n.providedTitle.set(i()),n.providedLoop.set(a())}#sx(){}#sd(){let{artist:t,artwork:e}=this.$props;this.$state.artist.set(t()),this.$state.artwork.set(e())}#sT(){let{title:t}=this.$state;this.dispatch("title-change",{detail:t()})}#su(){let t=this.$props.autoPlay()||this.$props.autoplay();this.$state.autoPlay.set(t),this.dispatch("auto-play-change",{detail:t})}#sv(){let t=this.$state.loop();this.dispatch("loop-change",{detail:t})}#I(){let t=this.$props.controls();this.$state.controls.set(t)}#sk(){let{poster:t}=this.$state;this.dispatch("poster-change",{detail:t()})}#sm(){let t=this.$props.crossOrigin()??this.$props.crossorigin();this.$state.crossOrigin.set(!0===t?"":t)}#sg(){let{duration:t}=this.$props;this.dispatch("media-duration-change-request",{detail:t()})}#sw(){let t=this.$props.playsInline()||this.$props.playsinline();this.$state.playsInline.set(t),this.dispatch("plays-inline-change",{detail:t})}#sc(){let{clipStartTime:t}=this.$props;this.dispatch("media-clip-start-change-request",{detail:t()})}#sp(){let{clipEndTime:t}=this.$props;this.dispatch("media-clip-end-change-request",{detail:t()})}#sf(){this.dispatch("live-change",{detail:this.$state.live()})}#sb(){this.$state.liveEdgeTolerance.set(this.$props.liveEdgeTolerance()),this.$state.minLiveDVRWindow.set(this.$props.minLiveDVRWindow())}#sy(){this.dispatch("live-edge-change",{detail:this.$state.liveEdge()})}}let ej=["play","pause","seekforward","seekbackward","seekto"];class ez extends tG{onConnect(){(0,a.effect)(this.#sS.bind(this)),(0,a.effect)(this.#sC.bind(this));let t=this.#sP.bind(this);for(let e of ej)navigator.mediaSession.setActionHandler(e,t);(0,a.onDispose)(this.#tA.bind(this))}#tA(){for(let t of ej)navigator.mediaSession.setActionHandler(t,null)}#sS(){let{title:t,artist:e,artwork:i,poster:s}=this.$state;
1navigator.mediaSession.metadata=new MediaMetadata({title:t(),artist:e(),artwork:i()??[{src:s()}]})}#sC(){let{canPlay:t,paused:e}=this.$state;navigator.mediaSession.playbackState=t()?e()?"paused":"playing":"none"}#sP(t){let e=new a.DOMEvent("media-session-action",{detail:t});switch(t.action){case"play":this.dispatch("media-play-request",{trigger:e});break;case"pause":this.dispatch("media-pause-request",{trigger:e});break;case"seekto":case"seekforward":case"seekbackward":this.dispatch("media-seek-request",{detail:(0,a.isNumber)(t.seekTime)?t.seekTime:this.$state.currentTime()+(t.seekOffset??("seekforward"===t.action?10:-10)),trigger:e})}}}let e_=(0,a.signal)(!1);h||((0,a.listenEvent)(document,"pointerdown",()=>{e_.set(!1)}),(0,a.listenEvent)(document,"keydown",t=>{t.metaKey||t.altKey||t.ctrlKey||e_.set(!0)}));class eX extends a.ViewController{#sE=(0,a.signal)(!1);onConnect(t){(0,a.effect)(()=>{let e=new a.EventsController(t);if(!e_()){this.#sE.set(!1),eY(t,!1),e.add("pointerenter",this.#sA.bind(this)).add("pointerleave",this.#sq.bind(this));return}let i=document.activeElement===t;this.#sE.set(i),eY(t,i),e.add("focus",this.#sM.bind(this)).add("blur",this.#sD.bind(this))})}focused(){return this.#sE()}#sM(){this.#sE.set(!0),eY(this.el,!0)}#sD(){this.#sE.set(!1),eY(this.el,!1)}#sA(){eJ(this.el,!0)}#sq(){eJ(this.el,!1)}}function eY(t,e){(0,a.setAttribute)(t,"data-focus",e),(0,a.setAttribute)(t,"data-hocus",e)}function eJ(t,e){(0,a.setAttribute)(t,"data-hocus",e),(0,a.setAttribute)(t,"data-hover",e)}class eZ extends a.Component{static props=eI;static state=Z;#M;#ig;#sR;canPlayQueue=new eN;remoteControl;get #tj(){return this.#M.$provider()}get #sL(){return this.$props}constructor(){super(),new eH;let t={player:this,qualities:new tF,audioTracks:new tb,storage:null,$provider:(0,a.signal)(null),$providerSetup:(0,a.signal)(!1),$props:this.$props,$state:this.$state};t.remote=this.remoteControl=new tr(void 0),t.remote.setPlayer(this),t.textTracks=new tV,t.textTracks[j.crossOrigin]=this.$state.crossOrigin,t.textRenderers=new tI(t),t.ariaKeys={},this.#M=t,(0,a.provideContext)(ta,t),this.orientation=new tZ,new eX,new tW(t);let e=new eB;this.#ig=new eW(e,t),this.#sR=new eU(this.#ig,e,t),t.delegate=new eO(this.#ig.handle.bind(this.#ig),t),t.notify=t.delegate.notify.bind(t.delegate),"undefined"!=typeof navigator&&"mediaSession"in navigator&&new ez,new eV("load",this.startLoading.bind(this)),new eV("posterLoad",this.startLoadingPoster.bind(this))}onSetup(){this.#sI(),(0,a.effect)(this.#sV.bind(this)),(0,a.effect)(this.#sO.bind(this)),(0,a.effect)(this.#tv.bind(this)),(0,a.effect)(this.#sF.bind(this)),(0,a.effect)(this.#sN.bind(this)),(0,a.effect)(this.#sw.bind(this)),(0,a.effect)(this.#sU.bind(this))}onAttach(t){t.setAttribute("data-media-player",""),tx(t,"tabindex","0"),tx(t,"role","region"),(0,a.effect)(this.#sK.bind(this)),h?this.#sT():(0,a.effect)(this.#sT.bind(this)),h?this.#sG():(0,a.effect)(this.#sG.bind(this)),(0,a.listenEvent)(t,"find-media-player",this.#sB.bind(this))}onConnect(t){d&&(0,a.setAttribute)(t,"data-iphone","");let e=window.matchMedia("(pointer: coarse)");this.#sQ(e),e.onchange=this.#sQ.bind(this);let i=new ResizeObserver((0,a.animationFrameThrottle)(this.#sW.bind(this)));i.observe(t),(0,a.effect)(this.#sW.bind(this)),this.dispatch("media-player-connect",{detail:this,bubbles:!0,composed:!0}),(0,a.onDispose)(()=>{i.disconnect(),e.onchange=null})}onDestroy(){this.#M.player=null,this.canPlayQueue.reset()}#sH=!1;#sT(){let t=this.$el,{title:e,live:i,viewType:s,providedTitle:n}=this.$state,r=i(),o=(0,a.uppercaseFirstChar)(s()),l="Unknown"!==o?`${r?"Live ":""}${o}`:r?"Live":"Media",d=e();(0,a.setAttribute)(this.el,"aria-label",`${l} Player`+(d?` - ${d}`:"")),!h&&t?.hasAttribute("title")&&(this.#sH=!0,t?.removeAttribute("title"))}#sG(){let t=this.orientation.landscape?"landscape":"portrait";this.$state.orientation.set(t),(0,a.setAttribute)(this.el,"data-orientation",t),this.#sW()}#sV(){this.$state.canPlay()&&this.#tj?this.canPlayQueue.start():this.canPlayQueue.stop()}#sI(){if(eZ[eR]){this.setAttributes(eZ[eR]);return}let t={"data-load":function(){return this.$props.load()},"data-captions":function(){let t=this.$state.textTrack();return!!t&&J(t)}
1,"data-ios-controls":function(){return this.$state.iOSControls()},"data-controls":function(){return this.controls.showing},"data-buffering":function(){let{canLoad:t,canPlay:e,waiting:i}=this.$state;return t()&&(!e()||i())},"data-error":function(){let{error:t}=this.$state;return!!t()},"data-autoplay-error":function(){let{autoPlayError:t}=this.$state;return!!t()}},e={autoPlay:"autoplay",canAirPlay:"can-airplay",canPictureInPicture:"can-pip",pictureInPicture:"pip",playsInline:"playsinline",remotePlaybackState:"remote-state",remotePlaybackType:"remote-type",isAirPlayConnected:"airplay",isGoogleCastConnected:"google-cast"};for(let i of eL)t["data-"+(e[i]??(0,a.camelToKebabCase)(i))]=function(){return this.$state[i]()};delete t.title,eZ[eR]=t,this.setAttributes(t)}#sB(t){t.detail(this)}#sW(){if(h||!this.el)return;let t=this.el.clientWidth,e=this.el.clientHeight;this.$state.width.set(t),this.$state.height.set(e),(0,a.setStyle)(this.el,"--player-width",t+"px"),(0,a.setStyle)(this.el,"--player-height",e+"px")}#sQ(t){if(h)return;let e=t.matches?"coarse":"fine";(0,a.setAttribute)(this.el,"data-pointer",e),this.$state.pointer.set(e),this.#sW()}get provider(){return this.#tj}get controls(){return this.#sR.controls}set controls(t){this.#sL.controls.set(t)}orientation;get title(){return(0,a.peek)(this.$state.title)}set title(t){if(this.#sH){this.#sH=!1;return}this.#sL.title.set(t)}get qualities(){return this.#M.qualities}get audioTracks(){return this.#M.audioTracks}get textTracks(){return this.#M.textTracks}get textRenderers(){return this.#M.textRenderers}get duration(){return this.$state.duration()}set duration(t){this.#sL.duration.set(t)}get paused(){return(0,a.peek)(this.$state.paused)}set paused(t){this.#sj(t)}#tv(){this.#sj(this.$props.paused())}#sj(t){t?this.canPlayQueue.enqueue("paused",()=>this.#sR.pause()):this.canPlayQueue.enqueue("paused",()=>this.#sR.play())}get muted(){return(0,a.peek)(this.$state.muted)}set muted(t){this.#sz(t)}#sO(){this.#sz(this.$props.muted())}#sz(t){this.canPlayQueue.enqueue("muted",()=>{this.#tj&&this.#tj.setMuted(t)})}get currentTime(){return(0,a.peek)(this.$state.currentTime)}set currentTime(t){this.#s_(t)}#sN(){this.#s_(this.$props.currentTime())}#s_(t){this.canPlayQueue.enqueue("currentTime",()=>{let{currentTime:e}=this.$state;t!==(0,a.peek)(e)&&(0,a.peek)(()=>{if(!this.#tj)return;let e=ts(t,this.$state);Number.isFinite(e)&&this.#tj.setCurrentTime(e)})})}get volume(){return(0,a.peek)(this.$state.volume)}set volume(t){this.#sX(t)}#sF(){this.#sX(this.$props.volume())}#sX(t){let e=tk(0,t,1);this.canPlayQueue.enqueue("volume",()=>{this.#tj&&this.#tj.setVolume(e)})}get playbackRate(){return(0,a.peek)(this.$state.playbackRate)}set playbackRate(t){this.#sY(t)}#sU(){this.#sY(this.$props.playbackRate())}#sY(t){this.canPlayQueue.enqueue("rate",()=>{this.#tj&&this.#tj.setPlaybackRate?.(t)})}#sw(){this.#sJ(this.$props.playsInline())}#sJ(t){this.canPlayQueue.enqueue("playsinline",()=>{this.#tj&&this.#tj.setPlaysInline?.(t)})}#sK(){let t=this.$props.storage(),e=(0,a.isString)(t)?new th:t;if(e?.onChange){let{source:i}=this.$state,s=(0,a.isString)(t)?t:this.el?.id,n=(0,a.computed)(this.#sZ.bind(this));(0,a.effect)(()=>e.onChange(i(),n(),s||void 0))}this.#M.storage=e,this.#M.textTracks.setStorage(e),(0,a.onDispose)(()=>{e?.onDestroy?.(),this.#M.storage=null,this.#M.textTracks.setStorage(null)})}#sZ(){let{clipStartTime:t,clipEndTime:e}=this.$props,{source:i}=this.$state,s=i();return s.src?`${s.src}:${t()}:${e()}`:null}async play(t){return this.#sR.play(t)}async pause(t){return this.#sR.pause(t)}async enterFullscreen(t,e){return this.#sR.enterFullscreen(t,e)}async exitFullscreen(t,e){return this.#sR.exitFullscreen(t,e)}enterPictureInPicture(t){return this.#sR.enterPictureInPicture(t)}exitPictureInPicture(t){return this.#sR.exitPictureInPicture(t)}seekToLiveEdge(t){this.#sR.seekToLiveEdge(t)}startLoading(t){this.#M.notify("can-load",void 0,t)}startLoadingPoster(t){this.#M.notify("can-load-poster",void 0,t)}requestAirPlay(t){return this.#sR.requestAirPlay(t)}requestGoogleCast(t){return this.#sR.requestGoogleCast(t)}setAudioGain(t,e){return this.#sR.setAudioGain(t,e)}destroy(){super.destroy(),this.#M.remote.setPlayer(null),this.dispatch("destroy")}}let e0=eZ.prototype;(0,a.prop)(e0,"canPlayQueue"),(0,a.prop)(e0,"remoteControl"),(0,a.prop)(e0,"provider"),(0,a.prop)(e0,"controls"),(0,a.prop)(e0,"orientation"),(0,a.prop)(e0,"title"),
1(0,a.prop)(e0,"qualities"),(0,a.prop)(e0,"audioTracks"),(0,a.prop)(e0,"textTracks"),(0,a.prop)(e0,"textRenderers"),(0,a.prop)(e0,"duration"),(0,a.prop)(e0,"paused"),(0,a.prop)(e0,"muted"),(0,a.prop)(e0,"currentTime"),(0,a.prop)(e0,"volume"),(0,a.prop)(e0,"playbackRate"),(0,a.method)(e0,"play"),(0,a.method)(e0,"pause"),(0,a.method)(e0,"enterFullscreen"),(0,a.method)(e0,"exitFullscreen"),(0,a.method)(e0,"enterPictureInPicture"),(0,a.method)(e0,"exitPictureInPicture"),(0,a.method)(e0,"seekToLiveEdge"),(0,a.method)(e0,"startLoading"),(0,a.method)(e0,"startLoadingPoster"),(0,a.method)(e0,"requestAirPlay"),(0,a.method)(e0,"requestGoogleCast"),(0,a.method)(e0,"setAudioGain");let e1=new Map;class e2{#s0=!1;#s1;#s2;#M;#s3;constructor(t,e,i,s=[]){this.#s2=t,this.#M=e,this.#s3=i;let n=new eC,r=new t2,h=new t1,o=new t0,l=[new eE,new eP];this.#s1=(0,a.computed)(()=>{let t=e.$state.remotePlaybackLoader(),i=e.$props.preferNativeHLS()?[h,o,n,r,...l,...s]:[r,h,o,n,...l,...s];return t?[t,...i]:i});let{$state:d}=e;for(let t of(d.sources.set(e3(e.$props.src())),d.sources())){let i=this.#s1().find(e=>e.canPlay(t));if(!i)continue;let s=i.mediaType(t);e.$state.source.set(t),e.$state.mediaType.set(s),e.$state.inferredViewType.set(s),this.#s3.set(i),this.#s0=!0;break}}connect(){let t=this.#s3();this.#s0&&(this.#s5(this.#M.$state.source(),t),this.#s4(t),this.#s0=!1),(0,a.effect)(this.#s9.bind(this)),(0,a.effect)(this.#s7.bind(this)),(0,a.effect)(this.#s6.bind(this)),(0,a.effect)(this.#s8.bind(this)),(0,a.effect)(this.#at.bind(this))}#s9(){this.#M.notify("sources-change",[...e3(this.#M.$props.src()),...this.#s2()])}#s7(){let{$state:t}=this.#M,e=t.sources(),i=(0,a.peek)(t.source),s=this.#ae(i,e);if(e[0]?.src&&!s.src&&!s.type){let{crossOrigin:i}=t,s=K(i()),n=new AbortController;return Promise.all(e.map(t=>(0,a.isString)(t.src)&&"?"===t.type?fetch(t.src,{method:"HEAD",credentials:s,signal:n.signal}).then(e=>(t.type=e.headers.get("content-type")||"??",e1.set(t.src,t.type),t)).catch(()=>t):t)).then(e=>{if(n.signal.aborted)return;let i=this.#ae((0,a.peek)(t.source),e);(0,a.tick)(),i.src||this.#M.notify("error",{message:"Failed to load resource.",code:4})}),()=>n.abort()}(0,a.tick)()}#ae(t,e){let i={src:"",type:""},s=null,n=new a.DOMEvent("sources-change",{detail:{sources:e}}),h=this.#s1(),{started:o,paused:l,currentTime:d,quality:u,savedState:c}=this.#M.$state;for(let t of e){let e=h.find(e=>e.canPlay(t));if(e){i=t,s=e;break}}if(r(i)){let t=u(),s=e.find(e=>e.src===t?.src);(0,a.peek)(o)?c.set({paused:(0,a.peek)(l),currentTime:(0,a.peek)(d)}):c.set(null),s&&(i=s,n=new a.DOMEvent("quality-change",{detail:{quality:t}}))}return e4(t,i)||this.#s5(i,s,n),s!==(0,a.peek)(this.#s3)&&this.#s4(s,n),i}#s5(t,e,i){this.#M.notify("source-change",t,i),this.#M.notify("media-type-change",e?.mediaType(t)||"unknown",i)}#s4(t,e){this.#M.$providerSetup.set(!1),this.#M.notify("provider-change",null,e),t&&(0,a.peek)(()=>t.preconnect?.(this.#M)),this.#s3.set(t),this.#M.notify("provider-loader-change",t,e)}#s6(){let t=this.#M.$provider();if(!(!t||(0,a.peek)(this.#M.$providerSetup))){if(this.#M.$state.canLoad()){(0,a.scoped)(()=>t.setup(),t.scope),this.#M.$providerSetup.set(!0);return}(0,a.peek)(()=>t.preconnect?.())}}#s8(){if(!this.#M.$providerSetup())return;let t=this.#M.$provider(),e=this.#M.$state.source(),i=(0,a.peek)(this.#M.$state.crossOrigin),s=(0,a.peek)(this.#M.$props.preferNativeHLS);if(!e4(t?.currentSrc,e)){if(this.#M.$state.canLoad()){let n=new AbortController;return L(e)?(s||!w())&&(function t(e,i){return fetch(e,i).then(t=>t.text()).then(s=>{let a=function(t){let e=t.match(/#EXT-X-STREAM-INF:[^\n]+(\n[^\n]+)*/g);return e?e[0].split("\n")[1].trim():null}(s);if(a)return t(/^https?:/.test(a)?a:new URL(a,e).href,i);let n=/EXT-X-PLAYLIST-TYPE:\s*VOD/.test(s)?"on-demand":"live";return"live"===n&&function(t){for(let e of t.split("\n"))if(e.startsWith("#EXT-X-TARGETDURATION")){let t=parseFloat(e.split(":")[1]);if(!isNaN(t))return t}return -1}(s)>=10&&(/#EXT-X-DVR-ENABLED:\s*true/.test(s)||s.includes("#EXT-X-DISCONTINUITY"))?"live:dvr":n})})(e.src,{credentials:K(i),signal:n.signal}).then(t=>{this.#M.notify("stream-type-change",t)}).catch(a.noop):I(e)?fetch(e.src,{credentials:K(i),signal:n.signal}).then(t=>t.text()).then(t=>/type="static"/.test(t)?"on-demand":"live").then(t=>{this.#M.notify("stream-type-change",t)}).catch(a.noop):this.#M.notify("stream-type-change","on-demand"),(0,a.peek)(()=>{let i=(0,a.peek)(this.#M.$state.preload);return t?.loadSource(e,i).catch(t=>{})}),()=>n.abort()}try{(0,a.isString)(e.src)&&F(new URL(e.src).origin)}catch(t){}}}#at(){let t=this.#s3(),{providedPoster:e,source:i,canLoadPoster:s}=this.#M.$state;if(!t||!t.loadPoster||!i()||!s()||e())return;let n=new AbortController,r=new a.DOMEvent("source-change",{detail:i});return t.loadPoster(i(),this.#M,n).then(t=>{this.#M.notify("poster-change",t||"",r)}).catch(()=>{this.#M.notify("poster-change","",r)}),()=>{n.abort()}}}function e3(t){return((0,a.isArray)(t)?t:[t]).map(t=>(0,a.isString)(t)?{src:t,type:e5(t)}:{...t,type:e5(t.src,t.type)})}function e5(t,e){if((0,a.isString)(e)&&e.length)return e;if((0,a.isString)(t)&&e1.has(t))return e1.get(t);if(!e&&L({src:t,type:""}))return"application/x-mpegurl";if(!e&&I({src:t,type:""}
1))return"application/dash+xml";if(!(0,a.isString)(t)||t.startsWith("blob:"))return"video/object";if(t.includes("youtube")||t.includes("youtu.be"))return"video/youtube";if(t.includes("vimeo")&&!t.includes("progressive_redirect")&&!t.includes(".m3u8"))return"video/vimeo";return"?"}function e4(t,e){return t?.src===e?.src&&t?.type===e?.type}class e9{#ai;#M;#as=[];constructor(t,e){this.#ai=t,this.#M=e,(0,a.effect)(this.#aa.bind(this))}#aa(){let t=this.#ai();for(let e of this.#as)if(!t.some(t=>t.id===e.id)){let t=e.id&&this.#M.textTracks.getById(e.id);t&&this.#M.textTracks.remove(t)}for(let e of t){let t=e.id||X.createId(e);this.#M.textTracks.getById(t)||(e.id=t,this.#M.textTracks.add(e))}this.#as=t}}class e7 extends a.Component{static props={loaders:[]};static state=new a.State({loader:null});#M;#an;#s2=(0,a.signal)([]);#ai=(0,a.signal)([]);#s3=null;onSetup(){this.#M=tn(),this.#an=new e2(this.#s2,this.#M,this.$state.loader,this.$props.loaders())}onAttach(t){t.setAttribute("data-media-provider","")}onConnect(t){this.#an.connect(),new e9(this.#ai,this.#M);let e=new ResizeObserver((0,a.animationFrameThrottle)(this.#sW.bind(this)));e.observe(t);let i=new MutationObserver(this.#ar.bind(this));i.observe(t,{attributes:!0,childList:!0}),this.#sW(),this.#ar(),(0,a.onDispose)(()=>{e.disconnect(),i.disconnect()})}#ah=-1;load(t){t?.setAttribute("aria-hidden","true"),window.cancelAnimationFrame(this.#ah),this.#ah=requestAnimationFrame(()=>this.#ao(t)),(0,a.onDispose)(()=>{window.cancelAnimationFrame(this.#ah)})}#ao(t){if(!this.scope)return;let e=this.$state.loader(),{$provider:i}=this.#M;!(this.#s3===e&&e?.target===t&&(0,a.peek)(i))&&(this.#al(),this.#s3=e,e&&(e.target=t||null),e&&t&&e.load(this.#M).then(t=>{this.scope&&(0,a.peek)(this.$state.loader)===e&&this.#M.notify("provider-change",t)}))}onDestroy(){this.#s3=null,this.#al()}#al(){this.#M?.notify("provider-change",null)}#sW(){if(!this.el)return;let{player:t,$state:e}=this.#M,i=this.el.offsetWidth,s=this.el.offsetHeight;t&&(e.mediaWidth.set(i),e.mediaHeight.set(s),t.el&&((0,a.setStyle)(t.el,"--media-width",i+"px"),(0,a.setStyle)(t.el,"--media-height",s+"px")))}#ar(){let t=[],e=[];for(let i of this.el.children)if(!i.hasAttribute("data-vds")){if(i instanceof HTMLSourceElement){let e={id:i.id,src:i.src,type:i.type};for(let t of["id","src","width","height","bitrate","codec"]){let s=i.getAttribute(`data-${t}`);(0,a.isString)(s)&&(e[t]=/id|src|codec/.test(t)?s:Number(s))}t.push(e)}else if(i instanceof HTMLTrackElement){let t={src:i.src,kind:i.track.kind,language:i.srclang,label:i.label,default:i.default,type:i.getAttribute("data-type")};e.push({id:i.id||X.createId(t),...t})}}this.#s2.set(t),this.#ai.set(e),(0,a.tick)()}}let e6=e7.prototype;(0,a.method)(e6,"load");class e8 extends a.Component{static props={translations:null};static state=new a.State({label:null,busy:!1});#M;#ad=!1;onSetup(){this.#M=tn()}onAttach(t){t.style.display="contents"}onConnect(t){t.setAttribute("data-media-announcer",""),tx(t,"role","status"),tx(t,"aria-live","polite");let{busy:e}=this.$state;this.setAttributes({"aria-busy":()=>e()?"true":null}),this.#ad=!0,(0,a.effect)(this.#tv.bind(this)),(0,a.effect)(this.#sF.bind(this)),(0,a.effect)(this.#au.bind(this)),(0,a.effect)(this.#ac.bind(this)),(0,a.effect)(this.#ap.bind(this)),(0,a.effect)(this.#am.bind(this)),(0,a.effect)(this.#ag.bind(this)),(0,a.tick)(),this.#ad=!1}#tv(){let{paused:t}=this.#M.$state;this.#af(t()?"Pause":"Play")}#ac(){let{fullscreen:t}=this.#M.$state;this.#af(t()?"Enter Fullscreen":"Exit Fullscreen")}#ap(){let{pictureInPicture:t}=this.#M.$state;this.#af(t()?"Enter PiP":"Exit PiP")}#au(){let{textTrack:t}=this.#M.$state;this.#af(t()?"Closed-Captions On":"Closed-Captions Off")}#sF(){let{muted:t,volume:e,audioGain:i}=this.#M.$state;this.#af(t()||0===e()?"Mute":`${Math.round(e()*(i()??1)*100)}% ${this.#ay("Volume")}`)}#ab=-1;#av=-1;#am(){let{seeking:t,currentTime:e}=this.#M.$state,i=t();this.#ab>0?(window.clearTimeout(this.#av),this.#av=window.setTimeout(()=>{if(!this.scope)return;let t=(0,a.peek)(e),i=Math.abs(t-this.#ab);if(i>=1){let e=t>=this.#ab,s=eD(i);this.#af(`${this.#ay(e?"Seek Forward":"Seek Backward")} ${s}`)}this.#ab=-1,this.#av=-1},300)):i&&(this.#ab=(0,a.peek)(e))}#ay(t){let{translations:e}=this.$props;return e?.()?.[t||""]??t}#ag(){let{label:t,busy:e}=this.$state,i=this.#ay(t());if(this.#ad)return;e.set(!0);let s=window.setTimeout(()=>void e.set(!1),150);return this.el&&(0,a.setAttribute)(this.el,"aria-label",i),(0,a.isString)(i)&&this.dispatch("change",{detail:i}),()=>window.clearTimeout(s)}#af(t){let{label:e}=this.$state;e.set(t)}}class it extends a.Component{static props={hideDelay:2e3,hideOnMouseLeave:!1};#M;onSetup(){this.#M=tn(),(0,a.effect)(this.#aw.bind(this))}onAttach(t){let{pictureInPicture:e,fullscreen:i}=this.#M.$state;(0,a.setStyle)(t,"pointer-events","none"),tx(t,"role","group"),this.setAttributes({"data-visible":this.#ak.bind(this),"data-fullscreen":i,"data-pip":e}),(0,a.effect)(()=>{this.dispatch("change",{detail:this.#ak()})}),(0,a.effect)(this.#a$.bind(this)),(0,a.effect)(()=>{let e=i();for(let i of["top","right","bottom","left"])(0,a.setStyle)(t,`padding-${i}`,e&&`env(safe-area-inset-${i})`)})}#a$(){if(!this.el)return;let{nativeControls:t}=this.#M.$state,e=t();(0,a.setAttribute)(this.el,"aria-hidden",e?"true":null),(0,a.setStyle)(this.el,"display",e?"none":null)}#aw(){let{controls:t}=this.#M.player,{hideDelay:e,hideOnMouseLeave:i}=this.$props;t.defaultDelay=2e3===e()?this.#M.$props.controlsDelay():e(),t.hideOnMouseLeave=i()}#ak(){let{controlsVisible:t}=this.#M.$state;return t()}}class ie extends a.Component{onAttach(t){t.style.pointerEvents||(0,a.setStyle)(t,"pointer-events","auto")}}class ii extends a.ViewController{#aT;constructor(t){super(),this.#aT=t,(0,a.effect)(this.#ax.bind(this))}onDestroy(){this.#aS?.(),this.#aS=null}#ax(){let t=this.#aT.trigger();if(!t){this.hide();return}let e=this.show.bind(this),i=this.hide.bind(this);this.#aT.listen(t,e,i)}#aC=-1;#aP=-1;#aS=null;show(t){this.#aE(),window.cancelAnimationFrame(this.#aP),this.#aP=-1,this.#aS?.(),this.#aS=null,this.#aC=window.setTimeout(()=>{this.#aC=-1;let e=this.#aT.content();e&&e.style.removeProperty("display"),(0,a.peek)(()=>
1this.#aT.onChange(!0,t))},this.#aT.showDelay?.()??0)}hide(t){this.#aE(),(0,a.peek)(()=>this.#aT.onChange(!1,t)),this.#aP=requestAnimationFrame(()=>{this.#aE(),this.#aP=-1;let t=this.#aT.content();if(t){let e=()=>{t.style.display="none",this.#aS=null};if("none"!==getComputedStyle(t).animationName){this.#aS?.();let i=(0,a.listenEvent)(t,"animationend",e,{once:!0});this.#aS=i}else e()}})}#aE(){window.clearTimeout(this.#aC),this.#aC=-1}}let is=(0,a.createContext)(),ia=0;class ir extends a.Component{static props={showDelay:700};#tQ=`media-tooltip-${++ia}`;#aA=(0,a.signal)(null);#aq=(0,a.signal)(null);#aM=(0,a.signal)(!1);constructor(){super(),new eX;let{showDelay:t}=this.$props;new ii({trigger:this.#aA,content:this.#aq,showDelay:t,listen(t,e,i){(0,a.effect)(()=>{e_()&&(0,a.listenEvent)(t,"focus",e),(0,a.listenEvent)(t,"blur",i)}),new a.EventsController(t).add("touchstart",t=>t.preventDefault(),{passive:!1}).add("mouseenter",e).add("mouseleave",i)},onChange:this.#aD.bind(this)})}onAttach(t){t.style.setProperty("display","contents")}onSetup(){(0,a.provideContext)(is,{trigger:this.#aA,content:this.#aq,showing:this.#aM,attachTrigger:this.#aR.bind(this),detachTrigger:this.#aL.bind(this),attachContent:this.#aI.bind(this),detachContent:this.#aV.bind(this)})}#aR(t){this.#aA.set(t);let e=t.getAttribute("data-media-tooltip");e&&this.el?.setAttribute(`data-media-${e}-tooltip`,""),(0,a.setAttribute)(t,"data-describedby",this.#tQ)}#aL(t){t.removeAttribute("data-describedby"),t.removeAttribute("aria-describedby"),this.#aA.set(null)}#aI(t){t.setAttribute("id",this.#tQ),t.style.display="none",tx(t,"role","tooltip"),this.#aq.set(t)}#aV(t){t.removeAttribute("id"),t.removeAttribute("role"),this.#aq.set(null)}#aD(t){let e=this.#aA(),i=this.#aq();for(let s of(e&&(0,a.setAttribute)(e,"aria-describedby",t?this.#tQ:null),[this.el,e,i]))s&&(0,a.setAttribute)(s,"data-visible",t);this.#aM.set(t)}}class ih extends a.Component{constructor(){super(),new eX}onConnect(t){(0,a.onDispose)(tM(()=>{if(!this.connectScope)return;
1this.#aO();let t=(0,a.useContext)(is);(0,a.onDispose)(()=>{let e=this.#aF();e&&t.detachTrigger(e)})}))}#aO(){let t=this.#aF(),e=(0,a.useContext)(is);t&&e.attachTrigger(t)}#aF(){let t=this.el.firstElementChild;return t?.localName==="button"||t?.getAttribute("role")==="button"?t:this.el}}class io extends a.Component{static props={placement:"top center",offset:0,alignOffset:0};constructor(){super(),new eX;let{placement:t}=this.$props;this.setAttributes({"data-placement":t})}onAttach(t){this.#aO(t),Object.assign(t.style,{position:"absolute",top:0,left:0,width:"max-content"})}onConnect(t){this.#aO(t);let e=(0,a.useContext)(is);(0,a.onDispose)(()=>e.detachContent(t)),(0,a.onDispose)(tM(()=>{this.connectScope&&(0,a.effect)(this.#aN.bind(this))}))}#aO(t){(0,a.useContext)(is).attachContent(t)}#aN(){let{showing:t}=(0,a.useContext)(is);if(!t())return;let{placement:e,offset:i,alignOffset:s}=this.$props;return tD(this.el,this.#aU(),e(),{offsetVarName:"media-tooltip",xOffset:s(),yOffset:i()})}#aU(){return(0,a.useContext)(is).trigger()}}class il extends a.ViewController{static props={disabled:!1};#aT;constructor(t){super(),this.#aT=t,new eX,t.keyShortcut&&new tj(t.keyShortcut)}onSetup(){let{disabled:t}=this.$props;this.setAttributes({"data-pressed":this.#aT.isPresssed,"aria-pressed":this.#aK.bind(this),"aria-disabled":()=>t()?"true":null})}onAttach(t){tx(t,"tabindex","0"),tx(t,"role","button"),tx(t,"type","button")}onConnect(t){let e=tA(t,this.#aG.bind(this));for(let t of["click","touchstart"])e.add(t,this.#aB.bind(this),{passive:!0})}#aK(){return(0,a.ariaBool)(this.#aT.isPresssed())}#aQ(t){(0,a.isWriteSignal)(this.#aT.isPresssed)&&this.#aT.isPresssed.set(t=>!t)}#aG(t){if(this.$props.disabled()||this.el.hasAttribute("data-disabled")){t.preventDefault(),t.stopImmediatePropagation();return}t.preventDefault(),(this.#aT.onPress??this.#aQ).call(this,t)}#aB(t){this.$props.disabled()&&(t.preventDefault(),t.stopImmediatePropagation())}}class id extends a.Component{static props={disabled:!1,defaultPressed:!1};#aW=(0,a.signal)(!1);get pressed(){return this.#aW()}constructor(){super(),new il({isPresssed:this.#aW})}}let iu=id.prototype;function ic(t){return()=>t()?"true":"false"}(0,a.prop)(iu,"pressed");class ip extends a.Component{static props=il.props;#M;constructor(){super(),new il({isPresssed:this.#aH.bind(this),onPress:this.#aj.bind(this)})}onSetup(){this.#M=tn();let{canAirPlay:t,isAirPlayConnected:e}=this.#M.$state;this.setAttributes({"data-active":e,"data-supported":t,"data-state":this.#az.bind(this),"aria-hidden":ic(()=>!t())})}onAttach(t){t.setAttribute("data-media-tooltip","airplay"),tS(t,this.#a_.bind(this))}#aj(t){this.#M.remote.requestAirPlay(t)}#aH(){let{remotePlaybackType:t,remotePlaybackState:e}=this.#M.$state;return"airplay"===t()&&"disconnected"!==e()}#az(){let{remotePlaybackType:t,remotePlaybackState:e}=this.#M.$state;return"airplay"===t()&&e()}#a_(){let{remotePlaybackState:t}=this.#M.$state;return`AirPlay ${t()}`}}class im extends a.Component{static props=il.props;#M;constructor(){super(),new il({isPresssed:this.#aH.bind(this),onPress:this.#aj.bind(this)})}onSetup(){this.#M=tn();let{canGoogleCast:t,isGoogleCastConnected:e}=this.#M.$state;this.setAttributes({"data-active":e,"data-supported":t,"data-state":this.#az.bind(this),"aria-hidden":ic(()=>!t())})}onAttach(t){t.setAttribute("data-media-tooltip","google-cast"),tS(t,this.#a_.bind(this))}#aj(t){this.#M.remote.requestGoogleCast(t)}#aH(){let{remotePlaybackType:t,remotePlaybackState:e}=this.#M.$state;return"google-cast"===t()&&"disconnected"!==e()}#az(){let{remotePlaybackType:t,remotePlaybackState:e}=this.#M.$state;return"google-cast"===t()&&e()}#a_(){let{remotePlaybackState:t}=this.#M.$state;return`Google Cast ${t()}`}}class ig extends a.Component{static props=il.props;#M;constructor(){super(),new il({isPresssed:this.#aH.bind(this),keyShortcut:"togglePaused",onPress:this.#aj.bind(this)})}onSetup(){this.#M=tn();let{paused:t,ended:e}=this.#M.$state;this.setAttributes({"data-paused":t,"data-ended":e})}onAttach(t){t.setAttribute("data-media-tooltip","play"),tS(t,"Play")}#aj(t){let e=this.#M.remote;this.#aH()?e.pause(t):e.play(t)}#aH(){let{paused:t}=this.#M.$state;return!t()}}class iy extends a.Component{static props=il.props;#M;constructor(){super(),new il({isPresssed:this.#aH.bind(this),keyShortcut:"toggleCaptions",onPress:this.#aj.bind(this)})}onSetup(){this.#M=tn(),this.setAttributes({"data-active":this.#aH.bind(this),"data-supported":()=>!this.#aX(),"aria-hidden":ic(this.#aX.bind(this))})}
1onAttach(t){t.setAttribute("data-media-tooltip","caption"),tS(t,"Captions")}#aj(t){this.#M.remote.toggleCaptions(t)}#aH(){let{textTrack:t}=this.#M.$state,e=t();return!!e&&J(e)}#aX(){let{hasCaptions:t}=this.#M.$state;return!t()}}class ib extends a.Component{static props={...il.props,target:"prefer-media"};#M;constructor(){super(),new il({isPresssed:this.#aH.bind(this),keyShortcut:"toggleFullscreen",onPress:this.#aj.bind(this)})}onSetup(){this.#M=tn();let{fullscreen:t}=this.#M.$state,e=this.#aY.bind(this);this.setAttributes({"data-active":t,"data-supported":e,"aria-hidden":ic(()=>!e())})}onAttach(t){t.setAttribute("data-media-tooltip","fullscreen"),tS(t,"Fullscreen")}#aj(t){let e=this.#M.remote,i=this.$props.target();this.#aH()?e.exitFullscreen(i,t):e.enterFullscreen(i,t)}#aH(){let{fullscreen:t}=this.#M.$state;return t()}#aY(){let{canFullscreen:t}=this.#M.$state;return t()}}class iv extends a.Component{static props=il.props;#M;constructor(){super(),new il({isPresssed:this.#aH.bind(this),keyShortcut:"toggleMuted",onPress:this.#aj.bind(this)})}onSetup(){this.#M=tn(),this.setAttributes({"data-muted":this.#aH.bind(this),"data-state":this.#az.bind(this)})}onAttach(t){t.setAttribute("data-media-mute-button",""),t.setAttribute("data-media-tooltip","mute"),tS(t,"Mute")}#aj(t){let e=this.#M.remote;this.#aH()?e.unmute(t):e.mute(t)}#aH(){let{muted:t,volume:e}=this.#M.$state;return t()||0===e()}#az(){let{muted:t,volume:e}=this.#M.$state,i=e();return t()||0===i?"muted":i>=.5?"high":i<.5?"low":void 0}}class iw extends a.Component{static props=il.props;#M;constructor(){super(),new il({isPresssed:this.#aH.bind(this),keyShortcut:"togglePictureInPicture",onPress:this.#aj.bind(this)})}onSetup(){this.#M=tn();let{pictureInPicture:t}=this.#M.$state,e=this.#aY.bind(this);this.setAttributes({"data-active":t,"data-supported":e,"aria-hidden":ic(()=>!e())})}onAttach(t){t.setAttribute("data-media-tooltip","pip"),tS(t,"PiP")}#aj(t){let e=this.#M.remote;this.#aH()?e.exitPictureInPicture(t):e.enterPictureInPicture(t)}#aH(){let{pictureInPicture:t}=this.#M.$state;return t()}#aY(){let{canPictureInPicture:t}=this.#M.$state;return t()}}class ik extends a.Component{static props={disabled:!1,seconds:30};#M;constructor(){super(),new eX}onSetup(){this.#M=tn();let{seeking:t}=this.#M.$state,{seconds:e}=this.$props,i=this.#aY.bind(this);this.setAttributes({seconds:e,"data-seeking":t,"data-supported":i,"aria-hidden":ic(()=>!i())})}onAttach(t){tx(t,"tabindex","0"),tx(t,"role","button"),tx(t,"type","button"),t.setAttribute("data-media-tooltip","seek"),tS(t,this.#a_.bind(this))}onConnect(t){tA(t,this.#aj.bind(this))}#aY(){let{canSeek:t}=this.#M.$state;return t()}#a_(){let{seconds:t}=this.$props;return`Seek ${t()>0?"forward":"backward"} ${t()} seconds`}#aj(t){let{seconds:e,disabled:i}=this.$props;if(i())return;let{currentTime:s}=this.#M.$state,a=s()+e();this.#M.remote.seek(a,t)}}class i$ extends a.Component{static props={disabled:!1};#M;constructor(){super(),new eX}onSetup(){this.#M=tn();let{disabled:t}=this.$props,{live:e,liveEdge:i}=this.#M.$state,s=()=>!e();this.setAttributes({"data-edge":i,"data-hidden":s,"aria-disabled":ic(()=>t()||i()),"aria-hidden":ic(s)})}onAttach(t){tx(t,"tabindex","0"),tx(t,"role","button"),tx(t,"type","button"),t.setAttribute("data-media-tooltip","live")}onConnect(t){tA(t,this.#aj.bind(this))}#aj(t){let{disabled:e}=this.$props,{liveEdge:i}=this.#M.$state;e()||i()||this.#M.remote.seekToLiveEdge(t)}}let iT=new a.State({min:0,max:100,value:0,step:1,pointerValue:0,focused:!1,dragging:!1,pointing:!1,hidden:!1,get active(){return this.dragging||this.focused||this.pointing},get fillRate(){return ix(this.min,this.max,this.value)},get fillPercent(){return 100*this.fillRate},get pointerRate(){return ix(this.min,this.max,this.pointerValue)},get pointerPercent(){return 100*this.pointerRate}});function ix(t,e,i){let s=e-t;return s>0?(i-t)/s:0}class iS extends a.ViewController{#ty;#aJ;constructor(t){super(),this.#ty=t}onConnect(t){this.#aJ=new IntersectionObserver(t=>{this.#ty.callback?.(t,this.#aJ)},this.#ty),this.#aJ.observe(t),(0,a.onDispose)(this.#tA.bind(this))}#tA(){this.#aJ?.disconnect(),this.#aJ=void 0}}let iC=(0,a.createContext)(),iP=(0,a.createContext)(),iE={Left:-1,ArrowLeft:-1,Up:1,ArrowUp:1,Right:1,ArrowRight:1,Down:-1,ArrowDown:-1};class iA extends a.ViewController{#aT;#M;#aJ;constructor(t,e){super(),this.#aT=t,this.#M=e}onSetup(){(0,a.hasProvidedContext)(iP)&&(this.#aJ=(0,a.useContext)(iP))}onConnect(t){(0,a.effect)(this.#aZ.bind(this,t)),(0,a.effect)(this.#a0.bind(this,t)),this.#aT.swipeGesture&&(0,a.effect)(this.#a1.bind(this))}#a1(){let{pointer:t}=this.#M.$state;if("coarse"!==t()||!this.#aT.swipeGesture()){this.#tj=null;return}this.#tj=this.#M.player.el?.querySelector("media-provider,[data-media-provider]"),this.#tj&&new a.EventsController(this.#tj).add("touchstart",this.#a2.bind(this),{passive:!0}).add("touchmove",this.#a3.bind(this),{passive:!1})}#tj=null;#a5=null;#a4=null;#a2(t){this.#a5=t.touches[0]}#a3(t){if((0,a.isNull)(this.#a5)||tq(t))return;let e=t.touches[0],i=e.clientX-this.#a5.clientX,s=e.clientY-this.#a5.clientY,n=this.$state.dragging();!n&&Math.abs(s)>5||n||(t.preventDefault(),Math.abs(i)>20&&(this.#a5=e,this.#a4=this.$state.value(),this.#a9(this.#a4,t)))}#aZ(t){let{hidden:e}=this.$props;(0,a.listenEvent)(t,"focus",this.#sM.bind(this)),e()||this.#aT.isDisabled()||new a.EventsController(t).add("keyup",this.#Z.bind(this)).add("keydown",this.#tt.bind(this)).add("pointerenter",this.#sA.bind(this)).add("pointermove",this.#a
17.bind(this)).add("pointerleave",this.#sq.bind(this)).add("pointerdown",this.#a6.bind(this))}#a0(t){!this.#aT.isDisabled()&&this.$state.dragging()&&new a.EventsController(document).add("pointerup",this.#a8.bind(this),{capture:!0}).add("pointermove",this.#nt.bind(this)).add("touchmove",this.#ne.bind(this),{passive:!1})}#sM(){this.#ni(this.$state.value())}#ns(t,e){let{value:i,min:s,max:a,dragging:n}=this.$state,r=Math.max(s(),Math.min(t,a()));i.set(r);let h=this.createEvent("value-change",{detail:r,trigger:e});if(this.dispatch(h),this.#aT.onValueChange?.(h),n()){let t=this.createEvent("drag-value-change",{detail:r,trigger:e});this.dispatch(t),this.#aT.onDragValueChange?.(t)}}#ni(t,e){let{pointerValue:i,dragging:s}=this.$state;i.set(t),this.dispatch("pointer-value-change",{detail:t,trigger:e}),s()&&this.#ns(t,e)}#na(t){var e,i,s,n;let r,h=this.el.getBoundingClientRect(),{min:o,max:l}=this.$state;if("vertical"===this.$props.orientation()){let{bottom:e,height:i}=h;r=(e-t.clientY)/i}else if(this.#a5&&(0,a.isNumber)(this.#a4)){let{width:e}=this.#tj.getBoundingClientRect(),i=(t.clientX-this.#a5.clientX)/e,s=l()-o(),a=s*Math.abs(i);r=(i<0?this.#a4-a:this.#a4+a)/s}else{let{left:e,width:i}=h;r=(t.clientX-e)/i}return Math.max(o(),Math.min(l(),this.#aT.roundValue((e=o(),i=l(),s=r,e+(n=this.#aT.getStep())*Math.round((i-e)*tk(0,s,1)/n)))))}#sA(t){this.$state.pointing.set(!0)}#a7(t){let{dragging:e}=this.$state;e()||this.#ni(this.#na(t),t)}#sq(t){this.$state.pointing.set(!1)}#a6(t){if(0!==t.button)return;let e=this.#na(t);this.#a9(e,t),this.#ni(e,t)}#a9(t,e){let{dragging:i}=this.$state;if(i())return;i.set(!0),this.#M.remote.pauseControls(e);let s=this.createEvent("drag-start",{detail:t,trigger:e});this.dispatch(s),this.#aT.onDragStart?.(s),this.#aJ?.onDragStart?.()}#nn(t,e){let{dragging:i}=this.$state;if(!i())return;i.set(!1),this.#M.remote.resumeControls(e);let s=this.createEvent("drag-end",{detail:t,trigger:e});this.dispatch(s),this.#aT.onDragEnd?.(s),this.#a5=null,this.#a4=null,this.#aJ?.onDragEnd?.()}#nr;#nh=!1;#tt(t){if(!Object.keys(iE).includes(t.key))return;let{key:e}=t,i=this.#no(t);if(!(0,a.isNull)(i)){this.#ni(i,t),this.#ns(i,t);return}let s=this.#nl(t);this.#nh||(this.#nh=e===this.#nr,!this.$state.dragging()&&this.#nh&&this.#a9(s,t)),this.#ni(s,t),this.#nr=e}#Z(t){if(!Object.keys(iE).includes(t.key)||!(0,a.isNull)(this.#no(t)))return;let e=this.#nh?this.$state.pointerValue():this.#nl(t);this.#ns(e,t),this.#nn(e,t),this.#nr="",this.#nh=!1}#no(t){let e=t.key,{min:i,max:s}=this.$state;return"Home"===e||"PageUp"===e?i():"End"===e||"PageDown"===e?s():!t.metaKey&&/^[0-9]$/.test(e)?(s()-i())/10*Number(e):null}#nl(t){let{key:e,shiftKey:i}=t;t.preventDefault(),t.stopPropagation();let{shiftKeyMultiplier:s}=this.$props,{min:a,max:n,value:r,pointerValue:h}=this.$state,o=this.#aT.getStep(),l=this.#aT.getKeyStep(),d=i?l*s():l,u=Number(iE[e]),c=this.#nh?h():this.#aT.getValue?.()??r();return Math.max(a(),Math.min(n(),Number(((c+d*u)/o*o).toFixed(3))))}#a8(t){if(0!==t.button)return;t.preventDefault(),t.stopImmediatePropagation();let e=this.#na(t);this.#ni(e,t),this.#nn(e,t)}#ne(t){t.preventDefault()}#nt=(0,a.functionThrottle)(t=>{this.#ni(this.#na(t),t)},20,{leading:!0})}let iq=(0,a.createContext)(()=>({}));class iM extends a.ViewController{static props={hidden:!1,disabled:!1,step:1,keyStep:1,orientation:"horizontal",shiftKeyMultiplier:5};#M;#aT;#nd=(0,a.signal)(!0);#nu=(0,a.signal)(!0);constructor(t){super(),this.#aT=t}onSetup(){this.#M=tn();let t=new eX;t.attach(this),this.$state.focused=t.focused.bind(t),(0,a.hasProvidedContext)(iq)||(0,a.provideContext)(iq,{default:"value"}),(0,a.provideContext)(iC,{orientation:this.$props.orientation,disabled:this.#aT.isDisabled,preview:(0,a.signal)(null)}),(0,a.effect)(this.#nc.bind(this)),(0,a.effect)(this.#np.bind(this)),(0,a.effect)(this.#nm.bind(this)),this.#ng(),new iA(this.#aT,this.#M).attach(this),new iS({callback:this.#nf.bind(this)}).attach(this)}onAttach(t){tx(t,"role","slider"),tx(t,"tabindex","0"),tx(t,"autocomplete","off"),h?this.#ny():(0,a.effect)(this.#ny.bind(this))}onConnect(t){(0,a.onDispose)(tP(t,this.#nd.set)),(0,a.effect)(this.#nb.bind(this))}#nf(t){this.#nu.set(t[0].isIntersecting)}#nb(){let{hidden:t}=this.$props;
1this.$state.hidden.set(t()||!this.#nd()||!this.#nu.bind(this))}#nc(){let{dragging:t,value:e,min:i,max:s}=this.$state;if(!(0,a.peek)(t)){var n,r;e.set((n=i(),r=s(),tk(n,tv(e(),tw(this.#aT.getStep())),r)))}}#np(){this.$state.step.set(this.#aT.getStep())}#nm(){if(!this.#aT.isDisabled())return;let{dragging:t,pointing:e}=this.$state;t.set(!1),e.set(!1)}#nv(){return(0,a.ariaBool)(this.#aT.isDisabled())}#ng(){let{orientation:t}=this.$props,{dragging:e,active:i,pointing:s}=this.$state;this.setAttributes({"data-dragging":e,"data-pointing":s,"data-active":i,"aria-disabled":this.#nv.bind(this),"aria-valuemin":this.#aT.aria.valueMin??this.$state.min,"aria-valuemax":this.#aT.aria.valueMax??this.$state.max,"aria-valuenow":this.#aT.aria.valueNow,"aria-valuetext":this.#aT.aria.valueText,"aria-orientation":t})}#ny(){let{fillPercent:t,pointerPercent:e}=this.$state;this.#nw(tv(t(),3),tv(e(),3))}#nw=(0,a.animationFrameThrottle)((t,e)=>{this.el?.style.setProperty("--slider-fill",t+"%"),this.el?.style.setProperty("--slider-pointer",e+"%")})}class iD extends a.Component{static props={...iM.props,min:0,max:100,value:0};static state=iT;constructor(){super(),new iM({getStep:this.$props.step,getKeyStep:this.$props.keyStep,roundValue:Math.round,isDisabled:this.$props.disabled,aria:{valueNow:this.#nk.bind(this),valueText:this.#n$.bind(this)}})}onSetup(){(0,a.effect)(this.#nc.bind(this)),(0,a.effect)(this.#nT.bind(this))}#nk(){let{value:t}=this.$state;return Math.round(t())}#n$(){let{value:t,max:e}=this.$state;return tv(t()/e()*100,2)+"%"}#nc(){let{value:t}=this.$props;this.$state.value.set(t())}#nT(){let{min:t,max:e}=this.$props;this.$state.min.set(t()),this.$state.max.set(e())}}let iR=new Map,iL=new Map;class iI{#M;#nx;#nS;$images=(0,a.signal)([]);static create(t,e){return new iI(t,e,tn())}constructor(t,e,i){this.#nx=t,this.#nS=e,this.#M=i,(0,a.effect)(this.#nC.bind(this))}#nC(){let{canLoad:t}=this.#M.$state;if(!t())return;let e=this.#nx();if(e){if((0,a.isString)(e)&&iR.has(e)){let t=iR.get(e);if(iR.delete(e),iR.set(e,t),iR.size>99){let t=iR.keys().next().value;iR.delete(t)}this.$images.set(iR.get(e))}else if((0,a.isString)(e)){let t=this.#nS(),s=e+"::"+t;if(!iL.has(s)){let n=new Promise(async(s,n)=>{try{let r=await fetch(e,{credentials:K(t)});if("application/json"===r.headers.get("content-type")){let t=await r.json();if((0,a.isArray)(t)){if(t[0]&&"text"in t[0])s(this.#nP(t));else{for(let e=0;e<t.length;e++){let i=t[e];ev((0,a.isObject)(i),!1),ev("url"in i&&(0,a.isString)(i.url),!1),ev("startTime"in i&&(0,a.isNumber)(i.startTime),!1)}s(t)}}else s(this.#nE(t));return}i.e(136).then(i.bind(i,70136)).then(async({parseResponse:t})=>{try{let{cues:e}=await t(r);s(this.#nP(e))}catch(t){n(t)}})}catch(t){n(t)}}).then(t=>(iR.set(s,t),t)).catch(t=>{this.#tE(e,t)}).finally(()=>{(0,a.isString)(s)&&iL.delete(s)});iL.set(s,n)}iL.get(s)?.then(t=>{this.$images.set(t||[])})}else if((0,a.isArray)(e))try{this.$images.set(this.#nA(e))}catch(t){this.#tE(e,t)}else try{this.$images.set(this.#nE(e))}catch(t){this.#tE(e,t)}return()=>{this.$images.set([])}}}#nA(t){let e=this.#nq();return t.map((t,i)=>(ev(t.url&&(0,a.isString)(t.url)),ev("startTime"in t&&(0,a.isNumber)(t.startTime)),{...t,url:(0,a.isString)(t.url)?this.#nM(t.url,e):t.url}))}#nE(t){ev((0,a.isString)(t.url)),ev((0,a.isArray)(t.tiles)&&t.tiles?.length);let e=new URL(t.url),i=[],s="tile_width"in t?t.tile_width:t.tileWidth,n="tile_height"in t?t.tile_height:t.tileHeight;for(let a of t.tiles)i.push({url:e,startTime:"start"in a?a.start:a.startTime,width:s,height:n,coords:{x:a.x,y:a.y}});return i}#nP(t){for(let e=0;e<t.length;e++){let i=t[e];ev("startTime"in i&&(0,a.isNumber)(i.startTime)),ev("text"in i&&(0,a.isString)(i.text))}let e=[],i=this.#nq();for(let s of t){let[t,n]=s.text.split("#"),r=this.#nD(n);e.push({url:this.#nM(t,i),startTime:s.startTime,endTime:s.endTime,width:r?.w,height:r?.h,coords:r&&(0,a.isNumber)(r.x)&&(0,a.isNumber)(r.y)?{x:r.x,y:r.y}:void 0})}return e}#nq(){let t=(0,a.peek)(this.#nx);return(0,a.isString)(t)&&/^https?:/.test(t)?t:location.href}#nM(t,e){return/^https?:/.test(t)?new URL(t):new URL(t,e)}#nD(t){if(!t)return{};let[e,i]=t.split("="),s=i?.split(","),a={};if(!e||!s)return null;for(let t=0;t<e.length;t++){let i=+s[t];isNaN(i)||(a[e[t]]=i)}return a}#tE(t,e){}}class iV extends a.Component{static props={src:null,time:0,crossOrigin:null};static state=new a.State({src:"",img:null,thumbnails:[],activeThumbn
1ail:null,crossOrigin:null,loading:!1,error:null,hidden:!1});media;#s3;#nR=[];onSetup(){this.media=tn(),this.#s3=iI.create(this.$props.src,this.$state.crossOrigin),this.#sm(),this.setAttributes({"data-loading":this.#nL.bind(this),"data-error":this.#nI.bind(this),"data-hidden":this.$state.hidden,"aria-hidden":ic(this.$state.hidden)})}onConnect(t){(0,a.effect)(this.#nV.bind(this)),(0,a.effect)(this.#nb.bind(this)),(0,a.effect)(this.#sm.bind(this)),(0,a.effect)(this.#et.bind(this)),(0,a.effect)(this.#nO.bind(this)),(0,a.effect)(this.#nF.bind(this))}#nV(){let t=this.$state.img();t&&new a.EventsController(t).add("load",this.#ii.bind(this)).add("error",this.#tE.bind(this))}#sm(){let{crossOrigin:t}=this.$props,{crossOrigin:e}=this.$state,{crossOrigin:i}=this.media.$state,s=null!==t()?t():i();e.set(!0===s?"anonymous":s)}#et(){let{src:t,loading:e,error:i}=this.$state;return t()&&(e.set(!0),i.set(null)),()=>{this.#nN(),e.set(!1),i.set(null)}}#ii(){let{loading:t,error:e}=this.$state;this.#nF(),t.set(!1),e.set(null)}#tE(t){let{loading:e,error:i}=this.$state;e.set(!1),i.set(t)}#nL(){let{loading:t,hidden:e}=this.$state;return!e()&&t()}#nI(){let{error:t}=this.$state;return!(0,a.isNull)(t())}#nb(){let{hidden:t}=this.$state,{duration:e}=this.media.$state,i=this.#s3.$images();t.set(this.#nI()||!Number.isFinite(e())||0===i.length)}getTime(){return this.$props.time()}#nO(){let t=this.#s3.$images();if(!t.length)return;let e=this.getTime(),{src:i,activeThumbnail:s}=this.$state,a=-1,n=null;for(let i=t.length-1;i>=0;i--){let s=t[i];if(e>=s.startTime&&(!s.endTime||e<s.endTime)){a=i;break}}t[a]&&(n=t[a]),s.set(n),i.set(n?.url.href||"")}#nF(){if(!this.scope||this.$state.hidden())return;let t=this.el,e=this.$state.img(),i=this.$state.activeThumbnail();if(!e||!i||!t)return;let s=i.width??e.naturalWidth,a=i?.height??e.naturalHeight,{maxWidth:n,maxHeight:r,minWidth:h,minHeight:o,width:l,height:d}=getComputedStyle(this.el);"100%"===h&&(h=parseFloat(l)+""),"100%"===o&&(o=parseFloat(d)+"");let u=Math.max(parseInt(h)/s,parseInt(o)/a),c=Math.min(Math.max(parseInt(h),parseInt(n))/s,Math.max(parseInt(o),parseInt(r))/a),p=!isNaN(c)&&c<1?c:u>1?u:1;this.#nU(t,"--thumbnail-width",`${s*p}px`),this.#nU(t,"--thumbnail-height",`${a*p}px`),this.#nU(t,"--thumbnail-aspect-ratio",String(tv(s/a,5))),this.#nU(e,"width",`${e.naturalWidth*p}px`),this.#nU(e,"height",`${e.naturalHeight*p}px`),this.#nU(e,"transform",i.coords?`translate(-${i.coords.x*p}px, -${i.coords.y*p}px)`:""),this.#nU(e,"max-width","none")}#nU(t,e,i){t.style.setProperty(e,i),this.#nR.push(()=>t.style.removeProperty(e))}#nN(){for(let t of this.#nR)t();this.#nR=[]}}class iO extends iV{#nK;onAttach(t){this.#nK=(0,a.useState)(iD.state)}getTime(){let{duration:t,clipStartTime:e}=this.media.$state;return e()+this.#nK.pointerRate()*t()}}class iF extends a.Component{static props={src:null,crossOrigin:null};static state=new a.State({video:null,src:null,crossOrigin:null,canPlay:!1,error:null,hidden:!1});#M;#nK;get video(){return this.$state.video()}onSetup(){this.#M=tn(),this.#nK=(0,a.useState)(iD.state),this.#sm(),this.setAttributes({"data-loading":this.#nL.bind(this),"data-hidden":this.$state.hidden,"data-error":this.#nI.bind(this),"aria-hidden":ic(this.$state.hidden)})}onAttach(t){(0,a.effect)(this.#nG.bind(this)),(0,a.effect)(this.#nB.bind(this)),(0,a.effect)(this.#sm.bind(this)),(0,a.effect)(this.#nb.bind(this)),(0,a.effect)(this.#nQ.bind(this)),(0,a.effect)(this.#nW.bind(this))}#nG(){let t=this.$state.video();t&&(t.readyState>=2&&this.#eh(),new a.EventsController(t).add("canplay",this.#eh.bind(this)).add("error",this.#tE.bind(this)))}#nB(){let{src:t}=this.$state,{canLoad:e}=this.#M.$state;t.set(e()?this.$props.src():null)}#sm(){let{crossOrigin:t}=this.$props,{crossOrigin:e}=this.$state,{crossOrigin:i}=this.#M.$state,s=null!==t()?t():i();e.set(!0===s?"anonymous":s)}#nL(){let{canPlay:t,hidden:e}=this.$state;return!t()&&!e()}#nI(){let{error:t}=this.$state;return!(0,a.isNull)(t)}#nb(){let{src:t,hidden:e}=this.$state,{canLoad:i,duration:s}=this.#M.$state;e.set(i()&&(!t()||this.#nI()||!Number.isFinite(s())))}#nQ(){let{src:t,canPlay:e,error:i}=this.$state;t(),e.set(!1),i.set(null)}#eh(t){let{canPlay:e,error:i}=this.$state;e.set(!0),i.set(null),this.dispatch("can-play",{trigger:t})}#tE(t){let{canPlay:e,error:i}=this.$state;e.set(!1),i.set(t),this.dispatch("error",{trigger:t})}#nW(){let{video:t,canPlay:e}=this.$state,{duration:i}=this.#M.$state,{pointerRate:s}=this.#nK,a=t();e()&&a&&Number.isFinite(i())&&Number.isFinite(s())&&(a.currentTime=s()*i())}}let iN=iF.prototype;(0,a.prop)(iN,"video");class iU extends a.Component{static props={type:"pointer",format:null,showH
1ours:!1,showMs:!1,padHours:null,padMinutes:null,decimalPlaces:2};#nH;#nj;#nK;onSetup(){this.#nK=(0,a.useState)(iD.state),this.#nH=(0,a.useContext)(iq),this.#nj=(0,a.computed)(this.getValueText.bind(this))}getValueText(){let{type:t,format:e,decimalPlaces:i,padHours:s,padMinutes:a,showHours:n,showMs:r}=this.$props,{value:h,pointerValue:o,min:l,max:d}=this.#nK,u=e?.()??this.#nH.default,c="current"===t()?h():o();if("percent"===u){let t=d()-l();return(this.#nH.percent??tv)(c/t*100,i())+"%"}return"time"===u?(this.#nH.time??eM)(c,{padHrs:s(),padMins:a(),showHrs:n(),showMs:r()}):(this.#nH.value?.(c)??c.toFixed(2))+""}}let iK=iU.prototype;(0,a.method)(iK,"getValueText");class iG extends a.Component{static props={offset:0,noClamp:!1};#nK;onSetup(){this.#nK=(0,a.useContext)(iC);let{active:t}=(0,a.useState)(iD.state);this.setAttributes({"data-visible":t})}onAttach(t){Object.assign(t.style,{position:"absolute",top:0,left:0,width:"max-content"})}onConnect(t){let{preview:e}=this.#nK;e.set(t),(0,a.onDispose)(()=>e.set(null)),(0,a.effect)(this.#nz.bind(this));let i=new ResizeObserver(this.#nz.bind(this));i.observe(t),(0,a.onDispose)(()=>i.disconnect())}#nz=(0,a.animationFrameThrottle)(()=>{let{disabled:t,orientation:e}=this.#nK;if(t())return;let i=this.el,{offset:s,noClamp:a}=this.$props;i&&function(t,{clamp:e,offset:i,orientation:s}){let a=getComputedStyle(t),n=parseFloat(a.width),r=parseFloat(a.height),h={top:null,right:null,bottom:null,left:null};if(h["horizontal"===s?"bottom":"left"]=`calc(100% + var(--media-slider-preview-offset, ${i}px))`,"horizontal"===s){let t=n/2;if(e){let e=`max(0px, calc(var(--slider-pointer) - ${t}px))`,i=`calc(100% - ${n}px)`;h.left=`min(${e}, ${i})`}else h.left=`calc(var(--slider-pointer) - ${t}px)`}else{let t=r/2;if(e){let e=`max(${t}px, calc(var(--slider-pointer) - ${t}px))`,i=`calc(100% - ${r}px)`;h.bottom=`min(${e}, ${i})`}else h.bottom=`calc(var(--slider-pointer) - ${t}px)`}Object.assign(t.style,h)}(i,{clamp:!a(),offset:s(),orientation:e()})})}class iB extends a.Component{static props={...iM.props,keyStep:5,shiftKeyMultiplier:2};static state=iT;#M;onSetup(){this.#M=tn();let{audioGain:t}=this.#M.$state;(0,a.provideContext)(iq,{default:"percent",value:e=>(e*(t()??1)).toFixed(2),percent:e=>Math.round(e*(t()??1))}),new iM({getStep:this.$props.step,getKeyStep:this.$props.keyStep,roundValue:Math.round,isDisabled:this.#n_.bind(this),aria:{valueMax:this.#nX.bind(this),valueNow:this.#nk.bind(this),valueText:this.#n$.bind(this)},onDragValueChange:this.#nY.bind(this),onValueChange:this.#nJ.bind(this)}).attach(this),(0,a.effect)(this.#sF.bind(this))}onAttach(t){t.setAttribute("data-media-volume-slider",""),tx(t,"aria-label","Volume");let{canSetVolume:e}=this.#M.$state;this.setAttributes({"data-supported":e,"aria-hidden":ic(()=>!e())})}#nk(){let{value:t}=this.$state,{audioGain:e}=this.#M.$state;return Math.round(t()*(e()??1))}#n$(){let{value:t,max:e}=this.$state,{audioGain:i}=this.#M.$state;return tv(t()/e()*(i()??1)*100,2)+"%"}#nX(){let{audioGain:t}=this.#M.$state;return this.$state.max()*(t()??1)}#n_(){let{disabled:t}=this.$props,{canSetVolume:e}=this.#M.$state;return t()||!e()}#sF(){let{muted:t,volume:e}=this.#M.$state,i=t()?0:100*e();this.$state.value.set(i),this.dispatch("value-change",{detail:i})}#nZ=(0,a.functionThrottle)(this.#es.bind(this),25);#es(t){if(!t.trigger)return;let e=tv(t.detail/100,3);this.#M.remote.changeVolume(e,t)}#nJ(t){this.#nZ(t)}#nY(t){this.#nZ(t)}}class iQ extends a.Component{static props={...iM.props,step:25,keyStep:25,shiftKeyMultiplier:2,min:0,max:300};static state=iT;#M;onSetup(){this.#M=tn(),(0,a.provideContext)(iq,{default:"percent",percent:(t,e)=>tv(this.$state.value(),e)+"%"}),new iM({getStep:this.$props.step,getKeyStep:this.$props.keyStep,roundValue:Math.round,isDisabled:this.#n_.bind(this),aria:{valueNow:this.#nk.bind(this),valueText:this.#n$.bind(this)},onDragValueChange:this.#nY.bind(this),onValueChange:this.#nJ.bind(this)}).attach(this),(0,a.effect)(this.#nT.bind(this)),(0,a.effect)(this.#n0.bind(this))}onAttach(t){t.setAttribute("data-media-audio-gain-slider",""),tx(t,"aria-label","Audio Boost");let{canSetAudioGain:e}=this.#M.$state;this.setAttributes({"data-supported":e,"aria-hidden":ic(()=>!e())})}#nk(){let{value:t}=this.$state;return Math.round(t())}#n$(){let{value:t}=this.$state;return t()+"%"}#nT(){let{min:t,max:e}=this.$props;this.$state.min.set(t()),this.$state.max.set(e())}#n0(){let{audioGain:t}=this.#M.$state,e=((t()??1)-1)*100;this.$state.value.set(e),this.dispatch("value-change",{detail:e})}#n_(){let{disabled:t}=this.$props,{canSetAudioGain:e}=this.#M.$state;return t()||!e()}#n1(t){if(!t.trigger)return;let e=tv(1+t.detail/100,2);this.#M.remote.changeAudioGain(e,t)}#nJ(t){this.#n1(t)}#nY(t){this.#n1(t)}}class iW extends a.Component{static props={...iM.props,step:.25,keyStep:.25,shiftKeyMultiplier:2,min:0,max:2};static state=iT;#M;onSetup(){this.#M=tn(),new iM({getStep:this.$props.step,getKeyStep:this.$props.keyStep,roundValue:this.#n2,isDisabled:this.#n_.bind(this),aria:{valueNow:this.#nk.bind(this),valueText:this.#n$.bind(this)},onDragValueChange:this.#nY.bind(this),onValueChange:this.#nJ.bind(this)}).attach(this),(0,a.effect)(this.#nT.bind(this)),(0,a.effect)(this.#sU.bind(this))}
1onAttach(t){t.setAttribute("data-media-speed-slider",""),tx(t,"aria-label","Speed");let{canSetPlaybackRate:e}=this.#M.$state;this.setAttributes({"data-supported":e,"aria-hidden":ic(()=>!e())})}#nk(){let{value:t}=this.$state;return t()}#n$(){let{value:t}=this.$state;return t()+"x"}#nT(){let{min:t,max:e}=this.$props;this.$state.min.set(t()),this.$state.max.set(e())}#sU(){let{playbackRate:t}=this.#M.$state,e=t();this.$state.value.set(e),this.dispatch("value-change",{detail:e})}#n2(t){return tv(t,2)}#n_(){let{disabled:t}=this.$props,{canSetPlaybackRate:e}=this.#M.$state;return t()||!e()}#n3=(0,a.functionThrottle)(this.#n5.bind(this),25);#n5(t){if(!t.trigger)return;let e=t.detail;this.#M.remote.changePlaybackRate(e,t)}#nJ(t){this.#n3(t)}#nY(t){this.#n3(t)}}class iH extends a.Component{static props={...iM.props,step:1,keyStep:1,shiftKeyMultiplier:1};static state=iT;#M;#n4=(0,a.computed)(()=>{let{qualities:t}=this.#M.$state;return tN(t())});onSetup(){this.#M=tn(),new iM({getStep:this.$props.step,getKeyStep:this.$props.keyStep,roundValue:Math.round,isDisabled:this.#n_.bind(this),aria:{valueNow:this.#nk.bind(this),valueText:this.#n$.bind(this)},onDragValueChange:this.#nY.bind(this),onValueChange:this.#nJ.bind(this)}).attach(this),(0,a.effect)(this.#n9.bind(this)),(0,a.effect)(this.#n7.bind(this))}onAttach(t){t.setAttribute("data-media-quality-slider",""),tx(t,"aria-label","Video Quality");let{qualities:e,canSetQuality:i}=this.#M.$state,s=(0,a.computed)(()=>i()&&e().length>0);this.setAttributes({"data-supported":s,"aria-hidden":ic(()=>!s())})}#nk(){let{value:t}=this.$state;return t()}#n$(){let{quality:t}=this.#M.$state;if(!t())return"";let{height:e,bitrate:i}=t(),s=i&&i>0?`${(i/1e6).toFixed(2)} Mbps`:null;return e?`${e}p${s?` (${s})`:""}`:"Auto"}#n9(){let t=this.#n4();this.$state.max.set(Math.max(0,t.length-1))}#n7(){let{quality:t}=this.#M.$state,e=Math.max(0,this.#n4().indexOf(t()));this.$state.value.set(e),this.dispatch("value-change",{detail:e})}#n_(){let{disabled:t}=this.$props,{canSetQuality:e,qualities:i}=this.#M.$state;return t()||i().length<=1||!e()}#n6=(0,a.functionThrottle)(this.#eH.bind(this),25);#eH(t){if(!t.trigger)return;let{qualities:e}=this.#M,i=(0,a.peek)(this.#n4)[t.detail];this.#M.remote.changeQuality(e.indexOf(i),t)}#nJ(t){this.#n6(t)}#nY(t){this.#n6(t)}}class ij extends a.Component{static props={...iM.props,step:.1,keyStep:5,shiftKeyMultiplier:2,pauseWhileDragging:!1,noSwipeGesture:!1,seekingRequestThrottle:100};static state=iT;#M;#n8;#rt=(0,a.signal)(null);constructor(){super();let{noSwipeGesture:t}=this.$props;new iM({swipeGesture:()=>!t(),getValue:this.#re.bind(this),getStep:this.#ri.bind(this),getKeyStep:this.#rs.bind(this),roundValue:this.#n2,isDisabled:this.#n_.bind(this),aria:{valueNow:this.#nk.bind(this),valueText:this.#n$.bind(this)},onDragStart:this.#ra.bind(this),onDragValueChange:this.#nY.bind(this),onDragEnd:this.#rn.bind(this),onValueChange:this.#nJ.bind(this)})}onSetup(){this.#M=tn(),(0,a.provideContext)(iq,{default:"time",value:this.#rr.bind(this),time:this.#rh.bind(this)}),this.setAttributes({"data-chapters":this.#ro.bind(this)}),this.setStyles({"--slider-progress":this.#rl.bind(this)}),(0,a.effect)(this.#sN.bind(this)),(0,a.effect)(this.#rd.bind(this))}onAttach(t){t.setAttribute("data-media-time-slider",""),tx(t,"aria-label","Seek")}onConnect(t){(0,a.effect)(this.#ru.bind(this)),_(this.#M.textTracks,"chapters",this.#rt.set)}#rl(){let{bufferedEnd:t,duration:e}=this.#M.$state;return tv(100*Math.min(t()/Math.max(e(),1),1),3)+"%"}#ro(){let{duration:t}=this.#M.$state;return this.#rt()?.cues.length&&Number.isFinite(t())&&t()>0}#rd(){this.#n8=(0,a.functionThrottle)(this.#tr.bind(this),this.$props.seekingRequestThrottle())}#sN(){if(this.$state.hidden())return;let{value:t,dragging:e}=this.$state,i=this.#re();(0,a.peek)(e)||(t.set(i),this.dispatch("value-change",{detail:i}))}#ru(){let t=this.#M.player.el,{preview:e}=(0,a.useContext)(iC);t&&e()&&(0,a.setAttribute)(t,"data-preview",this.$state.active())}#tr(t,e){this.#M.remote.seeking(t,e)}#rc(t,e,i){this.#n8.cancel();let{live:s}=this.#M.$state;if(s()&&e>=99){this.#M.remote.seekToLiveEdge(i);return}this.#M.remote.seek(t,i)}#rp=!1;#ra(t){let{pauseWhileDragging:e}=this.$props;if(e()){let{paused:e}=this.#M.$state;this.#rp=!e(),this.#M.remote.pause(t)}}#nY(t){this.#n8(this.#rm(t.detail),t)}#rn(t){let{seeking:e}=this.#M.$state;(0,a.peek)(e)||this.#tr(this.#rm(t.detail),t);let i=t.detail;this.#rc(this.#rm(i),i,t);let{pauseWhileDragging:s}=this.$props;s()&&this.#rp&&(this.#M.remote.play(t),this.#rp=!1)}#nJ(t){let{dragging:e}=this.$state;!e()&&t.trigger&&this.#rn(t)}
1#re(){let{currentTime:t}=this.#M.$state;return this.#rg(t())}#ri(){let t=this.$props.step()/this.#M.$state.duration()*100;return Number.isFinite(t)?t:1}#rs(){let t=this.$props.keyStep()/this.#M.$state.duration()*100;return Number.isFinite(t)?t:1}#n2(t){return tv(t,3)}#n_(){let{disabled:t}=this.$props,{canSeek:e}=this.#M.$state;return t()||!e()}#nk(){let{value:t}=this.$state;return Math.round(t())}#n$(){let t=this.#rm(this.$state.value()),{duration:e}=this.#M.$state;return Number.isFinite(t)?`${eD(t)} out of ${eD(e())}`:"live"}#rm(t){let{duration:e}=this.#M.$state;return tv(t/100*e(),5)}#rg(t){let{liveEdge:e,duration:i}=this.#M.$state,s=Math.max(0,Math.min(1,e()?1:Math.min(t,i())/i()));return Number.isNaN(s)?0:Number.isFinite(s)?100*s:100}#rr(t){let e=this.#rm(t),{live:i,duration:s}=this.#M.$state;return Number.isFinite(e)?(i()?e-s():e).toFixed(0):"LIVE"}#rh(t,e){let i=this.#rm(t),{live:s,duration:a}=this.#M.$state,n=s()?i-a():i;return Number.isFinite(i)?`${n<0?"-":""}${eM(Math.abs(n),e)}`:"LIVE"}}class iz extends a.Component{static props={disabled:!1};#M;#rf;#ry;#rb=null;#rv=[];#rw=(0,a.signal)(null);#rk=(0,a.signal)([]);#r$=(0,a.signal)(-1);#rT=(0,a.signal)(-1);#rx=0;get cues(){return this.#rk()}get activeCue(){return this.#rk()[this.#r$()]||null}get activePointerCue(){return this.#rk()[this.#rT()]||null}onSetup(){this.#M=tn(),this.#rf=(0,a.useState)(ij.state)}onAttach(t){_(this.#M.textTracks,"chapters",this.#rS.bind(this)),(0,a.effect)(this.#rC.bind(this))}onConnect(){(0,a.onDispose)(()=>this.#e8.bind(this))}onDestroy(){this.#rS(null)}setRefs(t){if(this.#rv=t,this.#ry?.dispose(),1===this.#rv.length){let t=this.#rv[0];t.style.width="100%",t.style.setProperty("--chapter-fill","var(--slider-fill)"),t.style.setProperty("--chapter-progress","var(--slider-progress)")}else this.#rv.length>0&&(0,a.scoped)(()=>this.#rP(),this.#ry=(0,a.createScope)())}#rS(t){(0,a.peek)(this.#rw)!==t&&(this.#e8(),this.#rw.set(t))}#e8(){this.#rv=[],this.#rk.set([]),this.#r$.set(-1),this.#rT.set(-1),this.#rx=0,this.#ry?.dispose()}#rP(){this.#rv.length&&(0,a.effect)(this.#rE.bind(this))}#rE(){let{hidden:t}=this.#rf;t()||((0,a.effect)(this.#rA.bind(this)),(0,a.effect)(this.#rq.bind(this)),(0,a.effect)(this.#rM.bind(this)),(0,a.effect)(this.#rD.bind(this)))}#rA(){let t=this.#rk();if(!t.length)return;let e,{seekableStart:i,seekableEnd:s}=this.#M.$state,a=i(),n=(s()||t[t.length-1].endTime)-a,r=100;for(let i=0;i<t.length;i++)if(e=t[i],this.#rv[i]){let s=i===t.length-1?r:tv((e.endTime-Math.max(a,e.startTime))/n*100,3);this.#rv[i].style.width=s+"%",r-=s}}#rq(){let{liveEdge:t,seekableStart:e,seekableEnd:i}=this.#M.$state,{fillPercent:s,value:n}=this.#rf,r=this.#rk(),h=t(),o=(0,a.peek)(this.#r$),l=r[o],d=h?this.#rk.length-1:this.#rR(l&&l.startTime/i()*100<=(0,a.peek)(n)?o:0,s());h||!l?this.#rL(0,r.length,100):d>o?this.#rL(o,d,100):d<o&&this.#rL(d+1,o+1,0);let u=h?100:this.#rI(r[d],s(),e(),this.#rV(r));this.#rO(this.#rv[d],u),this.#r$.set(d)}#rM(){let{pointing:t,pointerPercent:e}=this.#rf;if(!t()){this.#rT.set(-1);return}let i=this.#rR(0,e());this.#rT.set(i)}#rL(t,e,i){for(let s=t;s<e;s++)this.#rO(this.#rv[s],i)}#rO(t,e){t&&(t.style.setProperty("--chapter-fill",e+"%"),(0,a.setAttribute)(t,"data-active",e>0&&e<100),(0,a.setAttribute)(t,"data-ended",100===e))}#rR(t,e){let i=0,s=this.#rk();if(0===e)return 0;if(100===e)return s.length-1;let{seekableStart:a}=this.#M.$state,n=a(),r=this.#rV(s);for(let a=t;a<s.length;a++)if((i=this.#rI(s[a],e,n,r))>=0&&i<100)return a;return 0}#rD(){this.#rF(this.#rN())}#rF=(0,a.animationFrameThrottle)(t=>{let e,i=this.#rk(),{seekableStart:s}=this.#M.$state,a=s(),n=this.#rV(i);for(let s=this.#rx;s<this.#rv.length;s++)if(e=this.#rI(i[s],t,a,n),this.#rv[s]?.style.setProperty("--chapter-progress",e+"%"),e<100){this.#rx=s;break}});#rN=(0,a.computed)(this.#rU.bind(this));#rU(){let{bufferedEnd:t,duration:e}=this.#M.$state;return 100*tv(Math.min(t()/Math.max(e(),1),1),3)}#rV(t){let{seekableEnd:e}=this.#M.$state,i=e();return Number.isFinite(i)?i:t[t.length-1]?.endTime||0}#rI(t,e,i,s){if(!t||0===this.#rk().length)return 0;
1let a=s-i,n=Math.max(0,t.startTime-i),r=Math.min(s,t.endTime)-i,h=n/a,o=100*h,l=100*Math.min(1,h+(r-n)/a);return Math.max(0,tv(e>=l?100:(e-o)/(l-o)*100,3))}#rK(t){let e=[],{seekableStart:i,seekableEnd:s,duration:a}=this.#M.$state,n=i(),r=s(),h=(t=t.filter(t=>t.startTime<=r&&t.endTime>=n))[0];h&&h.startTime>n&&e.push(new window.VTTCue(n,h.startTime,""));for(let i=0;i<t.length-1;i++){let s=t[i],a=t[i+1];if(e.push(s),a){let t=a.startTime-s.endTime;t>0&&e.push(new window.VTTCue(s.endTime,s.endTime+t,""))}}let o=t[t.length-1];if(o){e.push(o);let t=a();t>=0&&t-o.endTime>1&&e.push(new window.VTTCue(o.endTime,a(),""))}return e}#rC(){let{source:t}=this.#M.$state;t(),this.#ez()}#ez(){if(!this.scope)return;let{disabled:t}=this.$props;if(t()){this.#rk.set([]),this.#r$.set(0),this.#rx=0;return}let e=this.#rw();if(e){let t=this.#rG.bind(this);t(),new a.EventsController(e).add("add-cue",t).add("remove-cue",t),(0,a.effect)(this.#rB.bind(this))}return this.#rb=this.#rQ(),this.#rb&&(0,a.effect)(this.#rW.bind(this)),()=>{this.#rb&&(this.#rb.textContent="",this.#rb=null)}}#rB(){this.#M.$state.duration(),this.#rG()}#rG=(0,a.functionDebounce)(()=>{let t=(0,a.peek)(this.#rw);this.scope&&t&&t.cues.length&&(this.#rk.set(this.#rK(t.cues)),this.#r$.set(0),this.#rx=0)},150,!0);#rW(){let t=this.activePointerCue||this.activeCue;this.#rb&&(this.#rb.textContent=t?.text||"")}#rH(){let t=this.el;for(;t&&"slider"!==t.getAttribute("role");)t=t.parentElement;return t}#rQ(){let t=this.#rH();return t?t.querySelector('[data-part="chapter-title"]'):null}}let i_=iz.prototype;(0,a.prop)(i_,"cues"),(0,a.prop)(i_,"activeCue"),(0,a.prop)(i_,"activePointerCue"),(0,a.method)(i_,"setRefs");let iX=(0,a.createContext)(),iY=["a[href]","[tabindex]","input","select","button"].map(t=>`${t}:not([aria-hidden='true'])`).join(","),iJ=new Set(["Escape","Tab","ArrowUp","ArrowDown","Home","PageUp","End","PageDown","Enter"," "]);class iZ{#rj=-1;#rz=null;#r_=[];#aT;get items(){return this.#r_}constructor(t){this.#aT=t}attachMenu(t){(0,a.listenEvent)(t,"focus",this.#sM.bind(this)),this.#rz=t,(0,a.onDispose)(()=>{this.#rz=null})}listen(){this.#rz&&(this.update(),new a.EventsController(this.#rz).add("keyup",this.#Z.bind(this)).add("keydown",this.#tt.bind(this)),(0,a.onDispose)(()=>{this.#rj=-1,this.#r_=[]}))}update(){this.#rj=0,this.#r_=this.#rX()}scroll(t=this.#rY()){let e=this.#r_[t];e&&requestAnimationFrame(()=>{requestAnimationFrame(()=>{!function(t,e={}){!function(t,e){for(let{el:i,top:s,left:n}of(0,a.r)(t,e))i.scroll({top:s,left:n,behavior:e.behavior})}(t,{scrollMode:"if-needed",block:"center",inline:"center",...e})}(e,{behavior:"smooth",boundary:t=>!t.hasAttribute("data-root")})})})}focusActive(t=!0){let e=this.#rY();this.#rJ(e>=0?e:0,t)}#rJ(t,e=!0){this.#rj=t,this.#r_[t]?(this.#r_[t].focus({preventScroll:!0}),e&&this.scroll(t)):this.#rz?.focus({preventScroll:!0})}#rY(){return this.#r_.findIndex(t=>document.activeElement===t||"menuitemradio"===t.getAttribute("role")&&"true"===t.getAttribute("aria-checked"))}#sM(){this.#rj>=0||(this.update(),this.focusActive())}#rZ(t){let e=t.target;if((0,a.wasEnterKeyPressed)(t)&&e instanceof Element){let t=e.getAttribute("role");return!/a|input|select|button/.test(e.localName)&&!t}return iJ.has(t.key)}#Z(t){this.#rZ(t)&&(t.stopPropagation(),t.preventDefault())}#tt(t){if(this.#rZ(t))switch(t.stopPropagation(),t.preventDefault(),t.key){case"Escape":this.#aT.closeMenu(t);break;case"Tab":this.#rJ(this.#r0(t.shiftKey?-1:1));break;case"ArrowUp":this.#rJ(this.#r0(-1));break;case"ArrowDown":this.#rJ(this.#r0(1));break;case"Home":case"PageUp":this.#rJ(0);break;case"End":case"PageDown":this.#rJ(this.#r_.length-1)}}#r0(t){let e=this.#rj;do e=(e+t+this.#r_.length)%this.#r_.length;while(this.#r_[e]?.offsetParent===null);return e}#rX(){if(!this.#rz)return[];let t=this.#rz.querySelectorAll(iY),e=[],i=t=>"menu"===t.getAttribute("role");for(let s of t)tR(s)&&null!==s.offsetParent&&tE(this.#rz,s,i)&&e.push(s);return e}}var i0=Object.defineProperty,i1=Object.getOwnPropertyDescriptor,i2=(t,e,i,s)=>{for(var a,n=i1(e,i),r=t.length-1;r>=0;r--)(a=t[r])&&(n=a(e,i,n)||n);return n&&i0(e,i,n),n};let i3=0;class i5 extends a.Component{static props={showDelay:0};#M;#r1;#r2;#r3=(0,a.signal)(!1);#r5=(0,a.signal)(!1);#aA=(0,a.signal)(null);#aq=(0,a.signal)(null);#r4;#r9=new Set;#r7=null;#r6;#r8;#ht=!1;#he=(0,a.signal)(!1);#hi=new Set;get triggerElement(){return this.#aA()}get contentElement(){return this.#aq()}get isSubmenu(){return!!this.#r4}constructor(){super();let{showDelay:t}=this.$props;this.#r6=new ii({trigger:this.#aA,content:this.#aq,showDelay:t,listen:(t,e,i)=>{tA(t,t=>{this.#r3()?i(t):e(t)});let s=this.#hs();s&&tA(s,t=>{t.stopPropagation(),i(t)})},onChange:this.#ha.bind(this)})}onSetup(){this.#M=tn();let t=++i3;this.#r1=`media-menu-${t}`,this.#r2=`media-menu-button-${t}`,this.#r8=new iZ({closeMenu:this.close.bind(this)}),(0,a.hasProvidedContext)(iX)&&(this.#r4=(0,a.useContext)(iX)),this.#hn(),this.setAttributes({"data-open":this.#r3,"data-root":!this.isSubmenu,"data-submenu":this.isSubmenu,"data-disabled":this.#n_.bind(this)}),(0,a.provideContext)(iX,{button:this.#aA,content:this.#aq,expanded:this.#r3,hint:(0,a.signal)(""),submenu:!!this.#r4,disable:this.#hr.bind(this),attachMenuButton:this.#hh.bind(this),attachMenuItems:this.#ho.bind(this),attachObserver:this.#hl.bind(this),disableMenuButton:this.#hd.bind(this),addSubmenu:this.#hu.bind(this),onTransitionEvent:t=>{this.#hi.add(t),(0,a.onDispose)(()=>{this.#hi.delete(t)})}})}onAttach(t){t.style.setProperty("display","contents")}onConnect(t){(0,a.effect)(this.#hc.bind(this)),this.isSubmenu&&this.#r4?.addSubmenu(this)}onDestroy(){this.#aA.set(null),this.#aq.set(null),this.#r7=null,this.#hi.clear()}#hn(){let t=-1,e=(0,a.hasProvidedContext)(iP)?(0,a.useContext)(iP):null;(0,a.provideContext)(iP,{onDragStart:()=>{e?.onDragStart?.(),window.clearTimeout(t),t=-1,this.#ht=!0},onDragEnd:()=>{e?.onDragEnd?.(),t=window.setTimeout(()=>{this.#ht=!1,t=-1},300)}})}#hc(){let t=this.#hp();this.isSubmenu||this.#sW(),this.#hm(t),t&&((0,a.effect)(()=>{let{height:t}=this.#M.$state,e=this.#aq();e&&(0,a.setStyle)(e,"--player-height",t()+"px")}),this.#r8.listen(),this.listen("pointerup",this.#hg.bind(this)),(0,a.listenEvent)(window,"pointerup",this.#hf.bind(this)))}#hh(t){let e=t.el,i=this.isSubmenu,s=ic(this.#n_.bind(this));tx(e,"tabindex",i?"-1":"0"),tx(e,"role",i?"menuitem":"button"),(0,a.setAttribute)(e,"id",this.#r2),(0,a.setAttribute)(e,"aria-haspopup","menu"),(0,a.setAttribute)(e,"aria-expanded","fal
1se"),(0,a.setAttribute)(e,"data-root",!this.isSubmenu),(0,a.setAttribute)(e,"data-submenu",this.isSubmenu);let n=()=>{(0,a.setAttribute)(e,"data-open",this.#r3()),(0,a.setAttribute)(e,"aria-disabled",s())};h?n():(0,a.effect)(n),this.#aA.set(e),(0,a.onDispose)(()=>{this.#aA.set(null)})}#ho(t){let e=t.el;e.style.setProperty("display","none"),(0,a.setAttribute)(e,"id",this.#r1),tx(e,"role","menu"),tx(e,"tabindex","-1"),(0,a.setAttribute)(e,"data-root",!this.isSubmenu),(0,a.setAttribute)(e,"data-submenu",this.isSubmenu),this.#aq.set(e),(0,a.onDispose)(()=>this.#aq.set(null));let i=()=>(0,a.setAttribute)(e,"data-open",this.#r3());h?i():(0,a.effect)(i),this.#r8.attachMenu(e),this.#hm(!1);let s=this.#hy.bind(this);this.isSubmenu?this.#r4?.onTransitionEvent(s):(t.listen("transitionstart",s),t.listen("transitionend",s),t.listen("animationend",this.#sW),t.listen("vds-menu-resize",this.#sW))}#hl(t){this.#r7=t}#hm(t){let e=(0,a.peek)(this.#aq);e&&(0,a.setAttribute)(e,"aria-hidden",(0,a.ariaBool)(!t))}#hd(t){this.#he.set(t)}#hb=!1;#ha(t,e){if(this.#hb=(0,a.isKeyboardEvent)(e),e?.stopPropagation(),this.#r3()===t)return;if(this.#n_()){t&&this.#r6.hide(e);return}this.el?.dispatchEvent(new Event("vds-menu-resize",{bubbles:!0,composed:!0}));let i=this.#aA(),s=this.#aq();if(i&&((0,a.setAttribute)(i,"aria-controls",t&&this.#r1),(0,a.setAttribute)(i,"aria-expanded",(0,a.ariaBool)(t))),s&&(0,a.setAttribute)(s,"aria-labelledby",t&&this.#r2),this.#r3.set(t),this.#hv(e),(0,a.tick)(),this.#hb)for(let e of(t?s?.focus():i?.focus(),[this.el,s]))e&&e.setAttribute("data-keyboard","");else for(let t of[this.el,s])t&&t.removeAttribute("data-keyboard");if(this.dispatch(t?"open":"close",{trigger:e}),t)this.isSubmenu||this.#M.activeMenu===this||(this.#M.activeMenu?.close(e),this.#M.activeMenu=this),this.#r7?.onOpen?.(e);else{if(this.isSubmenu)for(let t of this.#r9)t.close(e);else this.#M.activeMenu=null;this.#r7?.onClose?.(e)}t&&requestAnimationFrame(this.#hw.bind(this))}#hw(){this.#hk||this.#h$||(this.#r8.update(),requestAnimationFrame(()=>{this.#hb?this.#r8.focusActive():this.#r8.scroll()}))}#hp(){return!this.#n_()&&this.#r3()}#n_(){return this.#r5()||this.#he()}#hr(t){this.#r5.set(t)}#hg(t){let e=this.#aq();this.#ht||e&&t$(e,t)||t.stopPropagation()}#hf(t){let e=this.#aq();this.#ht||e&&t$(e,t)||this.close(t)}#hs(){let t=this.el?.querySelector('[data-part="close-target"]');return this.el&&t&&tE(this.el,t,t=>"menu"===t.getAttribute("role"))?t:null}#hv(t){this.isSubmenu||(this.#r3()?this.#M.remote.pauseControls(t):this.#M.remote.resumeControls(t))}#hu(t){this.#r9.add(t),new a.EventsController(t).add("open",this.#hT).add("close",this.#hx),(0,a.onDispose)(this.#hS)}#hS=this.#hC.bind(this);#hC(t){this.#r9.delete(t)}#h$=!1;#hT=this.#hP.bind(this);#hP(t){this.#h$=!0;let e=this.#aq();for(let e of(this.isSubmenu&&this.triggerElement?.setAttribute("aria-hidden","true"),this.#r9))if(e!==t.target)for(let t of[e.el,e.triggerElement])t?.setAttribute("aria-hidden","true");if(e){let i=t.target.el;for(let t of e.children)t.contains(i)?t.setAttribute("data-open",""):t!==i&&t.setAttribute("data-hidden","")}}#hx=this.#hE.bind(this);#hE(t){this.#h$=!1;let e=this.#aq();for(let t of(this.isSubmenu&&this.triggerElement?.setAttribute("aria-hidden","false"),this.#r9))for(let e of[t.el,t.triggerElement])e?.setAttribute("aria-hidden","false");if(e)for(let t of e.children)t.removeAttribute("data-open"),t.removeAttribute("data-hidden")}#sW=(0,a.animationFrameThrottle)(()=>{let t=(0,a.peek)(this.#aq);if(!t||h)return;let e=0,i=getComputedStyle(t),s=[...t.children];for(let t of["paddingTop","paddingBottom","borderTopWidth","borderBottomWidth"])e+=parseFloat(i[t])||0;for(let t of s)if(tR(t)&&"contents"===t.style.display)s.push(...t.children);else if(3===t.nodeType)e+=parseFloat(getComputedStyle(t).fontSize);else if(tR(t)){if(!tC(t))continue;let i=getComputedStyle(t);e+=t.offsetHeight+(parseFloat(i.marginTop)||0)+(parseFloat(i.marginBottom)||0)}(0,a.setStyle)(t,"--menu-height",e+"px")});#hk=!1;#hy(t){let e=this.#aq();for(let i of(e&&"height"===t.propertyName&&(this.#hk="transitionstart"===t.type,(0,a.setAttribute)(e,"data-transition",this.#hk?"height":null),this.#r3()&&this.#hw()),this.#hi))i(t)}open(t){(0,a.peek)(this.#r3)||(this.#r6.show(t),(0,a.tick)())}close(t){(0,a.peek)(this.#r3)&&(this.#r6.hide(t),(0,a.tick)())}}i2([a.prop],i5.prototype,"triggerElement"),i2([a.prop],i5.prototype,"contentElement"),i2([a.prop],i5.prototype,"isSubmenu"),i2([a.method],i5.prototype,"open"),i2([a.method],i5.prototype,"close");class i4 extends a.Component{static props={disabled:!1};#hA;#hq=(0,a.signal)(null);get expanded(){return this.#hA?.expanded()??!1}constructor(){super(),new eX}onSetup(){this.#hA=(0,a.useContext)(iX)}onAttach(t){this.#hA.attachMenuButton(this),(0,a.effect)(this.#nm.bind(this)),tx(t,"type","button")}onConnect(t){(0,a.effect)(this.#hM.bind(this)),this.#ar();let e=new MutationObserver(this.#ar.bind(this));e.observe(t,{attributeFilter:["data-part"],childList:!0,subtree:!0}),(0,a.onDispose)(()=>e.disconnect()),tA(t,t=>{this.dispatch("select",{trigger:t})})}#nm(){this.#hA.disableMenuButton(this.$props.disabled())}#hM(){let t=this.#hq();t&&(0,a.effect)(()=>{let e=this.#hA.hint();e&&(t.textContent=e)})}#ar(){let t=this.el?.querySelector('[data-part="hint"]');this.#hq.set(t??null)}}let i9=i4.prototype;(0,a.prop)(i9,"expanded");class i7 extends i4{}let i6=(0,a.createContext)();class i8 extends a.Component{static props={placement:null,offset:0,alignOffset:0};#hA;constructor(){super(),new eX;let{placement:t}=this.$props;this.setAttributes({"data-placement":t})}onAttach(t){if(this.#hA=(0,a.useContext)(iX),this.#hA.attachMenuItems(this),(0,a.hasProvidedContext)(i6)){let e=(0,a.useContext)(i6);e&&((0,a.provideContext)(i6,null),e.attach(t),(0,a.onDispose)(()=>e.attach(null)))}}onConnect(t){(0,a.effect)(this.#aN.bind(this))}#aN(){let{expanded:t}=this.#hA;if(!this.el||!t())return;let e=this.$props.placement();if(!e)return;Object.assign(this.el.style,{position:"absolute",top:0,left:0,width:"max-content"});let{offset:i,alignOffset:s}=this.$props;(0,a.onDispose)(tD(this.el,this.#aF(),e,{offsetVarName:"media-menu",xOffset:s(),yOffset:i()})),(0,a.onDispose)(this.#hD.bind(this))}#hD(){this.el&&(this.el.removeAttribute("style"),this.el.style.display="none")}#aF(){return this.#hA.button()}}let st=(0,a.createContext)();class se extends a.ViewController{#hR=new Set;#hL=(0,a.signal)("");#ir=null;onValueChange;get values(){return Array.from(this.#hR).map(t=>t.value())}get value(){return this.#hL()}set value(t){this.#S(t)}onSetup(){(0,a.provideContext)(st,{add:this.#hI.bind(this),remove:this.#hV.bind(this)})}onAttach(t){(0,a.hasProvidedContext)(iX)||tx(t,"role","radiogroup"),this.setAttributes({value:this.#hL})}onDestroy(){this.#hR.clear()}#hI(t){this.#hR.has(t)||(this.#hR.add(t),t.onCheck=this.#hO,t.check(t.value()===this.#hL()))}#hV(t){t.onCheck=null,this.#hR.delete(t)}#hO=this.#S.bind(this);#S(t,e){let i=(0,a.peek)(this.#hL);if(!t||t===i)return;let s=this.#hF(i),n=this.#hF(t);s?.check(!1,e),n?.check(!0,e),this.#hL.set(t),this.onValueChange?.(t,e)}#hF(t){for(let e of this.#hR)if(t===(0,a.peek)(e.value))return e;return null}}class si extends a.Component{static props={value:""};#ir;get values(){return this.#ir.values}get value(){return this.#ir.value}set value(t){this.#ir.value=t}constructor(){super(),this.#ir=new se,this.#ir.onValueChange=this.#nJ.bind(this)}onSetup(){h?this.#nc():(0,a.effect)(this.#nc.bind(this))}#nc(){this.#ir.value=this.$props.value()}#nJ(t,e){let i=this.createEvent("change",{detail:t,trigger:e});this.dispatch(i)}}let ss=si.prototype;(0,a.prop)(ss,"values"),(0,a.prop)(ss,"value");class sa extends a.Component{static props={value:""};#hN=(0,a.signal)(!1);#ir={value:this.$props.value,check:this.#hU.bind(this),onCheck:null};get checked(){return this.#hN()}constructor(){super(),new eX}onSetup(){this.setAttributes({value:this.$props.value,"data-checked":this.#hN,"aria-checked":ic(this.#hN)})}onAttach(t){let e=(0,a.hasProvidedContext)(iX);tx(t,"tabindex",e?"-1":"0"),tx(t,"role",e?"menuitemradio":"radio"),(0,a.effect)(this.#nc.bind(this))}onConnect(t){this.#hK(),tA(t,this.#aj.bind(this)),(0,a.onDispose)(this.#tA.bind(this))}#tA(){(0,a.scoped)(()=>{(0,a.useContext)(st).remove(this.#ir)},this.connectScope)}#hK(){(0,a.useContext)(st).add(this.#ir)}#nc(){let{value:t}=this.$props,e=t();(0,a.peek)(this.#hN)&&this.#ir.onCheck?.(e)}#aj(t){(0,a.peek)(this.#hN)||(this.#S(!0,t),this.#hG(t),this.#ir.onCheck?.(a.peek(this.$props.value),t))}#hU(t,e){(0,a.peek)(this.#hN)!==t&&this.#S(t,e)}#S(t,e){this.#hN.set(t),this.dispatch("change",{detail:t,trigger:e})}#hG(t){this.dispatch("select",{trigger:t})}}let sn=sa.prototype;(0,a.prop)(sn,"checked");class sr extends a.Component{static props={disabled:!1,event:void 0,action:void 0};#M;#tj=null;onSetup(){this.#M=tn();let{event:t,action:e}=this.$props;this.setAttributes({event:t,action:e})}onAttach(t){t.setAttribute("data-media-gesture",""),t.style.setProperty("pointer-events","none")}onConnect(t){this.#tj=this.#M.player.el?.querySelector("[data-media-provider]"),(0,a.effect)(this.#hB.bind(this))}#hB(){let t=this.$props.event(),e=this.$props.disabled();
1this.#tj&&t&&!e&&(/^dbl/.test(t)&&(t=t.split(/^dbl/)[1]),("pointerup"===t||"pointerdown"===t)&&"coarse"===this.#M.$state.pointer()&&(t="pointerup"===t?"touchend":"touchstart"),(0,a.listenEvent)(this.#tj,t,this.#hQ.bind(this),{passive:!1}))}#hW=0;#hH=-1;#hQ(t){if(this.$props.disabled()||(0,a.isPointerEvent)(t)&&(0!==t.button||this.#M.activeMenu)||(0,a.isTouchEvent)(t)&&this.#M.activeMenu||tq(t)||!this.#hj(t))return;t.MEDIA_GESTURE=!0,t.preventDefault();let e=(0,a.peek)(this.$props.event);if(e?.startsWith("dbl")){if(1===this.#hW){queueMicrotask(()=>this.#hz(t)),clearTimeout(this.#hH),this.#hW=0;return}}else 0===this.#hW&&setTimeout(()=>{1===this.#hW&&this.#hz(t)},250);0===this.#hW&&(this.#hH=window.setTimeout(()=>{this.#hW=0},275)),this.#hW++}#hz(t){this.el.setAttribute("data-triggered",""),requestAnimationFrame(()=>{this.#h_()&&this.#hX((0,a.peek)(this.$props.action),t),requestAnimationFrame(()=>{this.el.removeAttribute("data-triggered")})})}#hj(t){if(!this.el)return!1;if((0,a.isPointerEvent)(t)||(0,a.isMouseEvent)(t)||(0,a.isTouchEvent)(t)){let e=(0,a.isTouchEvent)(t)?t.changedTouches[0]??t.touches[0]:void 0,i=e?.clientX??t.clientX,s=e?.clientY??t.clientY,n=this.el.getBoundingClientRect(),r=s>=n.top&&s<=n.bottom&&i>=n.left&&i<=n.right;return t.type.includes("leave")?!r:r}return!0}#h_(){return Array.from(this.#M.player.el.querySelectorAll("[data-media-gesture][data-triggered]")).sort((t,e)=>+getComputedStyle(e).zIndex-+getComputedStyle(t).zIndex)[0]===this.el}#hX(t,e){if(!t)return;let i=new a.DOMEvent("will-trigger",{detail:t,cancelable:!0,trigger:e});if(this.dispatchEvent(i),i.defaultPrevented)return;let[s,n]=t.replace(/:([a-z])/,"-$1").split(":");t.includes(":fullscreen")?this.#M.remote.toggleFullscreen("prefer-media",e):t.includes("seek:")?this.#M.remote.seek((0,a.peek)(this.#M.$state.currentTime)+(+n||0),e):this.#M.remote[(0,a.kebabToCamelCase)(s)](e),this.dispatch("trigger",{detail:t,trigger:e})}}class sh{priority=10;#T=null;#hY;#t1;constructor(t){this.#hY=t}attach(){}canRender(){return!0}detach(){this.#t1?.abort(),this.#t1=void 0,this.#hY.reset(),this.#T=null}changeTrack(t){t&&this.#T!==t&&(this.#t1?.abort(),this.#t1=new a.EventsController(t),t.readyState<2?(this.#hY.reset(),this.#t1.add("load",()=>this.#hJ(t),{once:!0})):this.#hJ(t),this.#t1.add("add-cue",t=>{this.#hY.addCue(t.detail)}).add("remove-cue",t=>{this.#hY.removeCue(t.detail)}),this.#T=t)}#hJ(t){this.#hY.changeTrack({cues:[...t.cues],regions:[...t.regions]})}}class so extends a.Component{static props={textDir:"ltr",exampleText:"Captions look like this."};#M;static lib=(0,a.signal)(null);onSetup(){this.#M=tn(),this.setAttributes({"aria-hidden":ic(this.#aX.bind(this))})}onAttach(t){t.style.setProperty("pointer-events","none")}onConnect(t){so.lib()||i.e(136).then(i.bind(i,70136)).then(t=>so.lib.set(t)),(0,a.effect)(this.#hZ.bind(this))}#aX(){let{textTrack:t,remotePlaybackState:e,iOSControls:i}=this.#M.$state,s=t();return i()||"connected"===e()||!s||!J(s)}#hZ(){if(!so.lib())return;let{viewType:t}=this.#M.$state;return"audio"===t()?this.#h0():this.#h1()}#h0(){return(0,a.effect)(this.#ez.bind(this)),this.#h2(null),()=>{this.el.textContent=""}}#ez(){if(this.#aX())return;this.#h3();let{textTrack:t}=this.#M.$state;(0,a.listenEvent)(t(),"cue-change",this.#h3.bind(this)),(0,a.effect)(this.#h5.bind(this))}#h3(){this.el.textContent="",this.#h4>=0&&this.#h9();let{realCurrentTime:t,textTrack:e}=this.#M.$state,{renderVTTCueString:i}=so.lib(),s=(0,a.peek)(t);for(let t of(0,a.peek)(e).activeCues){let e=this.#h7(),a=this.#h6();a.innerHTML=i(t,s),e.append(a),this.el.append(a)}}#h5(){let{realCurrentTime:t}=this.#M.$state,{updateTimedVTTCueNodes:e}=so.lib();e(this.el,t())}#h1(){let{CaptionsRenderer:t}=so.lib(),e=new t(this.el),i=new sh(e);return this.#M.textRenderers.add(i),(0,a.effect)(this.#h8.bind(this,e)),(0,a.effect)(this.#ot.bind(this,e)),this.#h2(e),()=>{this.el.textContent="",this.#M.textRenderers.remove(i),e.destroy()}}#h8(t){t.dir=this.$props.textDir()}#ot(t){if(this.#aX())return;let{realCurrentTime:e,textTrack:i}=this.#M.$state;t.currentTime=e(),this.#h4>=0&&i()?.activeCues[0]&&this.#h9()}#h2(t){let e=this.#M.player;if(!e)return;let i=this.#oe.bind(this,t);
1(0,a.listenEvent)(e,"vds-font-change",i)}#oe(t){if(this.#h4>=0){this.#oi();return}let{textTrack:e}=this.#M.$state;e()?.activeCues[0]?t?.update(!0):this.#os()}#os(){let t=this.#h7();(0,a.setAttribute)(t,"data-example","");let e=this.#h6();(0,a.setAttribute)(e,"data-example",""),e.textContent=this.$props.exampleText(),t?.append(e),this.el?.append(t),this.el?.setAttribute("data-example",""),this.#oi()}#h4=-1;#oi(){window.clearTimeout(this.#h4),this.#h4=window.setTimeout(this.#h9.bind(this),2500)}#h9(){this.el?.removeAttribute("data-example"),this.el?.querySelector("[data-example]")&&(this.el.textContent=""),this.#h4=-1}#h7(){let t=document.createElement("div");return(0,a.setAttribute)(t,"data-part","cue-display"),t}#h6(){let t=document.createElement("div");return(0,a.setAttribute)(t,"data-part","cue"),t}}class sl extends a.Component{static props={src:null,alt:null,crossOrigin:null};static state=new a.State({img:null,src:null,alt:null,crossOrigin:null,loading:!0,error:null,hidden:!1});#M;onSetup(){this.#M=tn(),this.#nB(),this.#oa(),this.#sm(),this.#nb()}onAttach(t){t.style.setProperty("pointer-events","none"),(0,a.effect)(this.#nV.bind(this)),(0,a.effect)(this.#nB.bind(this)),(0,a.effect)(this.#oa.bind(this)),(0,a.effect)(this.#sm.bind(this)),(0,a.effect)(this.#nb.bind(this));let{started:e}=this.#M.$state;this.setAttributes({"data-visible":()=>!e()&&!this.$state.hidden(),"data-loading":this.#nL.bind(this),"data-error":this.#nI.bind(this),"data-hidden":this.$state.hidden})}onConnect(t){(0,a.effect)(this.#on.bind(this)),(0,a.effect)(this.#et.bind(this))}#nI(){let{error:t}=this.$state;return!(0,a.isNull)(t())}#on(){let{canLoadPoster:t,poster:e}=this.#M.$state;!t()&&e()&&F(e(),"preconnect")}#nb(){let{src:t}=this.$props,{poster:e,nativeControls:i}=this.#M.$state;this.el&&(0,a.setAttribute)(this.el,"display",i()?"none":null),this.$state.hidden.set(this.#nI()||!(t()||e())||i())}#nL(){let{loading:t,hidden:e}=this.$state;return!e()&&t()}#nV(){let t=this.$state.img();t&&(new a.EventsController(t).add("load",this.#or.bind(this)).add("error",this.#tE.bind(this)),t.complete&&this.#or())}#oh="";#nB(){let{poster:t}=this.#M.$props,{canLoadPoster:e,providedPoster:i,inferredPoster:s}=this.#M.$state,a=this.$props.src()||"",n=a||t()||s();this.#oh===i()&&i.set(a),this.$state.src.set(e()&&n.length?n:null),this.#oh=a}#oa(){let{src:t}=this.$props,{alt:e}=this.$state,{poster:i}=this.#M.$state;e.set(t()||i()?this.$props.alt():null)}#sm(){let{crossOrigin:t}=this.$props,{crossOrigin:e}=this.$state,{crossOrigin:i,poster:s}=this.#M.$state,a=null!==t()?t():i();e.set(/ytimg\.com|vimeo/.test(s()||"")?null:!0===a?"anonymous":a)}#et(){let{loading:t,error:e}=this.$state,{canLoadPoster:i,poster:s}=this.#M.$state;t.set(i()&&!!s()),e.set(null)}#or(){let{loading:t,error:e}=this.$state;t.set(!1),e.set(null)}#tE(t){let{loading:e,error:i}=this.$state;e.set(!1),i.set(t)}}class sd extends a.Component{static props={type:"current",showHours:!1,padHours:null,padMinutes:null,remainder:!1,toggle:!1,hidden:!1};static state=new a.State({timeText:"",hidden:!1});#M;#oo=(0,a.signal)(null);#nd=(0,a.signal)(!0);#nu=(0,a.signal)(!0);onSetup(){this.#M=tn(),this.#ol();let{type:t}=this.$props;this.setAttributes({"data-type":t,"data-remainder":this.#od.bind(this)}),new iS({callback:this.#nf.bind(this)}).attach(this)}onAttach(t){t.hasAttribute("role")||(0,a.effect)(this.#ou.bind(this)),(0,a.effect)(this.#ol.bind(this))}onConnect(t){(0,a.onDispose)(tP(t,this.#nd.set)),(0,a.effect)(this.#nb.bind(this)),(0,a.effect)(this.#oc.bind(this))}#nf(t){this.#nu.set(t[0].isIntersecting)}#nb(){let{hidden:t}=this.$props;this.$state.hidden.set(t()||!this.#nd()||!this.#nu())}#oc(){if(!this.$props.toggle()){this.#oo.set(null);return}this.el&&tA(this.el,this.#op.bind(this))}#ol(){let{hidden:t,timeText:e}=this.$state,{duration:i}=this.#M.$state;if(t())return;let{type:s,padHours:a,padMinutes:n,showHours:r}=this.$props,h=this.#om(s()),o=i(),l=this.#od();if(!Number.isFinite(h+o)){e.set("LIVE");return}let d=eM(l?Math.max(0,o-h):h,{padHrs:a(),padMins:n(),showHrs:r()});e.set((l?"-":"")+d)}#ou(){if(!this.el)return;let{toggle:t}=this.$props;(0,a.setAttribute)(this.el,"role",t()?"timer":null),(0,a.setAttribute)(this.el,"tabindex",t()?0:null)}#om(t){let{bufferedEnd:e,duration:i,currentTime:s}=this.#M.$state;switch(t){case"buffered":return e();case"duration":return i();default:return s()}}#od(){return this.$props.remainder()&&!1!==this.#oo()}#op(t){if(t.preventDefault(),null===this.#oo()){this.#oo.set(!this.$props.remainder());return}this.#oo.set(t=>!t)}}class su extends eZ{}class sc extends e7{}class sp extends e8{}class sm extends it{}class sg extends ie{}class sf extends id{}class sy extends iy{}class sb extends ib{}class sv extends i${}class sw extends iv{}class sk extends iw{}class s$ extends ig{}class sT extends ip{}class sx extends im{}class sS extends ik{}class sC extends ir{}class sP extends ih{}class sE extends io{}class sA extends iD{}class sq extends ij{}class sM extends iB{}class sD extends iQ{}class sR extends iW{}class sL extends iH{}class sI extends iO{}class sV extends iU{}class sO extends iF{}class sF extends iG{}class sN extends iz{}class sU extends i5{}class sK extends i4{}class sG extends i8{}class sB extends i7{}class sQ extends si{}class sW extends sa{}class sH extends so{}class sj extends sr{}class sz extends sl{}class s_ extends iV{}class sX extends sd{}let sY=s.forwardRef((t,e)=>{let{children:i,...a}=t,n=s.Children.toArray(i),r=n.find(s0);if(r){let t=r.props.children,i=n.map(e=>e!==r?e:s.Children.count(t)>1?s.Children.only(null):s.isValidElement(t)?t.props.children:null);return s.createElement(sJ,{...a,ref:e},s.isValidElement(t)?s.cloneElement(t,void 0,i):null)}return s.createElement(sJ,{...a,ref:e},i)});sY.displayName="Slot";let sJ=s.forwardRef((t,e)=>{let{children:i,...n}=t;return s.isValidElement(i)?s.cloneElement(i,{...function(t,e){let i={...e};for(let s in e){let a=t[s],n=e[s];/^on[A-Z]/.test(s)?a&&n?i[s]=(...t)=>{n(...t),a(...t)}:a&&(i[s]=a):"style"===s?i[s]={...a,...n}
1:"className"===s&&(i[s]=[a,n].filter(Boolean).join(" "))}return{...t,...i}}(n,i.props),ref:e?(0,a.composeRefs)(e,i.ref):i.ref}):s.Children.count(i)>1?s.Children.only(null):null});sJ.displayName="SlotClone";let sZ=({children:t})=>s.createElement(s.Fragment,null,t);function s0(t){return s.isValidElement(t)&&t.type===sZ}let s1=["button","div","span","img","video","audio"].reduce((t,e)=>{let i=s.forwardRef((t,i)=>{let{asChild:a,...n}=t,r=a?sY:e;return s.createElement(r,{...n,ref:i})});return i.displayName=`Primitive.${e}`,{...t,[e]:i}},{});function s2(t){return t?.$$PROVIDER_TYPE==="REMOTION"}function s3(t){return t?.type==="video/remotion"}let s5=sA.state.record,s4=Object.keys(s5).reduce((t,e)=>({...t,[e]:()=>s5[e]}),{});function s9(t,e){let i=(0,a.useStateContext)(iT);return(0,a.useSignal)((e?.current?.$state||i||s4)[t])}let s7=su.state.record,s6=Object.keys(s7).reduce((t,e)=>({...t,[e]:()=>s7[e]}),{});function s8(t,e){let i=(0,a.useStateContext)(Z);return(0,a.useSignal)((e?.current?.$state||i||s6)[t])}}}]); 2//# sourceMappingURL=58e9c16c.d996b15d70314353.js.map
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.