@hanifhan1f/vidstack 1.12.19 → 1.12.25
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/cdn/chunks/vidstack-BBMfnVvt.js +1 -0
- package/cdn/chunks/vidstack-BF7lZRtq.js +3 -0
- package/cdn/chunks/vidstack-BYpysj84.js +1 -0
- package/cdn/chunks/vidstack-BkxGdzTJ.js +16 -0
- package/cdn/chunks/vidstack-Bzk6lVKb.js +1 -0
- package/cdn/chunks/vidstack-C0nMUcD9.js +1 -0
- package/cdn/chunks/vidstack-C1FlyyzK.js +1 -0
- package/cdn/chunks/vidstack-C51SKMUl.js +1 -0
- package/cdn/chunks/vidstack-CL95Hezv.js +1 -0
- package/cdn/chunks/vidstack-Cj0I-Rec.js +1 -0
- package/cdn/chunks/vidstack-CkaxOIJb.js +1 -0
- package/cdn/chunks/vidstack-Cu8FqSS9.js +1 -0
- package/cdn/chunks/vidstack-D84Fzc__.js +16 -0
- package/cdn/chunks/vidstack-DIPX97sJ.js +3 -0
- package/cdn/chunks/vidstack-DQvyz7Mm.js +1 -0
- package/cdn/chunks/vidstack-Dd9fqVv6.js +1 -0
- package/cdn/chunks/vidstack-DdAmWWBJ.js +1 -0
- package/cdn/chunks/vidstack-DhXI_0ND.js +1 -0
- package/cdn/chunks/vidstack-DiXE5sG8.js +1 -0
- package/cdn/chunks/vidstack-pFwe7gvT.js +3 -0
- package/cdn/chunks/vidstack-uMxrPflF.js +1 -0
- package/cdn/chunks/vidstack-zemsqC5d.js +1 -0
- package/cdn/providers/vidstack-audio-BAfEe7CJ.js +1 -0
- package/cdn/providers/vidstack-audio-BOGYlExy.js +1 -0
- package/cdn/providers/vidstack-dash-CGZUJqdT.js +1 -0
- package/cdn/providers/vidstack-dash-D4ZARr66.js +1 -0
- package/cdn/providers/vidstack-google-cast-Drb5Ncs5.js +1 -0
- package/cdn/providers/vidstack-hls-8-552IuX.js +1 -0
- package/cdn/providers/vidstack-hls-CVpa4usG.js +1 -0
- package/cdn/providers/vidstack-html-Bag27bH6.js +1 -0
- package/cdn/providers/vidstack-html-BvVaN2VT.js +1 -0
- package/cdn/providers/vidstack-video-BnwQZKER.js +1 -0
- package/cdn/providers/vidstack-video-DXUiSn4B.js +1 -0
- package/cdn/providers/vidstack-vimeo-DD6HUOtJ.js +1 -0
- package/cdn/providers/vidstack-vimeo-gJmBqtLK.js +1 -0
- package/cdn/providers/vidstack-youtube-BVNE075s.js +1 -0
- package/cdn/providers/vidstack-youtube-Chl_dTAz.js +1 -0
- package/cdn/vidstack.js +1 -1
- package/cdn/with-layouts/chunks/vidstack-2Rlth5Cf.js +1 -0
- package/cdn/with-layouts/chunks/vidstack-4liSokT6.js +1 -0
- package/cdn/with-layouts/chunks/vidstack-B97B8XDc.js +3 -0
- package/cdn/with-layouts/chunks/vidstack-BP3ybDy9.js +912 -0
- package/cdn/with-layouts/chunks/vidstack-BaNApRCP.js +1 -0
- package/cdn/with-layouts/chunks/vidstack-BbFHhcVG.js +1 -0
- package/cdn/with-layouts/chunks/vidstack-BlWKO1g1.js +1 -0
- package/cdn/with-layouts/chunks/vidstack-BxJPOhv7.js +1 -0
- package/cdn/with-layouts/chunks/vidstack-BxdAdQ0H.js +1 -0
- package/cdn/with-layouts/chunks/vidstack-CROJF16Z.js +1 -0
- package/cdn/with-layouts/chunks/vidstack-CXEcXyBI.js +1 -0
- package/cdn/with-layouts/chunks/vidstack-CaW6KGwN.js +1 -0
- package/cdn/with-layouts/chunks/vidstack-Ciq-n5rg.js +1 -0
- package/cdn/with-layouts/chunks/vidstack-CmuGllcj.js +1 -0
- package/cdn/with-layouts/chunks/vidstack-CwzW7rJU.js +1 -0
- package/cdn/with-layouts/chunks/vidstack-CyNByJUW.js +912 -0
- package/cdn/with-layouts/chunks/vidstack-DJyGEdCH.js +1 -0
- package/cdn/with-layouts/chunks/vidstack-DeLOZ-hK.js +3 -0
- package/cdn/with-layouts/chunks/vidstack-DhNpv7SU.js +1 -0
- package/cdn/with-layouts/chunks/vidstack-Dp3Ib32P.js +1 -0
- package/cdn/with-layouts/chunks/vidstack-Dy1Hfo7P.js +3 -0
- package/cdn/with-layouts/providers/vidstack-audio-CwoQJvl2.js +1 -0
- package/cdn/with-layouts/providers/vidstack-audio-cxaZF4jF.js +1 -0
- package/cdn/with-layouts/providers/vidstack-dash-CJsKJfLI.js +1 -0
- package/cdn/with-layouts/providers/vidstack-dash-DX1VjdTW.js +1 -0
- package/cdn/with-layouts/providers/vidstack-google-cast-DYJgNlvD.js +1 -0
- package/cdn/with-layouts/providers/vidstack-hls-2d6-2JAG.js +1 -0
- package/cdn/with-layouts/providers/vidstack-hls-ji26kFdQ.js +1 -0
- package/cdn/with-layouts/providers/vidstack-html-BvHMxtoe.js +1 -0
- package/cdn/with-layouts/providers/vidstack-html-C9nnuK3r.js +1 -0
- package/cdn/with-layouts/providers/vidstack-video-1Uj5cNP2.js +1 -0
- package/cdn/with-layouts/providers/vidstack-video-EWE67g5i.js +1 -0
- package/cdn/with-layouts/providers/vidstack-vimeo-DACTbJaQ.js +1 -0
- package/cdn/with-layouts/providers/vidstack-vimeo-DqFeS0-d.js +1 -0
- package/cdn/with-layouts/providers/vidstack-youtube-RoLp-I6u.js +1 -0
- package/cdn/with-layouts/providers/vidstack-youtube-eivIFfMV.js +1 -0
- package/cdn/with-layouts/vidstack.js +1 -1
- package/dev/chunks/vidstack-0XhA3AD_.js +5181 -0
- package/dev/chunks/vidstack-44ILR0Cb.js +1521 -0
- package/dev/chunks/vidstack-5oWWZmVl.js +58 -0
- package/dev/chunks/vidstack-B4XOm7dP.js +104 -0
- package/dev/chunks/vidstack-BnBLcaA5.js +115 -0
- package/dev/chunks/vidstack-Bo8BNFJ2.js +2986 -0
- package/dev/chunks/vidstack-C3N4zIuV.js +254 -0
- package/dev/chunks/vidstack-CAL4iu_K.js +1482 -0
- package/dev/chunks/vidstack-CEjYxSqZ.js +297 -0
- package/dev/chunks/vidstack-CGyAjz8G.js +58 -0
- package/dev/chunks/vidstack-CJCnHmKE.js +104 -0
- package/dev/chunks/vidstack-CQdFhXSo.js +204 -0
- package/dev/chunks/vidstack-CzCQJ29U.js +107 -0
- package/dev/chunks/vidstack-DD_3HszA.js +1520 -0
- package/dev/chunks/vidstack-DV4g4XvL.js +33 -0
- package/dev/chunks/vidstack-DWtK42Sh.js +1483 -0
- package/dev/chunks/vidstack-D_LvMxPr.js +204 -0
- package/dev/chunks/vidstack-DdTXMZro.js +66 -0
- package/dev/chunks/vidstack-DrczgsqN.js +297 -0
- package/dev/chunks/vidstack-el2dbO0m.js +5181 -0
- package/dev/chunks/vidstack-gF_qqvCK.js +109 -0
- package/dev/chunks/vidstack-rvhuswgi.js +2986 -0
- package/dev/define/plyr-layout.js +7 -7
- package/dev/define/templates/plyr-layout.js +2 -2
- package/dev/define/templates/vidstack-audio-layout.js +3 -3
- package/dev/define/templates/vidstack-video-layout.js +7 -9
- package/dev/define/vidstack-player-default-layout.js +3 -3
- package/dev/define/vidstack-player-layouts.js +3 -3
- package/dev/define/vidstack-player-ui.js +9 -9
- package/dev/define/vidstack-player.js +5 -5
- package/dev/global/plyr.js +9 -9
- package/dev/global/vidstack-player.js +6 -6
- package/dev/providers/vidstack-audio.js +2 -2
- package/dev/providers/vidstack-dash.js +4 -4
- package/dev/providers/vidstack-hls.js +4 -4
- package/dev/providers/vidstack-html.js +1 -1
- package/dev/providers/vidstack-video.js +4 -4
- package/dev/providers/vidstack-vimeo.js +4 -4
- package/dev/providers/vidstack-youtube.js +3 -3
- package/dev/vidstack-elements.js +12 -12
- package/dev/vidstack.js +9 -9
- package/package.json +1 -1
- package/player/styles/default/layouts/video.css +113 -79
- package/prod/chunks/vidstack-BAqdCFIm.js +4771 -0
- package/prod/chunks/vidstack-BRnfTkxi.js +297 -0
- package/prod/chunks/vidstack-BexQYZop.js +2976 -0
- package/prod/chunks/vidstack-Bf1Q6kqO.js +109 -0
- package/prod/chunks/vidstack-Bn9yLryd.js +58 -0
- package/prod/chunks/vidstack-C-yd_bAJ.js +4771 -0
- package/prod/chunks/vidstack-C4PTiuot.js +107 -0
- package/prod/chunks/vidstack-Cs0fH84E.js +1521 -0
- package/prod/chunks/vidstack-DDePVDjt.js +2976 -0
- package/prod/chunks/vidstack-DMDDSV3t.js +104 -0
- package/prod/chunks/vidstack-DXfGRhxZ.js +201 -0
- package/prod/chunks/vidstack-Dg71uhRc.js +58 -0
- package/prod/chunks/vidstack-DlLwMLBL.js +33 -0
- package/prod/chunks/vidstack-DnRxQoqP.js +104 -0
- package/prod/chunks/vidstack-KShKSmYu.js +66 -0
- package/prod/chunks/vidstack-Ko2EJadT.js +1483 -0
- package/prod/chunks/vidstack-ShUhyBfI.js +201 -0
- package/prod/chunks/vidstack-V9U6gsde.js +1482 -0
- package/prod/chunks/vidstack-XA3zT5W9.js +297 -0
- package/prod/chunks/vidstack-kdaDngIm.js +1520 -0
- package/prod/chunks/vidstack-oNEzlviH.js +246 -0
- package/prod/chunks/vidstack-wTTCvdqe.js +115 -0
- package/prod/define/plyr-layout.js +7 -7
- package/prod/define/templates/plyr-layout.js +2 -2
- package/prod/define/templates/vidstack-audio-layout.js +3 -3
- package/prod/define/templates/vidstack-video-layout.js +7 -9
- package/prod/define/vidstack-player-default-layout.js +3 -3
- package/prod/define/vidstack-player-layouts.js +3 -3
- package/prod/define/vidstack-player-ui.js +9 -9
- package/prod/define/vidstack-player.js +5 -5
- package/prod/global/plyr.js +9 -9
- package/prod/global/vidstack-player.js +6 -6
- package/prod/providers/vidstack-audio.js +2 -2
- package/prod/providers/vidstack-dash.js +4 -4
- package/prod/providers/vidstack-hls.js +4 -4
- package/prod/providers/vidstack-html.js +1 -1
- package/prod/providers/vidstack-video.js +4 -4
- package/prod/providers/vidstack-vimeo.js +4 -4
- package/prod/providers/vidstack-youtube.js +3 -3
- package/prod/vidstack-elements.js +12 -12
- package/prod/vidstack.js +9 -9
- package/server/chunks/vidstack-B2Bc9g7_.js +2000 -0
- package/server/chunks/vidstack-BosyhF3p.js +207 -0
- package/server/chunks/vidstack-C8F1EUBn.js +104 -0
- package/server/chunks/vidstack-CWho6PlG.js +141 -0
- package/server/chunks/vidstack-DhF59-Up.js +4635 -0
- package/server/chunks/vidstack-DoHmOxNm.js +295 -0
- package/server/chunks/vidstack-DzWvfg1d.js +1503 -0
- package/server/chunks/vidstack-PnFpou7g.js +3035 -0
- package/server/chunks/vidstack-gEJMQpTE.js +2001 -0
- package/server/define/plyr-layout.js +2 -2
- package/server/define/vidstack-player-default-layout.js +1 -1
- package/server/define/vidstack-player-layouts.js +1 -1
- package/server/define/vidstack-player-ui.js +4 -4
- package/server/define/vidstack-player.js +2 -2
- package/server/global/plyr.js +4 -4
- package/server/global/vidstack-player.js +2 -2
- package/server/vidstack-elements.js +8 -8
- package/server/vidstack.js +4 -4
|
@@ -0,0 +1,912 @@
|
|
|
1
|
+
import{u as O,c as ut,V as rt,e as d,s as b,E as _,p as f,l as G,i as E,a as K,b as Ut,S as yt,f as Pt,t as ct,d as fa,D as z,w as ga,o as A,g as ne,h as Is,j as re,k as v,m as oe,n as zt,q as ba,r as _s,v as it,x as ya,y as va,z as $a,A as wa,B as Oe,C as ht,F as M,G as le,H as Ta,I as Ct,J as Re,K as vt,L as k,M as C,N as B,O as Z,P as Vs,Q as Nt,R as T,T as Ne,U as w,W as Os,X as ka,Y as Sa,Z as Rs,_ as xa,$ as Fe,a0 as de,a1 as p,a2 as Pa,a3 as ue,a4 as ce,a5 as Ca,a6 as Ea,a7 as Aa,a8 as Ma,a9 as Ns,aa as Et,ab as he,ac as La,ad as Fs,ae as Da,af as qa,ag as et,ah as Ia,ai as _a,aj as Ft,ak as Va,al as Oa,am as Ra}from"./vidstack-Dy1Hfo7P.js";import{I as Bs,c as Hs,a as Na,b as Fa,d as Ba,e as Ha,i as Ga,f as Ka,g as Wa,h as Qa,j as Ua,k as Be,l as Gs,m as He}from"./vidstack-CwzW7rJU.js";import{T as pe,g as At,a as Ks,u as za}from"./vidstack-CaW6KGwN.js";import{i as Y,T as X,a as me,w as jt,b as ja,c as Ya}from"./vidstack-DeLOZ-hK.js";import{L as D}from"./vidstack-C_AxqLKV.js";import{Q as ot}from"./vidstack-DRH_1tFW.js";import{c as Ge,a as pt}from"./vidstack-BfBBPhXV.js";import{p as Yt,g as fe,a as Ws,b as Qs}from"./vidstack-CROJF16Z.js";import{c as Ke,r as W,g as Xa}from"./vidstack-Bxv1Qnxe.js";import"https://cdn.vidstack.io/icons";const We=Symbol(0),Ja=["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"],Us=ut();function y(){return O(Us)}function R(){return y().$state}function Za(i){return i instanceof HTMLAudioElement}function tn(i){return i instanceof HTMLVideoElement}function en(i){return Za(i)||tn(i)}class Mt extends rt{}const sn={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:"<"},Xt=new Set(["Shift","Alt","Meta","Ctrl"]),an='button, [role="button"]',zs='input, textarea, select, [contenteditable], [role^="menuitem"], [role="timer"]';class nn extends Mt{#t;constructor(t){super(),this.#t=t}onConnect(){d(this.#e.bind(this))}#e(){const{keyDisabled:t,keyTarget:e}=this.$props;if(t())return;const s=e()==="player"?this.el:document,a=b(!1);s===this.el?new _(this.el).add("focusin",()=>a.set(!0)).add("focusout",n=>{this.el.contains(n.target)||a.set(!1)}):(f(a)||a.set(document.querySelector("[data-media-player]")===this.el),G(document,"focusin",n=>{const r=n.composedPath().find(o=>o instanceof Element&&o.localName==="media-player");r!==void 0&&a.set(this.el===r)})),d(()=>{a()&&new _(s).add("keyup",this.#s.bind(this)).add("keydown",this.#i.bind(this)).add("keydown",this.#a.bind(this),{capture:!0})})}#s(t){const e=document.activeElement;if(!t.key||!this.$state.canSeek()||e?.matches(zs))return;let{method:s,value:a}=this.#n(t);if(!E(a)&&!K(a)){a?.onKeyUp?.({event:t,player:this.#t.player,remote:this.#t.remote}),a?.callback?.(t,this.#t.remote);return}s?.startsWith("seek")&&(t.preventDefault(),t.stopPropagation(),this.#l?(this.#u(t,s==="seekForward"),this.#l=null):(this.#t.remote.seek(this.#r,t),this.#r=void 0)),s?.startsWith("volume")&&this.el.querySelector("[data-media-volume-slider]")?.dispatchEvent(new KeyboardEvent("keyup",{key:s==="volumeUp"?"Up":"Down",shiftKey:t.shiftKey,trigger:t}))}#i(t){if(!t.key||Xt.has(t.key))return;const e=document.activeElement;if(e?.matches(zs)||Ut(t)&&e?.matches(an))return;let{method:s,value:a}=this.#n(t),n=!t.metaKey&&/^[0-9]$/.test(t.key);if(!E(a)&&!K(a)&&!n){a?.onKeyDown?.({event:t,player:this.#t.player,remote:this.#t.remote}),a?.callback?.(t,this.#t.remote);return}if(!s&&n&&!ln(t)){t.preventDefault(),t.stopPropagation(),this.#t.remote.seek(this.$state.duration()/10*Number(t.key),t);return}if(s){switch(t.preventDefault(),t.stopPropagation(),s){case"seekForward":case"seekBackward":this.#c(t,s,s==="seekForward");break;case"volumeUp":case"volumeDown":const r=this.el.querySelector("[data-media-volume-slider]");if(r)r.dispatchEvent(new KeyboardEvent("keydown",{key:s==="volumeUp"?"Up":"Down",shiftKey:t.shiftKey,trigger:t}));else{const l=t.shiftKey?.1:.05;this.#t.remote.changeVolume(this.$state.volume()+(s==="volumeUp"?+l:-l),t)}break;case"toggleFullscreen":this.#t.remote.toggleFullscreen("prefer-media",t);break;case"speedUp":case"slowDown":const o=this.$state.playbackRate();this.#t.remote.changePlaybackRate(Math.max(.25,Math.min(2,o+(s==="speedUp"?.25:-.25))),t);break;default:this.#t.remote[s]?.(t)}this.$state.lastKeyboardAction.set({action:s,event:t})}}#a(t){en(t.target)&&this.#n(t).method&&t.preventDefault()}#n(t){const e={...this.$props.keyShortcuts(),...this.#t.ariaKeys},s=Object.keys(e).find(a=>{const n=e[a],r=K(n)?n.join(" "):E(n)?n:n?.keys;return(K(r)?r:r?.split(" "))?.map(l=>on(l).replace(/Control/g,"Ctrl").split("+"))?.some(l=>{const u=new Set(l.filter(h=>Xt.has(h)));"<>".includes(t.key)&&u.add("Shift");for(const h of Xt){const c=h.toLowerCase()+"Key";if(!u.has(h)&&t[c])return!1}return l.every(h=>Xt.has(h)?t[h.toLowerCase()+"Key"]:t.key===h.replace("Space"," "))})});return{method:s,value:s?e[s]:null}}#r;#o(t,e){const s=t.shiftKey?10:5;return this.#r=Math.max(0,Math.min((this.#r??this.$state.currentTime())+(e==="seekForward"?+s:-s),this.$state.duration()))}#l=null;#u(t,e){this.#l?.dispatchEvent(new KeyboardEvent(t.type,{key:e?"Right":"Left",shiftKey:t.shiftKey,trigger:t}))}#c(t,e,s){this.$state.canSeek()&&(this.#l||(this.#l=this.el.querySelector("[data-media-time-slider]")),this.#l?this.#u(t,s):this.#t.remote.seeking(this.#o(t,e),t))}}const rn=["!","@","#","$","%","^","&","*","(",")"];function on(i){return i.replace(/Shift\+(\d)/g,(t,e)=>rn[e-1])}function ln(i){for(const t of Xt)if(i[t.toLowerCase()+"Key"])return!0;return!1}const dn={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:sn,storage:null},js=new yt({artist:"",artwork:null,audioTrack:null,audioTracks:[],autoPlay:!1,autoPlayError:null,audioGain:null,buffered:new pe,canLoad:!1,canLoadPoster:!1,canFullscreen:!1,canOrientScreen:Hs(),canPictureInPicture:!1,canPlay:!1,clipStartTime:0,clipEndTime:0,controls:!1,get iOSControls(){return Bs&&this.mediaType==="video"&&(!this.playsInline||!Pt.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 pe,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 pe,seeking:!1,source:{src:"",type:""},sources:[],started:!1,textTracks:[],textTrack:null,get hasCaptions(){return this.textTracks.filter(Y).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 this.providedViewType!=="unknown"?this.providedViewType:this.inferredViewType},get streamType(){return this.providedStreamType!=="unknown"?this.providedStreamType:this.inferredStreamType},get currentSrc(){return this.source},get bufferedStart(){const i=Ks(this.buffered)??0;return Math.max(i,this.clipStartTime)},get bufferedEnd(){const i=At(this.buffered)??0;return Math.min(this.seekableEnd,Math.max(0,i-this.clipStartTime))},get bufferedWindow(){return Math.max(0,this.bufferedEnd-this.bufferedStart)},get seekableStart(){if(this.isLiveDVR&&this.liveDVRWindow>0)return Math.max(0,this.seekableEnd-this.liveDVRWindow);const i=Ks(this.seekable)??0;return Math.max(i,this.clipStartTime)},get seekableEnd(){if(this.providedDuration>0)return this.providedDuration;const i=this.liveSyncPosition>0?this.liveSyncPosition:this.canPlay?At(this.seekable)??1/0:0;return this.clipEndTime>0?Math.min(this.clipEndTime,i):i},get seekableWindow(){const i=this.seekableEnd-this.seekableStart;return isNaN(i)?1/0:Math.max(0,i)},canAirPlay:!1,canGoogleCast:!1,remotePlaybackState:"disconnected",remotePlaybackType:"none",remotePlaybackLoader:null,remotePlaybackInfo:null,get isAirPlayConnected(){return this.remotePlaybackType==="airplay"&&this.remotePlaybackState==="connected"},get isGoogleCastConnected(){return this.remotePlaybackType==="google-cast"&&this.remotePlaybackState==="connected"},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}),Ys=new Set(["autoPlayError","autoPlaying","buffered","canPlay","error","paused","played","playing","seekable","seeking","waiting"]),un=new Set([...Ys,"ended","inferredPoster","inferredStreamType","inferredTitle","intrinsicDuration","inferredLiveDVRWindow","liveSyncPosition","realCurrentTime","savedState","started","userBehindLiveEdge"]);function Xs(i,t=!1){const e=t?Ys:un;js.reset(i,s=>e.has(s)),ct()}function Js(i,t){const e=i+t.clipStartTime(),s=Math.floor(i)===Math.floor(t.seekableStart()),a=Math.floor(e)===Math.floor(t.seekableEnd());return s?t.seekableStart():a?t.seekableEnd():t.isLiveDVR()&&t.liveDVRWindow()>0&&e<t.seekableEnd()-t.liveDVRWindow()?t.bufferedStart():Math.min(Math.max(t.seekableStart()+.1,e),t.seekableEnd()-.1)}class Zs extends fa{items=[];[D.readonly]=!1;get length(){return this.items.length}get readonly(){return this[D.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()}[D.add](t,e){const s=this.items.length;""+s in this||Object.defineProperty(this,s,{get(){return this.items[s]}}),!this.items.includes(t)&&(this.items.push(t),this.dispatchEvent(new z("add",{detail:t,trigger:e})))}[D.remove](t,e){const s=this.items.indexOf(t);s>=0&&(this[D.onRemove]?.(t,e),this.items.splice(s,1),this.dispatchEvent(new z("remove",{detail:t,trigger:e})))}[D.reset](t){for(const e of[...this.items])this[D.remove](e,t);this.items=[],this[D.setReadonly](!1,t),this[D.onReset]?.()}[D.setReadonly](t,e){this[D.readonly]!==t&&(this[D.readonly]=t,this.dispatchEvent(new z("readonly-change",{detail:t,trigger:e})))}}const Jt=Symbol(0);class ti extends Zs{get selected(){return this.items.find(t=>t.selected)??null}get selectedIndex(){return this.items.findIndex(t=>t.selected)}[D.onRemove](t,e){this[D.select](t,!1,e)}[D.add](t,e){t[Jt]=!1,Object.defineProperty(t,"selected",{get(){return this[Jt]},set:s=>{this.readonly||(this[D.onUserSelect]?.(),this[D.select](t,s))}}),super[D.add](t,e)}[D.select](t,e,s){if(e===t?.[Jt])return;const a=this.selected;t&&(t[Jt]=e),(e?a!==t:a===t)&&(a&&(a[Jt]=!1),this.dispatchEvent(new z("change",{detail:{prev:a,current:this.selected},trigger:s})))}}class cn extends ti{#t=!1;switch="current";get auto(){return this.#t||this.readonly}[ot.enableAuto];[D.onUserSelect](){this[ot.setAuto](!1)}[D.onReset](t){this[ot.enableAuto]=void 0,this[ot.setAuto](!1,t)}autoSelect(t){this.readonly||this.#t||!this[ot.enableAuto]||(this[ot.enableAuto]?.(t),this[ot.setAuto](!0,t))}getBySrc(t){return this.items.find(e=>e.src===t)}[ot.setAuto](t,e){this.#t!==t&&(this.#t=t,this.dispatchEvent(new z("auto-change",{detail:t,trigger:e})))}}class ei extends Mt{#t;#e;constructor(t,e){super(),this.#t=t,this.#e=e}async onAttach(t){const e=this.$props[this.#t]();if(e==="eager")requestAnimationFrame(this.#e);else if(e==="idle")ga(this.#e);else if(e==="visible"){let s,a=new IntersectionObserver(n=>{this.scope&&n[0].isIntersecting&&(s?.(),s=void 0,this.#e())});a.observe(t),s=A(()=>a.disconnect())}}}class hn{#t;#e;constructor(t,e){this.#t=t,this.#e=e}notify(t,...e){this.#t(new z(t,{detail:e?.[0],trigger:e?.[1]}))}async ready(t,e){return ne(async()=>{const{logger:s}=this.#e,{autoPlay:a,canPlay:n,started:r,duration:o,seekable:l,buffered:u,remotePlaybackInfo:h,playsInline:c,savedState:g,source:$}=this.#e.$state;if(n())return;const x={duration:t?.duration??o(),seekable:t?.seekable??l(),buffered:t?.buffered??u(),provider:this.#e.$provider()};this.notify("can-play",x,e),ct();let q=this.#e.$provider(),{storage:L,qualities:j}=this.#e,{muted:bt,volume:dt,clipStartTime:H,playbackRate:St}=this.#e.$props;await L?.onLoad?.($());const xt=g()?.currentTime,Ve=g()?.paused,Ot=await L?.getTime(),Ls=xt??Ot??H(),ma=Ve===!1||Ve!==!0&&!r()&&a();if(q){q.setVolume(await L?.getVolume()??dt()),q.setMuted(bt()||!!await L?.getMuted());const Rt=await L?.getAudioGain()??1;Rt>1&&q.audioGain?.setGain?.(Rt),q.setPlaybackRate?.(await L?.getPlaybackRate()??St()),q.setPlaysInline?.(c()),Ls>0&&q.setCurrentTime(Ls)}const Qt=await L?.getVideoQuality();if(Qt&&j.length){let Rt=null,Ds=1/0;for(const ae of j){const qs=Math.abs(Qt.width-ae.width)+Math.abs(Qt.height-ae.height)+(Qt.bitrate?Math.abs(Qt.bitrate-(ae.bitrate??0)):0);qs<Ds&&(Rt=ae,Ds=qs)}Rt&&(Rt.selected=!0)}n()&&ma?await this.#s(e):Ot&&Ot>0&&this.notify("started",void 0,e),h.set(null)})}async#s(t){const{player:e,$state:{autoPlaying:s,muted:a}}=this.#e;s.set(!0);const n=new z("auto-play-attempt",{trigger:t});try{await e.play(n)}catch{}}}const Qe=Pt.fullscreenEnabled;class pn extends rt{#t=!1;#e=!1;get active(){return this.#e}get supported(){return Qe}onConnect(){new _(Pt).add("fullscreenchange",this.#i.bind(this)).add("fullscreenerror",this.#a.bind(this)),A(this.#s.bind(this))}async#s(){Qe&&await this.exit()}#i(t){const e=Ue(this.el);e!==this.#e&&(e||(this.#t=!1),this.#e=e,this.dispatch("fullscreen-change",{detail:e,trigger:t}))}#a(t){this.#t&&(this.dispatch("fullscreen-error",{detail:null,trigger:t}),this.#t=!1)}async enter(){try{return this.#t=!0,!this.el||Ue(this.el)?void 0:(si(),Pt.requestFullscreen(this.el))}catch(t){throw this.#t=!1,t}}async exit(){if(!(!this.el||!Ue(this.el)))return si(),Pt.exitFullscreen()}}function Ue(i){if(Pt.fullscreenElement===i)return!0;try{return i.matches(Pt.fullscreenPseudoClass)}catch{return!1}}function si(){if(!Qe)throw Error("[vidstack] no fullscreen API")}class _e extends rt{#t=b(this.#r());#e=b(!1);#s;get type(){return this.#t()}get locked(){return this.#e()}get portrait(){return this.#t().startsWith("portrait")}get landscape(){return this.#t().startsWith("landscape")}static supported=Hs();get supported(){return _e.supported}onConnect(){if(this.supported)G(screen.orientation,"change",this.#a.bind(this));else{const t=window.matchMedia("(orientation: landscape)");t.onchange=this.#a.bind(this),A(()=>t.onchange=null)}A(this.#i.bind(this))}async#i(){this.supported&&this.#e()&&await this.unlock()}#a(t){this.#t.set(this.#r()),this.dispatch("orientation-change",{detail:{orientation:f(this.#t),lock:this.#s},trigger:t})}async lock(t){f(this.#e)||this.#s===t||(this.#n(),await screen.orientation.lock(t),this.#e.set(!0),this.#s=t)}async unlock(){f(this.#e)&&(this.#n(),this.#s=void 0,await screen.orientation.unlock(),this.#e.set(!1))}#n(){if(!this.supported)throw Error("[vidstack] no orientation API")}#r(){return this.supported?window.screen.orientation.type:window.innerWidth>=window.innerHeight?"landscape-primary":"portrait-primary"}}class mn{#t=new Map;enqueue(t,e){this.#t.set(t,e)}serve(t){const e=this.peek(t);return this.#t.delete(t),e}peek(t){return this.#t.get(t)}delete(t){this.#t.delete(t)}clear(){this.#t.clear()}}class ii{#t=!1;#e=Is();#s=new Map;get size(){return this.#s.size}get isServing(){return this.#t}async waitForFlush(){this.#t||await this.#e.promise}enqueue(t,e){if(this.#t){e();return}this.#s.delete(t),this.#s.set(t,e)}serve(t){this.#s.get(t)?.(),this.#s.delete(t)}start(){this.#i(),this.#t=!0,this.#s.size>0&&this.#i()}stop(){this.#t=!1}reset(){this.stop(),this.#s.clear(),this.#a()}#i(){for(const t of this.#s.keys())this.serve(t);this.#a()}#a(){this.#e.resolve(),this.#e=Is()}}function fn(i){return i?"true":"false"}function U(i){return()=>fn(i())}function gn(){return typeof window>"u"?!1:window.matchMedia("(prefers-reduced-motion: reduce)").matches}function ai(i,t){const e=t.composedPath()[0];return _s(e)&&i.contains(e)}const ze=new Set;{let i=function(){for(const t of ze)try{t()}catch{}window.requestAnimationFrame(i)};i()}function bn(i){return ze.add(i),()=>ze.delete(i)}function I(i,t,e){i.hasAttribute(t)||i.setAttribute(t,e)}function $t(i,t){if(i.hasAttribute("aria-label")||i.hasAttribute("data-no-label"))return;if(!re(t)){v(i,"aria-label",t);return}function e(){v(i,"aria-label",t())}d(e)}function ni(i){const t=getComputedStyle(i);return t.display!=="none"&&parseInt(t.opacity)>0}function yn(i){return!!i&&("checkVisibility"in i?i.checkVisibility({checkOpacity:!0,checkVisibilityCSS:!0}):ni(i))}function ri(i,t){return bn(()=>t(yn(i)))}function oi(i,t,e){for(;t;){if(t===i)return!0;if(e?.(t))break;t=t.parentElement}return!1}function wt(i,t){return new _(i).add("pointerup",e=>{e.button===0&&!e.defaultPrevented&&t(e)}).add("keydown",e=>{Ut(e)&&t(e)})}function je(i){return oe(i)&&(i.touches.length>1||i.changedTouches.length>1)}function mt(i){let t=ba(),e=window.requestAnimationFrame(()=>{zt(i,t),e=-1});return()=>void window.cancelAnimationFrame(e)}function Ye(i,t,e){let s,a=i,n=i.parentElement,r=i.content.firstElementChild,o=[];!r&&i.firstElementChild&&(i.innerHTML=i.firstElementChild.outerHTML,i.firstElementChild.remove(),r=i.content.firstElementChild);for(let l=0;l<t;l++)s=document.importNode(r,!0),e?.(s,l),n.insertBefore(s,a.nextSibling),o.push(s),a=s;return A(()=>{for(let l=0;l<o.length;l++)o[l].remove()}),o}function Xe(i){const t=document.createElement("template");return t.innerHTML=i,t.content}function Je(i){return i.cloneNode(!0).firstElementChild}function li(i,t,e,{offsetVarName:s,xOffset:a,yOffset:n,...r}){if(!i)return;const o=e.replace(" ","-").replace("-center","");if(it(i,"visibility",t?null:"hidden"),!t)return;let l=e.includes("top");const u=c=>e.includes("left")?`calc(-1 * ${c})`:c,h=c=>l?`calc(-1 * ${c})`:c;return ya(t,i,()=>{va(t,i,{placement:o,middleware:[...r.middleware??[],$a({fallbackAxisSideDirection:"start",crossAxis:!1}),wa()],...r}).then(({x:c,y:g,middlewareData:$})=>{const x=!!$.flip?.index;l=e.includes(x?"bottom":"top"),i.setAttribute("data-placement",x?e.startsWith("top")?e.replace("top","bottom"):e.replace("bottom","top"):e),Object.assign(i.style,{top:`calc(${g+"px"} + ${h(n?n+"px":`var(--${s}-y-offset, 0px)`)})`,left:`calc(${c+"px"} + ${u(a?a+"px":`var(--${s}-x-offset, 0px)`)})`})})})}function vn(i){return getComputedStyle(i).animationName!=="none"}function $n(i){const t=document.createElement("slot");return t.name=i,t}function wn(i){const t=b(!1);return d(()=>{const e=i();e&&new _(e).add("transitionstart",()=>t.set(!0)).add("transitionend",()=>t.set(!1))}),t}function di(i,t){function e(){const s=i();if(!s)return;t();const a=new ResizeObserver(ht(t));return a.observe(s),()=>a.disconnect()}d(e)}function Tn(i){const t=kn(i),e=Sn(i);let s=!1;return M(()=>{const a=t();return s&&!a?!1:(s=a,a||e())})}function kn(i){const t=b(!1);return d(()=>{const e=i();if(!e){t.set(!1);return}new _(e).add("mouseenter",()=>t.set(!0)).add("mouseleave",()=>t.set(!1))}),t}function Sn(i){const t=b(!1);return d(()=>{const e=i();if(!e){t.set(!1);return}new _(e).add("focusin",()=>t.set(!0)).add("focusout",()=>t.set(!1))}),t}function Tt(i){return i instanceof HTMLElement}function xn(){const i=b("dark"),t=window.matchMedia("(prefers-color-scheme: light)");function e(){i.set(t.matches?"light":"dark")}return e(),G(t,"change",e),i}function ui(i,t){d(()=>{const s=t();if(s==="system"){const a=xn();d(()=>e(a()));return}e(s)});function e(s){Oe(i,"light",s==="light"),Oe(i,"dark",s==="dark")}}class Pn extends Mt{#t=-2;#e=!1;#s=b(!1);#i=b(!1);#a=null;#n=b(!0);defaultDelay=2e3;get canIdle(){return this.#n()}set canIdle(t){this.#n.set(t)}get hideOnMouseLeave(){const{hideControlsOnMouseLeave:t}=this.$props;return this.#s()||t()}set hideOnMouseLeave(t){this.#s.set(t)}get showing(){return this.$state.controlsVisible()}show(t=0,e){this.#m(),this.#e||this.#g(!0,t,e)}hide(t=this.defaultDelay,e){this.#m(),this.#e||this.#g(!1,t,e)}pause(t){this.#e=!0,this.#m(),this.#g(!0,0,t)}resume(t){this.#e=!1,!this.$state.paused()&&this.#g(!1,this.defaultDelay,t)}onConnect(){d(this.#r.bind(this))}#r(){const{viewType:t}=this.$state;if(!this.el||!this.#n())return;if(t()==="audio"){this.show();return}d(this.#o.bind(this)),d(this.#l.bind(this));const e=this.#u.bind(this),s=this.#c.bind(this),a=this.#h.bind(this);new _(this.el).add("can-play",n=>this.show(0,n)).add("play",e).add("pause",s).add("end",a).add("auto-play-fail",s)}#o(){if(!this.el)return;const{started:t,pointer:e,paused:s}=this.$state;if(!t()||e()!=="fine")return;const a=new _(this.el),n=this.hideOnMouseLeave;(!n||!this.#i())&&d(()=>{s()||a.add("pointermove",this.#b.bind(this))}),n&&a.add("mouseenter",this.#d.bind(this)).add("mouseleave",this.#p.bind(this))}#l(){const{paused:t,started:e,autoPlayError:s}=this.$state;if(t()||s()&&!e())return;const a=this.#b.bind(this);d(()=>{if(!this.el)return;const n=this.$state.pointer(),r=n==="coarse",o=new _(this.el),l=[r?"touchend":"pointerup","keydown"];for(const u of l)o.add(u,a,{passive:!1})})}#u(t){t.triggers.hasType("ended")||(this.show(0,t),this.hide(void 0,t))}#c(t){this.show(0,t)}#h(t){const{loop:e}=this.$state;e()&&this.hide(0,t)}#d(t){this.#i.set(!1),this.show(0,t),this.hide(void 0,t)}#p(t){this.#i.set(!0),this.hide(0,t)}#m(){window.clearTimeout(this.#t),this.#t=-1}#b(t){t.MEDIA_GESTURE||this.#e||je(t)||(le(t)&&(t.key==="Escape"?(this.el?.focus(),this.#a=null):this.#a&&(t.preventDefault(),requestAnimationFrame(()=>{this.#a?.focus(),this.#a=null}))),this.show(0,t),this.hide(this.defaultDelay,t))}#g(t,e,s){if(e===0){this.#y(t,s);return}this.#t=window.setTimeout(()=>{this.scope&&this.#y(t&&!this.#e,s)},e)}#y(t,e){this.$state.controlsVisible()!==t&&(this.$state.controlsVisible.set(t),!t&&document.activeElement&&this.el?.contains(document.activeElement)&&(this.#a=document.activeElement,requestAnimationFrame(()=>{this.el?.focus({preventScroll:!0})})),this.dispatch("controls-change",{detail:t,trigger:e}))}}class Cn extends Mt{#t;#e;#s;controls;#i;#a;#n;#r=new ii;constructor(t,e,s){super(),this.#t=t,this.#e=e,this.#s=s,this.#n=s.$provider,this.controls=new Pn,this.#i=new pn,this.#a=new _e}onAttach(){this.listen("fullscreen-change",this.#x.bind(this))}onConnect(t){const e=Object.getOwnPropertyNames(Object.getPrototypeOf(this)),s=new _(t),a=this.#u.bind(this);for(const n of e)n.startsWith("media-")&&s.add(n,a);this.#o(),d(this.#l.bind(this)),d(this.#m.bind(this)),d(this.#b.bind(this)),d(this.#g.bind(this)),d(this.#y.bind(this)),d(this.#$.bind(this)),d(this.#w.bind(this))}onDestroy(){try{const t=this.createEvent("destroy"),{pictureInPicture:e,fullscreen:s}=this.$state;s()&&this.exitFullscreen("prefer-media",t),e()&&this.exitPictureInPicture(t)}catch{}this.#r.reset()}#o(){const{load:t}=this.$props,{canLoad:e}=this.$state;if(t()!=="play"||e())return;const s=this.listen("media-play-request",a=>{this.#c(a),s()})}#l(){const t=this.#n(),e=this.$state.canPlay();return t&&e&&this.#r.start(),()=>{this.#r.stop()}}#u(t){t.stopPropagation(),!t.defaultPrevented&&this[t.type]&&(f(this.#n)?this[t.type](t):this.#r.enqueue(t.type,()=>{f(this.#n)&&this[t.type](t)}))}async play(t){const{canPlay:e,paused:s,autoPlaying:a}=this.$state;if(this.#c(t)||!f(s))return;t&&this.#e.queue.enqueue("media-play-request",t);const n=f(a);try{const r=f(this.#n);return Ze(r,f(e)),En(n),await r.play()}catch(r){const o=this.createEvent("play-fail",{detail:Ge(r),trigger:t});throw o.autoPlay=n,this.#t.handle(o),r}}#c(t){const{load:e}=this.$props,{canLoad:s}=this.$state;if(e()==="play"&&!s()){const a=this.createEvent("media-start-loading",{trigger:t});return this.dispatchEvent(a),this.#r.enqueue("media-play-request",async()=>{try{await this.play(a)}catch{}}),!0}return!1}async pause(t){const{canPlay:e,paused:s}=this.$state;if(!f(s)){t&&this.#e.queue.enqueue("media-pause-request",t);try{const a=f(this.#n);return Ze(a,f(e)),await a.pause()}catch(a){throw this.#e.queue.delete("media-pause-request"),a}}}setAudioGain(t,e){const{audioGain:s,canSetAudioGain:a}=this.$state;if(s()===t)return;const n=this.#n();if(!n?.audioGain||!a())throw Error("[vidstack] audio gain api not available");e&&this.#e.queue.enqueue("media-audio-gain-change-request",e),n.audioGain.setGain(t)}seekToLiveEdge(t){const{canPlay:e,live:s,liveEdge:a,canSeek:n,liveSyncPosition:r,seekableEnd:o,userBehindLiveEdge:l}=this.$state;if(l.set(!1),f(()=>!s()||a()||!n()))return;const u=f(this.#n);Ze(u,f(e)),t&&this.#e.queue.enqueue("media-seek-request",t);const h=o()-2;u.setCurrentTime(Math.min(h,r()??h))}#h=!1;async enterFullscreen(t="prefer-media",e){const s=this.#d(t);if(ci(t,s),!s.active)return f(this.$state.pictureInPicture)&&(this.#h=!0,await this.exitPictureInPicture(e)),e&&this.#e.queue.enqueue("media-enter-fullscreen-request",e),s.enter()}async exitFullscreen(t="prefer-media",e){const s=this.#d(t);if(ci(t,s),!!s.active){e&&this.#e.queue.enqueue("media-exit-fullscreen-request",e);try{const a=await s.exit();return this.#h&&f(this.$state.canPictureInPicture)&&await this.enterPictureInPicture(),a}finally{this.#h=!1}}}#d(t){const e=f(this.#n);return t==="prefer-media"&&this.#i.supported||t==="media"?this.#i:e?.fullscreen}async enterPictureInPicture(t){if(this.#p(),!this.$state.pictureInPicture())return t&&this.#e.queue.enqueue("media-enter-pip-request",t),await this.#n().pictureInPicture.enter()}async exitPictureInPicture(t){if(this.#p(),!!this.$state.pictureInPicture()){t&&this.#e.queue.enqueue("media-exit-pip-request",t);try{if(document?.pictureInPictureElement&&document.exitPictureInPicture){await document.exitPictureInPicture();return}const e=this.#n();if(e?.pictureInPicture){await e.pictureInPicture.exit();return}const s=document?.querySelectorAll?.("video")||[];for(const a of s){if(a===document.pictureInPictureElement&&document.exitPictureInPicture){await document.exitPictureInPicture();return}if(a.webkitPresentationMode==="picture-in-picture"){a.webkitSetPresentationMode("inline");return}}}catch{}}}#p(){if(!this.$state.canPictureInPicture())throw Error("[vidstack] no pip support")}#m(){this.controls.defaultDelay=this.$props.controlsDelay()}#b(){const{canSetAudioGain:t}=this.$state,e=!!this.#n()?.audioGain?.supported;t.set(e)}#g(){const{canAirPlay:t}=this.$state,e=!!this.#n()?.airPlay?.supported;t.set(e)}#y(){const{canGoogleCast:t,source:e}=this.$state,s=Na&&!Fa&&Ba(e());t.set(s)}#$(){const{canFullscreen:t}=this.$state,e=this.#i.supported||!!this.#n()?.fullscreen?.supported;t.set(e)}#w(){const{canPictureInPicture:t}=this.$state,e=!!this.#n()?.pictureInPicture?.supported;t.set(e)}async"media-airplay-request"(t){try{await this.requestAirPlay(t)}catch{}}async requestAirPlay(t){try{const e=this.#n()?.airPlay;if(!e?.supported)throw Error("No AirPlay adapter.");return t&&this.#e.queue.enqueue("media-airplay-request",t),await e.prompt()}catch(e){throw this.#e.queue.delete("media-airplay-request"),e}}async"media-google-cast-request"(t){try{await this.requestGoogleCast(t)}catch{}}#v;async requestGoogleCast(t){try{const{canGoogleCast:e}=this.$state;if(!f(e)){const a=Error("Cast not available.");throw a.code="CAST_NOT_AVAILABLE",a}if(Yt("https://www.gstatic.com"),!this.#v){const a=await import("./vidstack-Dp3Ib32P.js");this.#v=new a.GoogleCastLoader}await this.#v.prompt(this.#s),t&&this.#e.queue.enqueue("media-google-cast-request",t);const s=f(this.$state.remotePlaybackState)!=="disconnected";s&&this.$state.savedState.set({paused:f(this.$state.paused),currentTime:f(this.$state.currentTime)}),this.$state.remotePlaybackLoader.set(s?this.#v:null)}catch(e){throw this.#e.queue.delete("media-google-cast-request"),e}}"media-clip-start-change-request"(t){const{clipStartTime:e}=this.$state;e.set(t.detail)}"media-clip-end-change-request"(t){const{clipEndTime:e}=this.$state;e.set(t.detail),this.dispatch("duration-change",{detail:t.detail,trigger:t})}"media-duration-change-request"(t){const{providedDuration:e,clipEndTime:s}=this.$state;e.set(t.detail),s()<=0&&this.dispatch("duration-change",{detail:t.detail,trigger:t})}"media-audio-track-change-request"(t){const{logger:e,audioTracks:s}=this.#s;if(s.readonly)return;const a=t.detail,n=s[a];if(n){const r=t.type;this.#e.queue.enqueue(r,t),n.selected=!0}}async"media-enter-fullscreen-request"(t){try{await this.enterFullscreen(t.detail,t)}catch(e){this.#f(e,t)}}async"media-exit-fullscreen-request"(t){try{await this.exitFullscreen(t.detail,t)}catch(e){this.#f(e,t)}}async#x(t){const e=f(this.$props.fullscreenOrientation),s=t.detail;if(!(Ta(e)||e==="none"||!this.#a.supported))if(s){if(this.#a.locked)return;this.dispatch("media-orientation-lock-request",{detail:e,trigger:t})}else this.#a.locked&&this.dispatch("media-orientation-unlock-request",{trigger:t})}#f(t,e){this.#t.handle(this.createEvent("fullscreen-error",{detail:Ge(t)}))}async"media-orientation-lock-request"(t){const e=t.type;try{this.#e.queue.enqueue(e,t),await this.#a.lock(t.detail)}catch{this.#e.queue.delete(e)}}async"media-orientation-unlock-request"(t){const e=t.type;try{this.#e.queue.enqueue(e,t),await this.#a.unlock()}catch{this.#e.queue.delete(e)}}async"media-enter-pip-request"(t){try{await this.enterPictureInPicture(t)}catch(e){this.#T(e,t)}}async"media-exit-pip-request"(t){try{await this.exitPictureInPicture(t)}catch(e){this.#T(e,t)}}#T(t,e){this.#t.handle(this.createEvent("picture-in-picture-error",{detail:Ge(t)}))}"media-live-edge-request"(t){const{live:e,liveEdge:s,canSeek:a}=this.$state;if(!(!e()||s()||!a())){this.#e.queue.enqueue("media-seek-request",t);try{this.seekToLiveEdge()}catch{this.#e.queue.delete("media-seek-request")}}}async"media-loop-request"(t){try{this.#e.looping=!0,this.#e.replaying=!0,await this.play(t)}catch{this.#e.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{}}async"media-play-request"(t){if(this.$state.paused())try{await this.play(t)}catch{}}"media-rate-change-request"(t){const{playbackRate:e,canSetPlaybackRate:s}=this.$state;if(e()===t.detail||!s())return;const a=this.#n();a?.setPlaybackRate&&(this.#e.queue.enqueue("media-rate-change-request",t),a.setPlaybackRate(t.detail))}"media-audio-gain-change-request"(t){try{this.setAudioGain(t.detail,t)}catch{}}"media-quality-change-request"(t){const{qualities:e,storage:s,logger:a}=this.#s;if(e.readonly)return;this.#e.queue.enqueue("media-quality-change-request",t);const n=t.detail;if(n<0)e.autoSelect(t),t.isOriginTrusted&&s?.setVideoQuality?.(null);else{const r=e[n];r&&(r.selected=!0,t.isOriginTrusted&&s?.setVideoQuality?.({id:r.id,width:r.width,height:r.height,bitrate:r.bitrate}))}}"media-pause-controls-request"(t){const e=t.type;this.#e.queue.enqueue(e,t),this.controls.pause(t)}"media-resume-controls-request"(t){const e=t.type;this.#e.queue.enqueue(e,t),this.controls.resume(t)}"media-seek-request"(t){const{canSeek:e,ended:s,live:a,seekableEnd:n,userBehindLiveEdge:r}=this.$state,o=t.detail;s()&&(this.#e.replaying=!0);const l=t.type;this.#e.seeking=!1,this.#e.queue.delete(l);const u=Js(o,this.$state);!Number.isFinite(u)||!e()||(this.#e.queue.enqueue(l,t),this.#n().setCurrentTime(u),a()&&t.isOriginTrusted&&Math.abs(n()-u)>=2&&r.set(!0))}"media-seeking-request"(t){const e=t.type;this.#e.queue.enqueue(e,t),this.$state.seeking.set(!0),this.#e.seeking=!0}"media-start-loading"(t){if(this.$state.canLoad())return;const e=t.type;this.#e.queue.enqueue(e,t),this.#t.handle(this.createEvent("can-load"))}"media-poster-start-loading"(t){if(this.$state.canLoadPoster())return;const e=t.type;this.#e.queue.enqueue(e,t),this.#t.handle(this.createEvent("can-load-poster"))}"media-text-track-change-request"(t){const{index:e,mode:s}=t.detail,a=this.#s.textTracks[e];if(a){const n=t.type;this.#e.queue.enqueue(n,t),a.setMode(s,t)}}"media-mute-request"(t){if(this.$state.muted())return;const e=t.type;this.#e.queue.enqueue(e,t),this.#n().setMuted(!0)}"media-unmute-request"(t){const{muted:e,volume:s}=this.$state;if(!e())return;const a=t.type;this.#e.queue.enqueue(a,t),this.#s.$provider().setMuted(!1),s()===0&&(this.#e.queue.enqueue(a,t),this.#n().setVolume(.25))}"media-volume-change-request"(t){const{muted:e,volume:s}=this.$state,a=t.detail;if(s()===a)return;const n=t.type;this.#e.queue.enqueue(n,t),this.#n().setVolume(a),a>0&&e()&&(this.#e.queue.enqueue(n,t),this.#n().setMuted(!1))}#k(t,e,s){}}function Ze(i,t){if(!(i&&t))throw Error("[vidstack] media not ready")}function ci(i,t){if(!t?.supported)throw Error("[vidstack] no fullscreen support")}function En(i){if(!(!gn()||!i))throw Error("[vidstack] autoplay blocked")}class An{seeking=!1;looping=!1;replaying=!1;queue=new mn}function ts(i){return!E(i)&&("height"in i||"label"in i)}const Mn=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 Ln extends Mt{#t;#e;#s=new Map;#i=!1;#a=[];#n=[-1,-1];#r=!1;#o;constructor(t,e){super(),this.#t=t,this.#e=e}onAttach(t){t.setAttribute("aria-busy","true"),new _(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){d(this.#E.bind(this)),this.#p(),this.#m(),this.#b(),this.#u(),A(this.#c.bind(this))}onDestroy(){const{audioTracks:t,qualities:e,textTracks:s}=this.#e;t[D.reset](),e[D.reset](),s[D.reset](),this.#S()}handle(t){if(!this.scope)return;const e=t.type;ne(()=>this[t.type]?.(t)),Mn.has(e)&&this.#s.set(e,t),this.dispatch(t)}#l=!1;#u(){this.#l&&(requestAnimationFrame(()=>{this.scope&&this.#e.remote.play(new z("dom-connect"))}),this.#l=!1)}#c(){this.#l||(this.#l=!this.$state.paused(),this.#e.$provider()?.pause())}#h(){this.#_(),this.#i=!1,this.#t.replaying=!1,this.#t.looping=!1,this.#r=!1,this.#o=void 0,this.#s.clear()}#d(t,e){const s=this.#t.queue.serve(t);s&&(e.request=s,e.triggers.add(s))}#p(){this.#g(),this.#y();const t=this.#e.textTracks;new _(t).add("add",this.#g.bind(this)).add("remove",this.#g.bind(this)).add("mode-change",this.#y.bind(this))}#m(){const t=this.#e.qualities;new _(t).add("add",this.#v.bind(this)).add("remove",this.#v.bind(this)).add("change",this.#x.bind(this)).add("auto-change",this.#f.bind(this)).add("readonly-change",this.#P.bind(this))}#b(){const t=this.#e.audioTracks;new _(t).add("add",this.#$.bind(this)).add("remove",this.#$.bind(this)).add("change",this.#w.bind(this))}#g(t){const{textTracks:e}=this.$state;e.set(this.#e.textTracks.toArray()),this.dispatch("text-tracks-change",{detail:e(),trigger:t})}#y(t){t&&this.#d("media-text-track-change-request",t);const e=this.#e.textTracks.selected,{textTrack:s}=this.$state;s()!==e&&(s.set(e),this.dispatch("text-track-change",{detail:e,trigger:t}))}#$(t){const{audioTracks:e}=this.$state;e.set(this.#e.audioTracks.toArray()),this.dispatch("audio-tracks-change",{detail:e(),trigger:t})}#w(t){const{audioTrack:e}=this.$state;e.set(this.#e.audioTracks.selected),t&&this.#d("media-audio-track-change-request",t),this.dispatch("audio-track-change",{detail:e(),trigger:t})}#v(t){const{qualities:e}=this.$state;e.set(this.#e.qualities.toArray()),this.dispatch("qualities-change",{detail:e(),trigger:t})}#x(t){const{quality:e}=this.$state;e.set(this.#e.qualities.selected),t&&this.#d("media-quality-change-request",t),this.dispatch("quality-change",{detail:e(),trigger:t})}#f(){const{qualities:t}=this.#e,e=t.auto;this.$state.autoQuality.set(e),e||this.#S()}#T=null;#k(){this.#S(),this.#T=d(()=>{const{qualities:t}=this.#e,{mediaWidth:e,mediaHeight:s}=this.$state,a=e(),n=s();if(a===0||n===0)return;let r=null,o=1/0;for(const l of t){const u=Math.abs(l.width-a)+Math.abs(l.height-n);u<o&&(o=u,r=l)}r&&t[D.select](r,!0,new z("resize",{detail:{width:a,height:n}}))})}#S(){this.#T?.(),this.#T=null}#P(){this.$state.canSetQuality.set(!this.#e.qualities.readonly)}#E(){const{canSetVolume:t,isGoogleCastConnected:e}=this.$state;if(e()){t.set(!1);return}Ha().then(t.set)}"provider-change"(t){const e=this.#e.$provider(),s=t.detail;e?.type!==s?.type&&(e?.destroy?.(),e?.scope?.dispose(),this.#e.$provider.set(t.detail),e&&t.detail===null&&this.#C(t))}"provider-loader-change"(t){}"auto-play"(t){this.$state.autoPlayError.set(null)}"auto-play-fail"(t){this.$state.autoPlayError.set(t.detail),this.#h()}"can-load"(t){this.$state.canLoad.set(!0),this.#s.set("can-load",t),this.#e.textTracks[X.canLoad](),this.#d("media-start-loading",t)}"can-load-poster"(t){this.$state.canLoadPoster.set(!0),this.#s.set("can-load-poster",t),this.#d("media-poster-start-loading",t)}"media-type-change"(t){const e=this.#s.get("source-change");e&&t.triggers.add(e);const s=this.$state.viewType();this.$state.mediaType.set(t.detail);const a=this.$state.providedViewType(),n=a==="unknown"?t.detail:a;s!==n&&setTimeout(()=>{requestAnimationFrame(()=>{this.scope&&(this.$state.inferredViewType.set(t.detail),this.dispatch("view-type-change",{detail:n,trigger:t}))})},0)}"stream-type-change"(t){const e=this.#s.get("source-change");e&&t.triggers.add(e);const{streamType:s,inferredStreamType:a}=this.$state;a.set(t.detail),t.detail=s()}"rate-change"(t){const{storage:e}=this.#e,{canPlay:s}=this.$state;this.$state.playbackRate.set(t.detail),this.#d("media-rate-change-request",t),s()&&e?.setPlaybackRate?.(t.detail)}"remote-playback-change"(t){const{remotePlaybackState:e,remotePlaybackType:s}=this.$state,{type:a,state:n}=t.detail,r=n==="connected";s.set(a),e.set(n);const o=a==="airplay"?"media-airplay-request":"media-google-cast-request";if(r)this.#d(o,t);else{const l=this.#t.queue.peek(o);l&&(t.request=l,t.triggers.add(l))}}"sources-change"(t){const e=this.$state.sources(),s=t.detail;this.$state.sources.set(s),this.#A(e,s,t)}#A(t,e,s){let{qualities:a}=this.#e,n=!1,r=!1;for(const o of t){if(!ts(o))continue;if(!e.some(u=>u.src===o.src)){const u=a.getBySrc(o.src);u&&(a[D.remove](u,s),r=!0)}}r&&!a.length&&(this.$state.savedState.set(null),a[D.reset](s));for(const o of e){if(!ts(o)||a.getBySrc(o.src))continue;const l={id:o.id??o.label??(o.height?o.height+"p":"0p"),bitrate:null,codec:null,...o,selected:!1};a[D.add](l,s),n=!0}n&&!a[ot.enableAuto]&&(this.#k(),a[ot.enableAuto]=this.#k.bind(this),a[ot.setAuto](!0,s))}"source-change"(t){t.isQualityChange=t.originEvent?.type==="quality-change";const e=t.detail;this.#C(t,t.isQualityChange),this.#s.set(t.type,t),this.$state.source.set(e),this.el?.setAttribute("aria-busy","true")}#C(t,e=!1){const{audioTracks:s,qualities:a}=this.#e;if(!e){this.#a=[],this.#n=[-1,-1],s[D.reset](t),a[D.reset](t),Xs(this.$state,e),this.#h();return}Xs(this.$state,e),this.#h()}abort(t){const e=this.#s.get("source-change");e&&t.triggers.add(e);const s=this.#s.get("can-load");s&&!t.triggers.hasType("can-load")&&t.triggers.add(s)}"load-start"(t){const e=this.#s.get("source-change");e&&t.triggers.add(e)}error(t){this.$state.error.set(t.detail);const e=this.#s.get("abort");e&&t.triggers.add(e)}"loaded-metadata"(t){const e=this.#s.get("load-start");e&&t.triggers.add(e)}"loaded-data"(t){const e=this.#s.get("load-start");e&&t.triggers.add(e)}"can-play"(t){const e=this.#s.get("loaded-metadata");e&&t.triggers.add(e),this.#M(t.detail),this.el?.setAttribute("aria-busy","false")}"can-play-through"(t){this.#M(t.detail);const e=this.#s.get("can-play");e&&t.triggers.add(e)}#M(t){const{seekable:e,buffered:s,intrinsicDuration:a,canPlay:n}=this.$state;n.set(!0),s.set(t.buffered),e.set(t.seekable);const r=At(t.seekable)??1/0;a.set(r)}"duration-change"(t){const{live:e,intrinsicDuration:s,providedDuration:a,clipEndTime:n,ended:r}=this.$state,o=t.detail;if(!e()){const l=Number.isNaN(o)?0:o;s.set(l),r()&&this.#q(t)}(a()>0||n()>0)&&t.stopImmediatePropagation()}progress(t){const{buffered:e,seekable:s}=this.$state,{buffered:a,seekable:n}=t.detail,r=At(a),o=a.length!==e().length,l=r!==At(e()),u=At(n),h=n.length!==s().length,c=u!==At(s());(o||l)&&e.set(a),(h||c)&&s.set(n)}play(t){const{paused:e,autoPlayError:s,ended:a,autoPlaying:n,playsInline:r,pointer:o,muted:l,viewType:u,live:h,userBehindLiveEdge:c}=this.$state;if(this.#D(),!e()){t.stopImmediatePropagation();return}t.autoPlay=n();const g=this.#s.get("waiting");g&&t.triggers.add(g),this.#d("media-play-request",t),this.#s.set("play",t),e.set(!1),s.set(null),t.autoPlay&&(this.handle(this.createEvent("auto-play",{detail:{muted:l()},trigger:t})),n.set(!1)),(a()||this.#t.replaying)&&(this.#t.replaying=!1,a.set(!1),this.handle(this.createEvent("replay",{trigger:t}))),!r()&&u()==="video"&&o()==="coarse"&&this.#e.remote.enterFullscreen("prefer-media",t),h()&&!c()&&this.#e.remote.seekToLiveEdge(t)}#D(t){if(!f(this.#e.$provider))return;const{ended:s,seekableStart:a,clipEndTime:n,currentTime:r,realCurrentTime:o,duration:l}=this.$state,u=s()||o()<a()||n()>0&&o()>=n()||Math.abs(r()-l())<.1;return u&&this.dispatch("media-seek-request",{detail:a(),trigger:t}),u}"play-fail"(t){const{muted:e,autoPlaying:s}=this.$state,a=this.#s.get("play");a&&t.triggers.add(a),this.#d("media-play-request",t);const{paused:n,playing:r}=this.$state;n.set(!0),r.set(!1),this.#h(),this.#s.set("play-fail",t),t.autoPlay&&(this.handle(this.createEvent("auto-play-fail",{detail:{muted:e(),error:t.detail},trigger:t})),s.set(!1))}playing(t){const e=this.#s.get("play"),s=this.#s.get("seeked");e?t.triggers.add(e):s&&t.triggers.add(s),setTimeout(()=>this.#h(),0);const{paused:a,playing:n,live:r,liveSyncPosition:o,seekableEnd:l,started:u,currentTime:h,seeking:c,ended:g}=this.$state;if(a.set(!1),n.set(!0),c.set(!1),g.set(!1),this.#t.looping){this.#t.looping=!1;return}if(r()&&!u()&&h()===0){const $=o()??l()-2;Number.isFinite($)&&this.#e.$provider().setCurrentTime($)}this.started(t)}started(t){const{started:e}=this.$state;e()||(e.set(!0),this.handle(this.createEvent("started",{trigger:t})))}pause(t){this.el?.isConnected||(this.#l=!0),this.#d("media-pause-request",t);const e=this.#s.get("seeked");e&&t.triggers.add(e);const{paused:s,playing:a}=this.$state;s.set(!0),a.set(!1),this.#i&&setTimeout(()=>{this.handle(this.createEvent("end",{trigger:t})),this.#i=!1},0),this.#h()}"time-change"(t){if(this.#t.looping){t.stopImmediatePropagation();return}let{waiting:e,played:s,clipEndTime:a,realCurrentTime:n,currentTime:r}=this.$state,o=t.detail,l=a();n.set(o),this.#I(),e.set(!1);for(const u of this.#e.textTracks)u[X.updateActiveCues](o,t);l>0&&o>=l&&(this.#i=!0,this.dispatch("media-pause-request",{trigger:t})),this.#V(),this.dispatch("time-update",{detail:{currentTime:r(),played:s()},trigger:t})}#I(){const{currentTime:t,played:e,paused:s}=this.$state;s()||(this.#n=za(this.#a,this.#n,t()),e.set(new pe(this.#a)))}#q(t){const{clipStartTime:e,clipEndTime:s,duration:a}=this.$state;e()>0||s()>0||this.handle(this.createEvent("time-change",{detail:a(),trigger:t}))}#V(){const{storage:t}=this.#e,{canPlay:e,realCurrentTime:s}=this.$state;e()&&t?.setTime?.(s())}"audio-gain-change"(t){const{storage:e}=this.#e,{canPlay:s,audioGain:a}=this.$state;a.set(t.detail),this.#d("media-audio-gain-change-request",t),s()&&e?.setAudioGain?.(a())}"volume-change"(t){const{storage:e}=this.#e,{volume:s,muted:a,canPlay:n}=this.$state,r=t.detail;s.set(r.volume),a.set(r.muted||r.volume===0),this.#d("media-volume-change-request",t),this.#d(r.muted?"media-mute-request":"media-unmute-request",t),n()&&(e?.setVolume?.(s()),e?.setMuted?.(a()))}seeking=Ct(t=>{const{seeking:e,realCurrentTime:s,paused:a}=this.$state;e.set(!0),s.set(t.detail),this.#d("media-seeking-request",t),a()&&(this.#o=t,this.#L()),this.#n=[-1,-1]},150,{leading:!0});seeked(t){const{seeking:e,currentTime:s,realCurrentTime:a,paused:n,seekableEnd:r,ended:o,live:l}=this.$state;if(this.#t.seeking)e.set(!0),t.stopImmediatePropagation();else if(e()){const u=this.#s.get("waiting");u&&t.triggers.add(u);const h=this.#s.get("seeking");h&&!t.triggers.has(h)&&t.triggers.add(h),n()&&this.#_(),e.set(!1),a.set(t.detail),this.#d("media-seek-request",t);const c=t?.originEvent;c?.isTrusted&&!(c instanceof MessageEvent)&&!/seek/.test(c.type)&&this.started(t)}l()||(Math.floor(s())!==Math.floor(r())?o.set(!1):this.end(t))}waiting(t){this.#r||this.#t.seeking||(t.stopImmediatePropagation(),this.#o=t,this.#L())}#L=Re(()=>{if(!this.#o)return;this.#r=!0;const{waiting:t,playing:e}=this.$state;t.set(!0),e.set(!1);const s=this.createEvent("waiting",{trigger:this.#o});this.#s.set("waiting",s),this.dispatch(s),this.#o=void 0,this.#r=!1},300);end(t){const{loop:e,ended:s}=this.$state;if(!(!e()&&s())){if(e()){setTimeout(()=>{requestAnimationFrame(()=>{this.#D(t),this.dispatch("media-loop-request",{trigger:t})})},10);return}setTimeout(()=>this.#O(t),0)}}#O(t){const{storage:e}=this.#e,{paused:s,seeking:a,ended:n,duration:r}=this.$state;this.#q(t),s()||this.dispatch("pause",{trigger:t}),a()&&this.dispatch("seeked",{detail:r(),trigger:t}),n.set(!0),this.#h(),e?.setTime?.(r(),!0),this.dispatch("ended",{trigger:t})}#_(){this.#L.cancel(),this.$state.waiting.set(!1)}"fullscreen-change"(t){const e=t.detail;this.$state.fullscreen.set(e),this.#d(e?"media-enter-fullscreen-request":"media-exit-fullscreen-request",t)}"fullscreen-error"(t){this.#d("media-enter-fullscreen-request",t),this.#d("media-exit-fullscreen-request",t)}"orientation-change"(t){const e=t.detail.lock;this.#d(e?"media-orientation-lock-request":"media-orientation-unlock-request",t)}"picture-in-picture-change"(t){const e=t.detail;this.$state.pictureInPicture.set(e),this.#d(e?"media-enter-pip-request":"media-exit-pip-request",t)}"picture-in-picture-error"(t){this.#d("media-enter-pip-request",t),this.#d("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 Dn extends Mt{onSetup(){this.#t();const t=[this.#i,this.#n,this.#d,this.#p,this.#o,this.#u,this.#c,this.#m,this.#g,this.#b,this.#r,this.#h,this.#l,this.#e,this.#a];for(const e of t)d(e.bind(this))}#t(){const t={duration:"providedDuration",loop:"providedLoop",poster:"providedPoster",streamType:"providedStreamType",title:"providedTitle",viewType:"providedViewType"},e=new Set(["currentTime","paused","playbackRate","volume"]);for(const s of Object.keys(this.$props))e.has(s)||this.$state[t[s]??s]?.set(this.$props[s]());this.$state.muted.set(this.$props.muted()||this.$props.volume()===0)}#e(){const{viewType:t,streamType:e,title:s,poster:a,loop:n}=this.$props,r=this.$state;r.providedPoster.set(a()),r.providedStreamType.set(e()),r.providedViewType.set(t()),r.providedTitle.set(s()),r.providedLoop.set(n())}#s(){}#i(){const{artist:t,artwork:e}=this.$props;this.$state.artist.set(t()),this.$state.artwork.set(e())}#a(){const{title:t}=this.$state;this.dispatch("title-change",{detail:t()})}#n(){const t=this.$props.autoPlay()||this.$props.autoplay();this.$state.autoPlay.set(t),this.dispatch("auto-play-change",{detail:t})}#r(){const t=this.$state.loop();this.dispatch("loop-change",{detail:t})}#o(){const t=this.$props.controls();this.$state.controls.set(t)}#l(){const{poster:t}=this.$state;this.dispatch("poster-change",{detail:t()})}#u(){const t=this.$props.crossOrigin()??this.$props.crossorigin(),e=t===!0?"":t;this.$state.crossOrigin.set(e)}#c(){const{duration:t}=this.$props;this.dispatch("media-duration-change-request",{detail:t()})}#h(){const t=this.$props.playsInline()||this.$props.playsinline();this.$state.playsInline.set(t),this.dispatch("plays-inline-change",{detail:t})}#d(){const{clipStartTime:t}=this.$props;this.dispatch("media-clip-start-change-request",{detail:t()})}#p(){const{clipEndTime:t}=this.$props;this.dispatch("media-clip-end-change-request",{detail:t()})}#m(){this.dispatch("live-change",{detail:this.$state.live()})}#b(){this.$state.liveEdgeTolerance.set(this.$props.liveEdgeTolerance()),this.$state.minLiveDVRWindow.set(this.$props.minLiveDVRWindow())}#g(){this.dispatch("live-edge-change",{detail:this.$state.liveEdge()})}}class qn{playerId="vds-player";mediaId=null;#t={volume:null,muted:null,audioGain:null,time:null,lang:null,captions:null,rate:null,quality:null};async getVolume(){return this.#t.volume}async setVolume(t){this.#t.volume=t,this.save()}async getMuted(){return this.#t.muted}async setMuted(t){this.#t.muted=t,this.save()}async getTime(){return this.#t.time}async setTime(t,e){const s=t<0;this.#t.time=s?null:t,s||e?this.saveTime():this.saveTimeThrottled()}async getLang(){return this.#t.lang}async setLang(t){this.#t.lang=t,this.save()}async getCaptions(){return this.#t.captions}async setCaptions(t){this.#t.captions=t,this.save()}async getPlaybackRate(){return this.#t.rate}async setPlaybackRate(t){this.#t.rate=t,this.save()}async getAudioGain(){return this.#t.audioGain}async setAudioGain(t){this.#t.audioGain=t,this.save()}async getVideoQuality(){return this.#t.quality}async setVideoQuality(t){this.#t.quality=t,this.save()}onChange(t,e,s="vds-player"){const a=s?localStorage.getItem(s):null,n=e?localStorage.getItem(e):null;this.playerId=s,this.mediaId=e,this.#t={volume:null,muted:null,audioGain:null,lang:null,captions:null,rate:null,quality:null,...a?JSON.parse(a):{},time:n?+n:null}}save(){if(!this.playerId)return;const t=JSON.stringify({...this.#t,time:void 0});localStorage.setItem(this.playerId,t)}saveTimeThrottled=Ct(this.saveTime.bind(this),1e3);saveTime(){if(!this.mediaId)return;const t=(this.#t.time??0).toString();localStorage.setItem(this.mediaId,t)}}const hi=["play","pause","seekforward","seekbackward","seekto"];class In extends Mt{onConnect(){d(this.#e.bind(this)),d(this.#s.bind(this));const t=this.#i.bind(this);for(const e of hi)navigator.mediaSession.setActionHandler(e,t);A(this.#t.bind(this))}#t(){for(const t of hi)navigator.mediaSession.setActionHandler(t,null)}#e(){const{title:t,artist:e,artwork:s,poster:a}=this.$state;navigator.mediaSession.metadata=new MediaMetadata({title:t(),artist:e(),artwork:s()??[{src:a()}]})}#s(){const{canPlay:t,paused:e}=this.$state;navigator.mediaSession.playbackState=t()?e()?"paused":"playing":"none"}#i(t){const e=new z("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:vt(t.seekTime)?t.seekTime:this.$state.currentTime()+(t.seekOffset??(t.action==="seekforward"?10:-10)),trigger:e});break}}}class _n{#t=null;#e=null;#s=-1;#i;constructor(t=void 0){this.#i=t}setTarget(t){this.#t=t}getPlayer(t){return this.#e?this.#e:((t??this.#t)?.dispatchEvent(new z("find-media-player",{detail:e=>void(this.#e=e),bubbles:!0,composed:!0})),this.#e)}setPlayer(t){this.#e=t}startLoading(t){this.#a("media-start-loading",t)}startLoadingPoster(t){this.#a("media-poster-start-loading",t)}requestAirPlay(t){this.#a("media-airplay-request",t)}requestGoogleCast(t){this.#a("media-google-cast-request",t)}play(t){this.#a("media-play-request",t)}pause(t){this.#a("media-pause-request",t)}mute(t){this.#a("media-mute-request",t)}unmute(t){this.#a("media-unmute-request",t)}enterFullscreen(t,e){this.#a("media-enter-fullscreen-request",e,t)}exitFullscreen(t,e){this.#a("media-exit-fullscreen-request",e,t)}lockScreenOrientation(t,e){this.#a("media-orientation-lock-request",e,t)}unlockScreenOrientation(t){this.#a("media-orientation-unlock-request",t)}enterPictureInPicture(t){this.#a("media-enter-pip-request",t)}exitPictureInPicture(t){this.#a("media-exit-pip-request",t)}seeking(t,e){this.#a("media-seeking-request",e,t)}seek(t,e){this.#a("media-seek-request",e,t)}seekToLiveEdge(t){this.#a("media-live-edge-request",t)}changeDuration(t,e){this.#a("media-duration-change-request",e,t)}changeClipStart(t,e){this.#a("media-clip-start-change-request",e,t)}changeClipEnd(t,e){this.#a("media-clip-end-change-request",e,t)}changeVolume(t,e){this.#a("media-volume-change-request",e,Math.max(0,Math.min(1,t)))}changeAudioTrack(t,e){this.#a("media-audio-track-change-request",e,t)}changeQuality(t,e){this.#a("media-quality-change-request",e,t)}requestAutoQuality(t){this.changeQuality(-1,t)}changeTextTrackMode(t,e,s){this.#a("media-text-track-change-request",s,{index:t,mode:e})}changePlaybackRate(t,e){this.#a("media-rate-change-request",e,t)}changeAudioGain(t,e){this.#a("media-audio-gain-change-request",e,t)}resumeControls(t){this.#a("media-resume-controls-request",t)}pauseControls(t){this.#a("media-pause-controls-request",t)}togglePaused(t){const e=this.getPlayer(t?.target);e&&(e.state.paused?this.play(t):this.pause(t))}toggleControls(t){const e=this.getPlayer(t?.target);e&&(e.controls.showing?e.controls.hide(0,t):e.controls.show(0,t))}toggleMuted(t){const e=this.getPlayer(t?.target);e&&(e.state.muted?this.unmute(t):this.mute(t))}toggleFullscreen(t,e){const s=this.getPlayer(e?.target);s&&(s.state.fullscreen?this.exitFullscreen(t,e):this.enterFullscreen(t,e))}togglePictureInPicture(t){const e=this.getPlayer(t?.target);e&&(e.state.pictureInPicture?this.exitPictureInPicture(t):this.enterPictureInPicture(t))}showCaptions(t){const e=this.getPlayer(t?.target);if(!e)return;let s=e.state.textTracks,a=this.#s;(!s[a]||!Y(s[a]))&&(a=-1),a===-1&&(a=s.findIndex(n=>Y(n)&&n.default)),a===-1&&(a=s.findIndex(n=>Y(n))),a>=0&&this.changeTextTrackMode(a,"showing",t),this.#s=-1}disableCaptions(t){const e=this.getPlayer(t?.target);if(!e)return;const s=e.state.textTracks,a=e.state.textTrack;if(a){const n=s.indexOf(a);this.changeTextTrackMode(n,"disabled",t),this.#s=n}}toggleCaptions(t){const e=this.getPlayer(t?.target);e&&(e.state.textTrack?this.disableCaptions():this.showCaptions())}userPrefersLoopChange(t,e){this.#a("media-user-loop-change-request",e,t)}#a(t,e,s){const a=new z(t,{bubbles:!0,composed:!0,cancelable:!0,detail:s,trigger:e});let n=e?.target||null;n&&n instanceof k&&(n=n.el),n=!n||n===document||n===window||n===document.body||this.#e?.el&&n instanceof Node&&!this.#e.el.contains(n)?this.#t??this.getPlayer()?.el:n??this.#t,this.#e?t==="media-play-request"&&!this.#e.state.canLoad?n?.dispatchEvent(a):this.#e.canPlayQueue.enqueue(t,()=>n?.dispatchEvent(a)):n?.dispatchEvent(a)}#n(t){}}class Vn extends ti{}class On{priority=0;#t=!0;#e=null;#s=null;#i=new Set;canRender(t,e){return!!e}attach(t){this.#e=t,t&&(t.textTracks.onchange=this.#o.bind(this))}addTrack(t){this.#i.add(t),this.#a(t)}removeTrack(t){t[X.native]?.remove?.(),t[X.native]=null,this.#i.delete(t)}changeTrack(t){const e=t?.[X.native];e&&e.track.mode!=="showing"&&(e.track.mode="showing"),this.#s=t}setDisplay(t){this.#t=t,this.#o()}detach(){this.#e&&(this.#e.textTracks.onchange=null);for(const t of this.#i)this.removeTrack(t);this.#i.clear(),this.#e=null,this.#s=null}#a(t){if(!this.#e)return;const e=t[X.native]??=this.#n(t);Tt(e)&&(this.#e.append(e),e.track.mode=e.default?"showing":"disabled")}#n(t){const e=document.createElement("track"),s=t.default||t.mode==="showing",a=t.src&&t.type==="vtt";return e.id=t.id,e.src=a?t.src:"",e.label=t.label,e.kind=t.kind,e.default=s,t.language&&(e.srclang=t.language),s&&!a&&this.#r(t,e.track),e}#r(t,e){if(!(t.src&&t.type==="vtt"||e.cues?.length))for(const s of t.cues)e.addCue(s)}#o(t){for(const e of this.#i){const s=e[X.native];if(!s)continue;if(!this.#t){s.track.mode=s.managed?"hidden":"disabled";continue}const a=s.track.mode==="showing";a&&this.#r(e,s.track),e.setMode(a?"showing":"disabled",t)}}}class Rn{#t=null;#e;#s=[];#i;#a=!1;#n=null;#r=null;constructor(t){this.#i=t;const e=t.textTracks;this.#e=e,d(this.#o.bind(this)),A(this.#p.bind(this)),new _(e).add("add",this.#c.bind(this)).add("remove",this.#h.bind(this)).add("mode-change",this.#d.bind(this))}#o(){const{nativeControls:t}=this.#i.$state;this.#a=t(),this.#d()}add(t){this.#s.push(t),ne(this.#d.bind(this))}remove(t){t.detach(),this.#s.splice(this.#s.indexOf(t),1),ne(this.#d.bind(this))}attachVideo(t){requestAnimationFrame(()=>{if(this.#t=t,t){this.#n=new On,this.#n.attach(t);for(const e of this.#e)this.#l(e)}this.#d()})}#l(t){Y(t)&&this.#n?.addTrack(t)}#u(t){Y(t)&&this.#n?.removeTrack(t)}#c(t){this.#l(t.detail)}#h(t){this.#u(t.detail)}#d(){const t=this.#e.selected;if(this.#t&&(this.#a||t?.[X.nativeHLS])){this.#r?.changeTrack(null),this.#n?.setDisplay(!0),this.#n?.changeTrack(t);return}if(this.#n?.setDisplay(!1),this.#n?.changeTrack(null),!t){this.#r?.changeTrack(null);return}const e=this.#s.sort((s,a)=>s.priority-a.priority).find(s=>s.canRender(t,this.#t));this.#r!==e&&(this.#r?.detach(),e?.attach(this.#t),this.#r=e??null),e?.changeTrack(t)}#p(){this.#n?.detach(),this.#n=null,this.#r?.detach(),this.#r=null}}class Nn extends Zs{#t=!1;#e={};#s=null;#i=null;[X.crossOrigin];constructor(){super()}get selected(){return this.items.find(e=>e.mode==="showing"&&Y(e))??null}get selectedIndex(){const t=this.selected;return t?this.indexOf(t):-1}get preferredLang(){return this.#i}set preferredLang(t){this.#i=t,this.#u(t)}add(t,e){const s=t instanceof me,a=s?t:new me(t),n=t.kind==="captions"||t.kind==="subtitles"?"captions":t.kind;return this.#e[n]&&t.default&&delete t.default,a.addEventListener("mode-change",this.#r),this[D.add](a,e),a[X.crossOrigin]=this[X.crossOrigin],this.#t&&a[X.canLoad](),t.default&&(this.#e[n]=a),this.#a(),this}remove(t,e){if(this.#n=t,!!this.items.includes(t))return t===this.#e[t.kind]&&delete this.#e[t.kind],t.mode="disabled",t[X.onModeChange]=null,t.removeEventListener("mode-change",this.#r),this[D.remove](t,e),this.#n=null,this}clear(t){for(const e of[...this.items])this.remove(e,t);return this}getByKind(t){const e=Array.isArray(t)?t:[t];return this.items.filter(s=>e.includes(s.kind))}[X.canLoad](){if(!this.#t){for(const t of this.items)t[X.canLoad]();this.#t=!0,this.#a()}}#a=Re(async()=>{if(!this.#t)return;!this.#i&&this.#s&&(this.#i=await this.#s.getLang());const t=await this.#s?.getCaptions(),e=[["captions","subtitles"],"chapters","descriptions","metadata"];for(const s of e){const a=this.getByKind(s);if(a.find(u=>u.mode==="showing"))continue;const n=this.#i?a.find(u=>u.language===this.#i):null,r=K(s)?this.#e[s.find(u=>this.#e[u])||""]:this.#e[s],o=n??r,l=o&&Y(o);o&&(!l||t!==!1)&&(o.mode="showing",l&&this.#l(o))}},300);#n=null;#r=this.#o.bind(this);#o(t){const e=t.detail;if(this.#s&&Y(e)&&e!==this.#n&&this.#l(e),e.mode==="showing"){const s=Y(e)?["captions","subtitles"]:[e.kind];for(const a of this.items)a.mode==="showing"&&a!=e&&s.includes(a.kind)&&(a.mode="disabled")}this.dispatchEvent(new z("mode-change",{detail:t.detail,trigger:t}))}#l(t){t.mode!=="disabled"&&this.#u(t.language),this.#s?.setCaptions?.(t.mode==="showing")}#u(t){this.#s?.setLang?.(this.#i=t)}setStorage(t){this.#s=t}}let ge=b(!1);G(document,"pointerdown",()=>{ge.set(!1)}),G(document,"keydown",i=>{i.metaKey||i.altKey||i.ctrlKey||ge.set(!0)});class lt extends rt{#t=b(!1);onConnect(t){d(()=>{const e=new _(t);if(!ge()){this.#t.set(!1),be(t,!1),e.add("pointerenter",this.#i.bind(this)).add("pointerleave",this.#a.bind(this));return}const s=document.activeElement===t;this.#t.set(s),be(t,s),e.add("focus",this.#e.bind(this)).add("blur",this.#s.bind(this))})}focused(){return this.#t()}#e(){this.#t.set(!0),be(this.el,!0)}#s(){this.#t.set(!1),be(this.el,!1)}#i(){pi(this.el,!0)}#a(){pi(this.el,!1)}}function be(i,t){v(i,"data-focus",t),v(i,"data-hocus",t)}function pi(i,t){v(i,"data-hocus",t),v(i,"data-hover",t)}class Wt extends k{static props=dn;static state=js;#t;#e;#s;canPlayQueue=new ii;remoteControl;get#i(){return this.#t.$provider()}get#a(){return this.$props}constructor(){super(),new Dn;const t={player:this,qualities:new cn,audioTracks:new Vn,storage:null,$provider:b(null),$providerSetup:b(!1),$props:this.$props,$state:this.$state};t.remote=this.remoteControl=new _n(void 0),t.remote.setPlayer(this),t.textTracks=new Nn,t.textTracks[X.crossOrigin]=this.$state.crossOrigin,t.textRenderers=new Rn(t),t.ariaKeys={},this.#t=t,Z(Us,t),this.orientation=new _e,new lt,new nn(t);const e=new An;this.#e=new Ln(e,t),this.#s=new Cn(this.#e,e,t),t.delegate=new hn(this.#e.handle.bind(this.#e),t),t.notify=t.delegate.notify.bind(t.delegate),typeof navigator<"u"&&"mediaSession"in navigator&&new In,new ei("load",this.startLoading.bind(this)),new ei("posterLoad",this.startLoadingPoster.bind(this))}onSetup(){this.#u(),d(this.#l.bind(this)),d(this.#b.bind(this)),d(this.#p.bind(this)),d(this.#w.bind(this)),d(this.#y.bind(this)),d(this.#T.bind(this)),d(this.#x.bind(this))}onAttach(t){t.setAttribute("data-media-player",""),I(t,"tabindex","0"),I(t,"role","region"),d(this.#S.bind(this)),d(this.#r.bind(this)),d(this.#o.bind(this)),G(t,"find-media-player",this.#c.bind(this))}onConnect(t){Bs&&v(t,"data-iphone","");const e=window.matchMedia("(pointer: coarse)");this.#d(e),e.onchange=this.#d.bind(this);const s=new ResizeObserver(ht(this.#h.bind(this)));s.observe(t),d(this.#h.bind(this)),this.dispatch("media-player-connect",{detail:this,bubbles:!0,composed:!0}),A(()=>{s.disconnect(),e.onchange=null})}onDestroy(){this.#t.player=null,this.canPlayQueue.reset()}#n=!1;#r(){const t=this.$el,{title:e,live:s,viewType:a,providedTitle:n}=this.$state,r=s(),o=Vs(a()),l=o!=="Unknown"?`${r?"Live ":""}${o}`:r?"Live":"Media",u=e();v(this.el,"aria-label",`${l} Player`+(u?` - ${u}`:"")),t?.hasAttribute("title")&&(this.#n=!0,t?.removeAttribute("title"))}#o(){const t=this.orientation.landscape?"landscape":"portrait";this.$state.orientation.set(t),v(this.el,"data-orientation",t),this.#h()}#l(){this.$state.canPlay()&&this.#i?this.canPlayQueue.start():this.canPlayQueue.stop()}#u(){if(Wt[We]){this.setAttributes(Wt[We]);return}const t={"data-load":function(){return this.$props.load()},"data-captions":function(){const s=this.$state.textTrack();return!!s&&Y(s)},"data-ios-controls":function(){return this.$state.iOSControls()},"data-controls":function(){return this.controls.showing},"data-buffering":function(){const{canLoad:s,canPlay:a,waiting:n}=this.$state;return s()&&(!a()||n())},"data-error":function(){const{error:s}=this.$state;return!!s()},"data-autoplay-error":function(){const{autoPlayError:s}=this.$state;return!!s()}},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(const s of Ja){const a="data-"+(e[s]??Nt(s));t[a]=function(){return this.$state[s]()}}delete t.title,Wt[We]=t,this.setAttributes(t)}#c(t){t.detail(this)}#h(){if(!this.el)return;const t=this.el.clientWidth,e=this.el.clientHeight;this.$state.width.set(t),this.$state.height.set(e),it(this.el,"--player-width",t+"px"),it(this.el,"--player-height",e+"px")}#d(t){const e=t.matches?"coarse":"fine";v(this.el,"data-pointer",e),this.$state.pointer.set(e),this.#h()}get provider(){return this.#i}get controls(){return this.#s.controls}set controls(t){this.#a.controls.set(t)}orientation;get title(){return f(this.$state.title)}set title(t){if(this.#n){this.#n=!1;return}this.#a.title.set(t)}get qualities(){return this.#t.qualities}get audioTracks(){return this.#t.audioTracks}get textTracks(){return this.#t.textTracks}get textRenderers(){return this.#t.textRenderers}get duration(){return this.$state.duration()}set duration(t){this.#a.duration.set(t)}get paused(){return f(this.$state.paused)}set paused(t){this.#m(t)}#p(){this.#m(this.$props.paused())}#m(t){t?this.canPlayQueue.enqueue("paused",()=>this.#s.pause()):this.canPlayQueue.enqueue("paused",()=>this.#s.play())}get muted(){return f(this.$state.muted)}set muted(t){this.#g(t)}#b(){this.#g(this.$props.muted())}#g(t){this.canPlayQueue.enqueue("muted",()=>{this.#i&&this.#i.setMuted(t)})}get currentTime(){return f(this.$state.currentTime)}set currentTime(t){this.#$(t)}#y(){this.#$(this.$props.currentTime())}#$(t){this.canPlayQueue.enqueue("currentTime",()=>{const{currentTime:e}=this.$state;t!==f(e)&&f(()=>{if(!this.#i)return;const s=Js(t,this.$state);Number.isFinite(s)&&this.#i.setCurrentTime(s)})})}get volume(){return f(this.$state.volume)}set volume(t){this.#v(t)}#w(){this.#v(this.$props.volume())}#v(t){const e=Ke(0,t,1);this.canPlayQueue.enqueue("volume",()=>{this.#i&&this.#i.setVolume(e)})}get playbackRate(){return f(this.$state.playbackRate)}set playbackRate(t){this.#f(t)}#x(){this.#f(this.$props.playbackRate())}#f(t){this.canPlayQueue.enqueue("rate",()=>{this.#i&&this.#i.setPlaybackRate?.(t)})}#T(){this.#k(this.$props.playsInline())}#k(t){this.canPlayQueue.enqueue("playsinline",()=>{this.#i&&this.#i.setPlaysInline?.(t)})}#S(){let t=this.$props.storage(),e=E(t)?new qn:t;if(e?.onChange){const{source:s}=this.$state,a=E(t)?t:this.el?.id,n=M(this.#P.bind(this));d(()=>e.onChange(s(),n(),a||void 0))}this.#t.storage=e,this.#t.textTracks.setStorage(e),A(()=>{e?.onDestroy?.(),this.#t.storage=null,this.#t.textTracks.setStorage(null)})}#P(){const{clipStartTime:t,clipEndTime:e}=this.$props,{source:s}=this.$state,a=s();return a.src?`${a.src}:${t()}:${e()}`:null}async play(t){return this.#s.play(t)}async pause(t){return this.#s.pause(t)}async enterFullscreen(t,e){return this.#s.enterFullscreen(t,e)}async exitFullscreen(t,e){return this.#s.exitFullscreen(t,e)}enterPictureInPicture(t){return this.#s.enterPictureInPicture(t)}exitPictureInPicture(t){return this.#s.exitPictureInPicture(t)}seekToLiveEdge(t){this.#s.seekToLiveEdge(t)}startLoading(t){this.#t.notify("can-load",void 0,t)}startLoadingPoster(t){this.#t.notify("can-load-poster",void 0,t)}requestAirPlay(t){return this.#s.requestAirPlay(t)}requestGoogleCast(t){return this.#s.requestGoogleCast(t)}setAudioGain(t,e){return this.#s.setAudioGain(t,e)}destroy(){super.destroy(),this.#t.remote.setPlayer(null),this.dispatch("destroy")}}const V=Wt.prototype;C(V,"canPlayQueue"),C(V,"remoteControl"),C(V,"provider"),C(V,"controls"),C(V,"orientation"),C(V,"title"),C(V,"qualities"),C(V,"audioTracks"),C(V,"textTracks"),C(V,"textRenderers"),C(V,"duration"),C(V,"paused"),C(V,"muted"),C(V,"currentTime"),C(V,"volume"),C(V,"playbackRate"),B(V,"play"),B(V,"pause"),B(V,"enterFullscreen"),B(V,"exitFullscreen"),B(V,"enterPictureInPicture"),B(V,"exitPictureInPicture"),B(V,"seekToLiveEdge"),B(V,"startLoading"),B(V,"startLoadingPoster"),B(V,"requestAirPlay"),B(V,"requestGoogleCast"),B(V,"setAudioGain");class Fn extends T(HTMLElement,Wt){static tagName="media-player";static attrs={autoPlay:"autoplay",crossOrigin:"crossorigin",playsInline:"playsinline",preferNativeHLS:"prefer-native-hls",minLiveDVRWindow:"min-live-dvr-window"}}class Bn{name="audio";target;canPlay(t){return Ga(t)?!E(t.src)||t.type==="?"||Ka(this.target,t.type):!1}mediaType(){return"audio"}async load(t){return new(await import("../providers/vidstack-audio-cxaZF4jF.js")).AudioProvider(this.target,t)}}class es{name="video";target;canPlay(t){return Wa(t)?!E(t.src)||t.type==="?"||Qa(this.target,t.type):!1}mediaType(){return"video"}async load(t){return new(await import("../providers/vidstack-video-EWE67g5i.js")).VideoProvider(this.target,t)}}class Es extends es{static supported=Ua();name="dash";canPlay(t){return Es.supported&&Be(t)}async load(t){return new(await import("../providers/vidstack-dash-DX1VjdTW.js")).DASHProvider(this.target,t)}}class As extends es{static supported=Gs();name="hls";canPlay(t){return As.supported&&He(t)}async load(t){return new(await import("../providers/vidstack-hls-2d6-2JAG.js")).HLSProvider(this.target,t)}}class Hn{name="vimeo";target;preconnect(){const t=["https://i.vimeocdn.com","https://f.vimeocdn.com","https://fresnel.vimeocdn.com"];for(const e of t)Yt(e)}canPlay(t){return E(t.src)&&t.type==="video/vimeo"}mediaType(){return"video"}async load(t){return new(await import("../providers/vidstack-vimeo-DqFeS0-d.js")).VimeoProvider(this.target,t)}async loadPoster(t,e,s){const{resolveVimeoVideoId:a,getVimeoVideoInfo:n}=await import("./vidstack-2f5gzOW6.js");if(!E(t.src))return null;const{videoId:r,hash:o}=a(t.src);return r?n(r,s,o).then(l=>l?l.poster:null):null}}class Gn{name="youtube";target;preconnect(){const t=["https://www.google.com","https://i.ytimg.com","https://googleads.g.doubleclick.net","https://static.doubleclick.net"];for(const e of t)Yt(e)}canPlay(t){return E(t.src)&&t.type==="video/youtube"}mediaType(){return"video"}async load(t){return new(await import("../providers/vidstack-youtube-eivIFfMV.js")).YouTubeProvider(this.target,t)}async loadPoster(t,e,s){const{findYouTubePoster:a,resolveYouTubeVideoId:n}=await import("./vidstack-DiNS2Vx5.js"),r=E(t.src)&&n(t.src);return r?a(r,s):null}}function Kn(i,t){return fetch(i,t).then(e=>e.text()).then(e=>/type="static"/.test(e)?"on-demand":"live")}function mi(i,t){return fetch(i,t).then(e=>e.text()).then(e=>{const s=Wn(e);if(s)return mi(/^https?:/.test(s)?s:new URL(s,i).href,t);const a=/EXT-X-PLAYLIST-TYPE:\s*VOD/.test(e)?"on-demand":"live";return a==="live"&&Qn(e)>=10&&(/#EXT-X-DVR-ENABLED:\s*true/.test(e)||e.includes("#EXT-X-DISCONTINUITY"))?"live:dvr":a})}function Wn(i){const t=i.match(/#EXT-X-STREAM-INF:[^\n]+(\n[^\n]+)*/g);return t?t[0].split(`
|
|
2
|
+
`)[1].trim():null}function Qn(i){const t=i.split(`
|
|
3
|
+
`);for(const e of t)if(e.startsWith("#EXT-X-TARGETDURATION")){const s=parseFloat(e.split(":")[1]);if(!isNaN(s))return s}return-1}const ss=new Map;class Un{#t=!1;#e;#s;#i;#a;constructor(t,e,s,a=[]){this.#s=t,this.#i=e,this.#a=s;const n=new Es,r=new As,o=new es,l=new Bn,u=new Gn,h=new Hn,c=[u,h];this.#e=M(()=>{const $=e.$state.remotePlaybackLoader(),x=e.$props.preferNativeHLS()?[o,l,n,r,...c,...a]:[r,o,l,n,...c,...a];return $?[$,...x]:x});const{$state:g}=e;g.sources.set(fi(e.$props.src()));for(const $ of g.sources()){const x=this.#e().find(L=>L.canPlay($));if(!x)continue;const q=x.mediaType($);e.$state.source.set($),e.$state.mediaType.set(q),e.$state.inferredViewType.set(q),this.#a.set(x),this.#t=!0;break}}connect(){const t=this.#a();this.#t&&(this.#l(this.#i.$state.source(),t),this.#u(t),this.#t=!1),d(this.#n.bind(this)),d(this.#r.bind(this)),d(this.#c.bind(this)),d(this.#h.bind(this)),d(this.#d.bind(this))}#n(){this.#i.notify("sources-change",[...fi(this.#i.$props.src()),...this.#s()])}#r(){const{$state:t}=this.#i,e=t.sources(),s=f(t.source),a=this.#o(s,e);if(e[0]?.src&&!a.src&&!a.type){const{crossOrigin:r}=t,o=fe(r()),l=new AbortController;return Promise.all(e.map(u=>E(u.src)&&u.type==="?"?fetch(u.src,{method:"HEAD",credentials:o,signal:l.signal}).then(h=>(u.type=h.headers.get("content-type")||"??",ss.set(u.src,u.type),u)).catch(()=>u):u)).then(u=>{if(l.signal.aborted)return;const h=this.#o(f(t.source),u);ct(),h.src||this.#i.notify("error",{message:"Failed to load resource.",code:4})}),()=>l.abort()}ct()}#o(t,e){let s={src:"",type:""},a=null,n=new z("sources-change",{detail:{sources:e}}),r=this.#e(),{started:o,paused:l,currentTime:u,quality:h,savedState:c}=this.#i.$state;for(const g of e){const $=r.find(x=>x.canPlay(g));if($){s=g,a=$;break}}if(ts(s)){const g=h(),$=e.find(x=>x.src===g?.src);f(o)?c.set({paused:f(l),currentTime:f(u)}):c.set(null),$&&(s=$,n=new z("quality-change",{detail:{quality:g}}))}return bi(t,s)||this.#l(s,a,n),a!==f(this.#a)&&this.#u(a,n),s}#l(t,e,s){this.#i.notify("source-change",t,s),this.#i.notify("media-type-change",e?.mediaType(t)||"unknown",s)}#u(t,e){this.#i.$providerSetup.set(!1),this.#i.notify("provider-change",null,e),t&&f(()=>t.preconnect?.(this.#i)),this.#a.set(t),this.#i.notify("provider-loader-change",t,e)}#c(){const t=this.#i.$provider();if(!(!t||f(this.#i.$providerSetup))){if(this.#i.$state.canLoad()){zt(()=>t.setup(),t.scope),this.#i.$providerSetup.set(!0);return}f(()=>t.preconnect?.())}}#h(){if(!this.#i.$providerSetup())return;const t=this.#i.$provider(),e=this.#i.$state.source(),s=f(this.#i.$state.crossOrigin),a=f(this.#i.$props.preferNativeHLS);if(!bi(t?.currentSrc,e)){if(this.#i.$state.canLoad()){const n=new AbortController;return He(e)?(a||!Gs())&&mi(e.src,{credentials:fe(s),signal:n.signal}).then(r=>{this.#i.notify("stream-type-change",r)}).catch(Ne):Be(e)?Kn(e.src,{credentials:fe(s),signal:n.signal}).then(r=>{this.#i.notify("stream-type-change",r)}).catch(Ne):this.#i.notify("stream-type-change","on-demand"),f(()=>{const r=f(this.#i.$state.preload);return t?.loadSource(e,r).catch(o=>{})}),()=>n.abort()}try{E(e.src)&&Yt(new URL(e.src).origin)}catch{}}}#d(){const t=this.#a(),{providedPoster:e,source:s,canLoadPoster:a}=this.#i.$state;if(!t||!t.loadPoster||!s()||!a()||e())return;const n=new AbortController,r=new z("source-change",{detail:s});return t.loadPoster(s(),this.#i,n).then(o=>{this.#i.notify("poster-change",o||"",r)}).catch(()=>{this.#i.notify("poster-change","",r)}),()=>{n.abort()}}}function fi(i){return(K(i)?i:[i]).map(t=>E(t)?{src:t,type:gi(t)}:{...t,type:gi(t.src,t.type)})}function gi(i,t){return E(t)&&t.length?t:E(i)&&ss.has(i)?ss.get(i):!t&&He({src:i,type:""})?"application/x-mpegurl":!t&&Be({src:i,type:""})?"application/dash+xml":!E(i)||i.startsWith("blob:")?"video/object":i.includes("youtube")||i.includes("youtu.be")?"video/youtube":i.includes("vimeo")&&!i.includes("progressive_redirect")&&!i.includes(".m3u8")?"video/vimeo":"?"}function bi(i,t){return i?.src===t?.src&&i?.type===t?.type}class zn{#t;#e;#s=[];constructor(t,e){this.#t=t,this.#e=e,d(this.#i.bind(this))}#i(){const t=this.#t();for(const e of this.#s)if(!t.some(s=>s.id===e.id)){const s=e.id&&this.#e.textTracks.getById(e.id);s&&this.#e.textTracks.remove(s)}for(const e of t){const s=e.id||me.createId(e);this.#e.textTracks.getById(s)||(e.id=s,this.#e.textTracks.add(e))}this.#s=t}}class yi extends k{static props={loaders:[]};static state=new yt({loader:null});#t;#e;#s=b([]);#i=b([]);#a=null;onSetup(){this.#t=y(),this.#e=new Un(this.#s,this.#t,this.$state.loader,this.$props.loaders())}onAttach(t){t.setAttribute("data-media-provider","")}onConnect(t){this.#e.connect(),new zn(this.#i,this.#t);const e=new ResizeObserver(ht(this.#l.bind(this)));e.observe(t);const s=new MutationObserver(this.#u.bind(this));s.observe(t,{attributes:!0,childList:!0}),this.#l(),this.#u(),A(()=>{e.disconnect(),s.disconnect()})}#n=-1;load(t){t?.setAttribute("aria-hidden","true"),window.cancelAnimationFrame(this.#n),this.#n=requestAnimationFrame(()=>this.#r(t)),A(()=>{window.cancelAnimationFrame(this.#n)})}#r(t){if(!this.scope)return;const e=this.$state.loader(),{$provider:s}=this.#t;this.#a===e&&e?.target===t&&f(s)||(this.#o(),this.#a=e,e&&(e.target=t||null),!(!e||!t)&&e.load(this.#t).then(a=>{this.scope&&f(this.$state.loader)===e&&this.#t.notify("provider-change",a)}))}onDestroy(){this.#a=null,this.#o()}#o(){this.#t?.notify("provider-change",null)}#l(){if(!this.el)return;const{player:t,$state:e}=this.#t,s=this.el.offsetWidth,a=this.el.offsetHeight;t&&(e.mediaWidth.set(s),e.mediaHeight.set(a),t.el&&(it(t.el,"--media-width",s+"px"),it(t.el,"--media-height",a+"px")))}#u(){const t=[],e=[],s=this.el.children;for(const a of s)if(!a.hasAttribute("data-vds")){if(a instanceof HTMLSourceElement){const n={id:a.id,src:a.src,type:a.type};for(const r of["id","src","width","height","bitrate","codec"]){const o=a.getAttribute(`data-${r}`);E(o)&&(n[r]=/id|src|codec/.test(r)?o:Number(o))}t.push(n)}else if(a instanceof HTMLTrackElement){const n={src:a.src,kind:a.track.kind,language:a.srclang,label:a.label,default:a.default,type:a.getAttribute("data-type")};e.push({id:a.id||me.createId(n),...n})}}this.#s.set(t),this.#i.set(e),ct()}}const jn=yi.prototype;B(jn,"load");class Yn extends T(HTMLElement,yi){static tagName="media-provider";#t;#e=null;#s=null;onSetup(){this.#t=y(),this.setAttribute("keep-alive","")}onDestroy(){this.#s?.remove(),this.#s=null,this.#e?.remove(),this.#e=null}onConnect(){d(()=>{const t=this.$state.loader(),e=t?.name==="youtube",s=t?.name==="vimeo",a=e||s,n=t?.name==="google-cast",r=t?n?this.#r():a?this.#n():t.mediaType()==="audio"?this.#i():this.#a():null;if(this.#e!==r){const o=this.#e?.parentElement??this;this.#e?.remove(),this.#e=r,r&&o.prepend(r),a&&r&&d(()=>{const{nativeControls:l,viewType:u}=this.#t.$state,h=l(),c=u()==="audio";!h&&!c?(this.#s=this.querySelector(".vds-blocker"),this.#s||(this.#s=document.createElement("div"),this.#s.classList.add("vds-blocker"),r.after(this.#s))):(this.#s?.remove(),this.#s=null),v(r,"data-no-controls",!h)})}e?r?.classList.add("vds-youtube"):s&&r?.classList.add("vds-vimeo"),a||(this.#s?.remove(),this.#s=null),this.load(r)})}#i(){const t=this.#e instanceof HTMLAudioElement?this.#e:document.createElement("audio"),{controls:e,crossOrigin:s}=this.#t.$state;return d(()=>{v(t,"controls",e()),v(t,"crossorigin",s())}),t}#a(){const t=this.#e instanceof HTMLVideoElement?this.#e:document.createElement("video"),{crossOrigin:e,poster:s,nativeControls:a}=this.#t.$state,n=M(()=>a()?"true":null),r=M(()=>s()&&a()?s():null);return d(()=>{v(t,"controls",n()),v(t,"crossorigin",e()),v(t,"poster",r())}),t}#n(){const t=this.#e instanceof HTMLIFrameElement?this.#e:document.createElement("iframe"),{nativeControls:e}=this.#t.$state;return d(()=>v(t,"tabindex",e()?null:-1)),t}#r(){if(this.#e?.classList.contains("vds-google-cast"))return this.#e;const t=document.createElement("div");return t.classList.add("vds-google-cast"),import("./vidstack-DJyGEdCH.js").then(({insertContent:e})=>{e(t,this.#t.$state)}),t}}w(Fn),w(Yn);const vi=ut();function S(){return O(vi)}const Xn={colorScheme:"system",download:null,customIcons:!1,disableTimeSlider:!1,menuContainer:null,menuGroup:"bottom",noAudioGain:!1,noGestures:!1,noKeyboardAnimations:!1,noModal:!1,noScrubGesture:!1,playbackRates:{min:0,max:2,step:.25},audioGains:{min:0,max:300,step:25},seekStep:5,sliderChaptersMinWidth:325,hideQualityBitrate:!1,episodes:null,episodesTitle:"Episodes",smallWhen:!1,thumbnails:null,translations:null,when:!1};class is extends k{static props=Xn;#t;#e=M(()=>{const t=this.$props.when();return this.#i(t)});#s=M(()=>{const t=this.$props.smallWhen();return this.#i(t)});get isMatch(){return this.#e()}get isSmallLayout(){return this.#s()}onSetup(){this.#t=y(),this.setAttributes({"data-match":this.#e,"data-sm":()=>this.#s()?"":null,"data-lg":()=>this.#s()?null:"","data-size":()=>this.#s()?"sm":"lg","data-no-scrub-gesture":this.$props.noScrubGesture}),Z(vi,{...this.$props,when:this.#e,smallWhen:this.#s,userPrefersAnnouncements:b(!0),userPrefersKeyboardAnimations:b(!0),menuPortal:b(null)})}onAttach(t){ui(t,this.$props.colorScheme)}#i(t){return t!=="never"&&(Os(t)?t:M(()=>t(this.#t.player.state))())}}const $i=is.prototype;C($i,"isMatch"),C($i,"isSmallLayout");let Jn=class extends is{static props={...super.props,when:({viewType:t})=>t==="audio",smallWhen:({width:t})=>t<576}};class Zn extends Sa{#t=null;#e=!1;#s=null;constructor(t){super(t),this.#e=t.type===Rs.ATTRIBUTE||t.type===Rs.BOOLEAN_ATTRIBUTE}render(t){return t!==this.#t&&(this.disconnected(),this.#t=t,this.isConnected&&this.#i()),this.#t?this.#a(f(this.#t)):xa}reconnected(){this.#i()}disconnected(){this.#s?.(),this.#s=null}#i(){this.#t&&(this.#s=d(this.#r.bind(this)))}#a(t){return this.#e?Fe(t):t}#n(t){this.setValue(this.#a(t))}#r(){this.#n(this.#t?.())}}function m(i){return ka(Zn)(M(i))}class ye extends HTMLElement{rootPart=null;connectedCallback(){this.rootPart=de(this.render(),this,{renderBefore:this.firstChild}),this.rootPart.setConnected(!0)}disconnectedCallback(){this.rootPart?.setConnected(!1),this.rootPart=null,de(null,this)}}function wi(i,t){d(()=>{const{player:e}=y(),s=e.el;return s&&v(s,"data-layout",t()&&i),()=>s?.removeAttribute("data-layout")})}class Ti{#t;#e;elements=new Set;constructor(t,e){this.#t=t,this.#e=e}connect(){this.#i();const t=new MutationObserver(this.#s);for(const e of this.#t)t.observe(e,{childList:!0,subtree:!0});A(()=>t.disconnect()),A(this.disconnect.bind(this))}disconnect(){this.elements.clear()}assign(t,e){_s(t)?(e.textContent="",e.append(t)):(de(null,e),de(t,e)),e.style.display||(e.style.display="contents");const s=e.firstElementChild;if(!s)return;const a=e.getAttribute("data-class");a&&s.classList.add(...a.split(" "))}#s=ht(this.#i.bind(this));#i(t){if(t&&!t.some(a=>a.addedNodes.length))return;let e=!1,s=this.#t.flatMap(a=>[...a.querySelectorAll("slot")]);for(const a of s)!a.hasAttribute("name")||this.elements.has(a)||(this.elements.add(a),e=!0);e&&this.#e(this.elements)}}let tr=0,ve="data-slot-id";class as{#t;slots;constructor(t){this.#t=t,this.slots=new Ti(t,this.#s.bind(this))}connect(){this.slots.connect(),this.#s();const t=new MutationObserver(this.#e);for(const e of this.#t)t.observe(e,{childList:!0});A(()=>t.disconnect())}#e=ht(this.#s.bind(this));#s(){for(const t of this.#t)for(const e of t.children){if(e.nodeType!==1)continue;const s=e.getAttribute("slot");if(!s)continue;e.style.display="none";let a=e.getAttribute(ve);a||e.setAttribute(ve,a=++tr+"");for(const n of this.slots.elements){if(n.getAttribute("name")!==s||n.getAttribute(ve)===a)continue;const r=document.importNode(e,!0);s.includes("-icon")&&r.classList.add("vds-icon"),r.style.display="",r.removeAttribute("slot"),this.slots.assign(r,n),n.setAttribute(ve,a)}}}}function tt(i,t){return i()?.[t]??t}function ns(){return m(()=>{const{translations:i,userPrefersAnnouncements:t}=S();return t()?p`<media-announcer .translations=${m(i)}></media-announcer>`:null})}function st(i,t=""){return p`<slot
|
|
4
|
+
name=${`${i}-icon`}
|
|
5
|
+
data-class=${`vds-icon vds-${i}-icon${t?` ${t}`:""}`}
|
|
6
|
+
></slot>`}function Zt(i){return i.map(t=>st(t))}function P(i,t){return m(()=>tt(i,t))}function er({tooltip:i}){const{translations:t}=S(),{remotePlaybackState:e}=R(),s=m(()=>{const n=tt(t,"AirPlay"),r=Vs(e());return`${n} ${r}`}),a=P(t,"AirPlay");return p`
|
|
7
|
+
<media-tooltip class="vds-airplay-tooltip vds-tooltip">
|
|
8
|
+
<media-tooltip-trigger>
|
|
9
|
+
<media-airplay-button class="vds-airplay-button vds-button" aria-label=${s}>
|
|
10
|
+
${st("airplay")}
|
|
11
|
+
</media-airplay-button>
|
|
12
|
+
</media-tooltip-trigger>
|
|
13
|
+
<media-tooltip-content class="vds-tooltip-content" placement=${i}>
|
|
14
|
+
<span class="vds-airplay-tooltip-text">${a}</span>
|
|
15
|
+
</media-tooltip-content>
|
|
16
|
+
</media-tooltip>
|
|
17
|
+
`}function $e({tooltip:i}){const{translations:t}=S(),e=P(t,"Play"),s=P(t,"Pause");return p`
|
|
18
|
+
<media-tooltip class="vds-play-tooltip vds-tooltip">
|
|
19
|
+
<media-tooltip-trigger>
|
|
20
|
+
<media-play-button
|
|
21
|
+
class="vds-play-button vds-button"
|
|
22
|
+
aria-label=${P(t,"Play")}
|
|
23
|
+
>
|
|
24
|
+
${Zt(["play","pause","replay"])}
|
|
25
|
+
</media-play-button>
|
|
26
|
+
</media-tooltip-trigger>
|
|
27
|
+
<media-tooltip-content class="vds-tooltip-content" placement=${i}>
|
|
28
|
+
<span class="vds-play-tooltip-text">${e}</span>
|
|
29
|
+
<span class="vds-pause-tooltip-text">${s}</span>
|
|
30
|
+
</media-tooltip-content>
|
|
31
|
+
</media-tooltip>
|
|
32
|
+
`}function ki({tooltip:i,ref:t=Ne}){const{translations:e}=S(),s=P(e,"Mute"),a=P(e,"Unmute");return p`
|
|
33
|
+
<media-tooltip class="vds-mute-tooltip vds-tooltip">
|
|
34
|
+
<media-tooltip-trigger>
|
|
35
|
+
<media-mute-button
|
|
36
|
+
class="vds-mute-button vds-button"
|
|
37
|
+
aria-label=${P(e,"Mute")}
|
|
38
|
+
${ue(t)}
|
|
39
|
+
>
|
|
40
|
+
${Zt(["mute","volume-low","volume-high"])}
|
|
41
|
+
</media-mute-button>
|
|
42
|
+
</media-tooltip-trigger>
|
|
43
|
+
<media-tooltip-content class="vds-tooltip-content" placement=${i}>
|
|
44
|
+
<span class="vds-mute-tooltip-text">${a}</span>
|
|
45
|
+
<span class="vds-unmute-tooltip-text">${s}</span>
|
|
46
|
+
</media-tooltip-content>
|
|
47
|
+
</media-tooltip>
|
|
48
|
+
`}function rs({tooltip:i}){const{translations:t}=S(),e=P(t,"Closed-Captions On"),s=P(t,"Closed-Captions Off");return p`
|
|
49
|
+
<media-tooltip class="vds-caption-tooltip vds-tooltip">
|
|
50
|
+
<media-tooltip-trigger>
|
|
51
|
+
<media-caption-button
|
|
52
|
+
class="vds-caption-button vds-button"
|
|
53
|
+
aria-label=${P(t,"Captions")}
|
|
54
|
+
>
|
|
55
|
+
${Zt(["cc-on","cc-off"])}
|
|
56
|
+
</media-caption-button>
|
|
57
|
+
</media-tooltip-trigger>
|
|
58
|
+
<media-tooltip-content class="vds-tooltip-content" placement=${i}>
|
|
59
|
+
<span class="vds-cc-on-tooltip-text">${s}</span>
|
|
60
|
+
<span class="vds-cc-off-tooltip-text">${e}</span>
|
|
61
|
+
</media-tooltip-content>
|
|
62
|
+
</media-tooltip>
|
|
63
|
+
`}function sr(){const{translations:i}=S(),t=P(i,"Enter PiP"),e=P(i,"Exit PiP");return p`
|
|
64
|
+
<media-tooltip class="vds-pip-tooltip vds-tooltip">
|
|
65
|
+
<media-tooltip-trigger>
|
|
66
|
+
<media-pip-button
|
|
67
|
+
class="vds-pip-button vds-button"
|
|
68
|
+
aria-label=${P(i,"PiP")}
|
|
69
|
+
>
|
|
70
|
+
${Zt(["pip-enter","pip-exit"])}
|
|
71
|
+
</media-pip-button>
|
|
72
|
+
</media-tooltip-trigger>
|
|
73
|
+
<media-tooltip-content class="vds-tooltip-content">
|
|
74
|
+
<span class="vds-pip-enter-tooltip-text">${t}</span>
|
|
75
|
+
<span class="vds-pip-exit-tooltip-text">${e}</span>
|
|
76
|
+
</media-tooltip-content>
|
|
77
|
+
</media-tooltip>
|
|
78
|
+
`}function Si({tooltip:i}){const{translations:t}=S(),e=P(t,"Enter Fullscreen"),s=P(t,"Exit Fullscreen");return p`
|
|
79
|
+
<media-tooltip class="vds-fullscreen-tooltip vds-tooltip">
|
|
80
|
+
<media-tooltip-trigger>
|
|
81
|
+
<media-fullscreen-button
|
|
82
|
+
class="vds-fullscreen-button vds-button"
|
|
83
|
+
aria-label=${P(t,"Fullscreen")}
|
|
84
|
+
>
|
|
85
|
+
${Zt(["fs-enter","fs-exit"])}
|
|
86
|
+
</media-fullscreen-button>
|
|
87
|
+
</media-tooltip-trigger>
|
|
88
|
+
<media-tooltip-content class="vds-tooltip-content" placement=${i}>
|
|
89
|
+
<span class="vds-fs-enter-tooltip-text">${e}</span>
|
|
90
|
+
<span class="vds-fs-exit-tooltip-text">${s}</span>
|
|
91
|
+
</media-tooltip-content>
|
|
92
|
+
</media-tooltip>
|
|
93
|
+
`}function Bt({backward:i,tooltip:t}){const{translations:e,seekStep:s}=S(),a=i?"Seek Backward":"Seek Forward",n=P(e,a);return p`
|
|
94
|
+
<media-tooltip class="vds-seek-tooltip vds-tooltip">
|
|
95
|
+
<media-tooltip-trigger>
|
|
96
|
+
<media-seek-button
|
|
97
|
+
class="vds-seek-button vds-button"
|
|
98
|
+
seconds=${m(()=>(i?-1:1)*s())}
|
|
99
|
+
aria-label=${n}
|
|
100
|
+
>
|
|
101
|
+
${st(i?"seek-backward":"seek-forward")}
|
|
102
|
+
</media-seek-button>
|
|
103
|
+
</media-tooltip-trigger>
|
|
104
|
+
<media-tooltip-content class="vds-tooltip-content" placement=${t}>
|
|
105
|
+
${P(e,a)}
|
|
106
|
+
</media-tooltip-content>
|
|
107
|
+
</media-tooltip>
|
|
108
|
+
`}function xi(){const{translations:i}=S(),{live:t}=R(),e=P(i,"Skip To Live"),s=P(i,"LIVE");return t()?p`
|
|
109
|
+
<media-live-button class="vds-live-button" aria-label=${e}>
|
|
110
|
+
<span class="vds-live-button-text">${s}</span>
|
|
111
|
+
</media-live-button>
|
|
112
|
+
`:null}function os(){return m(()=>{const{download:i,translations:t}=S(),e=i();if(Pa(e))return null;const{source:s,title:a}=R(),n=s(),r=Ws({title:a(),src:n,download:e});return E(r?.url)?p`
|
|
113
|
+
<media-tooltip class="vds-download-tooltip vds-tooltip">
|
|
114
|
+
<media-tooltip-trigger>
|
|
115
|
+
<a
|
|
116
|
+
role="button"
|
|
117
|
+
class="vds-download-button vds-button"
|
|
118
|
+
aria-label=${P(t,"Download")}
|
|
119
|
+
href=${Qs(r.url,{download:r.name})}
|
|
120
|
+
download=${r.name}
|
|
121
|
+
target="_blank"
|
|
122
|
+
>
|
|
123
|
+
<slot name="download-icon" data-class="vds-icon" />
|
|
124
|
+
</a>
|
|
125
|
+
</media-tooltip-trigger>
|
|
126
|
+
<media-tooltip-content class="vds-tooltip-content" placement="top">
|
|
127
|
+
${P(t,"Download")}
|
|
128
|
+
</media-tooltip-content>
|
|
129
|
+
</media-tooltip>
|
|
130
|
+
`:null})}function Pi({tooltip:i}={}){const t="Episodes",e="Episodes";function s(n){n.stopPropagation(),n.currentTarget?.dispatchEvent(new CustomEvent("vds-episodes-open",{bubbles:!0,composed:!0}))}const a=p`
|
|
131
|
+
<button
|
|
132
|
+
type="button"
|
|
133
|
+
class="vds-episode-button vds-button"
|
|
134
|
+
aria-label=${t}
|
|
135
|
+
@pointerup=${s}
|
|
136
|
+
>
|
|
137
|
+
${st("menu-episodes")}
|
|
138
|
+
</button>
|
|
139
|
+
`;return i?p`
|
|
140
|
+
<media-tooltip class="vds-episode-tooltip vds-tooltip">
|
|
141
|
+
<media-tooltip-trigger> ${a} </media-tooltip-trigger>
|
|
142
|
+
<media-tooltip-content class="vds-tooltip-content" placement=${i}>
|
|
143
|
+
<span class="vds-episode-tooltip-text">${e}</span>
|
|
144
|
+
</media-tooltip-content>
|
|
145
|
+
</media-tooltip>
|
|
146
|
+
`:a}function ls(){const{translations:i}=S();return p`
|
|
147
|
+
<media-captions
|
|
148
|
+
class="vds-captions"
|
|
149
|
+
.exampleText=${P(i,"Captions look like this")}
|
|
150
|
+
></media-captions>
|
|
151
|
+
`}function Lt(){return p`<div class="vds-controls-spacer"></div>`}function Ci(i,t){return p`
|
|
152
|
+
<media-menu-portal .container=${m(i)} disabled="fullscreen">
|
|
153
|
+
${t}
|
|
154
|
+
</media-menu-portal>
|
|
155
|
+
`}function Ei(i,t,e,s){let a=E(t)?document.querySelector(t):t;a||(a=i?.closest("dialog")),a||(a=document.body);const n=document.createElement("div");n.style.display="contents",n.classList.add(e),a.append(n),d(()=>{if(!n)return;const{viewType:o}=R(),l=s();v(n,"data-view-type",o()),v(n,"data-sm",l),v(n,"data-lg",!l),v(n,"data-size",l?"sm":"lg")});const{colorScheme:r}=S();return ui(n,r),n}function Ai({placement:i,tooltip:t,portal:e}){const{textTracks:s}=y(),{viewType:a,seekableStart:n,seekableEnd:r}=R(),{translations:o,thumbnails:l,menuPortal:u,noModal:h,menuGroup:c,smallWhen:g}=S();if(M(()=>{const H=n(),St=r(),xt=b(null);return jt(s,"chapters",xt.set),!xt()?.cues.filter(Ot=>Ot.startTime<=St&&Ot.endTime>=H)?.length})())return null;const x=M(()=>h()?ce(i):g()?null:ce(i)),q=M(()=>!g()&&c()==="bottom"&&a()==="video"?26:0),L=b(!1);function j(){L.set(!0)}function bt(){L.set(!1)}const dt=p`
|
|
156
|
+
<media-menu-items
|
|
157
|
+
class="vds-chapters-menu-items vds-menu-items"
|
|
158
|
+
placement=${m(x)}
|
|
159
|
+
offset=${m(q)}
|
|
160
|
+
>
|
|
161
|
+
${m(()=>L()?p`
|
|
162
|
+
<media-chapters-radio-group
|
|
163
|
+
class="vds-chapters-radio-group vds-radio-group"
|
|
164
|
+
.thumbnails=${m(l)}
|
|
165
|
+
>
|
|
166
|
+
<template>
|
|
167
|
+
<media-radio class="vds-chapter-radio vds-radio">
|
|
168
|
+
<media-thumbnail class="vds-thumbnail"></media-thumbnail>
|
|
169
|
+
<div class="vds-chapter-radio-content">
|
|
170
|
+
<span class="vds-chapter-radio-label" data-part="label"></span>
|
|
171
|
+
<span class="vds-chapter-radio-start-time" data-part="start-time"></span>
|
|
172
|
+
<span class="vds-chapter-radio-duration" data-part="duration"></span>
|
|
173
|
+
</div>
|
|
174
|
+
</media-radio>
|
|
175
|
+
</template>
|
|
176
|
+
</media-chapters-radio-group>
|
|
177
|
+
`:null)}
|
|
178
|
+
</media-menu-items>
|
|
179
|
+
`;return p`
|
|
180
|
+
<media-menu class="vds-chapters-menu vds-menu" @open=${j} @close=${bt}>
|
|
181
|
+
<media-tooltip class="vds-tooltip">
|
|
182
|
+
<media-tooltip-trigger>
|
|
183
|
+
<media-menu-button
|
|
184
|
+
class="vds-menu-button vds-button"
|
|
185
|
+
aria-label=${P(o,"Chapters")}
|
|
186
|
+
>
|
|
187
|
+
${st("menu-chapters")}
|
|
188
|
+
</media-menu-button>
|
|
189
|
+
</media-tooltip-trigger>
|
|
190
|
+
<media-tooltip-content
|
|
191
|
+
class="vds-tooltip-content"
|
|
192
|
+
placement=${re(t)?m(t):t}
|
|
193
|
+
>
|
|
194
|
+
${P(o,"Chapters")}
|
|
195
|
+
</media-tooltip-content>
|
|
196
|
+
</media-tooltip>
|
|
197
|
+
${Ci(u,dt)}
|
|
198
|
+
</media-menu>
|
|
199
|
+
`}function ds(i){const{style:t}=new Option;return t.color=i,t.color.match(/\((.*?)\)/)[1].replace(/,/g," ")}const us={type:"color"},ir={type:"radio",values:{"Monospaced Serif":"mono-serif","Proportional Serif":"pro-serif","Monospaced Sans-Serif":"mono-sans","Proportional Sans-Serif":"pro-sans",Casual:"casual",Cursive:"cursive","Small Capitals":"capitals"}},ar={type:"slider",min:0,max:400,step:25,upIcon:null,downIcon:null},nr={type:"slider",min:0,max:100,step:5,upIcon:null,downIcon:null},rr={type:"radio",values:["None","Drop Shadow","Raised","Depressed","Outline"]},we={fontFamily:"pro-sans",fontSize:"100%",textColor:"#ffffff",textOpacity:"100%",textShadow:"none",textBg:"#000000",textBgOpacity:"100%",displayBg:"#000000",displayBgOpacity:"0%"},Dt=Object.keys(we).reduce((i,t)=>({...i,[t]:b(we[t])}),{});for(const i of Object.keys(Dt)){const t=localStorage.getItem(`vds-player:${Nt(i)}`);E(t)&&Dt[i].set(t)}function or(){for(const i of Object.keys(Dt)){const t=we[i];Dt[i].set(t)}}let Mi=!1,cs=new Set;function lr(){const{player:i}=y();cs.add(i),A(()=>cs.delete(i)),Mi||(zt(()=>{for(const t of Ca(Dt)){const e=Dt[t],s=we[t],a=`--media-user-${Nt(t)}`,n=`vds-player:${Nt(t)}`;d(()=>{const r=e(),o=r===s,l=o?null:dr(i,t,r);for(const u of cs)u.el?.style.setProperty(a,l);o?localStorage.removeItem(n):localStorage.setItem(n,r)})}},null),Mi=!0)}function dr(i,t,e){switch(t){case"fontFamily":const s=e==="capitals"?"small-caps":"";return i.el?.style.setProperty("--media-user-font-variant",s),cr(e);case"fontSize":case"textOpacity":case"textBgOpacity":case"displayBgOpacity":return ur(e);case"textColor":return`rgb(${ds(e)} / var(--media-user-text-opacity, 1))`;case"textShadow":return hr(e);case"textBg":return`rgb(${ds(e)} / var(--media-user-text-bg-opacity, 1))`;case"displayBg":return`rgb(${ds(e)} / var(--media-user-display-bg-opacity, 1))`}}function ur(i){return(parseInt(i)/100).toString()}function cr(i){switch(i){case"mono-serif":return'"Courier New", Courier, "Nimbus Mono L", "Cutive Mono", monospace';case"mono-sans":return'"Deja Vu Sans Mono", "Lucida Console", Monaco, Consolas, "PT Mono", monospace';case"pro-sans":return'Roboto, "Arial Unicode Ms", Arial, Helvetica, Verdana, "PT Sans Caption", sans-serif';case"casual":return'"Comic Sans MS", Impact, Handlee, fantasy';case"cursive":return'"Monotype Corsiva", "URW Chancery L", "Apple Chancery", "Dancing Script", cursive';case"capitals":return'"Arial Unicode Ms", Arial, Helvetica, Verdana, "Marcellus SC", sans-serif + font-variant=small-caps';default:return'"Times New Roman", Times, Georgia, Cambria, "PT Serif Caption", serif'}}function hr(i){switch(i){case"drop shadow":return"rgb(34, 34, 34) 1.86389px 1.86389px 2.79583px, rgb(34, 34, 34) 1.86389px 1.86389px 3.72778px, rgb(34, 34, 34) 1.86389px 1.86389px 4.65972px";case"raised":return"rgb(34, 34, 34) 1px 1px, rgb(34, 34, 34) 2px 2px";case"depressed":return"rgb(204, 204, 204) 1px 1px, rgb(34, 34, 34) -1px -1px";case"outline":return"rgb(34, 34, 34) 0px 0px 1.86389px, rgb(34, 34, 34) 0px 0px 1.86389px, rgb(34, 34, 34) 0px 0px 1.86389px, rgb(34, 34, 34) 0px 0px 1.86389px, rgb(34, 34, 34) 0px 0px 1.86389px";default:return""}}let pr=0;function at({label:i="",value:t="",children:e}){if(!i)return p`
|
|
200
|
+
<div class="vds-menu-section">
|
|
201
|
+
<div class="vds-menu-section-body">${e}</div>
|
|
202
|
+
</div>
|
|
203
|
+
`;const s=`vds-menu-section-${++pr}`;return p`
|
|
204
|
+
<section class="vds-menu-section" role="group" aria-labelledby=${s}>
|
|
205
|
+
<div class="vds-menu-section-title">
|
|
206
|
+
<header id=${s}>${i}</header>
|
|
207
|
+
${t?p`<div class="vds-menu-section-value">${t}</div>`:null}
|
|
208
|
+
</div>
|
|
209
|
+
<div class="vds-menu-section-body">${e}</div>
|
|
210
|
+
</section>
|
|
211
|
+
`}function te({label:i,children:t}){return p`
|
|
212
|
+
<div class="vds-menu-item">
|
|
213
|
+
<div class="vds-menu-item-label">${i}</div>
|
|
214
|
+
${t}
|
|
215
|
+
</div>
|
|
216
|
+
`}function qt({label:i,icon:t,hint:e}){return p`
|
|
217
|
+
<media-menu-button class="vds-menu-item">
|
|
218
|
+
${st("menu-arrow-left","vds-menu-close-icon")}
|
|
219
|
+
${t?st(t,"vds-menu-item-icon"):null}
|
|
220
|
+
<span class="vds-menu-item-label">${m(i)}</span>
|
|
221
|
+
<span class="vds-menu-item-hint" data-part="hint">${e?m(e):null} </span>
|
|
222
|
+
${st("menu-arrow-right","vds-menu-open-icon")}
|
|
223
|
+
</media-menu-button>
|
|
224
|
+
`}function mr({value:i=null,options:t,hideLabel:e=!1,children:s=null,onChange:a=null}){function n(r){const{value:o,label:l}=r;return p`
|
|
225
|
+
<media-radio class="vds-radio" value=${o}>
|
|
226
|
+
${st("menu-radio-check")}
|
|
227
|
+
${e?null:p`
|
|
228
|
+
<span class="vds-radio-label" data-part="label">
|
|
229
|
+
${E(l)?l:m(l)}
|
|
230
|
+
</span>
|
|
231
|
+
`}
|
|
232
|
+
${re(s)?s(r):s}
|
|
233
|
+
</media-radio>
|
|
234
|
+
`}return p`
|
|
235
|
+
<media-radio-group
|
|
236
|
+
class="vds-radio-group"
|
|
237
|
+
value=${E(i)?i:i?m(i):""}
|
|
238
|
+
@change=${a}
|
|
239
|
+
>
|
|
240
|
+
${K(t)?t.map(n):m(()=>t().map(n))}
|
|
241
|
+
</media-radio-group>
|
|
242
|
+
`}function fr(i){return K(i)?i.map(t=>({label:t,value:t.toLowerCase()})):Object.keys(i).map(t=>({label:t,value:i[t]}))}function Te(){return p`
|
|
243
|
+
<div class="vds-slider-track"></div>
|
|
244
|
+
<div class="vds-slider-track-fill vds-slider-track"></div>
|
|
245
|
+
<div class="vds-slider-thumb"></div>
|
|
246
|
+
`}function ke(){return p`
|
|
247
|
+
<media-slider-steps class="vds-slider-steps">
|
|
248
|
+
<template>
|
|
249
|
+
<div class="vds-slider-step"></div>
|
|
250
|
+
</template>
|
|
251
|
+
</media-slider-steps>
|
|
252
|
+
`}function Se({label:i=null,value:t=null,upIcon:e="",downIcon:s="",children:a,isMin:n,isMax:r}){const o=i||t,l=[s?st(s,"down"):null,a,e?st(e,"up"):null];return p`
|
|
253
|
+
<div
|
|
254
|
+
class=${`vds-menu-item vds-menu-slider-item${o?" group":""}`}
|
|
255
|
+
data-min=${m(()=>n()?"":null)}
|
|
256
|
+
data-max=${m(()=>r()?"":null)}
|
|
257
|
+
>
|
|
258
|
+
${o?p`
|
|
259
|
+
<div class="vds-menu-slider-title">
|
|
260
|
+
${[i?p`<div>${i}</div>`:null,t?p`<div>${t}</div>`:null]}
|
|
261
|
+
</div>
|
|
262
|
+
<div class="vds-menu-slider-body">${l}</div>
|
|
263
|
+
`:l}
|
|
264
|
+
</div>
|
|
265
|
+
`}const gr={...ar,upIcon:"menu-opacity-up",downIcon:"menu-opacity-down"},hs={...nr,upIcon:"menu-opacity-up",downIcon:"menu-opacity-down"};function br(){return m(()=>{const{hasCaptions:i}=R(),{translations:t}=S();return i()?p`
|
|
266
|
+
<media-menu class="vds-font-menu vds-menu">
|
|
267
|
+
${qt({label:()=>tt(t,"Caption Styles")})}
|
|
268
|
+
<media-menu-items class="vds-menu-items">
|
|
269
|
+
${[at({label:P(t,"Font"),children:[yr(),vr()]}),at({label:P(t,"Text"),children:[$r(),Tr(),wr()]}),at({label:P(t,"Text Background"),children:[kr(),Sr()]}),at({label:P(t,"Display Background"),children:[xr(),Pr()]}),at({children:[Cr()]})]}
|
|
270
|
+
</media-menu-items>
|
|
271
|
+
</media-menu>
|
|
272
|
+
`:null})}function yr(){return ft({label:"Family",option:ir,type:"fontFamily"})}function vr(){return ft({label:"Size",option:gr,type:"fontSize"})}function $r(){return ft({label:"Color",option:us,type:"textColor"})}function wr(){return ft({label:"Opacity",option:hs,type:"textOpacity"})}function Tr(){return ft({label:"Shadow",option:rr,type:"textShadow"})}function kr(){return ft({label:"Color",option:us,type:"textBg"})}function Sr(){return ft({label:"Opacity",option:hs,type:"textBgOpacity"})}function xr(){return ft({label:"Color",option:us,type:"displayBg"})}function Pr(){return ft({label:"Opacity",option:hs,type:"displayBgOpacity"})}function Cr(){const{translations:i}=S();return p`
|
|
273
|
+
<button class="vds-menu-item" role="menuitem" @click=${or}>
|
|
274
|
+
<span class="vds-menu-item-label">${m(()=>tt(i,"Reset"))}</span>
|
|
275
|
+
</button>
|
|
276
|
+
`}function ft({label:i,option:t,type:e}){const{player:s}=y(),{translations:a}=S(),n=Dt[e],r=()=>tt(a,i);function o(){ct(),s.dispatchEvent(new Event("vds-font-change"))}if(t.type==="color"){let h=function(c){n.set(c.target.value),o()};return te({label:m(r),children:p`
|
|
277
|
+
<input
|
|
278
|
+
class="vds-color-picker"
|
|
279
|
+
type="color"
|
|
280
|
+
.value=${m(n)}
|
|
281
|
+
@input=${h}
|
|
282
|
+
/>
|
|
283
|
+
`})}if(t.type==="slider"){let h=function(L){n.set(L.detail+"%"),o()};const{min:c,max:g,step:$,upIcon:x,downIcon:q}=t;return Se({label:m(r),value:m(n),upIcon:x,downIcon:q,isMin:()=>n()===c+"%",isMax:()=>n()===g+"%",children:p`
|
|
284
|
+
<media-slider
|
|
285
|
+
class="vds-slider"
|
|
286
|
+
min=${c}
|
|
287
|
+
max=${g}
|
|
288
|
+
step=${$}
|
|
289
|
+
key-step=${$}
|
|
290
|
+
.value=${m(()=>parseInt(n()))}
|
|
291
|
+
aria-label=${m(r)}
|
|
292
|
+
@value-change=${h}
|
|
293
|
+
@drag-value-change=${h}
|
|
294
|
+
>
|
|
295
|
+
${Te()}${ke()}
|
|
296
|
+
</media-slider>
|
|
297
|
+
`})}const l=fr(t.values),u=()=>{const h=n(),c=l.find(g=>g.value===h)?.label||"";return tt(a,E(c)?c:c())};return p`
|
|
298
|
+
<media-menu class=${`vds-${Nt(e)}-menu vds-menu`}>
|
|
299
|
+
${qt({label:r,hint:u})}
|
|
300
|
+
<media-menu-items class="vds-menu-items">
|
|
301
|
+
${mr({value:n,options:l,onChange({detail:h}){n.set(h),o()}})}
|
|
302
|
+
</media-menu-items>
|
|
303
|
+
</media-menu>
|
|
304
|
+
`}function xe({label:i,checked:t,defaultChecked:e=!1,storageKey:s,onChange:a}){const{translations:n}=S(),r=s?localStorage.getItem(s):null,o=b(!!(r??e)),l=b(!1),u=m(U(o)),h=P(n,i);s&&a(f(o)),t&&d(()=>void o.set(t()));function c(x){x?.button!==1&&(o.set(q=>!q),s&&localStorage.setItem(s,o()?"1":""),a(o(),x),l.set(!1))}function g(x){Ut(x)&&c()}function $(x){x.button===0&&l.set(!0)}return p`
|
|
305
|
+
<div
|
|
306
|
+
class="vds-menu-checkbox"
|
|
307
|
+
role="menuitemcheckbox"
|
|
308
|
+
tabindex="0"
|
|
309
|
+
aria-label=${h}
|
|
310
|
+
aria-checked=${u}
|
|
311
|
+
data-active=${m(()=>l()?"":null)}
|
|
312
|
+
@pointerup=${c}
|
|
313
|
+
@pointerdown=${$}
|
|
314
|
+
@keydown=${g}
|
|
315
|
+
></div>
|
|
316
|
+
`}function Er(){return m(()=>{const{translations:i}=S();return p`
|
|
317
|
+
<media-menu class="vds-accessibility-menu vds-menu">
|
|
318
|
+
${qt({label:()=>tt(i,"Accessibility"),icon:"menu-accessibility"})}
|
|
319
|
+
<media-menu-items class="vds-menu-items">
|
|
320
|
+
${[at({children:[Ar(),Mr()]}),at({children:[br()]})]}
|
|
321
|
+
</media-menu-items>
|
|
322
|
+
</media-menu>
|
|
323
|
+
`})}function Ar(){const{userPrefersAnnouncements:i,translations:t}=S(),e="Announcements";return te({label:P(t,e),children:xe({label:e,storageKey:"vds-player::announcements",onChange(s){i.set(s)}})})}function Mr(){return m(()=>{const{translations:i,userPrefersKeyboardAnimations:t,noKeyboardAnimations:e}=S(),{viewType:s}=R();if(M(()=>s()!=="video"||e())())return null;const n="Keyboard Animations";return te({label:P(i,n),children:xe({label:n,defaultChecked:!0,storageKey:"vds-player::keyboard-animations",onChange(r){t.set(r)}})})})}function Lr(){return m(()=>{const{noAudioGain:i,translations:t}=S(),{audioTracks:e,canSetAudioGain:s}=R();return M(()=>!(s()&&!i())&&e().length<=1)()?null:p`
|
|
324
|
+
<media-menu class="vds-audio-menu vds-menu">
|
|
325
|
+
${qt({label:()=>tt(t,"Audio"),icon:"menu-audio"})}
|
|
326
|
+
<media-menu-items class="vds-menu-items">
|
|
327
|
+
${[Dr(),qr()]}
|
|
328
|
+
</media-menu-items>
|
|
329
|
+
</media-menu>
|
|
330
|
+
`})}function Dr(){return m(()=>{const{translations:i}=S(),{audioTracks:t}=R(),e=P(i,"Default");return M(()=>t().length<=1)()?null:at({children:p`
|
|
331
|
+
<media-menu class="vds-audio-tracks-menu vds-menu">
|
|
332
|
+
${qt({label:()=>tt(i,"Track")})}
|
|
333
|
+
<media-menu-items class="vds-menu-items">
|
|
334
|
+
<media-audio-radio-group
|
|
335
|
+
class="vds-audio-track-radio-group vds-radio-group"
|
|
336
|
+
empty-label=${e}
|
|
337
|
+
>
|
|
338
|
+
<template>
|
|
339
|
+
<media-radio class="vds-audio-track-radio vds-radio">
|
|
340
|
+
<slot name="menu-radio-check-icon" data-class="vds-icon"></slot>
|
|
341
|
+
<span class="vds-radio-label" data-part="label"></span>
|
|
342
|
+
</media-radio>
|
|
343
|
+
</template>
|
|
344
|
+
</media-audio-radio-group>
|
|
345
|
+
</media-menu-items>
|
|
346
|
+
</media-menu>
|
|
347
|
+
`})})}function qr(){return m(()=>{const{noAudioGain:i,translations:t}=S(),{canSetAudioGain:e}=R();if(M(()=>!e()||i())())return null;const{audioGain:a}=R();return at({label:P(t,"Boost"),value:m(()=>Math.round(((a()??1)-1)*100)+"%"),children:[Se({upIcon:"menu-audio-boost-up",downIcon:"menu-audio-boost-down",children:Ir(),isMin:()=>((a()??1)-1)*100<=Li(),isMax:()=>((a()??1)-1)*100===Di()})]})})}function Ir(){const{translations:i}=S(),t=P(i,"Boost"),e=Li,s=Di,a=_r;return p`
|
|
348
|
+
<media-audio-gain-slider
|
|
349
|
+
class="vds-audio-gain-slider vds-slider"
|
|
350
|
+
aria-label=${t}
|
|
351
|
+
min=${m(e)}
|
|
352
|
+
max=${m(s)}
|
|
353
|
+
step=${m(a)}
|
|
354
|
+
key-step=${m(a)}
|
|
355
|
+
>
|
|
356
|
+
${Te()}${ke()}
|
|
357
|
+
</media-audio-gain-slider>
|
|
358
|
+
`}function Li(){const{audioGains:i}=S(),t=i();return K(t)?t[0]??0:t.min}function Di(){const{audioGains:i}=S(),t=i();return K(t)?t[t.length-1]??300:t.max}function _r(){const{audioGains:i}=S(),t=i();return K(t)?t[1]-t[0]||25:t.step}function Vr(){return m(()=>{const{translations:i}=S(),{hasCaptions:t,textTracks:e}=R(),s=P(i,"Off");return t()?p`
|
|
359
|
+
<media-menu class="vds-captions-menu vds-menu">
|
|
360
|
+
${qt({label:()=>tt(i,"Captions"),icon:"menu-captions"})}
|
|
361
|
+
<media-menu-items class="vds-menu-items">
|
|
362
|
+
<media-captions-radio-group
|
|
363
|
+
class="vds-captions-radio-group vds-radio-group"
|
|
364
|
+
off-label=${s}
|
|
365
|
+
>
|
|
366
|
+
<template>
|
|
367
|
+
<media-radio class="vds-caption-radio vds-radio">
|
|
368
|
+
<slot name="menu-radio-check-icon" data-class="vds-icon"></slot>
|
|
369
|
+
<span class="vds-caption-flag" data-part="flag"></span>
|
|
370
|
+
<span class="vds-radio-label" data-part="label"></span>
|
|
371
|
+
</media-radio>
|
|
372
|
+
</template>
|
|
373
|
+
</media-captions-radio-group>
|
|
374
|
+
</media-menu-items>
|
|
375
|
+
</media-menu>
|
|
376
|
+
`:null})}function ps(i,t){return[...i].sort(t?Rr:Or)}function Or(i,t){return i.height===t.height?(i.bitrate??0)-(t.bitrate??0):i.height-t.height}function Rr(i,t){return t.height===i.height?(t.bitrate??0)-(i.bitrate??0):t.height-i.height}function Nr(){return m(()=>{const{translations:i}=S();return p`
|
|
377
|
+
<media-menu class="vds-playback-menu vds-menu">
|
|
378
|
+
${qt({label:()=>tt(i,"Playback"),icon:"menu-playback"})}
|
|
379
|
+
<media-menu-items class="vds-menu-items">
|
|
380
|
+
${[at({children:Fr()}),Br(),Wr()]}
|
|
381
|
+
</media-menu-items>
|
|
382
|
+
</media-menu>
|
|
383
|
+
`})}function Fr(){const{remote:i}=y(),{translations:t}=S(),e="Loop";return te({label:P(t,e),children:xe({label:e,storageKey:"vds-player::user-loop",onChange(s,a){i.userPrefersLoopChange(s,a)}})})}function Br(){return m(()=>{const{translations:i}=S(),{canSetPlaybackRate:t,playbackRate:e}=R();return t()?at({label:P(i,"Speed"),value:m(()=>e()===1?tt(i,"Normal"):e()+"x"),children:[Se({upIcon:"menu-speed-up",downIcon:"menu-speed-down",children:Gr(),isMin:()=>e()===qi(),isMax:()=>e()===Ii()})]}):null})}function qi(){const{playbackRates:i}=S(),t=i();return K(t)?t[0]??0:t.min}function Ii(){const{playbackRates:i}=S(),t=i();return K(t)?t[t.length-1]??2:t.max}function Hr(){const{playbackRates:i}=S(),t=i();return K(t)?t[1]-t[0]||.25:t.step}function Gr(){const{translations:i}=S(),t=P(i,"Speed"),e=qi,s=Ii,a=Hr;return p`
|
|
384
|
+
<media-speed-slider
|
|
385
|
+
class="vds-speed-slider vds-slider"
|
|
386
|
+
aria-label=${t}
|
|
387
|
+
min=${m(e)}
|
|
388
|
+
max=${m(s)}
|
|
389
|
+
step=${m(a)}
|
|
390
|
+
key-step=${m(a)}
|
|
391
|
+
>
|
|
392
|
+
${Te()}${ke()}
|
|
393
|
+
</media-speed-slider>
|
|
394
|
+
`}function Kr(){const{remote:i,qualities:t}=y(),{autoQuality:e,canSetQuality:s,qualities:a}=R(),{translations:n}=S(),r="Auto";return M(()=>!s()||a().length<=1)()?null:te({label:P(n,r),children:xe({label:r,checked:e,onChange(l,u){l?i.requestAutoQuality(u):i.changeQuality(t.selectedIndex,u)}})})}function Wr(){return m(()=>{const{hideQualityBitrate:i,translations:t}=S(),{canSetQuality:e,qualities:s,quality:a}=R(),n=M(()=>!e()||s().length<=1),r=M(()=>ps(s()));return n()?null:at({label:P(t,"Quality"),value:m(()=>{const o=a()?.height,l=a()?.label,u=i()?null:a()?.bitrate,h=u&&u>0?`${(u/1e6).toFixed(2)} Mbps`:null,c=tt(t,"Auto"),g=l??(o?`${o}p`:"");return g?`${g}${h?` (${h})`:""}`:c}),children:[Se({upIcon:"menu-quality-up",downIcon:"menu-quality-down",children:Qr(),isMin:()=>r()[0]===a(),isMax:()=>r().at(-1)===a()}),Kr()]})})}function Qr(){const{translations:i}=S(),t=P(i,"Quality");return p`
|
|
395
|
+
<media-quality-slider class="vds-quality-slider vds-slider" aria-label=${t}>
|
|
396
|
+
${Te()}${ke()}
|
|
397
|
+
</media-quality-slider>
|
|
398
|
+
`}function _i({placement:i,portal:t,tooltip:e}){return m(()=>{const{viewType:s}=R(),{translations:a,menuPortal:n,noModal:r,menuGroup:o,smallWhen:l}=S(),u=M(()=>r()?ce(i):l()?null:ce(i)),h=M(()=>!l()&&o()==="bottom"&&s()==="video"?26:0),c=b(!1);lr();function g(){c.set(!0)}function $(){c.set(!1)}const x=p`
|
|
399
|
+
<media-menu-items
|
|
400
|
+
class="vds-settings-menu-items vds-menu-items"
|
|
401
|
+
placement=${m(u)}
|
|
402
|
+
offset=${m(h)}
|
|
403
|
+
>
|
|
404
|
+
${m(()=>c()?[Nr(),Er(),Lr(),Vr()]:null)}
|
|
405
|
+
</media-menu-items>
|
|
406
|
+
`;return p`
|
|
407
|
+
<media-menu class="vds-settings-menu vds-menu" @open=${g} @close=${$}>
|
|
408
|
+
<media-tooltip class="vds-tooltip">
|
|
409
|
+
<media-tooltip-trigger>
|
|
410
|
+
<media-menu-button
|
|
411
|
+
class="vds-menu-button vds-button"
|
|
412
|
+
aria-label=${P(a,"Settings")}
|
|
413
|
+
>
|
|
414
|
+
${st("menu-settings","vds-rotate-icon")}
|
|
415
|
+
</media-menu-button>
|
|
416
|
+
</media-tooltip-trigger>
|
|
417
|
+
<media-tooltip-content
|
|
418
|
+
class="vds-tooltip-content"
|
|
419
|
+
placement=${re(e)?m(e):e}
|
|
420
|
+
>
|
|
421
|
+
${P(a,"Settings")}
|
|
422
|
+
</media-tooltip-content>
|
|
423
|
+
</media-tooltip>
|
|
424
|
+
${Ci(n,x)}
|
|
425
|
+
</media-menu>
|
|
426
|
+
`})}function ms({orientation:i,tooltip:t}){return m(()=>{const{pointer:e,muted:s,canSetVolume:a}=R();if(e()==="coarse"&&!s())return null;if(!a())return ki({tooltip:t});const n=b(void 0),r=Tn(n);return p`
|
|
427
|
+
<div class="vds-volume" ?data-active=${m(r)} ${ue(n.set)}>
|
|
428
|
+
${ki({tooltip:t})}
|
|
429
|
+
<div class="vds-volume-popup">${Ur({orientation:i})}</div>
|
|
430
|
+
</div>
|
|
431
|
+
`})}function Ur({orientation:i}={}){const{translations:t}=S(),e=P(t,"Volume");return p`
|
|
432
|
+
<media-volume-slider
|
|
433
|
+
class="vds-volume-slider vds-slider"
|
|
434
|
+
aria-label=${e}
|
|
435
|
+
orientation=${Fe(i)}
|
|
436
|
+
>
|
|
437
|
+
<div class="vds-slider-track"></div>
|
|
438
|
+
<div class="vds-slider-track-fill vds-slider-track"></div>
|
|
439
|
+
<media-slider-preview class="vds-slider-preview" no-clamp>
|
|
440
|
+
<media-slider-value class="vds-slider-value"></media-slider-value>
|
|
441
|
+
</media-slider-preview>
|
|
442
|
+
<div class="vds-slider-thumb"></div>
|
|
443
|
+
</media-volume-slider>
|
|
444
|
+
`}function fs(){const i=b(void 0),t=b(0),{thumbnails:e,translations:s,sliderChaptersMinWidth:a,disableTimeSlider:n,seekStep:r,noScrubGesture:o}=S(),l=P(s,"Seek"),u=m(n),h=m(()=>t()<a()),c=m(e);return di(i,()=>{const g=i();g&&t.set(g.clientWidth)}),p`
|
|
445
|
+
<media-time-slider
|
|
446
|
+
class="vds-time-slider vds-slider"
|
|
447
|
+
aria-label=${l}
|
|
448
|
+
key-step=${m(r)}
|
|
449
|
+
?disabled=${u}
|
|
450
|
+
?no-swipe-gesture=${m(o)}
|
|
451
|
+
${ue(i.set)}
|
|
452
|
+
>
|
|
453
|
+
<media-slider-chapters class="vds-slider-chapters" ?disabled=${h}>
|
|
454
|
+
<template>
|
|
455
|
+
<div class="vds-slider-chapter">
|
|
456
|
+
<div class="vds-slider-track"></div>
|
|
457
|
+
<div class="vds-slider-track-fill vds-slider-track"></div>
|
|
458
|
+
<div class="vds-slider-progress vds-slider-track"></div>
|
|
459
|
+
</div>
|
|
460
|
+
</template>
|
|
461
|
+
</media-slider-chapters>
|
|
462
|
+
<div class="vds-slider-thumb"></div>
|
|
463
|
+
<media-slider-preview class="vds-slider-preview">
|
|
464
|
+
<media-slider-thumbnail
|
|
465
|
+
class="vds-slider-thumbnail vds-thumbnail"
|
|
466
|
+
.src=${c}
|
|
467
|
+
></media-slider-thumbnail>
|
|
468
|
+
<div class="vds-slider-chapter-title" data-part="chapter-title"></div>
|
|
469
|
+
<media-slider-value class="vds-slider-value"></media-slider-value>
|
|
470
|
+
</media-slider-preview>
|
|
471
|
+
</media-time-slider>
|
|
472
|
+
`}function zr(){return p`
|
|
473
|
+
<div class="vds-time-group">
|
|
474
|
+
${m(()=>{const{duration:i}=R();return i()?[p`<media-time class="vds-time" type="current"></media-time>`,p`<div class="vds-time-divider">/</div>`,p`<media-time class="vds-time" type="duration"></media-time>`]:null})}
|
|
475
|
+
</div>
|
|
476
|
+
`}function jr(){return m(()=>{const{live:i,duration:t}=R();return i()?xi():t()?p`<media-time class="vds-time" type="current" toggle remainder></media-time>`:null})}function Vi(){return m(()=>{const{live:i}=R();return i()?xi():zr()})}function Yr(){return m(()=>{const{textTracks:i}=y(),{title:t,started:e}=R(),s=b(null);return jt(i,"chapters",s.set),s()&&(e()||!t())?Oi():p`<media-title class="vds-chapter-title"></media-title>`})}function Oi(){return p`<media-chapter-title class="vds-chapter-title"></media-chapter-title>`}function Xr(){return[ns(),ls(),p`
|
|
477
|
+
<media-controls class="vds-controls">
|
|
478
|
+
<media-controls-group class="vds-controls-group">
|
|
479
|
+
${[Bt({backward:!0,tooltip:"top start"}),$e({tooltip:"top"}),Bt({tooltip:"top"}),Jr(),fs(),jr(),ms({orientation:"vertical",tooltip:"top"}),rs({tooltip:"top"}),os(),er({tooltip:"top"}),Zr()]}
|
|
480
|
+
</media-controls-group>
|
|
481
|
+
</media-controls>
|
|
482
|
+
`]}function Jr(){return m(()=>{let i=b(void 0),t=b(!1),e=y(),{title:s,started:a,currentTime:n,ended:r}=R(),{translations:o}=S(),l=wn(i),u=()=>a()||n()>0;const h=()=>{const $=r()?"Replay":u()?"Continue":"Play";return`${tt(o,$)}: ${s()}`};d(()=>{l()&&document.activeElement===document.body&&e.player.el?.focus({preventScroll:!0})});function c(){const $=i(),x=!!$&&!l()&&$.clientWidth<$.children[0].clientWidth;$&&Oe($,"vds-marquee",x),t.set(x)}function g(){return p`
|
|
483
|
+
<span class="vds-title-text">
|
|
484
|
+
${m(h)}${m(()=>u()?Oi():null)}
|
|
485
|
+
</span>
|
|
486
|
+
`}return di(i,c),s()?p`
|
|
487
|
+
<span class="vds-title" title=${m(h)} ${ue(i.set)}>
|
|
488
|
+
${[g(),m(()=>t()&&!l()?g():null)]}
|
|
489
|
+
</span>
|
|
490
|
+
`:Lt()})}function Zr(){const i="top end";return[Ai({tooltip:"top",placement:i,portal:!0}),_i({tooltip:"top end",placement:i,portal:!0})]}function Ri({name:i,class:t,state:e,paths:s,viewBox:a="0 0 32 32"}){return p`<svg
|
|
491
|
+
class="${"vds-icon"+(t?` ${t}`:"")}"
|
|
492
|
+
viewBox="${a}"
|
|
493
|
+
fill="none"
|
|
494
|
+
aria-hidden="true"
|
|
495
|
+
focusable="false"
|
|
496
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
497
|
+
data-icon=${Fe(i??e)}
|
|
498
|
+
>
|
|
499
|
+
${E(s)?Ea(s):m(s)}
|
|
500
|
+
</svg>`}class to{#t={};#e=!1;slots;constructor(t){this.slots=new Ti(t,this.#i.bind(this))}connect(){this.slots.connect()}load(){this.loadIcons().then(t=>{this.#t=t,this.#e=!0,this.#i()})}*#s(){for(const t of Object.keys(this.#t)){const e=`${t}-icon`;for(const s of this.slots.elements)s.name===e&&(yield{icon:this.#t[t],slot:s})}}#i(){if(this.#e)for(const{icon:t,slot:e}of this.#s())this.slots.assign(t,e)}}class Ni extends to{connect(){super.connect();const{player:t}=y();if(!t.el)return;let e,s=new IntersectionObserver(a=>{a[0]?.isIntersecting&&(e?.(),e=void 0,this.load())});s.observe(t.el),e=A(()=>s.disconnect())}}class Fi extends Ni{async loadIcons(){const t=(await import("./vidstack-BxJPOhv7.js")).icons,e={};for(const s of Object.keys(t))e[s]=Ri({name:s,paths:t[s]});return e}}class eo extends T(ye,Jn){static tagName="media-audio-layout";static attrs={smallWhen:{converter(t){return t!=="never"&&!!t}}};#t;#e=b(!1);onSetup(){this.forwardKeepAlive=!1,this.#t=y(),this.classList.add("vds-audio-layout"),this.#a()}onConnect(){wi("audio",()=>this.isMatch),this.#i()}render(){return m(this.#s.bind(this))}#s(){return this.isMatch?Xr():null}#i(){const{menuPortal:t}=S();d(()=>{if(!this.isMatch)return;const e=Ei(this,this.menuContainer,"vds-audio-layout",()=>this.isSmallLayout),s=e?[this,e]:[this];return(this.$props.customIcons()?new as(s):new Fi(s)).connect(),t.set(e),()=>{e.remove(),t.set(null)}})}#a(){const{pointer:t}=this.#t.$state;d(()=>{t()==="coarse"&&d(this.#n.bind(this))})}#n(){if(!this.#e()){G(this,"pointerdown",this.#r.bind(this),{capture:!0});return}G(this,"pointerdown",t=>t.stopPropagation()),G(window,"pointerdown",this.#o.bind(this))}#r(t){const{target:e}=t;Tt(e)&&e.closest(".vds-time-slider")&&(t.stopImmediatePropagation(),this.setAttribute("data-scrubbing",""),this.#e.set(!0))}#o(){this.#e.set(!1),this.removeAttribute("data-scrubbing")}}class so extends is{static props={...super.props,when:({viewType:t})=>t==="video",smallWhen:({width:t,height:e})=>t<576||e<380}}function Bi(){return m(()=>{const i=y(),{noKeyboardAnimations:t,userPrefersKeyboardAnimations:e}=S();if(M(()=>t()||!e())())return null;const a=b(!1),{lastKeyboardAction:n}=i.$state;d(()=>{a.set(!!n());const c=setTimeout(()=>a.set(!1),500);return()=>{a.set(!1),window.clearTimeout(c)}});const r=M(()=>{const c=n()?.action;return c&&a()?Nt(c):null}),o=M(()=>`vds-kb-action${a()?"":" hidden"}`),l=M(io),u=M(()=>{const c=ao();return c?$n(c):null});function h(){const c=u();return c?p`
|
|
501
|
+
<div class="vds-kb-bezel">
|
|
502
|
+
<div class="vds-kb-icon">${c}</div>
|
|
503
|
+
</div>
|
|
504
|
+
`:null}return p`
|
|
505
|
+
<div class=${m(o)} data-action=${m(r)}>
|
|
506
|
+
<div class="vds-kb-text-wrapper">
|
|
507
|
+
<div class="vds-kb-text">${m(l)}</div>
|
|
508
|
+
</div>
|
|
509
|
+
${m(()=>Aa(n(),h()))}
|
|
510
|
+
</div>
|
|
511
|
+
`})}function io(){const{$state:i}=y(),t=i.lastKeyboardAction()?.action,e=i.audioGain()??1;switch(t){case"toggleMuted":return i.muted()?"0%":Hi(i.volume(),e);case"volumeUp":case"volumeDown":return Hi(i.volume(),e);default:return""}}function Hi(i,t){return`${Math.round(i*t*100)}%`}function ao(){const{$state:i}=y();switch(i.lastKeyboardAction()?.action){case"togglePaused":return i.paused()?"kb-pause-icon":"kb-play-icon";case"toggleMuted":return i.muted()||i.volume()===0?"kb-mute-icon":i.volume()>=.5?"kb-volume-up-icon":"kb-volume-down-icon";case"toggleFullscreen":return`kb-fs-${i.fullscreen()?"enter":"exit"}-icon`;case"togglePictureInPicture":return`kb-pip-${i.pictureInPicture()?"enter":"exit"}-icon`;case"toggleCaptions":return i.hasCaptions()?`kb-cc-${i.textTrack()?"on":"off"}-icon`:null;case"volumeUp":return"kb-volume-up-icon";case"volumeDown":return"kb-volume-down-icon";case"seekForward":return"kb-seek-forward-icon";case"seekBackward":return"kb-seek-backward-icon";default:return null}}function no(){const{episodes:i,smallWhen:t}=S(),{fullscreen:e}=R(),s=b(!1);d(()=>{e()||s.set(!1)});function a(){!e()&&!t()||!i()?.length||s.set(!s())}function n(){s.set(!1)}return[ns(),Ki(),Pe(),Bi(),ls(),p`<div class="vds-scrim"></div>`,p`
|
|
512
|
+
<media-controls class="vds-controls" @vds-episodes-open=${a}>
|
|
513
|
+
${[oo(),Lt(),p`
|
|
514
|
+
<media-controls-group class="vds-controls-group">
|
|
515
|
+
${fs()}
|
|
516
|
+
</media-controls-group>
|
|
517
|
+
`,p`
|
|
518
|
+
<media-controls-group class="vds-controls-group vds-controls-group-bottom">
|
|
519
|
+
${[Bt({backward:!0,tooltip:"top"}),$e({tooltip:"top start"}),Bt({backward:!1,tooltip:"top"}),ms({orientation:"horizontal",tooltip:"top"}),Vi(),Yr(),Lt(),m(()=>(e()||t())&&i()?.length?Pi({tooltip:"top"}):null),rs({tooltip:"top"}),ro(),os(),sr(),Si({tooltip:"top end"})]}
|
|
520
|
+
</media-controls-group>
|
|
521
|
+
`]}
|
|
522
|
+
</media-controls>
|
|
523
|
+
`,Gi(s,n)]}function ro(){return m(()=>{const{menuGroup:i}=S();return i()==="bottom"?gs():null})}function oo(){return p`
|
|
524
|
+
<media-controls-group class="vds-controls-group">
|
|
525
|
+
${m(()=>{const{menuGroup:i}=S();return i()==="top"?[Lt(),gs()]:null})}
|
|
526
|
+
</media-controls-group>
|
|
527
|
+
`}function lo(){const{episodes:i,smallWhen:t}=S(),{fullscreen:e}=R(),s=b(!1);d(()=>{e()||s.set(!1)});function a(){!e()&&!t()||!i()?.length||s.set(!s())}function n(){s.set(!1)}return[ns(),Ki(),Pe(),ls(),Bi(),p`<div class="vds-scrim"></div>`,p`
|
|
528
|
+
<media-controls class="vds-controls" @vds-episodes-open=${a}>
|
|
529
|
+
<media-controls-group class="vds-controls-group">
|
|
530
|
+
${[Lt(),rs({tooltip:"bottom"}),os(),gs(),ms({orientation:"vertical",tooltip:"bottom end"})]}
|
|
531
|
+
</media-controls-group>
|
|
532
|
+
|
|
533
|
+
${Lt()}
|
|
534
|
+
|
|
535
|
+
<media-controls-group class="vds-controls-group">
|
|
536
|
+
${fs()}
|
|
537
|
+
</media-controls-group>
|
|
538
|
+
|
|
539
|
+
<media-controls-group class="vds-controls-group vds-controls-group-bottom">
|
|
540
|
+
${[Bt({backward:!0,tooltip:"top"}),$e({tooltip:"top"}),Bt({backward:!1,tooltip:"top"}),Vi(),Lt(),m(()=>(e()||t())&&i()?.length?Pi({tooltip:"top"}):null),Si({tooltip:"top end"})]}
|
|
541
|
+
</media-controls-group>
|
|
542
|
+
</media-controls>
|
|
543
|
+
`,co(),Gi(s,n)]}function uo(){return p`
|
|
544
|
+
<div class="vds-load-container">
|
|
545
|
+
${[Pe(),$e({tooltip:"top"})]}
|
|
546
|
+
</div>
|
|
547
|
+
`}function co(){return m(()=>{const{duration:i}=R();return i()===0?null:p`
|
|
548
|
+
<div class="vds-start-duration">
|
|
549
|
+
<media-time class="vds-time" type="duration"></media-time>
|
|
550
|
+
</div>
|
|
551
|
+
`})}function Pe(){return p`
|
|
552
|
+
<div class="vds-buffering-indicator">
|
|
553
|
+
<media-spinner class="vds-buffering-spinner"></media-spinner>
|
|
554
|
+
</div>
|
|
555
|
+
`}function ho(i){return i<=0?null:i<60?"<1m left":`${Math.floor(i/60)}m left`}function Gi(i,t){const{episodes:e,episodesTitle:s,smallWhen:a}=S(),{fullscreen:n,currentTime:r,duration:o}=R();return m(()=>{const l=e()??[];if(!n()&&!a()||!l.length)return null;const u=r(),h=o();return p`
|
|
556
|
+
<div
|
|
557
|
+
class="vds-episodes-backdrop"
|
|
558
|
+
data-open=${i()?"true":"false"}
|
|
559
|
+
@pointerup=${c=>{c.target===c.currentTarget&&t()}}
|
|
560
|
+
>
|
|
561
|
+
<aside
|
|
562
|
+
class="vds-episodes-panel"
|
|
563
|
+
data-open=${i()?"true":"false"}
|
|
564
|
+
@keydown=${c=>{c.key==="Escape"&&t()}}
|
|
565
|
+
>
|
|
566
|
+
<header class="vds-episodes-panel-header">
|
|
567
|
+
<h3 class="vds-episodes-panel-title">${s()}</h3>
|
|
568
|
+
<button
|
|
569
|
+
type="button"
|
|
570
|
+
class="vds-episodes-close-btn"
|
|
571
|
+
aria-label="Close episodes"
|
|
572
|
+
@pointerup=${c=>{c.stopPropagation(),t()}}
|
|
573
|
+
>
|
|
574
|
+
<span aria-hidden="true">✕</span>
|
|
575
|
+
</button>
|
|
576
|
+
</header>
|
|
577
|
+
<div class="vds-episodes-list" role="list">
|
|
578
|
+
${l.map((c,g)=>{const $=c.episodeTitle||`Episode ${c.episodeNumber??g+1}`,x=c.seasonNumber!=null&&c.episodeNumber!=null?`S${String(c.seasonNumber).padStart(2,"0")} \xB7 E${String(c.episodeNumber).padStart(2,"0")}`:$,q=c.isActive===!0;let L=null;if(q&&h>0){const H=Math.max(0,h-u);L=ho(H)}else c.timeLeft!=null&&c.timeLeft>0?L=`${c.timeLeft}m left`:Number.isFinite(c.runtime)&&(c.runtime??0)>0&&(L=`${c.runtime}m`);let j=0;q&&h>0?j=Math.min(100,u/h*100):c.progressPercent!=null&&c.progressPercent>0&&(j=Math.min(100,c.progressPercent));const bt=!!c.episodeTitle&&c.episodeTitle.trim()!==""&&c.episodeTitle!==c.title,dt=H=>{H.stopPropagation(),!q&&(H.currentTarget?.dispatchEvent(new CustomEvent("vds-episode-select",{bubbles:!0,composed:!0,detail:{episode:c,index:g}})),t())};return p`
|
|
579
|
+
<article
|
|
580
|
+
class="vds-episode-item"
|
|
581
|
+
data-active=${q?"true":"false"}
|
|
582
|
+
aria-current=${q?"true":void 0}
|
|
583
|
+
role="button"
|
|
584
|
+
tabindex="0"
|
|
585
|
+
aria-label=${c.title||$}
|
|
586
|
+
@pointerup=${dt}
|
|
587
|
+
@keydown=${H=>{(H.key==="Enter"||H.key===" ")&&dt(H)}}
|
|
588
|
+
>
|
|
589
|
+
<div class="vds-episode-thumb-wrap">
|
|
590
|
+
${c.thumbnail?p`
|
|
591
|
+
<img
|
|
592
|
+
class="vds-episode-thumb"
|
|
593
|
+
src=${c.thumbnail}
|
|
594
|
+
alt=${c.title||$}
|
|
595
|
+
loading="lazy"
|
|
596
|
+
decoding="async"
|
|
597
|
+
/>
|
|
598
|
+
`:p`<div class="vds-episode-thumb vds-episode-thumb-placeholder"></div>`}
|
|
599
|
+
${j>0?p`
|
|
600
|
+
<div class="vds-episode-progress-track" aria-hidden="true">
|
|
601
|
+
<div
|
|
602
|
+
class="vds-episode-progress-fill"
|
|
603
|
+
style=${`width: ${j}%;`}
|
|
604
|
+
></div>
|
|
605
|
+
</div>
|
|
606
|
+
`:null}
|
|
607
|
+
</div>
|
|
608
|
+
<div class="vds-episode-body">
|
|
609
|
+
<div class="vds-episode-meta-row">
|
|
610
|
+
<div class="vds-episode-meta-primary">
|
|
611
|
+
${q?p`<span class="vds-episode-now-chip">Playing</span>`:null}
|
|
612
|
+
<span class="vds-episode-label">${x}</span>
|
|
613
|
+
</div>
|
|
614
|
+
${L?p`<span class="vds-episode-runtime">${L}</span>`:null}
|
|
615
|
+
</div>
|
|
616
|
+
<h4 class="vds-episode-title" title=${c.title||""}>
|
|
617
|
+
${c.title||"-"}
|
|
618
|
+
</h4>
|
|
619
|
+
${bt?p`<p class="vds-episode-subtitle" title=${c.episodeTitle}>
|
|
620
|
+
${c.episodeTitle}
|
|
621
|
+
</p>`:null}
|
|
622
|
+
${c.overview?p`<p class="vds-episode-desc" title=${c.overview}>
|
|
623
|
+
${c.overview}
|
|
624
|
+
</p>`:null}
|
|
625
|
+
</div>
|
|
626
|
+
</article>
|
|
627
|
+
`})}
|
|
628
|
+
</div>
|
|
629
|
+
</aside>
|
|
630
|
+
</div>
|
|
631
|
+
`})}function gs(){const{menuGroup:i,smallWhen:t}=S(),e=()=>i()==="top"||t()?"bottom":"top",s=M(()=>`${e()} ${i()==="top"?"end":"center"}`),a=M(()=>`${e()} end`);return[Ai({tooltip:s,placement:a,portal:!0}),_i({tooltip:s,placement:a,portal:!0})]}function Ki(){return m(()=>{const{noGestures:i}=S();return i()?null:p`
|
|
632
|
+
<div class="vds-gestures">
|
|
633
|
+
<media-gesture class="vds-gesture" event="pointerup" action="toggle:paused"></media-gesture>
|
|
634
|
+
<media-gesture
|
|
635
|
+
class="vds-gesture"
|
|
636
|
+
event="pointerup"
|
|
637
|
+
action="toggle:controls"
|
|
638
|
+
></media-gesture>
|
|
639
|
+
<media-gesture
|
|
640
|
+
class="vds-gesture"
|
|
641
|
+
event="dblpointerup"
|
|
642
|
+
action="toggle:fullscreen"
|
|
643
|
+
></media-gesture>
|
|
644
|
+
<media-gesture class="vds-gesture" event="dblpointerup" action="seek:-10"></media-gesture>
|
|
645
|
+
<media-gesture class="vds-gesture" event="dblpointerup" action="seek:10"></media-gesture>
|
|
646
|
+
</div>
|
|
647
|
+
`})}class po extends T(ye,so){static tagName="media-video-layout";static attrs={smallWhen:{converter(t){return t!=="never"&&!!t}},episodes:{converter(t){if(!t)return null;try{const e=JSON.parse(t);return Array.isArray(e)?e:null}catch{return null}}}};#t;onSetup(){this.forwardKeepAlive=!1,this.#t=y(),this.classList.add("vds-video-layout")}onConnect(){wi("video",()=>this.isMatch),this.#e()}render(){return m(this.#s.bind(this))}#e(){const{menuPortal:t}=S();d(()=>{if(!this.isMatch)return;const e=Ei(this,this.menuContainer,"vds-video-layout",()=>this.isSmallLayout),s=e?[this,e]:[this];return(this.$props.customIcons()?new as(s):new Fi(s)).connect(),t.set(e),()=>{e.remove(),t.set(null)}})}#s(){const{load:t}=this.#t.$props,{canLoad:e,streamType:s,nativeControls:a}=this.#t.$state;return!a()&&this.isMatch?t()==="play"&&!e()?uo():s()==="unknown"?Pe():this.isSmallLayout?lo():no():null}}const Wi=ut();function N(){return O(Wi)}const mo={clickToPlay:!0,clickToFullscreen:!0,controls:["play-large","play","progress","current-time","mute+volume","captions","settings","pip","airplay","fullscreen"],customIcons:!1,displayDuration:!1,download:null,markers:null,invertTime:!0,thumbnails:null,toggleTime:!0,translations:null,seekTime:10,speed:[.5,.75,1,1.25,1.5,1.75,2,4]};class fo extends k{static props=mo;#t;onSetup(){this.#t=y(),Z(Wi,{...this.$props,previewTime:b(0)})}}function go(i,t){const{canAirPlay:e,canFullscreen:s,canPictureInPicture:a,controlsHidden:n,currentTime:r,fullscreen:o,hasCaptions:l,isAirPlayConnected:u,paused:h,pictureInPicture:c,playing:g,pointer:$,poster:x,textTrack:q,viewType:L,waiting:j}=t.$state;i.classList.add("plyr"),i.classList.add("plyr--full-ui");const bt={"plyr--airplay-active":u,"plyr--airplay-supported":e,"plyr--fullscreen-active":o,"plyr--fullscreen-enabled":s,"plyr--hide-controls":n,"plyr--is-touch":()=>$()==="coarse","plyr--loading":j,"plyr--paused":h,"plyr--pip-active":c,"plyr--pip-enabled":a,"plyr--playing":g,"plyr__poster-enabled":x,"plyr--stopped":()=>h()&&r()===0,"plyr--captions-active":q,"plyr--captions-enabled":l},dt=Ma();for(const H of Object.keys(bt))dt.add(d(()=>void i.classList.toggle(H,!!bt[H]())));return dt.add(d(()=>{const H=`plyr--${L()}`;return i.classList.add(H),()=>i.classList.remove(H)}),d(()=>{const{$provider:H}=t,St=H()?.type,xt=`plyr--${bo(St)?"html5":St}`;return i.classList.toggle(xt,!!St),()=>i.classList.remove(xt)})),()=>dt.empty()}function bo(i){return i==="audio"||i==="video"}class yo extends Ni{async loadIcons(){const t=(await import("./vidstack-Dge3KT8k.js")).icons,e={};for(const s of Object.keys(t))e[s]=Ri({name:s,paths:t[s],viewBox:"0 0 18 18"});return e}}function Ce(i,t){return i()?.[t]??t}function vo(){return ko()}function $o(){const i=y(),{load:t}=i.$props,{canLoad:e}=i.$state;return M(()=>t()==="play"&&!e())()?[Qi(),Ui()]:[wo(),To(),Ui(),So(),No(),Fo()]}function Qi(){const i=y(),{translations:t}=N(),{title:e}=i.$state,s=m(()=>`${Ce(t,"Play")}, ${e()}`);return p`
|
|
648
|
+
<media-play-button
|
|
649
|
+
class="plyr__control plyr__control--overlaid"
|
|
650
|
+
aria-label=${s}
|
|
651
|
+
data-plyr="play"
|
|
652
|
+
>
|
|
653
|
+
<slot name="play-icon"></slot>
|
|
654
|
+
</button>
|
|
655
|
+
`}function wo(){const{controls:i}=N();return m(()=>i().includes("play-large")?Qi():null)}function To(){const{thumbnails:i,previewTime:t}=N();return p`
|
|
656
|
+
<media-thumbnail
|
|
657
|
+
.src=${m(i)}
|
|
658
|
+
class="plyr__preview-scrubbing"
|
|
659
|
+
time=${m(()=>t())}
|
|
660
|
+
></media-thumbnail>
|
|
661
|
+
`}function Ui(){const i=y(),{poster:t}=i.$state,e=m(()=>`background-image: url("${t()}");`);return p`<div class="plyr__poster" style=${e}></div>`}function ko(){const i=new Set(["captions","pip","airplay","fullscreen"]),{controls:t}=N(),e=m(()=>t().filter(s=>!i.has(s)).map(zi));return p`<div class="plyr__controls">${e}</div>`}function So(){const{controls:i}=N(),t=m(()=>i().map(zi));return p`<div class="plyr__controls">${t}</div>`}function zi(i){switch(i){case"airplay":return xo();case"captions":return Po();case"current-time":return Oo();case"download":return Ro();case"duration":return ji();case"fast-forward":return qo();case"fullscreen":return Co();case"mute":case"volume":case"mute+volume":return _o(i);case"pip":return Ao();case"play":return Mo();case"progress":return Io();case"restart":return Lo();case"rewind":return Do();case"settings":return Bo();default:return null}}function xo(){const{translations:i}=N();return p`
|
|
662
|
+
<media-airplay-button class="plyr__controls__item plyr__control" data-plyr="airplay">
|
|
663
|
+
<slot name="airplay-icon"></slot>
|
|
664
|
+
<span class="plyr__tooltip">${F(i,"AirPlay")}</span>
|
|
665
|
+
</media-airplay-button>
|
|
666
|
+
`}function Po(){const{translations:i}=N(),t=F(i,"Disable captions"),e=F(i,"Enable captions");return p`
|
|
667
|
+
<media-caption-button
|
|
668
|
+
class="plyr__controls__item plyr__control"
|
|
669
|
+
data-no-label
|
|
670
|
+
data-plyr="captions"
|
|
671
|
+
>
|
|
672
|
+
<slot name="captions-on-icon" data-class="icon--pressed"></slot>
|
|
673
|
+
<slot name="captions-off-icon" data-class="icon--not-pressed"></slot>
|
|
674
|
+
<span class="label--pressed plyr__tooltip">${t}</span>
|
|
675
|
+
<span class="label--not-pressed plyr__tooltip">${e}</span>
|
|
676
|
+
</media-caption-button>
|
|
677
|
+
`}function Co(){const{translations:i}=N(),t=F(i,"Enter Fullscreen"),e=F(i,"Exit Fullscreen");return p`
|
|
678
|
+
<media-fullscreen-button
|
|
679
|
+
class="plyr__controls__item plyr__control"
|
|
680
|
+
data-no-label
|
|
681
|
+
data-plyr="fullscreen"
|
|
682
|
+
>
|
|
683
|
+
<slot name="enter-fullscreen-icon" data-class="icon--pressed"></slot>
|
|
684
|
+
<slot name="exit-fullscreen-icon" data-class="icon--not-pressed"></slot>
|
|
685
|
+
<span class="label--pressed plyr__tooltip">${e}</span>
|
|
686
|
+
<span class="label--not-pressed plyr__tooltip">${t}</span>
|
|
687
|
+
</media-fullscreen-button>
|
|
688
|
+
`}function Eo(){const{translations:i}=N(),t=F(i,"Mute"),e=F(i,"Unmute");return p`
|
|
689
|
+
<media-mute-button class="plyr__control" data-no-label data-plyr="mute">
|
|
690
|
+
<slot name="muted-icon" data-class="icon--pressed"></slot>
|
|
691
|
+
<slot name="volume-icon" data-class="icon--not-pressed"></slot>
|
|
692
|
+
<span class="label--pressed plyr__tooltip">${e}</span>
|
|
693
|
+
<span class="label--not-pressed plyr__tooltip">${t}</span>
|
|
694
|
+
</media-mute-button>
|
|
695
|
+
`}function Ao(){const{translations:i}=N(),t=F(i,"Enter PiP"),e=F(i,"Exit PiP");return p`
|
|
696
|
+
<media-pip-button class="plyr__controls__item plyr__control" data-no-label data-plyr="pip">
|
|
697
|
+
<slot name="pip-icon"></slot>
|
|
698
|
+
<slot name="enter-pip-icon" data-class="icon--pressed"></slot>
|
|
699
|
+
<slot name="exit-pip-icon" data-class="icon--not-pressed"></slot>
|
|
700
|
+
<span class="label--pressed plyr__tooltip">${e}</span>
|
|
701
|
+
<span class="label--not-pressed plyr__tooltip">${t}</span>
|
|
702
|
+
</media-pip-button>
|
|
703
|
+
`}function Mo(){const{translations:i}=N(),t=F(i,"Play"),e=F(i,"Pause");return p`
|
|
704
|
+
<media-play-button class="plyr__controls__item plyr__control" data-no-label data-plyr="play">
|
|
705
|
+
<slot name="pause-icon" data-class="icon--pressed"></slot>
|
|
706
|
+
<slot name="play-icon" data-class="icon--not-pressed"></slot>
|
|
707
|
+
<span class="label--pressed plyr__tooltip">${e}</span>
|
|
708
|
+
<span class="label--not-pressed plyr__tooltip">${t}</span>
|
|
709
|
+
</media-play-button>
|
|
710
|
+
`}function Lo(){const{translations:i}=N(),{remote:t}=y(),e=F(i,"Restart");function s(a){le(a)&&!Ut(a)||t.seek(0,a)}return p`
|
|
711
|
+
<button
|
|
712
|
+
type="button"
|
|
713
|
+
class="plyr__control"
|
|
714
|
+
data-plyr="restart"
|
|
715
|
+
@pointerup=${s}
|
|
716
|
+
@keydown=${s}
|
|
717
|
+
>
|
|
718
|
+
<slot name="restart-icon"></slot>
|
|
719
|
+
<span class="plyr__tooltip">${e}</span>
|
|
720
|
+
</button>
|
|
721
|
+
`}function Do(){const{translations:i,seekTime:t}=N(),e=m(()=>`${Ce(i,"Rewind")} ${t()}s`),s=m(()=>-1*t());return p`
|
|
722
|
+
<media-seek-button
|
|
723
|
+
class="plyr__controls__item plyr__control"
|
|
724
|
+
seconds=${s}
|
|
725
|
+
data-no-label
|
|
726
|
+
data-plyr="rewind"
|
|
727
|
+
>
|
|
728
|
+
<slot name="rewind-icon"></slot>
|
|
729
|
+
<span class="plyr__tooltip">${e}</span>
|
|
730
|
+
</media-seek-button>
|
|
731
|
+
`}function qo(){const{translations:i,seekTime:t}=N(),e=m(()=>`${Ce(i,"Forward")} ${t()}s`),s=m(t);return p`
|
|
732
|
+
<media-seek-button
|
|
733
|
+
class="plyr__controls__item plyr__control"
|
|
734
|
+
seconds=${s}
|
|
735
|
+
data-no-label
|
|
736
|
+
data-plyr="fast-forward"
|
|
737
|
+
>
|
|
738
|
+
<slot name="fast-forward-icon"></slot>
|
|
739
|
+
<span class="plyr__tooltip">${e}</span>
|
|
740
|
+
</media-seek-button>
|
|
741
|
+
`}function Io(){let i=y(),{duration:t,viewType:e}=i.$state,{translations:s,markers:a,thumbnails:n,seekTime:r,previewTime:o}=N(),l=F(s,"Seek"),u=b(null),h=m(()=>{const L=u();return L?p`<span class="plyr__progress__marker-label">${Ns(L.label)}<br /></span>`:null});function c(L){o.set(L.detail)}function g(){u.set(this)}function $(){u.set(null)}function x(){const L=n(),j=m(()=>e()==="audio");return L?p`
|
|
742
|
+
<media-slider-preview class="plyr__slider__preview" ?no-clamp=${j}>
|
|
743
|
+
<media-slider-thumbnail .src=${L} class="plyr__slider__preview__thumbnail">
|
|
744
|
+
<span class="plyr__slider__preview__time-container">
|
|
745
|
+
${h}
|
|
746
|
+
<media-slider-value class="plyr__slider__preview__time"></media-slider-value>
|
|
747
|
+
</span>
|
|
748
|
+
</media-slider-thumbnail>
|
|
749
|
+
</media-slider-preview>
|
|
750
|
+
`:p`
|
|
751
|
+
<span class="plyr__tooltip">
|
|
752
|
+
${h}
|
|
753
|
+
<media-slider-value></media-slider-value>
|
|
754
|
+
</span>
|
|
755
|
+
`}function q(){const L=t();return Number.isFinite(L)?a()?.map(j=>p`
|
|
756
|
+
<span
|
|
757
|
+
class="plyr__progress__marker"
|
|
758
|
+
@mouseenter=${g.bind(j)}
|
|
759
|
+
@mouseleave=${$}
|
|
760
|
+
style=${`left: ${j.time/L*100}%;`}
|
|
761
|
+
></span>
|
|
762
|
+
`):null}return p`
|
|
763
|
+
<div class="plyr__controls__item plyr__progress__container">
|
|
764
|
+
<div class="plyr__progress">
|
|
765
|
+
<media-time-slider
|
|
766
|
+
class="plyr__slider"
|
|
767
|
+
data-plyr="seek"
|
|
768
|
+
pause-while-dragging
|
|
769
|
+
key-step=${m(r)}
|
|
770
|
+
aria-label=${l}
|
|
771
|
+
@media-seeking-request=${c}
|
|
772
|
+
>
|
|
773
|
+
<div class="plyr__slider__track"></div>
|
|
774
|
+
<div class="plyr__slider__thumb"></div>
|
|
775
|
+
<div class="plyr__slider__buffer"></div>
|
|
776
|
+
${m(x)}${m(q)}
|
|
777
|
+
</media-time-slider>
|
|
778
|
+
</div>
|
|
779
|
+
</div>
|
|
780
|
+
`}function _o(i){return m(()=>{const t=i==="mute"||i==="mute+volume",e=i==="volume"||i==="mute+volume";return p`
|
|
781
|
+
<div class="plyr__controls__item plyr__volume">
|
|
782
|
+
${[t?Eo():null,e?Vo():null]}
|
|
783
|
+
</div>
|
|
784
|
+
`})}function Vo(){const{translations:i}=N(),t=F(i,"Volume");return p`
|
|
785
|
+
<media-volume-slider class="plyr__slider" data-plyr="volume" aria-label=${t}>
|
|
786
|
+
<div class="plyr__slider__track"></div>
|
|
787
|
+
<div class="plyr__slider__thumb"></div>
|
|
788
|
+
</media-volume-slider>
|
|
789
|
+
`}function Oo(){const i=y(),{translations:t,invertTime:e,toggleTime:s,displayDuration:a}=N(),n=b(f(e));function r(l){!s()||a()||le(l)&&!Ut(l)||n.set(u=>!u)}function o(){return m(()=>a()?ji():null)}return m(()=>{const{streamType:l}=i.$state,u=F(t,"LIVE"),h=F(t,"Current time"),c=m(()=>!a()&&n());return l()==="live"||l()==="ll-live"?p`
|
|
790
|
+
<media-live-button
|
|
791
|
+
class="plyr__controls__item plyr__control plyr__live-button"
|
|
792
|
+
data-plyr="live"
|
|
793
|
+
>
|
|
794
|
+
<span class="plyr__live-button__text">${u}</span>
|
|
795
|
+
</media-live-button>
|
|
796
|
+
`:p`
|
|
797
|
+
<media-time
|
|
798
|
+
type="current"
|
|
799
|
+
class="plyr__controls__item plyr__time plyr__time--current"
|
|
800
|
+
tabindex="0"
|
|
801
|
+
role="timer"
|
|
802
|
+
aria-label=${h}
|
|
803
|
+
?remainder=${c}
|
|
804
|
+
@pointerup=${r}
|
|
805
|
+
@keydown=${r}
|
|
806
|
+
></media-time>
|
|
807
|
+
${o()}
|
|
808
|
+
`})}function ji(){const{translations:i}=N(),t=F(i,"Duration");return p`
|
|
809
|
+
<media-time
|
|
810
|
+
type="duration"
|
|
811
|
+
class="plyr__controls__item plyr__time plyr__time--duration"
|
|
812
|
+
role="timer"
|
|
813
|
+
tabindex="0"
|
|
814
|
+
aria-label=${t}
|
|
815
|
+
></media-time>
|
|
816
|
+
`}function Ro(){return m(()=>{const i=y(),{translations:t,download:e}=N(),{title:s,source:a}=i.$state,n=a(),r=e(),o=Ws({title:s(),src:n,download:r}),l=F(t,"Download");return E(o?.url)?p`
|
|
817
|
+
<a
|
|
818
|
+
class="plyr__controls__item plyr__control"
|
|
819
|
+
href=${Qs(o.url,{download:o.name})}
|
|
820
|
+
download=${o.name}
|
|
821
|
+
target="_blank"
|
|
822
|
+
>
|
|
823
|
+
<slot name="download-icon" />
|
|
824
|
+
<span class="plyr__tooltip">${l}</span>
|
|
825
|
+
</a>
|
|
826
|
+
`:null})}function No(){return m(()=>{const{clickToPlay:i,clickToFullscreen:t}=N();return[i()?p`
|
|
827
|
+
<media-gesture
|
|
828
|
+
class="plyr__gesture"
|
|
829
|
+
event="pointerup"
|
|
830
|
+
action="toggle:paused"
|
|
831
|
+
></media-gesture>
|
|
832
|
+
`:null,t()?p`
|
|
833
|
+
<media-gesture
|
|
834
|
+
class="plyr__gesture"
|
|
835
|
+
event="dblpointerup"
|
|
836
|
+
action="toggle:fullscreen"
|
|
837
|
+
></media-gesture>
|
|
838
|
+
`:null]})}function Fo(){const i=y(),t=b(void 0),e=m(()=>Ns(t()?.text));return d(()=>{const s=i.$state.textTrack();if(!s)return;function a(){t.set(s?.activeCues[0])}return a(),G(s,"cue-change",a)}),p`
|
|
839
|
+
<div class="plyr__captions" dir="auto">
|
|
840
|
+
<span class="plyr__caption">${e}</span>
|
|
841
|
+
</div>
|
|
842
|
+
`}function Bo(){const{translations:i}=N(),t=F(i,"Settings");return p`
|
|
843
|
+
<div class="plyr__controls__item plyr__menu">
|
|
844
|
+
<media-menu>
|
|
845
|
+
<media-menu-button class="plyr__control" data-plyr="settings">
|
|
846
|
+
<slot name="settings-icon" />
|
|
847
|
+
<span class="plyr__tooltip">${t}</span>
|
|
848
|
+
</media-menu-button>
|
|
849
|
+
<media-menu-items class="plyr__menu__container" placement="top end">
|
|
850
|
+
<div><div>${[Go(),Uo(),jo(),Wo()]}</div></div>
|
|
851
|
+
</media-menu-items>
|
|
852
|
+
</media-menu>
|
|
853
|
+
</div>
|
|
854
|
+
`}function Ee({label:i,children:t}){const e=b(!1);return p`
|
|
855
|
+
<media-menu @open=${()=>e.set(!0)} @close=${()=>e.set(!1)}>
|
|
856
|
+
${Ho({label:i,open:e})}
|
|
857
|
+
<media-menu-items>${t}</media-menu-items>
|
|
858
|
+
</media-menu>
|
|
859
|
+
`}function Ho({open:i,label:t}){const{translations:e}=N(),s=m(()=>`plyr__control plyr__control--${i()?"back":"forward"}`);function a(){const n=F(e,"Go back to previous menu");return m(()=>i()?p`<span class="plyr__sr-only">${n}</span>`:null)}return p`
|
|
860
|
+
<media-menu-button class=${s} data-plyr="settings">
|
|
861
|
+
<span class="plyr__menu__label" aria-hidden=${Xo(i)}>
|
|
862
|
+
${F(e,t)}
|
|
863
|
+
</span>
|
|
864
|
+
<span class="plyr__menu__value" data-part="hint"></span>
|
|
865
|
+
${a()}
|
|
866
|
+
</media-menu-button>
|
|
867
|
+
`}function Go(){return Ee({label:"Audio",children:Ko()})}function Ko(){const{translations:i}=N();return p`
|
|
868
|
+
<media-audio-radio-group empty-label=${F(i,"Default")}>
|
|
869
|
+
<template>
|
|
870
|
+
<media-radio class="plyr__control" data-plyr="audio">
|
|
871
|
+
<span data-part="label"></span>
|
|
872
|
+
</media-radio>
|
|
873
|
+
</template>
|
|
874
|
+
</media-audio-radio-group>
|
|
875
|
+
`}function Wo(){return Ee({label:"Speed",children:Qo()})}function Qo(){const{translations:i,speed:t}=N();return p`
|
|
876
|
+
<media-speed-radio-group .rates=${t} normal-label=${F(i,"Normal")}>
|
|
877
|
+
<template>
|
|
878
|
+
<media-radio class="plyr__control" data-plyr="speed">
|
|
879
|
+
<span data-part="label"></span>
|
|
880
|
+
</media-radio>
|
|
881
|
+
</template>
|
|
882
|
+
</media-speed-radio-group>
|
|
883
|
+
`}function Uo(){return Ee({label:"Captions",children:zo()})}function zo(){const{translations:i}=N();return p`
|
|
884
|
+
<media-captions-radio-group off-label=${F(i,"Disabled")}>
|
|
885
|
+
<template>
|
|
886
|
+
<media-radio class="plyr__control" data-plyr="captions">
|
|
887
|
+
<span data-part="label"></span>
|
|
888
|
+
</media-radio>
|
|
889
|
+
</template>
|
|
890
|
+
</media-captions-radio-group>
|
|
891
|
+
`}function jo(){return Ee({label:"Quality",children:Yo()})}function Yo(){const{translations:i}=N();return p`
|
|
892
|
+
<media-quality-radio-group auto-label=${F(i,"Auto")}>
|
|
893
|
+
<template>
|
|
894
|
+
<media-radio class="plyr__control" data-plyr="quality">
|
|
895
|
+
<span data-part="label"></span>
|
|
896
|
+
</media-radio>
|
|
897
|
+
</template>
|
|
898
|
+
</media-quality-radio-group>
|
|
899
|
+
`}function Xo(i){return m(()=>i()?"true":"false")}function F(i,t){return m(()=>Ce(i,t))}class Jo extends T(ye,fo){static tagName="media-plyr-layout";#t;onSetup(){this.forwardKeepAlive=!1,this.#t=y()}onConnect(){this.#t.player.el?.setAttribute("data-layout","plyr"),A(()=>this.#t.player.el?.removeAttribute("data-layout")),go(this,this.#t),d(()=>{this.$props.customIcons()?new as([this]).connect():new yo([this]).connect()})}render(){return m(this.#e.bind(this))}#e(){const{viewType:t}=this.#t.$state;return t()==="audio"?vo():t()==="video"?$o():null}}w(eo),w(po),w(Jo);function bs(i,t){const e=String(i),s=e.length;if(s<t){const n=t-s;return`${"0".repeat(n)}${i}`}return e}function Yi(i){const t=Math.trunc(i/3600),e=Math.trunc(i%3600/60),s=Math.trunc(i%60),a=Number((i-Math.trunc(i)).toPrecision(3));return{hours:t,minutes:e,seconds:s,fraction:a}}function Ae(i,{padHrs:t=null,padMins:e=null,showHrs:s=!1,showMs:a=!1}={}){const{hours:n,minutes:r,seconds:o,fraction:l}=Yi(i),u=t?bs(n,2):n,h=e||Et(e)&&i>=3600?bs(r,2):r,c=bs(o,2),g=a&&l>0?`.${String(l).replace(/^0?\./,"")}`:"",$=`${h}:${c}${g}`;return n>0||s?`${u}:${$}`:$}function Me(i){const t=[],{hours:e,minutes:s,seconds:a}=Yi(i);return e>0&&t.push(`${e} hour`),s>0&&t.push(`${s} min`),(a>0||t.length===0)&&t.push(`${a} sec`),t.join(" ")}class Zo extends k{static props={translations:null};static state=new yt({label:null,busy:!1});#t;#e=!1;onSetup(){this.#t=y()}onAttach(t){t.style.display="contents"}onConnect(t){t.setAttribute("data-media-announcer",""),I(t,"role","status"),I(t,"aria-live","polite");const{busy:e}=this.$state;this.setAttributes({"aria-busy":()=>e()?"true":null}),this.#e=!0,d(this.#s.bind(this)),d(this.#r.bind(this)),d(this.#n.bind(this)),d(this.#i.bind(this)),d(this.#a.bind(this)),d(this.#u.bind(this)),d(this.#h.bind(this)),ct(),this.#e=!1}#s(){const{paused:t}=this.#t.$state;this.#d(t()?"Pause":"Play")}#i(){const{fullscreen:t}=this.#t.$state;this.#d(t()?"Enter Fullscreen":"Exit Fullscreen")}#a(){const{pictureInPicture:t}=this.#t.$state;this.#d(t()?"Enter PiP":"Exit PiP")}#n(){const{textTrack:t}=this.#t.$state;this.#d(t()?"Closed-Captions On":"Closed-Captions Off")}#r(){const{muted:t,volume:e,audioGain:s}=this.#t.$state;this.#d(t()||e()===0?"Mute":`${Math.round(e()*(s()??1)*100)}% ${this.#c("Volume")}`)}#o=-1;#l=-1;#u(){const{seeking:t,currentTime:e}=this.#t.$state,s=t();this.#o>0?(window.clearTimeout(this.#l),this.#l=window.setTimeout(()=>{if(!this.scope)return;const a=f(e),n=Math.abs(a-this.#o);if(n>=1){const r=a>=this.#o,o=Me(n);this.#d(`${this.#c(r?"Seek Forward":"Seek Backward")} ${o}`)}this.#o=-1,this.#l=-1},300)):s&&(this.#o=f(e))}#c(t){const{translations:e}=this.$props;return e?.()?.[t||""]??t}#h(){const{label:t,busy:e}=this.$state,s=this.#c(t());if(this.#e)return;e.set(!0);const a=window.setTimeout(()=>void e.set(!1),150);return this.el&&v(this.el,"aria-label",s),E(s)&&this.dispatch("change",{detail:s}),()=>window.clearTimeout(a)}#d(t){const{label:e}=this.$state;e.set(t)}}class tl extends T(HTMLElement,Zo){static tagName="media-announcer"}class el extends rt{#t;constructor(t){super(),this.#t=t}onAttach(t){const{$props:e,ariaKeys:s}=y(),a=t.getAttribute("aria-keyshortcuts");if(a){s[this.#t]=a,A(()=>{delete s[this.#t]});return}const n=e.keyShortcuts()[this.#t];if(n){const r=K(n)?n.join(" "):E(n)?n:n?.keys;t.setAttribute("aria-keyshortcuts",K(r)?r.join(" "):r)}}}class J extends rt{static props={disabled:!1};#t;constructor(t){super(),this.#t=t,new lt,t.keyShortcut&&new el(t.keyShortcut)}onSetup(){const{disabled:t}=this.$props;this.setAttributes({"data-pressed":this.#t.isPresssed,"aria-pressed":this.#e.bind(this),"aria-disabled":()=>t()?"true":null})}onAttach(t){I(t,"tabindex","0"),I(t,"role","button"),I(t,"type","button")}onConnect(t){const e=wt(t,this.#i.bind(this));for(const s of["click","touchstart"])e.add(s,this.#a.bind(this),{passive:!0})}#e(){return he(this.#t.isPresssed())}#s(t){La(this.#t.isPresssed)&&this.#t.isPresssed.set(e=>!e)}#i(t){if(this.$props.disabled()||this.el.hasAttribute("data-disabled")){t.preventDefault(),t.stopImmediatePropagation();return}t.preventDefault(),(this.#t.onPress??this.#s).call(this,t)}#a(t){this.$props.disabled()&&(t.preventDefault(),t.stopImmediatePropagation())}}class sl extends k{static props=J.props;#t;constructor(){super(),new J({isPresssed:this.#s.bind(this),onPress:this.#e.bind(this)})}onSetup(){this.#t=y();const{canAirPlay:t,isAirPlayConnected:e}=this.#t.$state;this.setAttributes({"data-active":e,"data-supported":t,"data-state":this.#i.bind(this),"aria-hidden":U(()=>!t())})}onAttach(t){t.setAttribute("data-media-tooltip","airplay"),$t(t,this.#a.bind(this))}#e(t){this.#t.remote.requestAirPlay(t)}#s(){const{remotePlaybackType:t,remotePlaybackState:e}=this.#t.$state;return t()==="airplay"&&e()!=="disconnected"}#i(){const{remotePlaybackType:t,remotePlaybackState:e}=this.#t.$state;return t()==="airplay"&&e()}#a(){const{remotePlaybackState:t}=this.#t.$state;return`AirPlay ${t()}`}}class il extends T(HTMLElement,sl){static tagName="media-airplay-button"}class al extends k{static props=J.props;#t;constructor(){super(),new J({isPresssed:this.#s.bind(this),keyShortcut:"toggleCaptions",onPress:this.#e.bind(this)})}onSetup(){this.#t=y(),this.setAttributes({"data-active":this.#s.bind(this),"data-supported":()=>!this.#i(),"aria-hidden":U(this.#i.bind(this))})}onAttach(t){t.setAttribute("data-media-tooltip","caption"),$t(t,"Captions")}#e(t){this.#t.remote.toggleCaptions(t)}#s(){const{textTrack:t}=this.#t.$state,e=t();return!!e&&Y(e)}#i(){const{hasCaptions:t}=this.#t.$state;return!t()}}class nl extends T(HTMLElement,al){static tagName="media-caption-button"}class rl extends k{static props={...J.props,target:"prefer-media"};#t;constructor(){super(),new J({isPresssed:this.#s.bind(this),keyShortcut:"toggleFullscreen",onPress:this.#e.bind(this)})}onSetup(){this.#t=y();const{fullscreen:t}=this.#t.$state,e=this.#i.bind(this);this.setAttributes({"data-active":t,"data-supported":e,"aria-hidden":U(()=>!e())})}onAttach(t){t.setAttribute("data-media-tooltip","fullscreen"),$t(t,"Fullscreen")}#e(t){const e=this.#t.remote,s=this.$props.target();this.#s()?e.exitFullscreen(s,t):e.enterFullscreen(s,t)}#s(){const{fullscreen:t}=this.#t.$state;return t()}#i(){const{canFullscreen:t}=this.#t.$state;return t()}}class ol extends T(HTMLElement,rl){static tagName="media-fullscreen-button"}class ll extends k{static props=J.props;#t;constructor(){super(),new J({isPresssed:this.#s.bind(this),onPress:this.#e.bind(this)})}onSetup(){this.#t=y();const{canGoogleCast:t,isGoogleCastConnected:e}=this.#t.$state;this.setAttributes({"data-active":e,"data-supported":t,"data-state":this.#i.bind(this),"aria-hidden":U(()=>!t())})}onAttach(t){t.setAttribute("data-media-tooltip","google-cast"),$t(t,this.#a.bind(this))}#e(t){this.#t.remote.requestGoogleCast(t)}#s(){const{remotePlaybackType:t,remotePlaybackState:e}=this.#t.$state;return t()==="google-cast"&&e()!=="disconnected"}#i(){const{remotePlaybackType:t,remotePlaybackState:e}=this.#t.$state;return t()==="google-cast"&&e()}#a(){const{remotePlaybackState:t}=this.#t.$state;return`Google Cast ${t()}`}}class dl extends T(HTMLElement,ll){static tagName="media-google-cast-button"}class ul extends k{static props={disabled:!1};#t;constructor(){super(),new lt}onSetup(){this.#t=y();const{disabled:t}=this.$props,{live:e,liveEdge:s}=this.#t.$state,a=()=>!e();this.setAttributes({"data-edge":s,"data-hidden":a,"aria-disabled":U(()=>t()||s()),"aria-hidden":U(a)})}onAttach(t){I(t,"tabindex","0"),I(t,"role","button"),I(t,"type","button"),t.setAttribute("data-media-tooltip","live")}onConnect(t){wt(t,this.#e.bind(this))}#e(t){const{disabled:e}=this.$props,{liveEdge:s}=this.#t.$state;e()||s()||this.#t.remote.seekToLiveEdge(t)}}class cl extends T(HTMLElement,ul){static tagName="media-live-button"}class hl extends k{static props=J.props;#t;constructor(){super(),new J({isPresssed:this.#s.bind(this),keyShortcut:"toggleMuted",onPress:this.#e.bind(this)})}onSetup(){this.#t=y(),this.setAttributes({"data-muted":this.#s.bind(this),"data-state":this.#i.bind(this)})}onAttach(t){t.setAttribute("data-media-mute-button",""),t.setAttribute("data-media-tooltip","mute"),$t(t,"Mute")}#e(t){const e=this.#t.remote;this.#s()?e.unmute(t):e.mute(t)}#s(){const{muted:t,volume:e}=this.#t.$state;return t()||e()===0}#i(){const{muted:t,volume:e}=this.#t.$state,s=e();if(t()||s===0)return"muted";if(s>=.5)return"high";if(s<.5)return"low"}}class pl extends T(HTMLElement,hl){static tagName="media-mute-button"}class ml extends k{static props=J.props;#t;constructor(){super(),new J({isPresssed:this.#s.bind(this),keyShortcut:"togglePictureInPicture",onPress:this.#e.bind(this)})}onSetup(){this.#t=y();const{pictureInPicture:t}=this.#t.$state,e=this.#i.bind(this);this.setAttributes({"data-active":t,"data-supported":e,"aria-hidden":U(()=>!e())})}onAttach(t){t.setAttribute("data-media-tooltip","pip"),$t(t,"PiP")}#e(t){const e=this.#t.remote;this.#s()?e.exitPictureInPicture(t):e.enterPictureInPicture(t)}#s(){const{pictureInPicture:t}=this.#t.$state;return t()}#i(){const{canPictureInPicture:t}=this.#t.$state;return t()}}class fl extends T(HTMLElement,ml){static tagName="media-pip-button"}class gl extends k{static props=J.props;#t;constructor(){super(),new J({isPresssed:this.#s.bind(this),keyShortcut:"togglePaused",onPress:this.#e.bind(this)})}onSetup(){this.#t=y();const{paused:t,ended:e}=this.#t.$state;this.setAttributes({"data-paused":t,"data-ended":e})}onAttach(t){t.setAttribute("data-media-tooltip","play"),$t(t,"Play")}#e(t){const e=this.#t.remote;this.#s()?e.pause(t):e.play(t)}#s(){const{paused:t}=this.#t.$state;return!t()}}class bl extends T(HTMLElement,gl){static tagName="media-play-button"}class yl extends k{static props={disabled:!1,seconds:30};#t;constructor(){super(),new lt}onSetup(){this.#t=y();const{seeking:t}=this.#t.$state,{seconds:e}=this.$props,s=this.#e.bind(this);this.setAttributes({seconds:e,"data-seeking":t,"data-supported":s,"aria-hidden":U(()=>!s())})}onAttach(t){I(t,"tabindex","0"),I(t,"role","button"),I(t,"type","button"),t.setAttribute("data-media-tooltip","seek"),$t(t,this.#s.bind(this))}onConnect(t){wt(t,this.#i.bind(this))}#e(){const{canSeek:t}=this.#t.$state;return t()}#s(){const{seconds:t}=this.$props;return`Seek ${t()>0?"forward":"backward"} ${t()} seconds`}#i(t){const{seconds:e,disabled:s}=this.$props;if(s())return;const{currentTime:a}=this.#t.$state,n=a()+e();this.#t.remote.seek(n,t)}}class vl extends T(HTMLElement,yl){static tagName="media-seek-button"}class Xi extends k{static props={disabled:!1,defaultPressed:!1};#t=b(!1);get pressed(){return this.#t()}constructor(){super(),new J({isPresssed:this.#t})}}const $l=Xi.prototype;C($l,"pressed");class wl extends T(HTMLElement,Xi){static tagName="media-toggle-button"}class Tl{priority=10;#t=null;#e;#s;constructor(t){this.#e=t}attach(){}canRender(){return!0}detach(){this.#s?.abort(),this.#s=void 0,this.#e.reset(),this.#t=null}changeTrack(t){!t||this.#t===t||(this.#s?.abort(),this.#s=new _(t),t.readyState<2?(this.#e.reset(),this.#s.add("load",()=>this.#i(t),{once:!0})):this.#i(t),this.#s.add("add-cue",e=>{this.#e.addCue(e.detail)}).add("remove-cue",e=>{this.#e.removeCue(e.detail)}),this.#t=t)}#i(t){this.#e.changeTrack({cues:[...t.cues],regions:[...t.regions]})}}class kt extends k{static props={textDir:"ltr",exampleText:"Captions look like this."};#t;static lib=b(null);onSetup(){this.#t=y(),this.setAttributes({"aria-hidden":U(this.#e.bind(this))})}onAttach(t){t.style.setProperty("pointer-events","none")}onConnect(t){kt.lib()||import("https://cdn.jsdelivr.net/npm/media-captions@next/dist/prod.js").then(e=>kt.lib.set(e)),d(this.#s.bind(this))}#e(){const{textTrack:t,remotePlaybackState:e,iOSControls:s}=this.#t.$state,a=t();return s()||e()==="connected"||!a||!Y(a)}#s(){if(!kt.lib())return;const{viewType:t}=this.#t.$state;return t()==="audio"?this.#i():this.#o()}#i(){return d(this.#a.bind(this)),this.#c(null),()=>{this.el.textContent=""}}#a(){if(this.#e())return;this.#n();const{textTrack:t}=this.#t.$state;G(t(),"cue-change",this.#n.bind(this)),d(this.#r.bind(this))}#n(){this.el.textContent="",this.#p>=0&&this.#b();const{realCurrentTime:t,textTrack:e}=this.#t.$state,{renderVTTCueString:s}=kt.lib(),a=f(t),n=f(e).activeCues;for(const r of n){const o=this.#g(),l=this.#y();l.innerHTML=s(r,a),o.append(l),this.el.append(l)}}#r(){const{realCurrentTime:t}=this.#t.$state,{updateTimedVTTCueNodes:e}=kt.lib();e(this.el,t())}#o(){const{CaptionsRenderer:t}=kt.lib(),e=new t(this.el),s=new Tl(e);return this.#t.textRenderers.add(s),d(this.#l.bind(this,e)),d(this.#u.bind(this,e)),this.#c(e),()=>{this.el.textContent="",this.#t.textRenderers.remove(s),e.destroy()}}#l(t){t.dir=this.$props.textDir()}#u(t){if(this.#e())return;const{realCurrentTime:e,textTrack:s}=this.#t.$state;t.currentTime=e(),this.#p>=0&&s()?.activeCues[0]&&this.#b()}#c(t){const e=this.#t.player;if(!e)return;const s=this.#h.bind(this,t);G(e,"vds-font-change",s)}#h(t){if(this.#p>=0){this.#m();return}const{textTrack:e}=this.#t.$state;e()?.activeCues[0]?t?.update(!0):this.#d()}#d(){const t=this.#g();v(t,"data-example","");const e=this.#y();v(e,"data-example",""),e.textContent=this.$props.exampleText(),t?.append(e),this.el?.append(t),this.el?.setAttribute("data-example",""),this.#m()}#p=-1;#m(){window.clearTimeout(this.#p),this.#p=window.setTimeout(this.#b.bind(this),2500)}#b(){this.el?.removeAttribute("data-example"),this.el?.querySelector("[data-example]")&&(this.el.textContent=""),this.#p=-1}#g(){const t=document.createElement("div");return v(t,"data-part","cue-display"),t}#y(){const t=document.createElement("div");return v(t,"data-part","cue"),t}}class kl extends T(HTMLElement,kt){static tagName="media-captions"}class Sl extends k{static props={defaultText:""}}class xl extends T(HTMLElement,Sl){static tagName="media-chapter-title";#t;#e;onSetup(){this.#t=y(),this.#e=b("")}onConnect(){const t=this.#t.textTracks;ja(t,"chapters",this.#e.set),d(this.#s.bind(this))}#s(){const{defaultText:t}=this.$props;this.textContent=this.#e()||t()}}class Pl extends k{static props={hideDelay:2e3,hideOnMouseLeave:!1};#t;onSetup(){this.#t=y(),d(this.#s.bind(this))}onAttach(t){const{pictureInPicture:e,fullscreen:s}=this.#t.$state;it(t,"pointer-events","none"),I(t,"role","group"),this.setAttributes({"data-visible":this.#i.bind(this),"data-fullscreen":s,"data-pip":e}),d(()=>{this.dispatch("change",{detail:this.#i()})}),d(this.#e.bind(this)),d(()=>{const a=s();for(const n of["top","right","bottom","left"])it(t,`padding-${n}`,a&&`env(safe-area-inset-${n})`)})}#e(){if(!this.el)return;const{nativeControls:t}=this.#t.$state,e=t();v(this.el,"aria-hidden",e?"true":null),it(this.el,"display",e?"none":null)}#s(){const{controls:t}=this.#t.player,{hideDelay:e,hideOnMouseLeave:s}=this.$props;t.defaultDelay=e()===2e3?this.#t.$props.controlsDelay():e(),t.hideOnMouseLeave=s()}#i(){const{controlsVisible:t}=this.#t.$state;return t()}}class Cl extends T(HTMLElement,Pl){static tagName="media-controls"}class El extends k{onAttach(t){t.style.pointerEvents||it(t,"pointer-events","auto")}}class Al extends T(HTMLElement,El){static tagName="media-controls-group"}class Ml extends k{static props={disabled:!1,event:void 0,action:void 0};#t;#e=null;onSetup(){this.#t=y();const{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.#e=this.#t.player.el?.querySelector("[data-media-provider]"),d(this.#s.bind(this))}#s(){let t=this.$props.event(),e=this.$props.disabled();!this.#e||!t||e||(/^dbl/.test(t)&&(t=t.split(/^dbl/)[1]),(t==="pointerup"||t==="pointerdown")&&this.#t.$state.pointer()==="coarse"&&(t=t==="pointerup"?"touchend":"touchstart"),G(this.#e,t,this.#n.bind(this),{passive:!1}))}#i=0;#a=-1;#n(t){if(this.$props.disabled()||Fs(t)&&(t.button!==0||this.#t.activeMenu)||oe(t)&&this.#t.activeMenu||je(t)||!this.#o(t))return;if(t.MEDIA_GESTURE=!0,t.preventDefault(),!f(this.$props.event)?.startsWith("dbl"))this.#i===0&&setTimeout(()=>{this.#i===1&&this.#r(t)},250);else if(this.#i===1){queueMicrotask(()=>this.#r(t)),clearTimeout(this.#a),this.#i=0;return}this.#i===0&&(this.#a=window.setTimeout(()=>{this.#i=0},275)),this.#i++}#r(t){this.el.setAttribute("data-triggered",""),requestAnimationFrame(()=>{this.#l()&&this.#u(f(this.$props.action),t),requestAnimationFrame(()=>{this.el.removeAttribute("data-triggered")})})}#o(t){if(!this.el)return!1;if(Fs(t)||Da(t)||oe(t)){const e=oe(t)?t.changedTouches[0]??t.touches[0]:void 0,s=e?.clientX??t.clientX,a=e?.clientY??t.clientY,n=this.el.getBoundingClientRect(),r=a>=n.top&&a<=n.bottom&&s>=n.left&&s<=n.right;return t.type.includes("leave")?!r:r}return!0}#l(){const t=this.#t.player.el.querySelectorAll("[data-media-gesture][data-triggered]");return Array.from(t).sort((e,s)=>+getComputedStyle(s).zIndex-+getComputedStyle(e).zIndex)[0]===this.el}#u(t,e){if(!t)return;const s=new z("will-trigger",{detail:t,cancelable:!0,trigger:e});if(this.dispatchEvent(s),s.defaultPrevented)return;const[a,n]=t.replace(/:([a-z])/,"-$1").split(":");t.includes(":fullscreen")?this.#t.remote.toggleFullscreen("prefer-media",e):t.includes("seek:")?this.#t.remote.seek(f(this.#t.$state.currentTime)+(+n||0),e):this.#t.remote[qa(a)](e),this.dispatch("trigger",{detail:t,trigger:e})}}class Ll extends T(HTMLElement,Ml){static tagName="media-gesture"}class Dl extends k{static props={when:!1}}class ql extends T(HTMLElement,Dl){static tagName="media-layout";#t;onSetup(){this.#t=y()}onConnect(){d(this.#e.bind(this))}#e(){const t=this.firstElementChild,e=t?.localName==="template",s=this.$props.when();if(!(Os(s)?s:M(()=>s(this.#t.player.state))())){e?(this.textContent="",this.appendChild(t)):Tt(t)&&(t.style.display="none");return}e?this.append(t.content.cloneNode(!0)):Tt(t)&&(t.style.display="")}}const Q=ut(),ys=ut();class It extends rt{#t=new Set;#e=b("");#s=null;onValueChange;get values(){return Array.from(this.#t).map(t=>t.value())}get value(){return this.#e()}set value(t){this.#r(t)}onSetup(){Z(ys,{add:this.#i.bind(this),remove:this.#a.bind(this)})}onAttach(t){et(Q)||I(t,"role","radiogroup"),this.setAttributes({value:this.#e})}onDestroy(){this.#t.clear()}#i(t){this.#t.has(t)||(this.#t.add(t),t.onCheck=this.#n,t.check(t.value()===this.#e()))}#a(t){t.onCheck=null,this.#t.delete(t)}#n=this.#r.bind(this);#r(t,e){const s=f(this.#e);if(!t||t===s)return;const a=this.#o(s),n=this.#o(t);a?.check(!1,e),n?.check(!0,e),this.#e.set(t),this.onValueChange?.(t,e)}#o(t){for(const e of this.#t)if(t===f(e.value))return e;return null}}const Il=[1,1.25,1.5,1.75,2,2.5,3,4];class Ji extends k{static props={normalLabel:"Disabled",gains:Il};#t;#e;#s;get value(){return this.#s.value}get disabled(){const{gains:t}=this.$props,{canSetAudioGain:e}=this.#t.$state;return!e()||t().length===0}constructor(){super(),this.#s=new It,this.#s.onValueChange=this.#o.bind(this)}onSetup(){this.#t=y(),et(Q)&&(this.#e=O(Q))}onConnect(t){d(this.#i.bind(this)),d(this.#a.bind(this)),d(this.#n.bind(this))}getOptions(){const{gains:t,normalLabel:e}=this.$props;return t().map(s=>({label:s===1||s===null?e:String(s*100)+"%",value:s.toString()}))}#i(){this.#s.value=this.#r()}#a(){const{normalLabel:t}=this.$props,{audioGain:e}=this.#t.$state,s=e();this.#e?.hint.set(s===1||s==null?t():String(s*100)+"%")}#n(){this.#e?.disable(this.disabled)}#r(){const{audioGain:t}=this.#t.$state;return t()?.toString()??"1"}#o(t,e){if(this.disabled)return;const s=+t;this.#t.remote.changeAudioGain(s,e),this.dispatch("change",{detail:s,trigger:e})}}const vs=Ji.prototype;C(vs,"value"),C(vs,"disabled"),B(vs,"getOptions");function Ht(i,t){mt(()=>{if(!i.connectScope)return;const e=i.querySelector("template");e&&d(()=>{const s=i.getOptions();Ye(e,s.length,(a,n)=>{const{label:r,value:o}=s[n],l=a.querySelector('[data-part="label"]');a.setAttribute("value",o),l&&(E(r)?l.textContent=r:d(()=>{l.textContent=r()})),t?.(a,s[n],n)})})})}class _l extends T(HTMLElement,Ji){static tagName="media-audio-gain-radio-group";onConnect(){Ht(this)}}class Zi extends k{static props={emptyLabel:"Default"};#t;#e;#s;get value(){return this.#s.value}get disabled(){const{audioTracks:t}=this.#e.$state;return t().length<=1}constructor(){super(),this.#s=new It,this.#s.onValueChange=this.#o.bind(this)}onSetup(){this.#e=y(),et(Q)&&(this.#t=O(Q))}onConnect(t){d(this.#i.bind(this)),d(this.#n.bind(this)),d(this.#a.bind(this))}getOptions(){const{audioTracks:t}=this.#e.$state;return t().map(e=>({track:e,label:e.label,value:e.label.toLowerCase()}))}#i(){this.#s.value=this.#r()}#a(){const{emptyLabel:t}=this.$props,{audioTrack:e}=this.#e.$state,s=e();this.#t?.hint.set(s?.label??t())}#n(){this.#t?.disable(this.disabled)}#r(){const{audioTrack:t}=this.#e.$state,e=t();return e?e.label.toLowerCase():""}#o(t,e){if(this.disabled)return;const s=this.#e.audioTracks.toArray().findIndex(a=>a.label.toLowerCase()===t);if(s>=0){const a=this.#e.audioTracks[s];this.#e.remote.changeAudioTrack(s,e),this.dispatch("change",{detail:a,trigger:e})}}}const $s=Zi.prototype;C($s,"value"),C($s,"disabled"),B($s,"getOptions");class Vl extends T(HTMLElement,Zi){static tagName="media-audio-radio-group";onConnect(){Ht(this)}}class ta extends k{static props={offLabel:"Off"};#t;#e;#s;get value(){return this.#s.value}get disabled(){const{hasCaptions:t}=this.#t.$state;return!t()}constructor(){super(),this.#s=new It,this.#s.onValueChange=this.#o.bind(this)}onSetup(){this.#t=y(),et(Q)&&(this.#e=O(Q))}onConnect(t){super.onConnect?.(t),d(this.#i.bind(this)),d(this.#n.bind(this)),d(this.#a.bind(this))}getOptions(){const{offLabel:t}=this.$props,{textTracks:e}=this.#t.$state;return[{value:"off",label:t},...e().filter(Y).map(s=>({track:s,label:s.label,value:this.#l(s)}))]}#i(){this.#s.value=this.#r()}#a(){const{offLabel:t}=this.$props,{textTrack:e}=this.#t.$state,s=e();this.#e?.hint.set(s&&Y(s)&&s.mode==="showing"?s.label:t())}#n(){this.#e?.disable(this.disabled)}#r(){const{textTrack:t}=this.#t.$state,e=t();return e&&Y(e)&&e.mode==="showing"?this.#l(e):"off"}#o(t,e){if(this.disabled)return;if(t==="off"){const a=this.#t.textTracks.selected;if(a){const n=this.#t.textTracks.indexOf(a);this.#t.remote.changeTextTrackMode(n,"disabled",e),this.dispatch("change",{detail:null,trigger:e})}return}const s=this.#t.textTracks.toArray().findIndex(a=>this.#l(a)===t);if(s>=0){const a=this.#t.textTracks[s];this.#t.remote.changeTextTrackMode(s,"showing",e),this.dispatch("change",{detail:a,trigger:e})}}#l(t){return t.id+":"+t.kind+"-"+t.label.toLowerCase()}}const ws=ta.prototype;C(ws,"value"),C(ws,"disabled"),B(ws,"getOptions");class Ol extends T(HTMLElement,ta){static tagName="media-captions-radio-group";onConnect(){Ht(this)}}var Rl=Object.defineProperty,Nl=Object.getOwnPropertyDescriptor,Ts=(i,t,e,s)=>{for(var a=Nl(t,e),n=i.length-1,r;n>=0;n--)(r=i[n])&&(a=r(t,e,a)||a);return a&&Rl(t,e,a),a};class Le extends k{static props={thumbnails:null};#t;#e;#s;#i=b(null);#a=b([]);get value(){return this.#s.value}get disabled(){return!this.#a()?.length}constructor(){super(),this.#s=new It,this.#s.onValueChange=this.#c.bind(this)}onSetup(){this.#t=y(),et(Q)&&(this.#e=O(Q));const{thumbnails:t}=this.$props;this.setAttributes({"data-thumbnails":()=>!!t()})}onAttach(t){this.#e?.attachObserver({onOpen:this.#n.bind(this)})}getOptions(){const{seekableStart:t,seekableEnd:e}=this.#t.$state,s=t(),a=e();return this.#a().map((n,r)=>({cue:n,value:r.toString(),label:n.text,startTime:Ae(Math.max(0,n.startTime-s)),duration:Me(Math.min(a,n.endTime)-Math.max(s,n.startTime))}))}#n(){f(()=>this.#l())}onConnect(t){d(this.#l.bind(this)),d(this.#u.bind(this)),d(this.#r.bind(this)),jt(this.#t.textTracks,"chapters",this.#i.set)}#r(){const t=this.#i();if(!t)return;const e=this.#o.bind(this,t);return e(),new _(t).add("add-cue",e).add("remove-cue",e),()=>{this.#a.set([])}}#o(t){const{seekableStart:e,seekableEnd:s}=this.#t.$state,a=e(),n=s();this.#a.set([...t.cues].filter(r=>r.startTime<=n&&r.endTime>=a))}#l(){if(!this.#e?.expanded())return;if(!this.#i()){this.#s.value="-1";return}const{realCurrentTime:e,seekableStart:s,seekableEnd:a}=this.#t.$state,n=s(),r=a(),o=e(),l=this.#a().findIndex(u=>Ya(u,o));this.#s.value=l.toString(),l>=0&&mt(()=>{if(!this.connectScope)return;const u=this.#a()[l],h=this.el.querySelector("[aria-checked='true']"),c=Math.max(n,u.startTime),g=Math.min(r,u.endTime)-c,$=Math.max(0,o-c)/g*100;h&&it(h,"--progress",W($,3)+"%")})}#u(){this.#e?.disable(this.disabled)}#c(t,e){if(this.disabled||!e)return;const s=+t,a=this.#a(),{clipStartTime:n}=this.#t.$state;vt(s)&&a?.[s]&&(this.#s.value=s.toString(),this.#t.remote.seek(a[s].startTime-n(),e),this.dispatch("change",{detail:a[s],trigger:e}))}}Ts([C],Le.prototype,"value"),Ts([C],Le.prototype,"disabled"),Ts([B],Le.prototype,"getOptions");class Fl extends T(HTMLElement,Le){static tagName="media-chapters-radio-group";onConnect(){Ht(this,(t,e)=>{const{cue:s,startTime:a,duration:n}=e,r=t.querySelector(".vds-thumbnail,media-thumbnail"),o=t.querySelector('[data-part="start-time"]'),l=t.querySelector('[data-part="duration"]');o&&(o.textContent=a),l&&(l.textContent=n),r&&(r.setAttribute("time",s.startTime+""),d(()=>{const u=this.$props.thumbnails();"src"in r?r.src=u:E(u)&&r.setAttribute("src",u)}))})}}class ks extends k{static props={disabled:!1};#t;#e=b(null);get expanded(){return this.#t?.expanded()??!1}constructor(){super(),new lt}onSetup(){this.#t=O(Q)}onAttach(t){this.#t.attachMenuButton(this),d(this.#s.bind(this)),I(t,"type","button")}onConnect(t){d(this.#i.bind(this)),this.#a();const e=new MutationObserver(this.#a.bind(this));e.observe(t,{attributeFilter:["data-part"],childList:!0,subtree:!0}),A(()=>e.disconnect()),wt(t,s=>{this.dispatch("select",{trigger:s})})}#s(){this.#t.disableMenuButton(this.$props.disabled())}#i(){const t=this.#e();t&&d(()=>{const e=this.#t.hint();e&&(t.textContent=e)})}#a(){const t=this.el?.querySelector('[data-part="hint"]');this.#e.set(t??null)}}const Bl=ks.prototype;C(Bl,"expanded");class Hl extends T(HTMLElement,ks){static tagName="media-menu-button"}class ea extends rt{#t;constructor(t){super(),this.#t=t,d(this.#e.bind(this))}onDestroy(){this.#a?.(),this.#a=null}#e(){const t=this.#t.trigger();if(!t){this.hide();return}const e=this.show.bind(this),s=this.hide.bind(this);this.#t.listen(t,e,s)}#s=-1;#i=-1;#a=null;show(t){this.#n(),window.cancelAnimationFrame(this.#i),this.#i=-1,this.#a?.(),this.#a=null,this.#s=window.setTimeout(()=>{this.#s=-1;const e=this.#t.content();e&&e.style.removeProperty("display"),f(()=>this.#t.onChange(!0,t))},this.#t.showDelay?.()??0)}hide(t){this.#n(),f(()=>this.#t.onChange(!1,t)),this.#i=requestAnimationFrame(()=>{this.#n(),this.#i=-1;const e=this.#t.content();if(e){const s=()=>{e.style.display="none",this.#a=null};if(vn(e)){this.#a?.();const n=G(e,"animationend",s,{once:!0});this.#a=n}else s()}})}#n(){window.clearTimeout(this.#s),this.#s=-1}}const Ss=ut(),ee=ut();function Gl(i,t){const e=Ia(i,t);for(const{el:s,top:a,left:n}of e)s.scroll({top:a,left:n,behavior:t.behavior})}function Kl(i,t={}){Gl(i,{scrollMode:"if-needed",block:"center",inline:"center",...t})}const Wl=["a[href]","[tabindex]","input","select","button"].map(i=>`${i}:not([aria-hidden='true'])`).join(","),Ql=new Set(["Escape","Tab","ArrowUp","ArrowDown","Home","PageUp","End","PageDown","Enter"," "]);class Ul{#t=-1;#e=null;#s=[];#i;get items(){return this.#s}constructor(t){this.#i=t}attachMenu(t){G(t,"focus",this.#r.bind(this)),this.#e=t,A(()=>{this.#e=null})}listen(){this.#e&&(this.update(),new _(this.#e).add("keyup",this.#l.bind(this)).add("keydown",this.#u.bind(this)),A(()=>{this.#t=-1,this.#s=[]}))}update(){this.#t=0,this.#s=this.#h()}scroll(t=this.#n()){const e=this.#s[t];e&&requestAnimationFrame(()=>{requestAnimationFrame(()=>{Kl(e,{behavior:"smooth",boundary:s=>!s.hasAttribute("data-root")})})})}focusActive(t=!0){const e=this.#n();this.#a(e>=0?e:0,t)}#a(t,e=!0){this.#t=t,this.#s[t]?(this.#s[t].focus({preventScroll:!0}),e&&this.scroll(t)):this.#e?.focus({preventScroll:!0})}#n(){return this.#s.findIndex(t=>document.activeElement===t||t.getAttribute("role")==="menuitemradio"&&t.getAttribute("aria-checked")==="true")}#r(){this.#t>=0||(this.update(),this.focusActive())}#o(t){const e=t.target;if(_a(t)&&e instanceof Element){const s=e.getAttribute("role");return!/a|input|select|button/.test(e.localName)&&!s}return Ql.has(t.key)}#l(t){this.#o(t)&&(t.stopPropagation(),t.preventDefault())}#u(t){if(this.#o(t))switch(t.stopPropagation(),t.preventDefault(),t.key){case"Escape":this.#i.closeMenu(t);break;case"Tab":this.#a(this.#c(t.shiftKey?-1:1));break;case"ArrowUp":this.#a(this.#c(-1));break;case"ArrowDown":this.#a(this.#c(1));break;case"Home":case"PageUp":this.#a(0);break;case"End":case"PageDown":this.#a(this.#s.length-1);break}}#c(t){let e=this.#t;do e=(e+t+this.#s.length)%this.#s.length;while(this.#s[e]?.offsetParent===null);return e}#h(){if(!this.#e)return[];const t=this.#e.querySelectorAll(Wl),e=[],s=a=>a.getAttribute("role")==="menu";for(const a of t)Tt(a)&&a.offsetParent!==null&&oi(this.#e,a,s)&&e.push(a);return e}}var zl=Object.defineProperty,jl=Object.getOwnPropertyDescriptor,se=(i,t,e,s)=>{for(var a=jl(t,e),n=i.length-1,r;n>=0;n--)(r=i[n])&&(a=r(t,e,a)||a);return a&&zl(t,e,a),a};let Yl=0;class Gt extends k{static props={showDelay:0};#t;#e;#s;#i=b(!1);#a=b(!1);#n=b(null);#r=b(null);#o;#l=new Set;#u=null;#c;#h;#d=!1;#p=b(!1);#m=new Set;get triggerElement(){return this.#n()}get contentElement(){return this.#r()}get isSubmenu(){return!!this.#o}constructor(){super();const{showDelay:t}=this.$props;this.#c=new ea({trigger:this.#n,content:this.#r,showDelay:t,listen:(e,s,a)=>{wt(e,r=>{this.#i()?a(r):s(r)});const n=this.#M();n&&wt(n,r=>{r.stopPropagation(),a(r)})},onChange:this.#T.bind(this)})}onSetup(){this.#t=y();const t=++Yl;this.#e=`media-menu-${t}`,this.#s=`media-menu-button-${t}`,this.#h=new Ul({closeMenu:this.close.bind(this)}),et(Q)&&(this.#o=O(Q)),this.#b(),this.setAttributes({"data-open":this.#i,"data-root":!this.isSubmenu,"data-submenu":this.isSubmenu,"data-disabled":this.#P.bind(this)}),Z(Q,{button:this.#n,content:this.#r,expanded:this.#i,hint:b(""),submenu:!!this.#o,disable:this.#E.bind(this),attachMenuButton:this.#y.bind(this),attachMenuItems:this.#$.bind(this),attachObserver:this.#w.bind(this),disableMenuButton:this.#x.bind(this),addSubmenu:this.#I.bind(this),onTransitionEvent:e=>{this.#m.add(e),A(()=>{this.#m.delete(e)})}})}onAttach(t){t.style.setProperty("display","contents")}onConnect(t){d(this.#g.bind(this)),this.isSubmenu&&this.#o?.addSubmenu(this)}onDestroy(){this.#n.set(null),this.#r.set(null),this.#u=null,this.#m.clear()}#b(){let t=-1,e=et(ee)?O(ee):null;Z(ee,{onDragStart:()=>{e?.onDragStart?.(),window.clearTimeout(t),t=-1,this.#d=!0},onDragEnd:()=>{e?.onDragEnd?.(),t=window.setTimeout(()=>{this.#d=!1,t=-1},300)}})}#g(){const t=this.#S();this.isSubmenu||this.#R(),this.#v(t),t&&(d(()=>{const{height:e}=this.#t.$state,s=this.#r();s&&it(s,"--player-height",e()+"px")}),this.#h.listen(),this.listen("pointerup",this.#A.bind(this)),G(window,"pointerup",this.#C.bind(this)))}#y(t){const e=t.el,s=this.isSubmenu,a=U(this.#P.bind(this));I(e,"tabindex",s?"-1":"0"),I(e,"role",s?"menuitem":"button"),v(e,"id",this.#s),v(e,"aria-haspopup","menu"),v(e,"aria-expanded","false"),v(e,"data-root",!this.isSubmenu),v(e,"data-submenu",this.isSubmenu),d(()=>{v(e,"data-open",this.#i()),v(e,"aria-disabled",a())}),this.#n.set(e),A(()=>{this.#n.set(null)})}#$(t){const e=t.el;e.style.setProperty("display","none"),v(e,"id",this.#e),I(e,"role","menu"),I(e,"tabindex","-1"),v(e,"data-root",!this.isSubmenu),v(e,"data-submenu",this.isSubmenu),this.#r.set(e),A(()=>this.#r.set(null)),d(()=>v(e,"data-open",this.#i())),this.#h.attachMenu(e),this.#v(!1);const a=this.#H.bind(this);this.isSubmenu?this.#o?.onTransitionEvent(a):(t.listen("transitionstart",a),t.listen("transitionend",a),t.listen("animationend",this.#R),t.listen("vds-menu-resize",this.#R))}#w(t){this.#u=t}#v(t){const e=f(this.#r);e&&v(e,"aria-hidden",he(!t))}#x(t){this.#p.set(t)}#f=!1;#T(t,e){if(this.#f=le(e),e?.stopPropagation(),this.#i()===t)return;if(this.#P()){t&&this.#c.hide(e);return}this.el?.dispatchEvent(new Event("vds-menu-resize",{bubbles:!0,composed:!0}));const s=this.#n(),a=this.#r();if(s&&(v(s,"aria-controls",t&&this.#e),v(s,"aria-expanded",he(t))),a&&v(a,"aria-labelledby",t&&this.#s),this.#i.set(t),this.#D(e),ct(),this.#f){t?a?.focus():s?.focus();for(const n of[this.el,a])n&&n.setAttribute("data-keyboard","")}else for(const n of[this.el,a])n&&n.removeAttribute("data-keyboard");if(this.dispatch(t?"open":"close",{trigger:e}),t)!this.isSubmenu&&this.#t.activeMenu!==this&&(this.#t.activeMenu?.close(e),this.#t.activeMenu=this),this.#u?.onOpen?.(e);else{if(this.isSubmenu)for(const n of this.#l)n.close(e);else this.#t.activeMenu=null;this.#u?.onClose?.(e)}t&&requestAnimationFrame(this.#k.bind(this))}#k(){this.#N||this.#L||(this.#h.update(),requestAnimationFrame(()=>{this.#f?this.#h.focusActive():this.#h.scroll()}))}#S(){return!this.#P()&&this.#i()}#P(){return this.#a()||this.#p()}#E(t){this.#a.set(t)}#A(t){const e=this.#r();this.#d||e&&ai(e,t)||t.stopPropagation()}#C(t){const e=this.#r();this.#d||e&&ai(e,t)||this.close(t)}#M(){const t=this.el?.querySelector('[data-part="close-target"]');return this.el&&t&&oi(this.el,t,e=>e.getAttribute("role")==="menu")?t:null}#D(t){this.isSubmenu||(this.#i()?this.#t.remote.pauseControls(t):this.#t.remote.resumeControls(t))}#I(t){this.#l.add(t),new _(t).add("open",this.#O).add("close",this.#F),A(this.#q)}#q=this.#V.bind(this);#V(t){this.#l.delete(t)}#L=!1;#O=this.#_.bind(this);#_(t){this.#L=!0;const e=this.#r();this.isSubmenu&&this.triggerElement?.setAttribute("aria-hidden","true");for(const s of this.#l)if(s!==t.target)for(const a of[s.el,s.triggerElement])a?.setAttribute("aria-hidden","true");if(e){const s=t.target.el;for(const a of e.children)a.contains(s)?a.setAttribute("data-open",""):a!==s&&a.setAttribute("data-hidden","")}}#F=this.#B.bind(this);#B(t){this.#L=!1;const e=this.#r();this.isSubmenu&&this.triggerElement?.setAttribute("aria-hidden","false");for(const s of this.#l)for(const a of[s.el,s.triggerElement])a?.setAttribute("aria-hidden","false");if(e)for(const s of e.children)s.removeAttribute("data-open"),s.removeAttribute("data-hidden")}#R=ht(()=>{const t=f(this.#r);if(!t)return;let e=0,s=getComputedStyle(t),a=[...t.children];for(const n of["paddingTop","paddingBottom","borderTopWidth","borderBottomWidth"])e+=parseFloat(s[n])||0;for(const n of a)if(Tt(n)&&n.style.display==="contents")a.push(...n.children);else if(n.nodeType===3)e+=parseFloat(getComputedStyle(n).fontSize);else if(Tt(n)){if(!ni(n))continue;const r=getComputedStyle(n);e+=n.offsetHeight+(parseFloat(r.marginTop)||0)+(parseFloat(r.marginBottom)||0)}it(t,"--menu-height",e+"px")});#N=!1;#H(t){const e=this.#r();e&&t.propertyName==="height"&&(this.#N=t.type==="transitionstart",v(e,"data-transition",this.#N?"height":null),this.#i()&&this.#k());for(const s of this.#m)s(t)}open(t){f(this.#i)||(this.#c.show(t),ct())}close(t){f(this.#i)&&(this.#c.hide(t),ct())}}se([C],Gt.prototype,"triggerElement"),se([C],Gt.prototype,"contentElement"),se([C],Gt.prototype,"isSubmenu"),se([B],Gt.prototype,"open"),se([B],Gt.prototype,"close");class Xl extends T(HTMLElement,Gt){static tagName="media-menu"}class Jl extends ks{}class Zl extends T(HTMLElement,Jl){static tagName="media-menu-item"}class td extends k{static props={container:null,disabled:!1};#t=null;#e;onSetup(){this.#e=y(),Z(De,{attach:this.#s.bind(this)})}onAttach(t){t.style.setProperty("display","contents")}onConnect(t){}onDestroy(){this.#t?.remove(),this.#t=null}#s(t){this.#a(!1),this.#t=t,mt(()=>{mt(()=>{this.connectScope&&d(this.#i.bind(this))})})}#i(){const{fullscreen:t}=this.#e.$state,{disabled:e}=this.$props;this.#a(e()==="fullscreen"?!t():!e())}#a(t){if(!this.#t)return;let e=this.#n(this.$props.container());if(!e)return;const s=this.#t.parentElement===e;v(this.#t,"data-portal",t),t?s||(this.#t.remove(),e.append(this.#t)):s&&this.#t.parentElement===e&&(this.#t.remove(),this.el?.append(this.#t))}#n(t){return Tt(t)?t:t?document.querySelector(t):document.body}}const De=ut();class ed extends k{static props={placement:null,offset:0,alignOffset:0};#t;constructor(){super(),new lt;const{placement:t}=this.$props;this.setAttributes({"data-placement":t})}onAttach(t){if(this.#t=O(Q),this.#t.attachMenuItems(this),et(De)){const e=O(De);e&&(Z(De,null),e.attach(t),A(()=>e.attach(null)))}}onConnect(t){d(this.#e.bind(this))}#e(){const{expanded:t}=this.#t;if(!this.el||!t())return;const e=this.$props.placement();if(!e)return;Object.assign(this.el.style,{position:"absolute",top:0,left:0,width:"max-content"});const{offset:s,alignOffset:a}=this.$props;A(li(this.el,this.#i(),e,{offsetVarName:"media-menu",xOffset:a(),yOffset:s()})),A(this.#s.bind(this))}#s(){this.el&&(this.el.removeAttribute("style"),this.el.style.display="none")}#i(){return this.#t.button()}}class sd extends T(HTMLElement,ed){static tagName="media-menu-items"}class id extends T(HTMLElement,td){static tagName="media-menu-portal";static attrs={disabled:{converter(t){return E(t)?t:t!==null}}}}class sa extends k{static props={autoLabel:"Auto",hideBitrate:!1,sort:"descending"};#t;#e;#s;get value(){return this.#s.value}get disabled(){const{canSetQuality:t,qualities:e}=this.#t.$state;return!t()||e().length<=1}#i=M(()=>{const{sort:t}=this.$props,{qualities:e}=this.#t.$state;return ps(e(),t()==="descending")});constructor(){super(),this.#s=new It,this.#s.onValueChange=this.#o.bind(this)}onSetup(){this.#t=y(),et(Q)&&(this.#e=O(Q))}onConnect(t){d(this.#a.bind(this)),d(this.#r.bind(this)),d(this.#n.bind(this))}getOptions(){const{autoLabel:t,hideBitrate:e}=this.$props;return[{value:"auto",label:t},...this.#i().map(s=>{const a=s.bitrate&&s.bitrate>=0?`${W(s.bitrate/1e6,2)} Mbps`:null;return{quality:s,label:s.label??(s.height?s.height+"p":"Unknown"),value:this.#u(s),bitrate:()=>e()?null:a}})]}#a(){this.#s.value=this.#l()}#n(){const{autoLabel:t}=this.$props,{autoQuality:e,quality:s}=this.#t.$state,a=s(),n=a?a.label??(a.height?a.height+"p":""):"";this.#e?.hint.set(e()?t()+(n?` (${n})`:""):n)}#r(){this.#e?.disable(this.disabled)}#o(t,e){if(this.disabled)return;if(t==="auto"){this.#t.remote.changeQuality(-1,e),this.dispatch("change",{detail:"auto",trigger:e});return}const{qualities:s}=this.#t.$state,a=f(s).findIndex(n=>this.#u(n)===t);if(a>=0){const n=f(s)[a];this.#t.remote.changeQuality(a,e),this.dispatch("change",{detail:n,trigger:e})}}#l(){const{quality:t,autoQuality:e}=this.#t.$state;if(e())return"auto";const s=t();return s?this.#u(s):"auto"}#u(t){return t.id}}const xs=sa.prototype;C(xs,"value"),C(xs,"disabled"),B(xs,"getOptions");class ad extends T(HTMLElement,sa){static tagName="media-quality-radio-group";onConnect(){Ht(this,(t,e)=>{const s=e.bitrate,a=t.querySelector('[data-part="bitrate"]');s&&a&&d(()=>{a.textContent=s()||""})})}}class ia extends k{static props={value:""};#t=b(!1);#e={value:this.$props.value,check:this.#r.bind(this),onCheck:null};get checked(){return this.#t()}constructor(){super(),new lt}onSetup(){this.setAttributes({value:this.$props.value,"data-checked":this.#t,"aria-checked":U(this.#t)})}onAttach(t){const e=et(Q);I(t,"tabindex",e?"-1":"0"),I(t,"role",e?"menuitemradio":"radio"),d(this.#a.bind(this))}onConnect(t){this.#i(),wt(t,this.#n.bind(this)),A(this.#s.bind(this))}#s(){zt(()=>{O(ys).remove(this.#e)},this.connectScope)}#i(){O(ys).add(this.#e)}#a(){const{value:t}=this.$props,e=t();f(this.#t)&&this.#e.onCheck?.(e)}#n(t){f(this.#t)||(this.#o(!0,t),this.#l(t),this.#e.onCheck?.(f(this.$props.value),t))}#r(t,e){f(this.#t)!==t&&this.#o(t,e)}#o(t,e){this.#t.set(t),this.dispatch("change",{detail:t,trigger:e})}#l(t){this.dispatch("select",{trigger:t})}}const nd=ia.prototype;C(nd,"checked");class rd extends T(HTMLElement,ia){static tagName="media-radio"}class aa extends k{static props={value:""};#t;get values(){return this.#t.values}get value(){return this.#t.value}set value(t){this.#t.value=t}constructor(){super(),this.#t=new It,this.#t.onValueChange=this.#s.bind(this)}onSetup(){d(this.#e.bind(this))}#e(){this.#t.value=this.$props.value()}#s(t,e){const s=this.createEvent("change",{detail:t,trigger:e});this.dispatch(s)}}const na=aa.prototype;C(na,"values"),C(na,"value");class od extends T(HTMLElement,aa){static tagName="media-radio-group"}const ld=[.25,.5,.75,1,1.25,1.5,1.75,2];class ra extends k{static props={normalLabel:"Normal",rates:ld};#t;#e;#s;get value(){return this.#s.value}get disabled(){const{rates:t}=this.$props,{canSetPlaybackRate:e}=this.#t.$state;return!e()||t().length===0}constructor(){super(),this.#s=new It,this.#s.onValueChange=this.#o.bind(this)}onSetup(){this.#t=y(),et(Q)&&(this.#e=O(Q))}onConnect(t){d(this.#i.bind(this)),d(this.#a.bind(this)),d(this.#n.bind(this))}getOptions(){const{rates:t,normalLabel:e}=this.$props;return t().map(s=>({label:s===1?e:s+"\xD7",value:s.toString()}))}#i(){this.#s.value=this.#r()}#a(){const{normalLabel:t}=this.$props,{playbackRate:e}=this.#t.$state,s=e();this.#e?.hint.set(s===1?t():s+"\xD7")}#n(){this.#e?.disable(this.disabled)}#r(){const{playbackRate:t}=this.#t.$state;return t().toString()}#o(t,e){if(this.disabled)return;const s=+t;this.#t.remote.changePlaybackRate(s,e),this.dispatch("change",{detail:s,trigger:e})}}const Ps=ra.prototype;C(Ps,"value"),C(Ps,"disabled"),B(Ps,"getOptions");class dd extends T(HTMLElement,ra){static tagName="media-speed-radio-group";onConnect(){Ht(this)}}class ud extends k{static props={src:null,alt:null,crossOrigin:null};static state=new yt({img:null,src:null,alt:null,crossOrigin:null,loading:!0,error:null,hidden:!1});#t;onSetup(){this.#t=y(),this.#o(),this.#l(),this.#u(),this.#i()}onAttach(t){t.style.setProperty("pointer-events","none"),d(this.#n.bind(this)),d(this.#o.bind(this)),d(this.#l.bind(this)),d(this.#u.bind(this)),d(this.#i.bind(this));const{started:e}=this.#t.$state;this.setAttributes({"data-visible":()=>!e()&&!this.$state.hidden(),"data-loading":this.#a.bind(this),"data-error":this.#e.bind(this),"data-hidden":this.$state.hidden})}onConnect(t){d(this.#s.bind(this)),d(this.#c.bind(this))}#e(){const{error:t}=this.$state;return!Et(t())}#s(){const{canLoadPoster:t,poster:e}=this.#t.$state;!t()&&e()&&Yt(e(),"preconnect")}#i(){const{src:t}=this.$props,{poster:e,nativeControls:s}=this.#t.$state;this.el&&v(this.el,"display",s()?"none":null),this.$state.hidden.set(this.#e()||!(t()||e())||s())}#a(){const{loading:t,hidden:e}=this.$state;return!e()&&t()}#n(){const t=this.$state.img();t&&(new _(t).add("load",this.#h.bind(this)).add("error",this.#d.bind(this)),t.complete&&this.#h())}#r="";#o(){const{poster:t}=this.#t.$props,{canLoadPoster:e,providedPoster:s,inferredPoster:a}=this.#t.$state,n=this.$props.src()||"",r=n||t()||a();this.#r===s()&&s.set(n),this.$state.src.set(e()&&r.length?r:null),this.#r=n}#l(){const{src:t}=this.$props,{alt:e}=this.$state,{poster:s}=this.#t.$state;e.set(t()||s()?this.$props.alt():null)}#u(){const{crossOrigin:t}=this.$props,{crossOrigin:e}=this.$state,{crossOrigin:s,poster:a}=this.#t.$state,n=t()!==null?t():s();e.set(/ytimg\.com|vimeo/.test(a()||"")?null:n===!0?"anonymous":n)}#c(){const{loading:t,error:e}=this.$state,{canLoadPoster:s,poster:a}=this.#t.$state;t.set(s()&&!!a()),e.set(null)}#h(){const{loading:t,error:e}=this.$state;t.set(!1),e.set(null)}#d(t){const{loading:e,error:s}=this.$state;e.set(!1),s.set(t)}}class cd extends T(HTMLElement,ud){static tagName="media-poster";static attrs={crossOrigin:"crossorigin"};#t=document.createElement("img");onSetup(){this.$state.img.set(this.#t)}onConnect(){const{src:t,alt:e,crossOrigin:s}=this.$state;d(()=>{const{loading:a,hidden:n}=this.$state;this.#t.style.display=a()||n()?"none":""}),d(()=>{v(this.#t,"alt",e()),v(this.#t,"crossorigin",s()),v(this.#t,"src",t())}),this.#t.parentNode!==this&&this.prepend(this.#t)}}const _t=new yt({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 oa(this.min,this.max,this.value)},get fillPercent(){return this.fillRate*100},get pointerRate(){return oa(this.min,this.max,this.pointerValue)},get pointerPercent(){return this.pointerRate*100}});function oa(i,t,e){const s=t-i,a=e-i;return s>0?a/s:0}const Kt=ut(()=>({}));class la extends rt{#t;#e;constructor(t){super(),this.#t=t}onConnect(t){this.#e=new IntersectionObserver(e=>{this.#t.callback?.(e,this.#e)},this.#t),this.#e.observe(t),A(this.#s.bind(this))}#s(){this.#e?.disconnect(),this.#e=void 0}}function hd(i,t,e,s){return Ke(i,W(e,Xa(s)),t)}function pd(i,t,e,s){const a=Ke(0,e,1),n=t-i,r=n*a,o=r/s,l=s*Math.round(o);return i+l}const Cs={Left:-1,ArrowLeft:-1,Up:1,ArrowUp:1,Right:1,ArrowRight:1,Down:-1,ArrowDown:-1};class md extends rt{#t;#e;#s;constructor(t,e){super(),this.#t=t,this.#e=e}onSetup(){et(ee)&&(this.#s=O(ee))}onConnect(t){d(this.#u.bind(this,t)),d(this.#c.bind(this,t)),this.#t.swipeGesture&&d(this.#i.bind(this))}#i(){const{pointer:t}=this.#e.$state;if(t()!=="coarse"||!this.#t.swipeGesture()){this.#a=null;return}this.#a=this.#e.player.el?.querySelector("media-provider,[data-media-provider]"),this.#a&&new _(this.#a).add("touchstart",this.#o.bind(this),{passive:!0}).add("touchmove",this.#l.bind(this),{passive:!1})}#a=null;#n=null;#r=null;#o(t){this.#n=t.touches[0]}#l(t){if(Et(this.#n)||je(t))return;const e=t.touches[0],s=e.clientX-this.#n.clientX,a=e.clientY-this.#n.clientY,n=this.$state.dragging();!n&&Math.abs(a)>5||n||(t.preventDefault(),Math.abs(s)>20&&(this.#n=e,this.#r=this.$state.value(),this.#w(this.#r,t)))}#u(t){const{hidden:e}=this.$props;G(t,"focus",this.#h.bind(this)),!(e()||this.#t.isDisabled())&&new _(t).add("keyup",this.#k.bind(this)).add("keydown",this.#T.bind(this)).add("pointerenter",this.#b.bind(this)).add("pointermove",this.#g.bind(this)).add("pointerleave",this.#y.bind(this)).add("pointerdown",this.#$.bind(this))}#c(t){this.#t.isDisabled()||!this.$state.dragging()||new _(document).add("pointerup",this.#E.bind(this),{capture:!0}).add("pointermove",this.#C.bind(this)).add("touchmove",this.#A.bind(this),{passive:!1})}#h(){this.#p(this.$state.value())}#d(t,e){const{value:s,min:a,max:n,dragging:r}=this.$state,o=Math.max(a(),Math.min(t,n()));s.set(o);const l=this.createEvent("value-change",{detail:o,trigger:e});if(this.dispatch(l),this.#t.onValueChange?.(l),r()){const u=this.createEvent("drag-value-change",{detail:o,trigger:e});this.dispatch(u),this.#t.onDragValueChange?.(u)}}#p(t,e){const{pointerValue:s,dragging:a}=this.$state;s.set(t),this.dispatch("pointer-value-change",{detail:t,trigger:e}),a()&&this.#d(t,e)}#m(t){let e,s=this.el.getBoundingClientRect(),{min:a,max:n}=this.$state;if(this.$props.orientation()==="vertical"){const{bottom:r,height:o}=s;e=(r-t.clientY)/o}else if(this.#n&&vt(this.#r)){const{width:r}=this.#a.getBoundingClientRect(),o=(t.clientX-this.#n.clientX)/r,l=n()-a(),u=l*Math.abs(o);e=(o<0?this.#r-u:this.#r+u)/l}else{const{left:r,width:o}=s;e=(t.clientX-r)/o}return Math.max(a(),Math.min(n(),this.#t.roundValue(pd(a(),n(),e,this.#t.getStep()))))}#b(t){this.$state.pointing.set(!0)}#g(t){const{dragging:e}=this.$state;e()||this.#p(this.#m(t),t)}#y(t){this.$state.pointing.set(!1)}#$(t){if(t.button!==0)return;const e=this.#m(t);this.#w(e,t),this.#p(e,t)}#w(t,e){const{dragging:s}=this.$state;if(s())return;s.set(!0),this.#e.remote.pauseControls(e);const a=this.createEvent("drag-start",{detail:t,trigger:e});this.dispatch(a),this.#t.onDragStart?.(a),this.#s?.onDragStart?.()}#v(t,e){const{dragging:s}=this.$state;if(!s())return;s.set(!1),this.#e.remote.resumeControls(e);const a=this.createEvent("drag-end",{detail:t,trigger:e});this.dispatch(a),this.#t.onDragEnd?.(a),this.#n=null,this.#r=null,this.#s?.onDragEnd?.()}#x;#f=!1;#T(t){if(!Object.keys(Cs).includes(t.key))return;const{key:s}=t,a=this.#S(t);if(!Et(a)){this.#p(a,t),this.#d(a,t);return}const n=this.#P(t);this.#f||(this.#f=s===this.#x,!this.$state.dragging()&&this.#f&&this.#w(n,t)),this.#p(n,t),this.#x=s}#k(t){if(!Object.keys(Cs).includes(t.key)||!Et(this.#S(t)))return;const s=this.#f?this.$state.pointerValue():this.#P(t);this.#d(s,t),this.#v(s,t),this.#x="",this.#f=!1}#S(t){let e=t.key,{min:s,max:a}=this.$state;return e==="Home"||e==="PageUp"?s():e==="End"||e==="PageDown"?a():!t.metaKey&&/^[0-9]$/.test(e)?(a()-s())/10*Number(e):null}#P(t){const{key:e,shiftKey:s}=t;t.preventDefault(),t.stopPropagation();const{shiftKeyMultiplier:a}=this.$props,{min:n,max:r,value:o,pointerValue:l}=this.$state,u=this.#t.getStep(),h=this.#t.getKeyStep(),c=s?h*a():h,g=Number(Cs[e]),$=c*g,x=this.#f?l():this.#t.getValue?.()??o(),q=(x+$)/u;return Math.max(n(),Math.min(r(),Number((u*q).toFixed(3))))}#E(t){if(t.button!==0)return;t.preventDefault(),t.stopImmediatePropagation();const e=this.#m(t);this.#p(e,t),this.#v(e,t)}#A(t){t.preventDefault()}#C=Ct(t=>{this.#p(this.#m(t),t)},20,{leading:!0})}class nt extends rt{static props={hidden:!1,disabled:!1,step:1,keyStep:1,orientation:"horizontal",shiftKeyMultiplier:5};#t;#e;#s=b(!0);#i=b(!0);constructor(t){super(),this.#e=t}onSetup(){this.#t=y();const t=new lt;t.attach(this),this.$state.focused=t.focused.bind(t),et(Kt)||Z(Kt,{default:"value"}),Z(Ss,{orientation:this.$props.orientation,disabled:this.#e.isDisabled,preview:b(null)}),d(this.#r.bind(this)),d(this.#o.bind(this)),d(this.#l.bind(this)),this.#c(),new md(this.#e,this.#t).attach(this),new la({callback:this.#a.bind(this)}).attach(this)}onAttach(t){I(t,"role","slider"),I(t,"tabindex","0"),I(t,"autocomplete","off"),d(this.#h.bind(this))}onConnect(t){A(ri(t,this.#s.set)),d(this.#n.bind(this))}#a(t){this.#i.set(t[0].isIntersecting)}#n(){const{hidden:t}=this.$props;this.$state.hidden.set(t()||!this.#s()||!this.#i.bind(this))}#r(){const{dragging:t,value:e,min:s,max:a}=this.$state;f(t)||e.set(hd(s(),a(),e(),this.#e.getStep()))}#o(){this.$state.step.set(this.#e.getStep())}#l(){if(!this.#e.isDisabled())return;const{dragging:t,pointing:e}=this.$state;t.set(!1),e.set(!1)}#u(){return he(this.#e.isDisabled())}#c(){const{orientation:t}=this.$props,{dragging:e,active:s,pointing:a}=this.$state;this.setAttributes({"data-dragging":e,"data-pointing":a,"data-active":s,"aria-disabled":this.#u.bind(this),"aria-valuemin":this.#e.aria.valueMin??this.$state.min,"aria-valuemax":this.#e.aria.valueMax??this.$state.max,"aria-valuenow":this.#e.aria.valueNow,"aria-valuetext":this.#e.aria.valueText,"aria-orientation":t})}#h(){const{fillPercent:t,pointerPercent:e}=this.$state;this.#d(W(t(),3),W(e(),3))}#d=ht((t,e)=>{this.el?.style.setProperty("--slider-fill",t+"%"),this.el?.style.setProperty("--slider-pointer",e+"%")})}class fd extends k{static props={...nt.props,step:25,keyStep:25,shiftKeyMultiplier:2,min:0,max:300};static state=_t;#t;onSetup(){this.#t=y(),Z(Kt,{default:"percent",percent:(t,e)=>W(this.$state.value(),e)+"%"}),new nt({getStep:this.$props.step,getKeyStep:this.$props.keyStep,roundValue:Math.round,isDisabled:this.#n.bind(this),aria:{valueNow:this.#e.bind(this),valueText:this.#s.bind(this)},onDragValueChange:this.#l.bind(this),onValueChange:this.#o.bind(this)}).attach(this),d(this.#i.bind(this)),d(this.#a.bind(this))}onAttach(t){t.setAttribute("data-media-audio-gain-slider",""),I(t,"aria-label","Audio Boost");const{canSetAudioGain:e}=this.#t.$state;this.setAttributes({"data-supported":e,"aria-hidden":U(()=>!e())})}#e(){const{value:t}=this.$state;return Math.round(t())}#s(){const{value:t}=this.$state;return t()+"%"}#i(){const{min:t,max:e}=this.$props;this.$state.min.set(t()),this.$state.max.set(e())}#a(){const{audioGain:t}=this.#t.$state,e=((t()??1)-1)*100;this.$state.value.set(e),this.dispatch("value-change",{detail:e})}#n(){const{disabled:t}=this.$props,{canSetAudioGain:e}=this.#t.$state;return t()||!e()}#r(t){if(!t.trigger)return;const e=W(1+t.detail/100,2);this.#t.remote.changeAudioGain(e,t)}#o(t){this.#r(t)}#l(t){this.#r(t)}}class gd extends T(HTMLElement,fd){static tagName="media-audio-gain-slider"}class bd extends k{static props={...nt.props,step:1,keyStep:1,shiftKeyMultiplier:1};static state=_t;#t;#e=M(()=>{const{qualities:t}=this.#t.$state;return ps(t())});onSetup(){this.#t=y(),new nt({getStep:this.$props.step,getKeyStep:this.$props.keyStep,roundValue:Math.round,isDisabled:this.#r.bind(this),aria:{valueNow:this.#s.bind(this),valueText:this.#i.bind(this)},onDragValueChange:this.#c.bind(this),onValueChange:this.#u.bind(this)}).attach(this),d(this.#a.bind(this)),d(this.#n.bind(this))}onAttach(t){t.setAttribute("data-media-quality-slider",""),I(t,"aria-label","Video Quality");const{qualities:e,canSetQuality:s}=this.#t.$state,a=M(()=>s()&&e().length>0);this.setAttributes({"data-supported":a,"aria-hidden":U(()=>!a())})}#s(){const{value:t}=this.$state;return t()}#i(){const{quality:t}=this.#t.$state;if(!t())return"";const{height:e,bitrate:s,label:a}=t(),n=s&&s>0?`${(s/1e6).toFixed(2)} Mbps`:null,r=a??(e?`${e}p`:"");return r?`${r}${n?` (${n})`:""}`:"Auto"}#a(){const t=this.#e();this.$state.max.set(Math.max(0,t.length-1))}#n(){let{quality:t}=this.#t.$state,e=this.#e(),s=Math.max(0,e.indexOf(t()));this.$state.value.set(s),this.dispatch("value-change",{detail:s})}#r(){const{disabled:t}=this.$props,{canSetQuality:e,qualities:s}=this.#t.$state;return t()||s().length<=1||!e()}#o=Ct(this.#l.bind(this),25);#l(t){if(!t.trigger)return;const{qualities:e}=this.#t,s=f(this.#e)[t.detail];this.#t.remote.changeQuality(e.indexOf(s),t)}#u(t){this.#o(t)}#c(t){this.#o(t)}}class yd extends T(HTMLElement,bd){static tagName="media-quality-slider"}class da extends k{static props={...nt.props,step:.1,keyStep:5,shiftKeyMultiplier:2,pauseWhileDragging:!1,noSwipeGesture:!1,seekingRequestThrottle:100};static state=_t;#t;#e;#s=b(null);constructor(){super();const{noSwipeGesture:t}=this.$props;new nt({swipeGesture:()=>!t(),getValue:this.#b.bind(this),getStep:this.#g.bind(this),getKeyStep:this.#y.bind(this),roundValue:this.#$,isDisabled:this.#w.bind(this),aria:{valueNow:this.#v.bind(this),valueText:this.#x.bind(this)},onDragStart:this.#h.bind(this),onDragValueChange:this.#d.bind(this),onDragEnd:this.#p.bind(this),onValueChange:this.#m.bind(this)})}onSetup(){this.#t=y(),Z(Kt,{default:"time",value:this.#k.bind(this),time:this.#S.bind(this)}),this.setAttributes({"data-chapters":this.#a.bind(this)}),this.setStyles({"--slider-progress":this.#i.bind(this)}),d(this.#r.bind(this)),d(this.#n.bind(this))}onAttach(t){t.setAttribute("data-media-time-slider",""),I(t,"aria-label","Seek")}onConnect(t){d(this.#o.bind(this)),jt(this.#t.textTracks,"chapters",this.#s.set)}#i(){const{bufferedEnd:t,duration:e}=this.#t.$state;return W(Math.min(t()/Math.max(e(),1),1)*100,3)+"%"}#a(){const{duration:t}=this.#t.$state;return this.#s()?.cues.length&&Number.isFinite(t())&&t()>0}#n(){this.#e=Ct(this.#l.bind(this),this.$props.seekingRequestThrottle())}#r(){if(this.$state.hidden())return;const{value:t,dragging:e}=this.$state,s=this.#b();f(e)||(t.set(s),this.dispatch("value-change",{detail:s}))}#o(){const t=this.#t.player.el,{preview:e}=O(Ss);t&&e()&&v(t,"data-preview",this.$state.active())}#l(t,e){this.#t.remote.seeking(t,e)}#u(t,e,s){this.#e.cancel();const{live:a}=this.#t.$state;if(a()&&e>=99){this.#t.remote.seekToLiveEdge(s);return}this.#t.remote.seek(t,s)}#c=!1;#h(t){const{pauseWhileDragging:e}=this.$props;if(e()){const{paused:s}=this.#t.$state;this.#c=!s(),this.#t.remote.pause(t)}}#d(t){this.#e(this.#f(t.detail),t)}#p(t){const{seeking:e}=this.#t.$state;f(e)||this.#l(this.#f(t.detail),t);const s=t.detail;this.#u(this.#f(s),s,t);const{pauseWhileDragging:a}=this.$props;a()&&this.#c&&(this.#t.remote.play(t),this.#c=!1)}#m(t){const{dragging:e}=this.$state;e()||!t.trigger||this.#p(t)}#b(){const{currentTime:t}=this.#t.$state;return this.#T(t())}#g(){const t=this.$props.step()/this.#t.$state.duration()*100;return Number.isFinite(t)?t:1}#y(){const t=this.$props.keyStep()/this.#t.$state.duration()*100;return Number.isFinite(t)?t:1}#$(t){return W(t,3)}#w(){const{disabled:t}=this.$props,{canSeek:e}=this.#t.$state;return t()||!e()}#v(){const{value:t}=this.$state;return Math.round(t())}#x(){const t=this.#f(this.$state.value()),{duration:e}=this.#t.$state;return Number.isFinite(t)?`${Me(t)} out of ${Me(e())}`:"live"}#f(t){const{duration:e}=this.#t.$state;return W(t/100*e(),5)}#T(t){const{liveEdge:e,duration:s}=this.#t.$state,a=Math.max(0,Math.min(1,e()?1:Math.min(t,s())/s()));return Number.isNaN(a)?0:Number.isFinite(a)?a*100:100}#k(t){const e=this.#f(t),{live:s,duration:a}=this.#t.$state;return Number.isFinite(e)?(s()?e-a():e).toFixed(0):"LIVE"}#S(t,e){const s=this.#f(t),{live:a,duration:n}=this.#t.$state,r=a()?s-n():s;return Number.isFinite(s)?`${r<0?"-":""}${Ae(Math.abs(r),e)}`:"LIVE"}}class ua extends k{static props={disabled:!1};#t;#e;#s;#i=null;#a=[];#n=b(null);#r=b([]);#o=b(-1);#l=b(-1);#u=0;get cues(){return this.#r()}get activeCue(){return this.#r()[this.#o()]||null}get activePointerCue(){return this.#r()[this.#l()]||null}onSetup(){this.#t=y(),this.#e=Ft(da.state)}onAttach(t){jt(this.#t.textTracks,"chapters",this.#c.bind(this)),d(this.#E.bind(this))}onConnect(){A(()=>this.#h.bind(this))}onDestroy(){this.#c(null)}setRefs(t){if(this.#a=t,this.#s?.dispose(),this.#a.length===1){const e=this.#a[0];e.style.width="100%",e.style.setProperty("--chapter-fill","var(--slider-fill)"),e.style.setProperty("--chapter-progress","var(--slider-progress)")}else this.#a.length>0&&zt(()=>this.#d(),this.#s=Va())}#c(t){f(this.#n)!==t&&(this.#h(),this.#n.set(t))}#h(){this.#a=[],this.#r.set([]),this.#o.set(-1),this.#l.set(-1),this.#u=0,this.#s?.dispose()}#d(){this.#a.length&&d(this.#p.bind(this))}#p(){const{hidden:t}=this.#e;t()||(d(this.#m.bind(this)),d(this.#b.bind(this)),d(this.#g.bind(this)),d(this.#v.bind(this)))}#m(){const t=this.#r();if(!t.length)return;let e,{seekableStart:s,seekableEnd:a}=this.#t.$state,n=s(),r=a()||t[t.length-1].endTime,o=r-n,l=100;for(let u=0;u<t.length;u++)if(e=t[u],this.#a[u]){const h=u===t.length-1?l:W((e.endTime-Math.max(n,e.startTime))/o*100,3);this.#a[u].style.width=h+"%",l-=h}}#b(){let{liveEdge:t,seekableStart:e,seekableEnd:s}=this.#t.$state,{fillPercent:a,value:n}=this.#e,r=this.#r(),o=t(),l=f(this.#o),u=r[l],h=o?this.#r.length-1:this.#w(u&&u.startTime/s()*100<=f(n)?l:0,a());o||!u?this.#y(0,r.length,100):h>l?this.#y(l,h,100):h<l&&this.#y(h+1,l+1,0);const c=o?100:this.#S(r[h],a(),e(),this.#k(r));this.#$(this.#a[h],c),this.#o.set(h)}#g(){let{hidden:t,pointerPercent:e}=this.#e;if(t()){this.#l.set(-1);return}const s=this.#w(0,e());this.#l.set(s)}#y(t,e,s){for(let a=t;a<e;a++)this.#$(this.#a[a],s)}#$(t,e){t&&(t.style.setProperty("--chapter-fill",e+"%"),v(t,"data-active",e>0&&e<100),v(t,"data-ended",e===100))}#w(t,e){let s=0,a=this.#r();if(e===0)return 0;if(e===100)return a.length-1;let{seekableStart:n}=this.#t.$state,r=n(),o=this.#k(a);for(let l=t;l<a.length;l++)if(s=this.#S(a[l],e,r,o),s>=0&&s<100)return l;return 0}#v(){this.#x(this.#f())}#x=ht(t=>{let e,s=this.#r(),{seekableStart:a}=this.#t.$state,n=a(),r=this.#k(s);for(let o=this.#u;o<this.#a.length;o++)if(e=this.#S(s[o],t,n,r),this.#a[o]?.style.setProperty("--chapter-progress",e+"%"),e<100){this.#u=o;break}});#f=M(this.#T.bind(this));#T(){const{bufferedEnd:t,duration:e}=this.#t.$state;return W(Math.min(t()/Math.max(e(),1),1),3)*100}#k(t){const{seekableEnd:e}=this.#t.$state,s=e();return Number.isFinite(s)?s:t[t.length-1]?.endTime||0}#S(t,e,s,a){if(!t||this.#r().length===0)return 0;const r=a-s,o=Math.max(0,t.startTime-s),l=Math.min(a,t.endTime)-s,u=o/r,h=u*100,c=Math.min(1,u+(l-o)/r)*100;return Math.max(0,W(e>=c?100:(e-h)/(c-h)*100,3))}#P(t){let e=[],{seekableStart:s,seekableEnd:a,duration:n}=this.#t.$state,r=s(),o=a();t=t.filter(h=>h.startTime<=o&&h.endTime>=r);const l=t[0];l&&l.startTime>r&&e.push(new window.VTTCue(r,l.startTime,""));for(let h=0;h<t.length-1;h++){const c=t[h],g=t[h+1];if(e.push(c),g){const $=g.startTime-c.endTime;$>0&&e.push(new window.VTTCue(c.endTime,c.endTime+$,""))}}const u=t[t.length-1];if(u){e.push(u);const h=n();h>=0&&h-u.endTime>1&&e.push(new window.VTTCue(u.endTime,n(),""))}return e}#E(){const{source:t}=this.#t.$state;t(),this.#A()}#A(){if(!this.scope)return;const{disabled:t}=this.$props;if(t()){this.#r.set([]),this.#o.set(0),this.#u=0;return}const e=this.#n();if(e){const s=this.#M.bind(this);s(),new _(e).add("add-cue",s).add("remove-cue",s),d(this.#C.bind(this))}return this.#i=this.#q(),this.#i&&d(this.#D.bind(this)),()=>{this.#i&&(this.#i.textContent="",this.#i=null)}}#C(){this.#t.$state.duration(),this.#M()}#M=Re(()=>{const t=f(this.#n);!this.scope||!t||!t.cues.length||(this.#r.set(this.#P(t.cues)),this.#o.set(0),this.#u=0)},150,!0);#D(){const t=this.activePointerCue||this.activeCue;this.#i&&(this.#i.textContent=t?.text||"")}#I(){let t=this.el;for(;t&&t.getAttribute("role")!=="slider";)t=t.parentElement;return t}#q(){const t=this.#I();return t?t.querySelector('[data-part="chapter-title"]'):null}}const qe=ua.prototype;C(qe,"cues"),C(qe,"activeCue"),C(qe,"activePointerCue"),B(qe,"setRefs");class vd extends T(HTMLElement,ua){static tagName="media-slider-chapters";#t=null;onConnect(){mt(()=>{if(!this.connectScope)return;const t=this.querySelector("template");t&&(this.#t=t,d(this.#e.bind(this)))})}#e(){if(!this.#t)return;const t=Ye(this.#t,this.cues.length||1);this.setRefs(t)}}class ie extends k{static props={...nt.props,min:0,max:100,value:0};static state=_t;constructor(){super(),new nt({getStep:this.$props.step,getKeyStep:this.$props.keyStep,roundValue:Math.round,isDisabled:this.$props.disabled,aria:{valueNow:this.#t.bind(this),valueText:this.#e.bind(this)}})}onSetup(){d(this.#s.bind(this)),d(this.#i.bind(this))}#t(){const{value:t}=this.$state;return Math.round(t())}#e(){const{value:t,max:e}=this.$state;return W(t()/e()*100,2)+"%"}#s(){const{value:t}=this.$props;this.$state.value.set(t())}#i(){const{min:t,max:e}=this.$props;this.$state.min.set(t()),this.$state.max.set(e())}}class $d extends T(HTMLElement,ie){static tagName="media-slider"}class wd extends k{static props={offset:0,noClamp:!1};#t;onSetup(){this.#t=O(Ss);const{active:t}=Ft(ie.state);this.setAttributes({"data-visible":t})}onAttach(t){Object.assign(t.style,{position:"absolute",top:0,left:0,width:"max-content"})}onConnect(t){const{preview:e}=this.#t;e.set(t),A(()=>e.set(null)),d(this.#e.bind(this));const s=new ResizeObserver(this.#e.bind(this));s.observe(t),A(()=>s.disconnect())}#e=ht(()=>{const{disabled:t,orientation:e}=this.#t;if(t())return;const s=this.el,{offset:a,noClamp:n}=this.$props;s&&Td(s,{clamp:!n(),offset:a(),orientation:e()})})}function Td(i,{clamp:t,offset:e,orientation:s}){const a=getComputedStyle(i),n=parseFloat(a.width),r=parseFloat(a.height),o={top:null,right:null,bottom:null,left:null};if(o[s==="horizontal"?"bottom":"left"]=`calc(100% + var(--media-slider-preview-offset, ${e}px))`,s==="horizontal"){const l=n/2;if(!t)o.left=`calc(var(--slider-pointer) - ${l}px)`;else{const u=`max(0px, calc(var(--slider-pointer) - ${l}px))`,h=`calc(100% - ${n}px)`;o.left=`min(${u}, ${h})`}}else{const l=r/2;if(!t)o.bottom=`calc(var(--slider-pointer) - ${l}px)`;else{const u=`max(${l}px, calc(var(--slider-pointer) - ${l}px))`,h=`calc(100% - ${r}px)`;o.bottom=`min(${u}, ${h})`}}Object.assign(i.style,o)}class kd extends T(HTMLElement,wd){static tagName="media-slider-preview"}class Sd extends k{}class xd extends T(HTMLElement,Sd){static tagName="media-slider-steps";#t=null;onConnect(t){mt(()=>{this.connectScope&&(this.#t=t.querySelector("template"),this.#t&&d(this.#e.bind(this)))})}#e(){if(!this.#t)return;const{min:t,max:e,step:s}=Ft(_t),a=(e()-t())/s();Ye(this.#t,Math.floor(a)+1)}}const gt=new Map,Ie=new Map;class Ms{#t;#e;#s;$images=b([]);static create(t,e){const s=y();return new Ms(t,e,s)}constructor(t,e,s){this.#e=t,this.#s=e,this.#t=s,d(this.#i.bind(this))}#i(){const{canLoad:t}=this.#t.$state;if(!t())return;const e=this.#e();if(e){if(E(e)&>.has(e)){const s=gt.get(e);if(gt.delete(e),gt.set(e,s),gt.size>99){const a=gt.keys().next().value;gt.delete(a)}this.$images.set(gt.get(e))}else if(E(e)){const s=this.#s(),a=e+"::"+s;if(!Ie.has(a)){const n=new Promise(async(r,o)=>{try{const l=await fetch(e,{credentials:fe(s)});if(l.headers.get("content-type")==="application/json"){const h=await l.json();if(K(h))if(h[0]&&"text"in h[0])r(this.#r(h));else{for(let c=0;c<h.length;c++){const g=h[c];pt(Oa(g),!1),pt("url"in g&&E(g.url),!1),pt("startTime"in g&&vt(g.startTime),!1)}r(h)}else r(this.#n(h));return}import("https://cdn.jsdelivr.net/npm/media-captions@next/dist/prod.js").then(async({parseResponse:h})=>{try{const{cues:c}=await h(l);r(this.#r(c))}catch(c){o(c)}})}catch(l){o(l)}}).then(r=>(gt.set(a,r),r)).catch(r=>{this.#c(e,r)}).finally(()=>{E(a)&&Ie.delete(a)});Ie.set(a,n)}Ie.get(a)?.then(n=>{this.$images.set(n||[])})}else if(K(e))try{this.$images.set(this.#a(e))}catch(s){this.#c(e,s)}else try{this.$images.set(this.#n(e))}catch(s){this.#c(e,s)}return()=>{this.$images.set([])}}}#a(t){const e=this.#o();return t.map((s,a)=>(pt(s.url&&E(s.url)),pt("startTime"in s&&vt(s.startTime)),{...s,url:E(s.url)?this.#l(s.url,e):s.url}))}#n(t){pt(E(t.url)),pt(K(t.tiles)&&t.tiles?.length);const e=new URL(t.url),s=[],a="tile_width"in t?t.tile_width:t.tileWidth,n="tile_height"in t?t.tile_height:t.tileHeight;for(const r of t.tiles)s.push({url:e,startTime:"start"in r?r.start:r.startTime,width:a,height:n,coords:{x:r.x,y:r.y}});return s}#r(t){for(let a=0;a<t.length;a++){const n=t[a];pt("startTime"in n&&vt(n.startTime)),pt("text"in n&&E(n.text))}const e=[],s=this.#o();for(const a of t){const[n,r]=a.text.split("#"),o=this.#u(r);e.push({url:this.#l(n,s),startTime:a.startTime,endTime:a.endTime,width:o?.w,height:o?.h,coords:o&&vt(o.x)&&vt(o.y)?{x:o.x,y:o.y}:void 0})}return e}#o(){let t=f(this.#e);return!E(t)||!/^https?:/.test(t)?location.href:t}#l(t,e){return/^https?:/.test(t)?new URL(t):new URL(t,e)}#u(t){if(!t)return{};const[e,s]=t.split("="),a=s?.split(","),n={};if(!e||!a)return null;for(let r=0;r<e.length;r++){const o=+a[r];isNaN(o)||(n[e[r]]=o)}return n}#c(t,e){}}class Pd extends k{static props={src:null,time:0,crossOrigin:null};static state=new yt({src:"",img:null,thumbnails:[],activeThumbnail:null,crossOrigin:null,loading:!1,error:null,hidden:!1});media;#t;#e=[];onSetup(){this.media=y(),this.#t=Ms.create(this.$props.src,this.$state.crossOrigin),this.#i(),this.setAttributes({"data-loading":this.#o.bind(this),"data-error":this.#l.bind(this),"data-hidden":this.$state.hidden,"aria-hidden":U(this.$state.hidden)})}onConnect(t){d(this.#s.bind(this)),d(this.#u.bind(this)),d(this.#i.bind(this)),d(this.#a.bind(this)),d(this.#c.bind(this)),d(this.#h.bind(this))}#s(){const t=this.$state.img();t&&new _(t).add("load",this.#n.bind(this)).add("error",this.#r.bind(this))}#i(){const{crossOrigin:t}=this.$props,{crossOrigin:e}=this.$state,{crossOrigin:s}=this.media.$state,a=t()!==null?t():s();e.set(a===!0?"anonymous":a)}#a(){const{src:t,loading:e,error:s}=this.$state;return t()&&(e.set(!0),s.set(null)),()=>{this.#p(),e.set(!1),s.set(null)}}#n(){const{loading:t,error:e}=this.$state;this.#h(),t.set(!1),e.set(null)}#r(t){const{loading:e,error:s}=this.$state;e.set(!1),s.set(t)}#o(){const{loading:t,hidden:e}=this.$state;return!e()&&t()}#l(){const{error:t}=this.$state;return!Et(t())}#u(){const{hidden:t}=this.$state,{duration:e}=this.media.$state,s=this.#t.$images();t.set(this.#l()||!Number.isFinite(e())||s.length===0)}getTime(){return this.$props.time()}#c(){let t=this.#t.$images();if(!t.length)return;let e=this.getTime(),{src:s,activeThumbnail:a}=this.$state,n=-1,r=null;for(let o=t.length-1;o>=0;o--){const l=t[o];if(e>=l.startTime&&(!l.endTime||e<l.endTime)){n=o;break}}t[n]&&(r=t[n]),a.set(r),s.set(r?.url.href||"")}#h(){if(!this.scope||this.$state.hidden())return;const t=this.el,e=this.$state.img(),s=this.$state.activeThumbnail();if(!e||!s||!t)return;let a=s.width??e.naturalWidth,n=s?.height??e.naturalHeight,{maxWidth:r,maxHeight:o,minWidth:l,minHeight:u,width:h,height:c}=getComputedStyle(this.el);l==="100%"&&(l=parseFloat(h)+""),u==="100%"&&(u=parseFloat(c)+"");let g=Math.max(parseInt(l)/a,parseInt(u)/n),$=Math.min(Math.max(parseInt(l),parseInt(r))/a,Math.max(parseInt(u),parseInt(o))/n),x=!isNaN($)&&$<1?$:g>1?g:1;this.#d(t,"--thumbnail-width",`${a*x}px`),this.#d(t,"--thumbnail-height",`${n*x}px`),this.#d(t,"--thumbnail-aspect-ratio",String(W(a/n,5))),this.#d(e,"width",`${e.naturalWidth*x}px`),this.#d(e,"height",`${e.naturalHeight*x}px`),this.#d(e,"transform",s.coords?`translate(-${s.coords.x*x}px, -${s.coords.y*x}px)`:""),this.#d(e,"max-width","none")}#d(t,e,s){t.style.setProperty(e,s),this.#e.push(()=>t.style.removeProperty(e))}#p(){for(const t of this.#e)t();this.#e=[]}}const Cd=Xe('<img loading="eager" decoding="async" aria-hidden="true">');class ca extends T(HTMLElement,Pd){static tagName="media-thumbnail";static attrs={crossOrigin:"crossorigin"};#t;#e=this.#s();onSetup(){this.#t=y(),this.$state.img.set(this.#e)}onConnect(){const{src:t,crossOrigin:e}=this.$state;this.#e.parentNode!==this&&this.prepend(this.#e),d(()=>{v(this.#e,"src",t()),v(this.#e,"crossorigin",e())})}#s(){return Je(Cd)}}class Ed extends ca{static tagName="media-slider-thumbnail";#t;#e;onSetup(){super.onSetup(),this.#t=y(),this.#e=Ft(ie.state)}onConnect(){super.onConnect(),d(this.#s.bind(this))}#s(){const{duration:t,clipStartTime:e}=this.#t.$state;this.time=e()+this.#e.pointerRate()*t()}}class ha extends k{static props={type:"pointer",format:null,showHours:!1,showMs:!1,padHours:null,padMinutes:null,decimalPlaces:2};#t;#e;#s;onSetup(){this.#s=Ft(ie.state),this.#t=O(Kt),this.#e=M(this.getValueText.bind(this))}getValueText(){const{type:t,format:e,decimalPlaces:s,padHours:a,padMinutes:n,showHours:r,showMs:o}=this.$props,{value:l,pointerValue:u,min:h,max:c}=this.#s,g=e?.()??this.#t.default,$=t()==="current"?l():u();if(g==="percent"){const x=c()-h(),q=$/x*100;return(this.#t.percent??W)(q,s())+"%"}else return g==="time"?(this.#t.time??Ae)($,{padHrs:a(),padMins:n(),showHrs:r(),showMs:o()}):(this.#t.value?.($)??$.toFixed(2))+""}}const Ad=ha.prototype;B(Ad,"getValueText");class Md extends T(HTMLElement,ha){static tagName="media-slider-value";static attrs={padMinutes:{converter:Ra}};onConnect(){d(()=>{this.textContent=this.getValueText()})}}class pa extends k{static props={src:null,crossOrigin:null};static state=new yt({video:null,src:null,crossOrigin:null,canPlay:!1,error:null,hidden:!1});#t;#e;get video(){return this.$state.video()}onSetup(){this.#t=y(),this.#e=Ft(ie.state),this.#a(),this.setAttributes({"data-loading":this.#n.bind(this),"data-hidden":this.$state.hidden,"data-error":this.#r.bind(this),"aria-hidden":U(this.$state.hidden)})}onAttach(t){d(this.#s.bind(this)),d(this.#i.bind(this)),d(this.#a.bind(this)),d(this.#o.bind(this)),d(this.#l.bind(this)),d(this.#h.bind(this))}#s(){const t=this.$state.video();t&&(t.readyState>=2&&this.#u(),new _(t).add("canplay",this.#u.bind(this)).add("error",this.#c.bind(this)))}#i(){const{src:t}=this.$state,{canLoad:e}=this.#t.$state;t.set(e()?this.$props.src():null)}#a(){const{crossOrigin:t}=this.$props,{crossOrigin:e}=this.$state,{crossOrigin:s}=this.#t.$state,a=t()!==null?t():s();e.set(a===!0?"anonymous":a)}#n(){const{canPlay:t,hidden:e}=this.$state;return!t()&&!e()}#r(){const{error:t}=this.$state;return!Et(t)}#o(){const{src:t,hidden:e}=this.$state,{canLoad:s,duration:a}=this.#t.$state;e.set(s()&&(!t()||this.#r()||!Number.isFinite(a())))}#l(){const{src:t,canPlay:e,error:s}=this.$state;t(),e.set(!1),s.set(null)}#u(t){const{canPlay:e,error:s}=this.$state;e.set(!0),s.set(null),this.dispatch("can-play",{trigger:t})}#c(t){const{canPlay:e,error:s}=this.$state;e.set(!1),s.set(t),this.dispatch("error",{trigger:t})}#h(){const{video:t,canPlay:e}=this.$state,{duration:s}=this.#t.$state,{pointerRate:a}=this.#e,n=t();e()&&n&&Number.isFinite(s())&&Number.isFinite(a())&&(n.currentTime=a()*s())}}const Ld=pa.prototype;C(Ld,"video");const Dd=Xe('<video muted playsinline preload="none" style="max-width: unset;"></video>');class qd extends T(HTMLElement,pa){static tagName="media-slider-video";#t;#e=this.#s();onSetup(){this.#t=y(),this.$state.video.set(this.#e)}onConnect(){const{canLoad:t}=this.#t.$state,{src:e,crossOrigin:s}=this.$state;this.#e.parentNode!==this&&this.prepend(this.#e),d(()=>{v(this.#e,"crossorigin",s()),v(this.#e,"preload",t()?"auto":"none"),v(this.#e,"src",e())})}#s(){return Je(Dd)}}class Id extends k{static props={...nt.props,step:.25,keyStep:.25,shiftKeyMultiplier:2,min:0,max:2};static state=_t;#t;onSetup(){this.#t=y(),new nt({getStep:this.$props.step,getKeyStep:this.$props.keyStep,roundValue:this.#n,isDisabled:this.#r.bind(this),aria:{valueNow:this.#e.bind(this),valueText:this.#s.bind(this)},onDragValueChange:this.#c.bind(this),onValueChange:this.#u.bind(this)}).attach(this),d(this.#i.bind(this)),d(this.#a.bind(this))}onAttach(t){t.setAttribute("data-media-speed-slider",""),I(t,"aria-label","Speed");const{canSetPlaybackRate:e}=this.#t.$state;this.setAttributes({"data-supported":e,"aria-hidden":U(()=>!e())})}#e(){const{value:t}=this.$state;return t()}#s(){const{value:t}=this.$state;return t()+"x"}#i(){const{min:t,max:e}=this.$props;this.$state.min.set(t()),this.$state.max.set(e())}#a(){const{playbackRate:t}=this.#t.$state,e=t();this.$state.value.set(e),this.dispatch("value-change",{detail:e})}#n(t){return W(t,2)}#r(){const{disabled:t}=this.$props,{canSetPlaybackRate:e}=this.#t.$state;return t()||!e()}#o=Ct(this.#l.bind(this),25);#l(t){if(!t.trigger)return;const e=t.detail;this.#t.remote.changePlaybackRate(e,t)}#u(t){this.#o(t)}#c(t){this.#o(t)}}class _d extends T(HTMLElement,Id){static tagName="media-speed-slider"}class Vd extends T(HTMLElement,da){static tagName="media-time-slider"}class Od extends k{static props={...nt.props,keyStep:5,shiftKeyMultiplier:2};static state=_t;#t;onSetup(){this.#t=y();const{audioGain:t}=this.#t.$state;Z(Kt,{default:"percent",value(e){return(e*(t()??1)).toFixed(2)},percent(e){return Math.round(e*(t()??1))}}),new nt({getStep:this.$props.step,getKeyStep:this.$props.keyStep,roundValue:Math.round,isDisabled:this.#a.bind(this),aria:{valueMax:this.#i.bind(this),valueNow:this.#e.bind(this),valueText:this.#s.bind(this)},onDragValueChange:this.#u.bind(this),onValueChange:this.#l.bind(this)}).attach(this),d(this.#n.bind(this))}onAttach(t){t.setAttribute("data-media-volume-slider",""),I(t,"aria-label","Volume");const{canSetVolume:e}=this.#t.$state;this.setAttributes({"data-supported":e,"aria-hidden":U(()=>!e())})}#e(){const{value:t}=this.$state,{audioGain:e}=this.#t.$state;return Math.round(t()*(e()??1))}#s(){const{value:t,max:e}=this.$state,{audioGain:s}=this.#t.$state;return W(t()/e()*(s()??1)*100,2)+"%"}#i(){const{audioGain:t}=this.#t.$state;return this.$state.max()*(t()??1)}#a(){const{disabled:t}=this.$props,{canSetVolume:e}=this.#t.$state;return t()||!e()}#n(){const{muted:t,volume:e}=this.#t.$state,s=t()?0:e()*100;this.$state.value.set(s),this.dispatch("value-change",{detail:s})}#r=Ct(this.#o.bind(this),25);#o(t){if(!t.trigger)return;const e=W(t.detail/100,3);this.#t.remote.changeVolume(e,t)}#l(t){this.#r(t)}#u(t){this.#r(t)}}class Rd extends T(HTMLElement,Od){static tagName="media-volume-slider"}class Nd extends k{static props={size:96,trackWidth:8,fillPercent:50};onConnect(t){mt(()=>{if(!this.connectScope)return;const e=t.querySelector("svg"),s=e.firstElementChild,a=s.nextElementSibling;d(this.#t.bind(this,e,s,a))})}#t(t,e,s){const{size:a,trackWidth:n,fillPercent:r}=this.$props;v(t,"width",a()),v(t,"height",a()),v(e,"stroke-width",n()),v(s,"stroke-width",n()),v(s,"stroke-dashoffset",100-r())}}class Fd extends T(ye,Nd){static tagName="media-spinner";render(){return p`
|
|
900
|
+
<svg fill="none" viewBox="0 0 120 120" aria-hidden="true" data-part="root">
|
|
901
|
+
<circle cx="60" cy="60" r="54" stroke="currentColor" data-part="track"></circle>
|
|
902
|
+
<circle
|
|
903
|
+
cx="60"
|
|
904
|
+
cy="60"
|
|
905
|
+
r="54"
|
|
906
|
+
stroke="currentColor"
|
|
907
|
+
pathLength="100"
|
|
908
|
+
stroke-dasharray="100"
|
|
909
|
+
data-part="track-fill"
|
|
910
|
+
></circle>
|
|
911
|
+
</svg>
|
|
912
|
+
`}}class Bd extends k{static props={type:"current",showHours:!1,padHours:null,padMinutes:null,remainder:!1,toggle:!1,hidden:!1};static state=new yt({timeText:"",hidden:!1});#t;#e=b(null);#s=b(!0);#i=b(!0);onSetup(){this.#t=y(),this.#o();const{type:t}=this.$props;this.setAttributes({"data-type":t,"data-remainder":this.#c.bind(this)}),new la({callback:this.#a.bind(this)}).attach(this)}onAttach(t){t.hasAttribute("role")||d(this.#l.bind(this)),d(this.#o.bind(this))}onConnect(t){A(ri(t,this.#s.set)),d(this.#n.bind(this)),d(this.#r.bind(this))}#a(t){this.#i.set(t[0].isIntersecting)}#n(){const{hidden:t}=this.$props;this.$state.hidden.set(t()||!this.#s()||!this.#i())}#r(){if(!this.$props.toggle()){this.#e.set(null);return}this.el&&wt(this.el,this.#h.bind(this))}#o(){const{hidden:t,timeText:e}=this.$state,{duration:s}=this.#t.$state;if(t())return;const{type:a,padHours:n,padMinutes:r,showHours:o}=this.$props,l=this.#u(a()),u=s(),h=this.#c();if(!Number.isFinite(l+u)){e.set("LIVE");return}const c=h?Math.max(0,u-l):l,g=Ae(c,{padHrs:n(),padMins:r(),showHrs:o()});e.set((h?"-":"")+g)}#l(){if(!this.el)return;const{toggle:t}=this.$props;v(this.el,"role",t()?"timer":null),v(this.el,"tabindex",t()?0:null)}#u(t){const{bufferedEnd:e,duration:s,currentTime:a}=this.#t.$state;switch(t){case"buffered":return e();case"duration":return s();default:return a()}}#c(){return this.$props.remainder()&&this.#e()!==!1}#h(t){if(t.preventDefault(),this.#e()===null){this.#e.set(!this.$props.remainder());return}this.#e.set(e=>!e)}}class Hd extends T(HTMLElement,Bd){static tagName="media-time";onConnect(){d(()=>{this.textContent=this.$state.timeText()})}}class Gd extends k{}class Kd extends T(HTMLElement,Gd){static tagName="media-title";#t;onSetup(){this.#t=y()}onConnect(){d(this.#e.bind(this))}#e(){const{title:t}=this.#t.$state;this.textContent=t()}}const Vt=ut();class Wd extends k{static props={placement:"top center",offset:0,alignOffset:0};constructor(){super(),new lt;const{placement:t}=this.$props;this.setAttributes({"data-placement":t})}onAttach(t){this.#t(t),Object.assign(t.style,{position:"absolute",top:0,left:0,width:"max-content"})}onConnect(t){this.#t(t);const e=O(Vt);A(()=>e.detachContent(t)),A(mt(()=>{this.connectScope&&d(this.#e.bind(this))}))}#t(t){O(Vt).attachContent(t)}#e(){const{showing:t}=O(Vt);if(!t())return;const{placement:e,offset:s,alignOffset:a}=this.$props;return li(this.el,this.#s(),e(),{offsetVarName:"media-tooltip",xOffset:a(),yOffset:s()})}#s(){return O(Vt).trigger()}}class Qd extends T(HTMLElement,Wd){static tagName="media-tooltip-content"}let Ud=0;class zd extends k{static props={showDelay:700};#t=`media-tooltip-${++Ud}`;#e=b(null);#s=b(null);#i=b(!1);constructor(){super(),new lt;const{showDelay:t}=this.$props;new ea({trigger:this.#e,content:this.#s,showDelay:t,listen(e,s,a){d(()=>{ge()&&G(e,"focus",s),G(e,"blur",a)}),new _(e).add("touchstart",n=>n.preventDefault(),{passive:!1}).add("mouseenter",s).add("mouseleave",a)},onChange:this.#l.bind(this)})}onAttach(t){t.style.setProperty("display","contents")}onSetup(){Z(Vt,{trigger:this.#e,content:this.#s,showing:this.#i,attachTrigger:this.#a.bind(this),detachTrigger:this.#n.bind(this),attachContent:this.#r.bind(this),detachContent:this.#o.bind(this)})}#a(t){this.#e.set(t);let e=t.getAttribute("data-media-tooltip");e&&this.el?.setAttribute(`data-media-${e}-tooltip`,""),v(t,"data-describedby",this.#t)}#n(t){t.removeAttribute("data-describedby"),t.removeAttribute("aria-describedby"),this.#e.set(null)}#r(t){t.setAttribute("id",this.#t),t.style.display="none",I(t,"role","tooltip"),this.#s.set(t)}#o(t){t.removeAttribute("id"),t.removeAttribute("role"),this.#s.set(null)}#l(t){const e=this.#e(),s=this.#s();e&&v(e,"aria-describedby",t?this.#t:null);for(const a of[this.el,e,s])a&&v(a,"data-visible",t);this.#i.set(t)}}class jd extends T(HTMLElement,zd){static tagName="media-tooltip"}class Yd extends k{constructor(){super(),new lt}onConnect(t){A(mt(()=>{if(!this.connectScope)return;this.#t();const e=O(Vt);A(()=>{const s=this.#e();s&&e.detachTrigger(s)})}))}#t(){const t=this.#e(),e=O(Vt);t&&e.attachTrigger(t)}#e(){const t=this.el.firstElementChild;return t?.localName==="button"||t?.getAttribute("role")==="button"?t:this.el}}class Xd extends T(HTMLElement,Yd){static tagName="media-tooltip-trigger";onConnect(){this.style.display="contents"}}w(ql),w(Cl),w(Al),w(cd),w(tl),w(jd),w(Xd),w(Qd),w(bl),w(pl),w(nl),w(ol),w(fl),w(vl),w(il),w(dl),w(wl),w($d),w(gd),w(Rd),w(Vd),w(_d),w(yd),w(vd),w(xd),w(kd),w(Md),w(Ed),w(qd),w(Xl),w(Hl),w(id),w(sd),w(Zl),w(Vl),w(Ol),w(dd),w(_l),w(ad),w(Fl),w(od),w(rd),w(Ll),w(ca),w(kl),w(cl),w(Hd),w(Kd),w(xl),w(Fd);export{Xe as a,Je as c};
|