@munsonlabs/video-player 0.2.3 → 0.2.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +25 -23
- package/dist/elements/core.d.mts +3 -0
- package/dist/elements/core.mjs +1 -1
- package/dist/elements/index.d.mts +3 -0
- package/dist/elements/index.mjs +1 -1
- package/dist/index.d.mts +5 -0
- package/dist/index.mjs +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -100,29 +100,31 @@ import { VideoStage, HideMarker } from '@munsonlabs/video-player'
|
|
|
100
100
|
|
|
101
101
|
## VideoCard / VideoPlayer Props
|
|
102
102
|
|
|
103
|
-
| Prop | Type | Default | Description
|
|
104
|
-
| ------------------- | -------------- | -------- |
|
|
105
|
-
| `src` | `string` | - | **Required.** The video URL or platform-specific URI (the platform is auto-detected from its shape, see [Platform URLs](#platform-urls))
|
|
106
|
-
| `title` | `string` | `''` | Video title
|
|
107
|
-
| `poster` | `string` | `''` | Poster image URL
|
|
108
|
-
| `aspectRatio` | `string` | `'16:9'` | e.g. `'16:9'`, `'9:16'`, `'4:3'`
|
|
109
|
-
| `autoplay` | `boolean` | `false` | Autoplay on mount, see [Autoplay, mute & volume](#autoplay-mute--volume)
|
|
110
|
-
| `muted` | `boolean` | - | Force a starting mute state - if unset, follows the shared audio preference, see [Autoplay, mute & volume](#autoplay-mute--volume)
|
|
111
|
-
| `volume` | `number` | - | Force a starting volume (0-1) - if unset, follows the shared audio preference, see [Autoplay, mute & volume](#autoplay-mute--volume)
|
|
112
|
-
| `lazy` | `boolean` | `true`\* | Show placeholder until clicked
|
|
113
|
-
| `nativeUi` | `boolean` | `false` | Use the platform's native controls (YouTube, Vimeo, Dailymotion only)
|
|
114
|
-
| `autoStage` | `boolean` | `false` | Immediately send this video to the stage on mount
|
|
115
|
-
| `playbackRate` | `number` | `1` | Initial playback rate
|
|
116
|
-
| `
|
|
117
|
-
| `
|
|
118
|
-
| `
|
|
119
|
-
| `
|
|
120
|
-
| `
|
|
121
|
-
| `
|
|
122
|
-
| `
|
|
123
|
-
| `
|
|
124
|
-
| `
|
|
125
|
-
| `
|
|
103
|
+
| Prop | Type | Default | Description |
|
|
104
|
+
| ------------------- | -------------- | -------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
105
|
+
| `src` | `string` | - | **Required.** The video URL or platform-specific URI (the platform is auto-detected from its shape, see [Platform URLs](#platform-urls)) |
|
|
106
|
+
| `title` | `string` | `''` | Video title |
|
|
107
|
+
| `poster` | `string` | `''` | Poster image URL |
|
|
108
|
+
| `aspectRatio` | `string` | `'16:9'` | e.g. `'16:9'`, `'9:16'`, `'4:3'` |
|
|
109
|
+
| `autoplay` | `boolean` | `false` | Autoplay on mount, see [Autoplay, mute & volume](#autoplay-mute--volume) |
|
|
110
|
+
| `muted` | `boolean` | - | Force a starting mute state - if unset, follows the shared audio preference, see [Autoplay, mute & volume](#autoplay-mute--volume) |
|
|
111
|
+
| `volume` | `number` | - | Force a starting volume (0-1) - if unset, follows the shared audio preference, see [Autoplay, mute & volume](#autoplay-mute--volume) |
|
|
112
|
+
| `lazy` | `boolean` | `true`\* | Show placeholder until clicked |
|
|
113
|
+
| `nativeUi` | `boolean` | `false` | Use the platform's native controls (YouTube, Vimeo, Dailymotion only) |
|
|
114
|
+
| `autoStage` | `boolean` | `false` | Immediately send this video to the stage on mount |
|
|
115
|
+
| `playbackRate` | `number` | `1` | Initial playback rate |
|
|
116
|
+
| `loop` | `boolean` | `false` | Start with looping on - reactive, so flipping it later is the same as calling `toggleLoop()` |
|
|
117
|
+
| `preload` | `PreloadMode` | - | `'none' \| 'metadata' \| 'auto'` - the native `<video preload>` attribute. `'none'` defers loading for MP4 and HLS alike (hls.js is held back until the first play), not DASH; other values leave HLS as normal |
|
|
118
|
+
| `adTagUrl` | `string` | `''` | VAST or VMAP ad tag URL |
|
|
119
|
+
| `adMacroParams` | `object` | - | Fills `{macro}` tokens on whichever ad tag URL ends up in use, see [Ads](#ads-ima--vast--vmap) |
|
|
120
|
+
| `headerBidding` | `object` | - | Runs a Prebid.js auction before the ad plays, see [Header bidding](#header-bidding-prebidjs) |
|
|
121
|
+
| `tracks` | `array` | - | WebVTT caption/subtitle tracks, see [Captions](#captions-webvtt) |
|
|
122
|
+
| `payload` | `object` | `{}` | Arbitrary data attached to every `state-change` event |
|
|
123
|
+
| `action` | `PlayerAction` | `null` | Button shown in the player HUD, see [Actions](#actions) |
|
|
124
|
+
| `disableTapCapture` | `boolean` | `false` | Disables the full-video tap-to-reveal-controls overlay (tap/click still reaches embed platform UI underneath, e.g. YouTube's own) |
|
|
125
|
+
| `controls` | `boolean` | `true` | Set `false` to render a bare `<video>` with no built-in HUD - drive playback with your own UI instead, see [Headless Controls](#headless-controls) |
|
|
126
|
+
| `playInView` | `boolean` | `false` | Auto-play once at least half the player is visible, auto-pause once it isn't - e.g. for a scroll-snap feed, see [Autoplay, mute & volume](#autoplay-mute--volume) |
|
|
127
|
+
| `pin` | `PinCorner` | - | Pins the player to this screen corner once it scrolls out of view while playing, instead of auto-pausing - see [Pinning a single player](#pinning-a-single-player) |
|
|
126
128
|
|
|
127
129
|
\* `lazy` only has an effect on `VideoCard` (default `true`), which is what actually implements the placeholder-until-clicked behaviour. `VideoPlayer` accepts the prop for type compatibility but defaults to `false` and never reads it: using `<VideoPlayer>` directly always mounts the real player immediately, regardless of `lazy`.
|
|
128
130
|
|
package/dist/elements/core.d.mts
CHANGED
|
@@ -138,8 +138,11 @@ interface PlayerProps {
|
|
|
138
138
|
controls?: boolean;
|
|
139
139
|
playInView?: boolean;
|
|
140
140
|
pin?: PinCorner;
|
|
141
|
+
loop?: boolean;
|
|
142
|
+
preload?: PreloadMode;
|
|
141
143
|
}
|
|
142
144
|
type PinCorner = 'bottom-right' | 'bottom-left' | 'top-right' | 'top-left';
|
|
145
|
+
type PreloadMode = 'none' | 'metadata' | 'auto';
|
|
143
146
|
type VideoEntry = PlayerProps;
|
|
144
147
|
interface VideoSelectDetail extends VideoEntry {
|
|
145
148
|
fromGesture?: boolean;
|
package/dist/elements/core.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{A as e,C as t,D as n,E as r,S as i,T as a,a as o,d as s,g as c,h as l,i as u,j as d,k as f,o as p,r as m,s as h,u as g,x as _}from"./chunks/constants-zR-UwEWY.mjs";import{n as v,r as y,t as b}from"./chunks/platform-Dg9JBh8M.mjs";import{c as ee,d as te,s as x}from"./chunks/embedShared-duyOYFQN.mjs";import{Fragment as S,Transition as C,computed as w,createBlock as T,createCommentVNode as E,createElementBlock as D,createElementVNode as O,createStaticVNode as ne,createTextVNode as re,createVNode as k,defineComponent as A,defineCustomElement as j,inject as M,mergeProps as N,nextTick as P,normalizeClass as F,normalizeProps as ie,normalizeStyle as I,onBeforeUnmount as L,onMounted as R,openBlock as z,provide as B,reactive as V,ref as H,renderList as ae,renderSlot as U,resolveDynamicComponent as oe,shallowRef as se,toDisplayString as W,toRef as G,unref as K,watch as q,withCtx as J,withModifiers as Y}from"vue";const ce=[];function le(e){ce.push(e)}function ue(e){if(!e)return{key:`html5`,embed:!1};let t=ce.find(t=>t.test(e));return{key:t?.key??`html5`,embed:t?.embed??!1}}const de={},fe={};function pe(e,t){de[e]=t}async function me(e,t,n){let r=de[e];if(!r){let t=fe[e];if(!t)return null;r=await t(),de[e]=r}return r(t,n)}const he={},ge={};function _e(e,t){he[e]=t}function ve(e){if(/\.m3u8(\?|#|$)/.test(e))return p;if(/\.mpd(\?|#|$)/.test(e))return m;if(/\.mp4(\?|#|$)/.test(e))return s}async function ye(e,t){let n=he[e];if(!n){let t=ge[e];t&&(n=await t(),he[e]=n)}return n?n(t):{src:t,type:ve(t)}}function be(e){le({test:e.test,key:e.key,embed:e.embed}),e.embed?pe(e.key,e.createAdapter):e.resolveSource&&_e(e.key,e.resolveSource)}function xe(e){le({key:e.key,test:e.test,embed:e.embed}),e.embed?fe[e.key]=e.loadAdapter:ge[e.key]=e.loadResolver}xe({key:`youtube`,test:e=>/youtu\.be|youtube\.com/.test(e),embed:!0,loadAdapter:()=>import(`./chunks/youtube-DbJ-IrvP.mjs`).then(e=>e.createYoutubeAdapter)}),xe({key:`vimeo`,test:e=>/vimeo\.com|player\.vimeo\.com/.test(e),embed:!0,loadAdapter:()=>import(`./chunks/vimeo-WJYDJPA3.mjs`).then(e=>e.createVimeoAdapter)}),xe({key:`dailymotion`,test:e=>/dailymotion\.com|dai\.ly/.test(e),embed:!0,loadAdapter:()=>import(`./chunks/dailymotion-gEquA4h5.mjs`).then(e=>e.createDailymotionAdapter)}),xe({key:`jwplayer`,test:e=>/cdn\.jwplayer\.com/.test(e)||e.startsWith(`jwplayer://`),embed:!1,loadResolver:()=>import(`./chunks/jwplayer-WIkwoJTA.mjs`).then(e=>e.resolveSource)}),xe({key:`brightcove`,test:e=>/players\.brightcove\.net/.test(e),embed:!1,loadResolver:()=>import(`./chunks/brightcove-rNI-XRxB.mjs`).then(e=>e.resolveSource)});function Se(e,t=!1){if(!e||isNaN(e))return`0:00`;let n=t?Math.round(e):Math.floor(e);return`${Math.floor(n/60)}:${String(n%60).padStart(2,`0`)}`}const Ce=new Set;function we(e){return Ce.add(e),()=>Ce.delete(e)}function Te(e){Ce.forEach(t=>{if(t!==e)try{t()}catch{}})}function Ee(e){let t=new Set,n=null;function r(){t.forEach(e=>e())}return i=>(n||=e(r),t.add(i),()=>{t.delete(i),t.size===0&&(n?.(),n=null)})}const De=Ee(e=>(document.addEventListener(`fullscreenchange`,e),document.addEventListener(`webkitfullscreenchange`,e),()=>{document.removeEventListener(`fullscreenchange`,e),document.removeEventListener(`webkitfullscreenchange`,e)})),Oe=Ee(e=>(document.addEventListener(`visibilitychange`,e),window.addEventListener(`blur`,e),()=>{document.removeEventListener(`visibilitychange`,e),window.removeEventListener(`blur`,e)}));function ke(e){let t=H(!1),n=H(!1),r=null;function i(){let e=document;t.value=!!(document.fullscreenElement||e.webkitFullscreenElement),n.value=!1}function a(){let r=e();if(r){if(t.value){r.exitFullscreen();return}n.value=!0,r.enterFullscreen()}}function o(){n.value=!0}function s(e){e.on(l,()=>{n.value=!0}),e.on(c,()=>{n.value=!1}),e.on(`nativefullscreenenter`,()=>{t.value=!0,n.value=!1}),e.on(`nativefullscreenexit`,()=>{t.value=!1,n.value=!1})}return R(()=>{r=De(i)}),L(()=>{r?.()}),{isFullscreen:t,isFullscreenPending:n,toggleFullscreen:a,markFullscreenPending:o,attachPlayerEvents:s}}function Ae(e){let t=H(!1),n=null;function r(){clearTimeout(n??void 0),t.value&&e(`bufferend`),t.value=!1}function i(i){i.on(`waiting`,()=>{clearTimeout(n??void 0),n=setTimeout(()=>{t.value=!0,e(`bufferstart`)},500)}),i.on(`playing`,r),i.on(`canplay`,r)}return L(()=>clearTimeout(n??void 0)),{isBuffering:t,attachPlayerEvents:i,reset:r}}function je(e,t,n){let r=new Set;function a(){if(!t.value)return;let a=e.value/t.value;for(let[e,t]of i)!r.has(e)&&a>=e&&(r.add(e),n(t))}function o(){r.clear()}return{checkQuartiles:a,reset:o}}function Me(){try{return JSON.parse(localStorage.getItem(`player:positions`)??`[]`)}catch{return[]}}function Ne(e){localStorage.setItem(n,JSON.stringify(e))}function Pe(e,t){if(t<5)return;let n=Me().filter(t=>t.url!==e);n.unshift({url:e,time:t}),Ne(n.slice(0,5))}function Fe(e){return Me().find(t=>t.url===e)?.time??null}function Ie(e){Ne(Me().filter(t=>t.url!==e))}function Le(e,t,n){let r=!1;function i(t){if(r)return;let n=Fe(e);n&&t.setCurrentTime(n),r=!0}function a(t){t&&!n.value&&Pe(e,t.currentTime()??0)}function o(){Ie(e)}let s=Oe(()=>{document.visibilityState===`hidden`&&a(t())});return L(()=>{a(t()),s()}),{restoreOnce:i,save:a,clear:o}}const Re=new WeakMap,ze=[.1,.5];function Be(e){let t=Re.get(e);if(t)return t;let n=new Set,r=new IntersectionObserver(([e])=>n.forEach(t=>t(e)),{threshold:ze});r.observe(e);let i={observer:r,callbacks:n};return Re.set(e,i),i}function Ve(e,t){let n=Be(e);return n.callbacks.add(t),()=>{n.callbacks.delete(t),n.callbacks.size===0&&(n.observer.disconnect(),Re.delete(e))}}let He=null,X=null;function Ue(e,t){let n=Ve(e,n=>{n.intersectionRatio<.5||(X&&clearTimeout(X),He=e,X=setTimeout(()=>{He=null,X=null,t()},150))});return()=>{He===e&&X&&(clearTimeout(X),He=null,X=null),n()}}function We(e,t,n,r,i){let a=null;R(()=>{let o=e.value&&x(e.value);o&&(a=Ve(o,e=>{let a=t();e.intersectionRatio<.1&&a&&!a.paused()&&!n.value&&!r.value&&!i.value&&a.pause()}))}),L(()=>a?.())}function Ge(e){return e.kind===`captions`||e.kind===`subtitles`}function Ke(e,t){e.textTracks.addEventListener(`addtrack`,t),e.textTracks.addEventListener(`removetrack`,t);function n(){let t=[];for(let n=0;n<e.textTracks.length;n++){let r=e.textTracks[n];Ge(r)&&t.push({index:n,label:r.label||r.language||`Track ${n+1}`,language:r.language})}return t}function r(t){for(let n=0;n<e.textTracks.length;n++){let r=e.textTracks[n];Ge(r)&&(r.mode=n===t?`showing`:`hidden`)}}function i(){for(let t=0;t<e.textTracks.length;t++){let n=e.textTracks[t];if(Ge(n)&&n.mode===`showing`)return t}return null}return{supportsCaptions:()=>n().length>0,getCaptionTracks:n,setCaptionTrack:r,getActiveCaptionTrack:i,dispose:()=>{e.textTracks.removeEventListener(`addtrack`,t),e.textTracks.removeEventListener(`removetrack`,t)}}}function qe(e){let t=new Map;for(let n of e){if(!n.height)continue;let e=t.get(n.height);(!e||n.bitrate>e.bitrate)&&t.set(n.height,n)}return[...t.values()].sort((e,t)=>e.height-t.height)}function Je(e){function t(){return qe(e()?.levels()??[])}function n(){return e()?.isAuto()??!0}function r(){let t=e();return t?n()?null:t.currentIndex():null}function i(t){e()?.setIndex(t)}return{supportsQuality:()=>t().length>0,getQualityLevels:t,getCurrentQuality:r,isAutoQuality:n,setQuality:i}}function Ye(e,t,n){let r=[[`webkitbeginfullscreen`,t],[`webkitendfullscreen`,n]];for(let[t,n]of r)e.addEventListener(t,n);function i(){let t=e;if(typeof t.webkitEnterFullscreen==`function`){t.webkitEnterFullscreen();return}let n=x(e);n&&y(n)}function a(){let t=e;if(typeof t.webkitExitFullscreen==`function`){t.webkitExitFullscreen();return}b()}return{enterFullscreen:i,exitFullscreen:a,dispose:()=>{for(let[t,n]of r)e.removeEventListener(t,n)}}}function Xe(e,t){let n=[[`enterpictureinpicture`,t],[`leavepictureinpicture`,t]];for(let[t,r]of n)e.addEventListener(t,r);function r(){return typeof document<`u`&&!!document.pictureInPictureEnabled&&!e.disablePictureInPicture}function i(){return document.pictureInPictureElement===e}function a(){i()?document.exitPictureInPicture():r()&&e.requestPictureInPicture()}return{supportsPip:r,isPipActive:i,togglePip:a,dispose:()=>{for(let[t,r]of n)e.removeEventListener(t,r)}}}const Ze=[`play`,`pause`,`ended`,`error`,`timeupdate`,`durationchange`,`progress`,`volumechange`,`ratechange`,`seeking`,`seeked`,`waiting`,`playing`,`canplay`];function Qe(e){return{levels:()=>e.levels.map((e,t)=>({index:t,height:e.height,bitrate:e.bitrate,label:`${e.height}p`})),isAuto:()=>e.autoLevelEnabled,currentIndex:()=>e.manualLevel,setIndex:t=>{e.currentLevel=t??-1}}}function $e(e){return{levels:()=>e.getBitrateInfoListFor(`video`).map(e=>({index:e.qualityIndex,height:e.height,bitrate:e.bitrate,label:`${e.height}p`})),isAuto:()=>e.getSettings().streaming?.abr?.autoSwitchBitrate?.video??!0,currentIndex:()=>e.getQualityFor(`video`),setIndex:t=>{if(t===null){e.updateSettings({streaming:{abr:{autoSwitchBitrate:{video:!0}}}});return}e.updateSettings({streaming:{abr:{autoSwitchBitrate:{video:!1}}}}),e.setQualityFor(`video`,t,!0)}}}function et(e,t){let n=te(),r=null,i=null,a=!1,o=null,s=null;async function c(i){let{default:s}=await import(`hls.js`);if(a||o!==i)return;if(typeof s?.isSupported!=`function`||!s.isSupported()){e.src=i,t.autoplay&&e.play();return}r=new s({liveDurationInfinity:!0}),r.loadSource(i),r.attachMedia(e),t.autoplay&&e.play();let c=s.Events,l=s.ErrorTypes;r.on(c.MANIFEST_PARSED,f(`qualitychange`)),r.on(c.LEVEL_SWITCHED,f(`qualitychange`)),r.on(c.ERROR,(e,t)=>{if(t.fatal&&!a&&o===i)switch(t.type){case l.NETWORK_ERROR:r?.startLoad();break;case l.MEDIA_ERROR:r?.recoverMediaError();break;default:r?.destroy(),r=null,n.trigger(`error`)}})}async function l(r){let o=await import(`dashjs`);if(a||s!==r)return;let c=o.MediaPlayer().create();i=c,c.initialize(e,r,t.autoplay??!1);let l=o.MediaPlayer.events;c.on(l.QUALITY_CHANGE_RENDERED,f(`qualitychange`)),c.on(l.STREAM_INITIALIZED,f(`qualitychange`)),c.on(l.ERROR,()=>{a||s!==r||(c.destroy(),i=null,n.trigger(`error`))})}function u(){return/Apple/.test(navigator.vendor)&&!/CriOS|FxiOS|OPiOS|EdgiOS|Chrome|Chromium|Android/.test(navigator.userAgent)&&(e.canPlayType(`application/vnd.apple.mpegurl`)!==``||e.canPlayType(`application/x-mpegURL`)!==``)}function d(n,a){if(r?.destroy(),r=null,o=null,i?.destroy(),i=null,s=null,a===`application/dash+xml`){s=n,l(n);return}if(a===`application/x-mpegURL`&&!u()){o=n,c(n);return}e.src=n,t.autoplay&&e.play()}let f=e=>()=>n.trigger(e),p=Ze.map(e=>[e,f(e)]);for(let[t,n]of p)e.addEventListener(t,n);let m=Ke(e,f(`captionschange`)),h=Je(()=>r?Qe(r):i?$e(i):null),g=Ye(e,f(`nativefullscreenenter`),f(`nativefullscreenexit`)),_=Xe(e,f(`pipchange`)),{poster:v,muted:y,autoplay:b,volume:ee,playbackRate:x,src:S,type:C}=t;return e.poster=v??``,e.muted=y??b??!1,e.volume=ee??1,e.playbackRate=x??1,e.playsInline=!0,d(S,C),{el:e,play:()=>e.play(),pause:()=>e.pause(),paused:()=>e.paused,currentTime:()=>e.currentTime,setCurrentTime:t=>{e.currentTime=t},duration:()=>e.duration,volume:()=>e.volume,setVolume:t=>{e.volume=t},muted:()=>e.muted,setMuted:t=>{e.muted=t},playbackRate:()=>e.playbackRate,setPlaybackRate:t=>{e.playbackRate=t},bufferedEnd:()=>{let{buffered:t,duration:n}=e;if(!t.length)return 0;let r=t.end(t.length-1);return n&&r>n?n:r},error:()=>{let t=e.error;return t?{code:t.code,message:t.message||`This video could not be played.`}:null},setSrc:d,supportsPlaybackRate:()=>!0,supportsCaptions:m.supportsCaptions,getCaptionTracks:m.getCaptionTracks,setCaptionTrack:m.setCaptionTrack,getActiveCaptionTrack:m.getActiveCaptionTrack,supportsQuality:h.supportsQuality,getQualityLevels:h.getQualityLevels,getCurrentQuality:h.getCurrentQuality,isAutoQuality:h.isAutoQuality,setQuality:h.setQuality,supportsPip:_.supportsPip,isPipActive:_.isPipActive,togglePip:_.togglePip,enterFullscreen:g.enterFullscreen,exitFullscreen:g.exitFullscreen,on:n.on,off:n.off,dispose:()=>{a=!0,r?.destroy(),i?.destroy();for(let[t,n]of p)e.removeEventListener(t,n);m.dispose(),g.dispose(),_.dispose(),n.dispose()}}}function tt(e,t){if(!t||!Object.keys(t).length)return e;let n=e;for(let[e,r]of Object.entries(t))r!=null&&r!==``&&(n=n.split(`{${e}}`).join(encodeURIComponent(r)));return n}function nt(){try{let e=localStorage.getItem(a);if(!e)return o;let t=JSON.parse(e);return{muted:typeof t.muted==`boolean`?t.muted:o.muted,volume:typeof t.volume==`number`?t.volume:o.volume}}catch{return o}}function rt(e){localStorage.setItem(a,JSON.stringify(e))}let it=!1;function at(){it=!0}function ot(){return it}function st(e){rt(e),e.muted||at()}function ct(e,t=!0){if(e!==void 0)return e;if(!t)return;let n=nt().muted;return n||at(),n}function lt(e,t){return e===void 0?t&&!ot()?!0:nt().muted:e}function ut(e){return e.volume??nt().volume}function dt(e){return{muted:lt(e.muted,!!(e.autoplay||e.playInView)),volume:ut(e)}}async function ft(e,t,n){if(!t.value)return{status:`aborted`};let r=await me(e,t.value,{src:n.src,poster:n.poster,autoplay:n.autoplay,...dt(n),nativeUi:n.nativeUi});return t.value?r?{status:`mounted`,mounted:{adapter:r,currentSrc:{src:n.src},nativeUi:!!n.nativeUi,needsReveal:!0}}:{status:`unsupported`}:{status:`aborted`}}async function pt(e,t,n,r,i){let a=await ye(e,n.src).catch(()=>({src:n.src}));if(!t.value)return{status:`aborted`};let o=et(t.value,{src:a.src,type:a.type,poster:a.poster||n.poster||``,autoplay:n.autoplay,...dt(n),playbackRate:r.value}),s=tt(n.adTagUrl||a.adTagUrl||``,n.adMacroParams);return i.attach(t.value,o,s,n.headerBidding),{status:`mounted`,mounted:{adapter:o,currentSrc:{src:a.src,type:a.type},needsReveal:!1}}}function mt(e,t,n,r,i){return e.embed?ft(e.key,t,n):pt(e.key,t,n,r,i)}function ht(e,t,n,r,i){let a=null;R(()=>{let o=e.value&&x(e.value);o&&(a=Ue(o,()=>{let e=t();e&&e.paused()&&!n.value&&!r.value&&(e.setMuted(lt(i,!0)),e.play())}))}),L(()=>a?.())}function gt(e,t,n,r,i,a){function o(){let n=e();if(n&&t.value){if(!a.value){n.play();return}n.pause()}}function s(t){e()?.setCurrentTime(n.value*(t/100))}function c(){let t=e();if(!t)return;let n=!t.muted();t.setMuted(n),st({muted:n,volume:t.volume()})}function l(t){let n=e();if(!n)return;let r=t===0;n.setVolume(t),n.setMuted(r),st({muted:r,volume:t})}function u(){r.value=!r.value}function d(t){let n=e();n&&(n.setPlaybackRate(t),i.value=t)}return{togglePlay:o,seek:s,toggleMute:c,setVolume:l,toggleLoop:u,setPlaybackRate:d}}function _t(e,t){let{isPlaying:n,hasEnded:r,isReady:i,isAdPlaying:a,isLive:o,current:s,total:c,buffered:l,vol:u,isMuted:d,isLooping:f,playbackRate:p,supportsPlaybackRate:m,supportsCaptions:h,captionTracks:g,activeCaptionIndex:_,supportsQuality:v,qualityLevels:y,currentQualityIndex:b,isAutoQuality:ee,supportsPip:te,isPipActive:x,hasStarted:S,isError:C,errorMessage:w}=e,{fire:T,pauseThisPlayer:E,positionMemory:D,quartiles:O,buffering:ne,fullscreen:re}=t;function k(e){i.value=!0,m.value=e.supportsPlaybackRate();function t(){g.value=e.getCaptionTracks(),h.value=g.value.length>0;let t=e.getActiveCaptionTrack();t!==_.value&&(_.value=t,S.value&&T(`captionchange`,{captionIndex:t}))}t(),e.on(`captionschange`,t);function k(){y.value=e.getQualityLevels(),v.value=y.value.length>0;let t=e.getCurrentQuality(),n=e.isAutoQuality(),r=t!==b.value||n!==ee.value;b.value=t,ee.value=n,r&&S.value&&T(`qualitychange`,{qualityIndex:n?null:t})}k(),e.on(`qualitychange`,k);function A(){te.value=e.supportsPip();let t=e.isPipActive();t!==x.value&&(x.value=t,S.value&&T(`pipchange`,{isPipActive:t}))}A(),e.on(`pipchange`,A);let j=()=>{if(a.value)return;let t=e.duration();if(t===1/0){o.value=!0;return}o.value=!1,t&&t>0&&isFinite(t)&&(c.value=t)};e.on(`adstart`,()=>{Te(E),a.value=!0,T(`adstart`)}),e.on(`adend`,()=>{a.value=!1,T(`adend`)}),e.on(`play`,()=>{Te(E),S.value=!0,n.value=!0,r.value=!1,o.value||D.restoreOnce(e),T(`play`)}),e.on(`pause`,()=>{n.value=!1,o.value||D.save(e),T(`pause`)}),e.on(`ended`,()=>{if(n.value=!1,O.reset(),ne.reset(),f.value){e.setCurrentTime(0),e.play();return}c.value&&(s.value=c.value),r.value=!0,D.clear(),T(`ended`)}),e.on(`seeked`,()=>{T(`seeked`)}),e.on(`error`,()=>{let t=e.error();w.value=t?.message||`This video could not be played.`,C.value=!0,i.value=!0,console.error(`Video playback error:`,w.value),T(`error`,{error:t})});let M=0;e.on(`timeupdate`,()=>{if(r.value||a.value)return;s.value=e.currentTime()??0,c.value||j(),m.value||=e.supportsPlaybackRate();let t=e.getActiveCaptionTrack();_.value!==t&&(_.value=t,S.value&&T(`captionchange`,{captionIndex:t})),o.value||O.checkQuartiles();let n=Date.now();S.value&&n-M>=250&&(M=n,T(`timeupdate`))}),e.on(`durationchange`,j),e.on(`progress`,()=>{if(a.value)return;let t=e.duration();l.value=t?e.bufferedEnd()/t*100:0}),e.on(`volumechange`,()=>{let t=e.muted();u.value=e.volume()??1,d.value=t??!1,S.value&&T(`volumechange`,{isMuted:t})}),e.on(`ratechange`,()=>{let t=e.playbackRate()??1;p.value=t,S.value&&T(`ratechange`,{playbackRate:t})}),ne.attachPlayerEvents(e),re.attachPlayerEvents(e)}return{attachPlayerEvents:k}}function vt(e,t){let{isAdPlaying:n,isAdPaused:r,isAdMuted:i,adRemainingTime:a}=e,{fire:o,pauseThisPlayer:s}=t,c=null,l=null,u=!1;async function d(e,t,d,f){if(!(d||f)||!e.parentElement)return;let p=!1;t.on(`play`,()=>{c?c.requestAdsOnFirstPlay():p=!0});let m=null;f&&import(`./chunks/prebid-RHDT0DOX.mjs`).then(({resolveHeaderBiddingAdTagUrl:e})=>e(f,d).catch(()=>d)).then(e=>{c?c.setAdTagUrl(e):m=e});function h(){!v()&&t.isPipActive()&&document.exitPictureInPicture()}function g(){!v()&&(document.hidden||!document.hasFocus())&&c?.isAdPlaying()&&c.pauseAd()}let _=Oe(g),y=()=>{t.isPipActive()||g()};t.on(`pipchange`,y),l=()=>{_(),t.off(`pipchange`,y)};let{attachAds:b}=await import(`./chunks/ads-BV769SMr.mjs`);!u&&e.parentElement&&(c=b(e.parentElement,e,d,{onAdStart:()=>{n.value=!0,r.value=!1,o(`adstart`),h(),g()},onAdEnd:()=>{n.value=!1,r.value=!1,a.value=0,o(`adend`)},onAdPauseChange:e=>{r.value=e,e||Te(s)},onAdMuteChange:e=>{i.value=e},onAdProgress:e=>{a.value=e},onError:e=>{n.value=!1,r.value=!1,a.value=0,console.error(`Ad playback error:`,e)}}),m&&c.setAdTagUrl(m),p&&c.requestAdsOnFirstPlay())}return{attach:d,isAdPlaying:()=>c?.isAdPlaying()??!1,isAdPaused:()=>c?.isAdPaused()??!1,pauseAd:()=>c?.pauseAd(),resumeAd:()=>c?.resumeAd(),toggleAdMute:()=>c?.toggleAdMute(),dispose:()=>{u=!0,c?.dispose(),c=null,l?.(),l=null}}}function yt(e,t,n){let r=null,i=null,a=null,o=!1,s=H(!1),c=H(!1),l=H(!1),u=H(!1),d=H(0),f=H(0),p=H(0),m=H(ut(t)),h=H(!1),g=H(!1),_=H(!1),v=H(0),y=H(lt(t.muted,!!(t.autoplay||t.playInView))),b=H(!1),te=H(t.playbackRate??1),x=H(!1),S=H(!1),C=H([]),T=H(null),E=H(!1),D=H([]),O=H(null),ne=H(!0),re=H(!1),k=H(!1),A=H(!1),j=H(!1),M=H(``),N=H(!1),P=w(()=>f.value?d.value/f.value*100:0),F=w(()=>Math.max(p.value,P.value)),ie=w(()=>!y.value&&m.value>0),I=()=>r,z=w(()=>{if(typeof t.payload!=`string`)return t.payload??{};try{return JSON.parse(t.payload)}catch{return{}}});function B(e,r={}){n(`state-change`,{type:e,currentTime:d.value,duration:f.value,src:t.src,...r,payload:z.value})}let V=ke(I),ae=Ae(B),U=Le(t.src,I,c),oe=je(d,f,B);function se(){r&&a&&(j.value=!1,M.value=``,r.setSrc(a.src,a.type))}function W(){if(K.isAdPlaying()){K.pauseAd();return}r?.pause()}function G(){if(K.isAdPlaying()){K.isAdPaused()?K.resumeAd():K.pauseAd();return}J.togglePlay()}let K=vt({isAdPlaying:h,isAdPaused:g,isAdMuted:_,adRemainingTime:v},{fire:B,pauseThisPlayer:W}),J=gt(I,l,f,b,te,s),{attachPlayerEvents:Y}=_t({isPlaying:s,hasEnded:c,isReady:l,isAdPlaying:h,isLive:u,current:d,total:f,buffered:p,vol:m,isMuted:y,isLooping:b,playbackRate:te,supportsPlaybackRate:x,supportsCaptions:S,captionTracks:C,activeCaptionIndex:T,supportsQuality:E,qualityLevels:D,currentQualityIndex:O,isAutoQuality:ne,supportsPip:re,isPipActive:k,hasStarted:A,isError:j,errorMessage:M},{fire:B,pauseThisPlayer:W,positionMemory:U,quartiles:oe,buffering:ae,fullscreen:V});function ce(e){r?.setCaptionTrack(e),T.value=e,A.value&&B(`captionchange`,{captionIndex:e})}function le(e){r?.setQuality(e),O.value=e,ne.value=e===null,A.value&&B(`qualitychange`,{qualityIndex:e})}function de(){r?.togglePip()}function fe(){J.toggleLoop(),A.value&&B(`loopchange`,{isLooping:b.value})}q(()=>t.muted,e=>{r&&e!==void 0&&r.setMuted(e)}),q(()=>t.playbackRate,e=>{r&&e!==void 0&&r.setPlaybackRate(e)}),We(e,I,V.isFullscreen,V.isFullscreenPending,w(()=>!!t.pin)),t.playInView&&ht(e,I,V.isFullscreen,V.isFullscreenPending,t.muted);function pe(e){r=e.adapter,a=e.currentSrc,o=e.needsReveal,e.nativeUi!==void 0&&(N.value=e.nativeUi),i=we(W),Y(e.adapter)}return q(A,t=>{t&&o&&e.value&&r&&ee(e.value,r.el)}),R(async()=>{let n=await mt(ue(t.src),e,t,te,K);if(n.status===`unsupported`){j.value=!0,l.value=!0,M.value=`This platform is not yet supported.`;return}n.status===`mounted`&&pe(n.mounted)}),L(()=>{i?.(),K.dispose(),r?.dispose(),r=null}),{isPlaying:s,hasEnded:c,isReady:l,isLive:u,isBuffering:ae.isBuffering,current:d,total:f,progress:P,bufferedDisplay:F,hasStarted:A,isError:j,errorMessage:M,fmt:Se,fire:B,retry:se,togglePlay:G,seek:J.seek,isAdPlaying:h,isAdPaused:g,isAdMuted:_,adRemainingTime:v,toggleAdMute:K.toggleAdMute,vol:m,isMuted:y,isAudible:ie,toggleMute:J.toggleMute,setVolume:J.setVolume,isLooping:b,toggleLoop:fe,currentPlaybackRate:te,setPlaybackRate:J.setPlaybackRate,supportsPlaybackRate:x,isFullscreen:V.isFullscreen,isFullscreenPending:V.isFullscreenPending,toggleFullscreen:V.toggleFullscreen,markFullscreenPending:V.markFullscreenPending,supportsCaptions:S,captionTracks:C,activeCaptionIndex:T,setCaptionTrack:ce,supportsQuality:E,qualityLevels:D,currentQualityIndex:O,isAutoQuality:ne,setQuality:le,supportsPip:re,isPipActive:k,togglePip:de,isNativeUi:N}}const bt=new Set([`ArrowLeft`,`ArrowRight`,`ArrowUp`,`ArrowDown`,`Home`,`End`]);function xt(e,t){function n(e,t,n){return Math.min(n,Math.max(t,e))}function r(t){if(!e.total)return;let r=n(e.current+t,0,e.total);e.seek(r/e.total*100)}function i(t){e.setVolume(n(e.vol+t,0,1))}function a(){e.supportsCaptions&&e.setCaptionTrack(e.activeCaptionIndex===null?0:null)}function o(n){if(n.repeat||n.metaKey||n.ctrlKey||n.altKey)return;let o=n.target;if(!o.closest(`input:not([type="range"]), textarea, select, [contenteditable="true"]`)&&!(bt.has(n.key)&&o.closest(`input[type="range"]`))&&(n.key!==` `&&n.key!==`Enter`||!o.closest(`button, a[href]`))){switch(n.key){case` `:case`k`:n.preventDefault(),e.togglePlay();break;case`ArrowLeft`:n.preventDefault(),r(-5);break;case`ArrowRight`:n.preventDefault(),r(5);break;case`ArrowUp`:n.preventDefault(),i(g);break;case`ArrowDown`:n.preventDefault(),i(-g);break;case`m`:e.toggleMute();break;case`f`:e.toggleFullscreen();break;case`c`:a();break;case`Home`:n.preventDefault(),e.seek(0);break;case`End`:n.preventDefault(),e.seek(100);break;default:if(!/^[0-9]$/.test(n.key))return;e.seek(Number(n.key)*10)}t.onMouseMove()}}return{onKeydown:o}}function St(e,t){let n=H(!0),r=H(!1),i=null,a=0;function o(e=400){a=Date.now()+e}function s(e=h){clearTimeout(i??void 0),i=setTimeout(()=>{if(document.activeElement?.closest(`.overlay__hud, .overlay__popup`)){s(e);return}n.value=!1,r.value=!1},e)}function c(){clearTimeout(i??void 0)}function l(){r.value=!0,n.value=!0,s()}function u(i=!1){r.value=!1,(i||t.value)&&(n.value=!1),e.value&&s()}function d(){e.value&&s()}function f(){n.value=!0,e.value&&s()}function p(){n.value=!0,s()}function m(){Date.now()<a||e.value&&s(600)}return q(e,e=>{if(!e){clearTimeout(i??void 0),n.value=!0;return}s()}),L(()=>clearTimeout(i??void 0)),{showHUD:n,isOpen:r,scheduleHide:s,pauseHide:c,onVideoTap:f,onMouseMove:p,onMouseLeave:m,openControls:l,closeControls:u,keepOpen:d,suppressMouseLeave:o}}const Ct=[`retry`,`togglePlay`,`seek`,`toggleMute`,`setVolume`,`toggleFullscreen`,`markFullscreenPending`,`toggleLoop`,`toggleAdMute`,`setPlaybackRate`,`setCaptionTrack`,`setQuality`,`togglePip`],wt=`isPlaying.hasEnded.isReady.isAdPlaying.isAdPaused.isAdMuted.adRemainingTime.isLive.isBuffering.current.total.vol.isMuted.isAudible.isLooping.currentPlaybackRate.hasStarted.isError.errorMessage.progress.bufferedDisplay.isFullscreen.isFullscreenPending.supportsPlaybackRate.supportsCaptions.captionTracks.activeCaptionIndex.supportsQuality.qualityLevels.currentQualityIndex.isAutoQuality.supportsPip.isPipActive.isNativeUi`.split(`.`);function Tt(e=()=>!0){let t=se(null),n={};for(let r of Ct)n[r]=async(...n)=>{await e(r)&&t.value?.[r]?.(...n)};for(let e of wt)n[e]=w(()=>t.value?.[e]);return{playerRef:t,forwarded:n}}const Et=Symbol(`player`),Dt=Symbol(`hud`),Ot=Symbol(`action`),kt=Symbol(`playlist`);function Z(e){let t=M(e);if(t===void 0)throw Error(`[video-player] missing "${String(e.description)}" context — this component must be rendered inside <VideoPlayer>`);return t}function At(e,t){let n=w(()=>e.isReady&&!e.isError);return{hudVisible:w(()=>n.value&&t.showHUD),popupVisible:w(()=>n.value?e.isFullscreen?t.showHUD:t.isOpen:!1)}}function jt(e,t=250){let n=H(!1),r=null;return q(e,e=>{r?.disconnect(),r=null,e&&(r=new ResizeObserver(([e])=>{n.value=e.contentRect.width<t}),r.observe(e))},{immediate:!0}),L(()=>r?.disconnect()),n}const Mt={mute:{label:e=>e.isMuted?`Unmute`:`Mute`,active:e=>e.isMuted,onClick:e=>e.toggleMute()},loop:{label:e=>e.isLooping?`Disable loop`:`Loop`,active:e=>e.isLooping,onClick:e=>e.toggleLoop()},autoplay:{label:(e,t)=>t.autoAdvance?`Disable autoplay next`:`Autoplay next`,active:(e,t)=>t.autoAdvance,onClick:(e,t)=>t.toggleAutoAdvance()}};function Nt(e,t,n){let r=w(()=>e?.value??null),i=w(()=>!!r.value&&typeof r.value==`object`),a=w(()=>i.value?r.value:null),o=w(()=>i.value||!r.value?null:Mt[r.value]),s=w(()=>o.value?.label(t,n)??``),c=w(()=>o.value?.active(t,n)??!1);function l(){o.value?.onClick(t,n)}return{currentAction:r,isCustom:i,customAction:a,builtinLabel:s,builtinActive:c,onBuiltinClick:l}}var Q=(e,t)=>{let n=e.__vccOpts||e;for(let[e,r]of t)n[e]=r;return n};const Pt={},Ft={viewBox:`0 0 24 24`,fill:`currentColor`};function It(e,t){return z(),D(`svg`,Ft,[...t[0]||=[O(`path`,{d:`M20 11H7.83l5.59-5.59L12 4l-8 8 8 8 1.41-1.41L7.83 13H20v-2z`},null,-1)]])}var Lt=Q(Pt,[[`render`,It]]);const Rt={},zt={viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`2`,"stroke-linecap":`round`,"stroke-linejoin":`round`};function Bt(e,t){return z(),D(`svg`,zt,[...t[0]||=[O(`rect`,{x:`2`,y:`5`,width:`20`,height:`14`,rx:`2`},null,-1),O(`path`,{d:`M9.5 10.5a2 2 0 0 0-3.5 1.3v.4a2 2 0 0 0 3.5 1.3`},null,-1),O(`path`,{d:`M17.5 10.5a2 2 0 0 0-3.5 1.3v.4a2 2 0 0 0 3.5 1.3`},null,-1)]])}var Vt=Q(Rt,[[`render`,Bt]]);const Ht={},Ut={viewBox:`0 0 24 24`,fill:`currentColor`};function Wt(e,t){return z(),D(`svg`,Ut,[...t[0]||=[O(`path`,{d:`M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z`},null,-1)]])}var Gt=Q(Ht,[[`render`,Wt]]);const Kt={},qt={viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`2`,"stroke-linecap":`round`,"stroke-linejoin":`round`};function Jt(e,t){return z(),D(`svg`,qt,[...t[0]||=[ne(`<line x1="4" y1="6" x2="20" y2="6"></line><line x1="4" y1="12" x2="20" y2="12"></line><line x1="4" y1="18" x2="20" y2="18"></line><circle cx="9" cy="6" r="2.5" fill="currentColor" stroke="none"></circle><circle cx="15" cy="12" r="2.5" fill="currentColor" stroke="none"></circle><circle cx="9" cy="18" r="2.5" fill="currentColor" stroke="none"></circle>`,6)]])}var Yt=Q(Kt,[[`render`,Jt]]);const Xt={},Zt={viewBox:`0 0 24 24`,fill:`currentColor`};function Qt(e,t){return z(),D(`svg`,Zt,[...t[0]||=[O(`path`,{d:`M4 12l1.41 1.41L11 7.83V20h2V7.83l5.59 5.58L20 12l-8-8-8 8z`},null,-1)]])}var $t=Q(Xt,[[`render`,Qt]]);const en={},tn={viewBox:`0 0 24 24`,fill:`currentColor`};function nn(e,t){return z(),D(`svg`,tn,[...t[0]||=[O(`path`,{d:`M7 14H5v5h5v-2H7v-3zm-2-4h2V7h3V5H5v5zm12 7h-3v2h5v-5h-2v3zM14 5v2h3v3h2V5h-5z`},null,-1)]])}var rn=Q(en,[[`render`,nn]]);const an={},on={viewBox:`0 0 24 24`,fill:`currentColor`};function sn(e,t){return z(),D(`svg`,on,[...t[0]||=[O(`path`,{d:`M5 16h3v3h2v-5H5v2zm3-8H5v2h5V5H8v3zm6 11h2v-3h3v-2h-5v5zm2-11V5h-2v5h5V8h-3z`},null,-1)]])}var cn=Q(an,[[`render`,sn]]);const ln={},un={viewBox:`0 0 24 24`,fill:`currentColor`};function dn(e,t){return z(),D(`svg`,un,[...t[0]||=[O(`path`,{d:`M7 7h10v3l4-4-4-4v3H5v6h2V7zm10 10H7v-3l-4 4 4 4v-3h12v-6h-2v4z`},null,-1)]])}var fn=Q(ln,[[`render`,dn]]);const pn={},mn={viewBox:`0 0 24 24`,fill:`currentColor`};function hn(e,t){return z(),D(`svg`,mn,[...t[0]||=[O(`circle`,{cx:`5`,cy:`12`,r:`2`},null,-1),O(`circle`,{cx:`12`,cy:`12`,r:`2`},null,-1),O(`circle`,{cx:`19`,cy:`12`,r:`2`},null,-1)]])}var gn=Q(pn,[[`render`,hn]]);const _n={},vn={viewBox:`0 0 24 24`,fill:`currentColor`};function yn(e,t){return z(),D(`svg`,vn,[...t[0]||=[O(`path`,{d:`M6 19h4V5H6v14zm8-14v14h4V5h-4z`},null,-1)]])}var bn=Q(_n,[[`render`,yn]]);const xn={},Sn={viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`2`,"stroke-linecap":`round`,"stroke-linejoin":`round`};function Cn(e,t){return z(),D(`svg`,Sn,[...t[0]||=[O(`rect`,{x:`2`,y:`4`,width:`20`,height:`16`,rx:`2`},null,-1),O(`rect`,{x:`12`,y:`11`,width:`8`,height:`6`,rx:`1`,fill:`currentColor`,stroke:`none`},null,-1)]])}var wn=Q(xn,[[`render`,Cn]]);const Tn={},En={viewBox:`0 0 24 24`,fill:`currentColor`};function Dn(e,t){return z(),D(`svg`,En,[...t[0]||=[O(`path`,{d:`M8 5v14l11-7z`},null,-1)]])}var On=Q(Tn,[[`render`,Dn]]);const kn={},An={viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`2`,"stroke-linecap":`round`,"stroke-linejoin":`round`};function jn(e,t){return z(),D(`svg`,An,[...t[0]||=[O(`rect`,{x:`2`,y:`6`,width:`20`,height:`12`,rx:`2`},null,-1),O(`path`,{d:`M7 14v-4M12 14V8M17 14v-2`},null,-1)]])}var Mn=Q(kn,[[`render`,jn]]);const Nn={},Pn={viewBox:`0 0 24 24`,fill:`currentColor`};function Fn(e,t){return z(),D(`svg`,Pn,[...t[0]||=[O(`path`,{d:`M12 5V1L7 6l5 5V7c3.31 0 6 2.69 6 6s-2.69 6-6 6-6-2.69-6-6H4c0 4.42 3.58 8 8 8s8-3.58 8-8-3.58-8-8-8z`},null,-1)]])}var In=Q(Nn,[[`render`,Fn]]);const Ln={},Rn={viewBox:`0 0 24 24`,fill:`currentColor`};function zn(e,t){return z(),D(`svg`,Rn,[...t[0]||=[O(`path`,{d:`M6 18l8.5-6L6 6v12zM16 6v12h2V6h-2z`},null,-1)]])}var Bn=Q(Ln,[[`render`,zn]]);const Vn={},Hn={viewBox:`0 0 24 24`,fill:`currentColor`};function Un(e,t){return z(),D(`svg`,Hn,[...t[0]||=[O(`path`,{d:`M16.5 12A4.5 4.5 0 0 0 14 7.97v2.21l2.45 2.45c.03-.2.05-.41.05-.63zm2.5 0c0 .94-.2 1.82-.54 2.64l1.51 1.51A8.796 8.796 0 0 0 21 12c0-4.28-2.99-7.86-7-8.77v2.06c2.89.86 5 3.54 5 6.71zM4.27 3L3 4.27 7.73 9H3v6h4l5 5v-6.73l4.25 4.25c-.67.52-1.42.93-2.25 1.18v2.06A8.99 8.99 0 0 0 17.73 18L19 19.27 20.27 18 5.27 3 4.27 3zM12 4L9.91 6.09 12 8.18V4z`},null,-1)]])}var Wn=Q(Vn,[[`render`,Un]]);const Gn={},Kn={viewBox:`0 0 24 24`,fill:`currentColor`};function qn(e,t){return z(),D(`svg`,Kn,[...t[0]||=[O(`path`,{d:`M3 9v6h4l5 5V4L7 9H3zm13.5 3A4.5 4.5 0 0 0 14 7.97v8.05c1.48-.73 2.5-2.25 2.5-4.02z`},null,-1)]])}var Jn=Q(Gn,[[`render`,qn]]);function Yn(e,t){return w(()=>e.value?e.value:t.value?document.getElementById(t.value)??null:null)}const Xn=[`aria-label`];var Zn=Q(A({__name:`PlayButton`,props:{player:{type:[Object,null],required:!1},for:{type:String,required:!1}},setup(e){let t=e,n=Yn(G(t,`player`),G(t,`for`)),r=w(()=>n.value?.isError?`error`:n.value?.hasEnded?`ended`:n.value?.isPlaying?`playing`:`idle`),i=w(()=>{switch(r.value){case`error`:return`Retry`;case`ended`:return`Replay`;case`playing`:return`Pause`;default:return`Play`}});function a(){let e=n.value;e&&(e.isError?e.retry():e.togglePlay())}return(e,t)=>(z(),D(`button`,{type:`button`,class:`mlv-play-button`,"aria-label":i.value,onClick:a},[U(e.$slots,`default`,{isPlaying:K(n)?.isPlaying??!1,hasEnded:K(n)?.hasEnded??!1,isError:K(n)?.isError??!1},()=>[r.value===`error`||r.value===`ended`?(z(),T(K(In),{key:0})):r.value===`playing`?(z(),T(K(bn),{key:1})):(z(),T(K(On),{key:2}))],!0)],8,Xn))}}),[[`__scopeId`,`data-v-218255bd`]]),Qn=Q(A({__name:`Spinner`,props:{size:{type:Number,required:!1,default:14},borderWidth:{type:Number,required:!1,default:2}},setup(e){return(t,n)=>(z(),D(`div`,{class:`spinner`,style:I({width:`${e.size}px`,height:`${e.size}px`,borderWidth:`${e.borderWidth}px`})},null,4))}}),[[`__scopeId`,`data-v-259be2b2`]]);const $n={key:0,class:`mlv-buffering`};var er=Q(A({__name:`Buffering`,props:{player:{type:[Object,null],required:!1},for:{type:String,required:!1}},setup(e){let t=e,n=Yn(G(t,`player`),G(t,`for`));return(e,t)=>K(n)?.isBuffering?(z(),D(`div`,$n,[U(e.$slots,`default`,{},()=>[k(Qn)],!0)])):E(`v-if`,!0)}}),[[`__scopeId`,`data-v-454fec7f`]]),tr=A({__name:`VolumeIcon`,props:{isAudible:{type:Boolean,required:!0}},setup(e){return(t,n)=>e.isAudible?(z(),T(K(Jn),{key:0})):(z(),T(K(Wn),{key:1}))}});const nr={class:`hud`,"aria-hidden":`true`},rr=[`aria-label`],ir=[`aria-label`,`innerHTML`],ar={key:2,class:`hud__spacer`},or={class:`hud__play-wrap`};var sr=Q(A({__name:`HudButtons`,setup(e){let t=Z(Et),n=Z(Dt),{currentAction:r,isCustom:i,customAction:a,builtinLabel:o,builtinActive:s,onBuiltinClick:c}=Nt(M(Ot),t,Z(kt));return(e,l)=>(z(),D(S,null,[E(` tabindex="-1" + aria-hidden: this row's play/mute/custom/show-controls buttons are all redundant outside plain mouse hover - play/mute already have global hotkeys, everything else is duplicated in ControlsPopup, which PlayerOverlay's "Show player controls" skip link reaches directly for keyboard/AT users. `),O(`div`,nr,[!K(n).isOpen&&!K(t).isFullscreen?(z(),D(S,{key:0},[K(r)===`mute`||K(r)===`loop`||K(r)===`autoplay`?(z(),D(`button`,{key:0,class:F([`hud__btn`,{"hud__btn--active":K(s)}]),"aria-label":K(o),tabindex:`-1`,onClick:l[0]||=Y((...e)=>K(c)&&K(c)(...e),[`stop`])},[K(r)===`mute`?(z(),T(tr,{key:0,"is-audible":K(t).isAudible},null,8,[`is-audible`])):K(r)===`loop`?(z(),T(K(fn),{key:1})):(z(),T(K(Bn),{key:2}))],10,rr)):K(i)&&K(a)?(z(),D(`button`,{key:1,class:`hud__btn`,"aria-label":K(a).label,tabindex:`-1`,onClick:l[1]||=Y(e=>K(a).onClick(),[`stop`]),innerHTML:K(a).icon},null,8,ir)):(z(),D(`div`,ar))],64)):E(`v-if`,!0),O(`div`,or,[k(Zn,{player:K(t),class:`ppbtn ppbtn--lg`,tabindex:`-1`},null,8,[`player`]),k(er,{player:K(t),class:`hud__buf-spinner`},null,8,[`player`])]),!K(n).isOpen&&!K(t).isFullscreen?(z(),D(`button`,{key:1,class:`hud__btn`,"aria-label":`Show controls`,tabindex:`-1`,onClick:l[2]||=Y((...e)=>K(n).openControls&&K(n).openControls(...e),[`stop`])},[k(K(Yt))])):E(`v-if`,!0)])],2112))}}),[[`__scopeId`,`data-v-a6d118e7`]]);const cr=new WeakMap;async function lr(e,t){if(!e){t();return}cr.get(e)?.();let n=e.getBoundingClientRect();t(),await P();let r=e.getBoundingClientRect(),i=n.left-r.left,a=n.top-r.top,o=n.width/r.width,s=n.height/r.height;if(!i&&!a&&o===1&&s===1)return;let c=getComputedStyle(e).position===`static`;c&&(e.style.position=`relative`),e.style.zIndex=`2147483647`,e.style.transition=`none`,e.style.transformOrigin=`top left`,e.style.transform=`translate(${i}px, ${a}px) scale(${o}, ${s})`,e.getBoundingClientRect(),await new Promise(t=>{let n=null,r=()=>{cancelAnimationFrame(i),n&&clearTimeout(n),e.style.transition=``,e.style.transform=``,e.style.transformOrigin=``,e.style.zIndex=``,c&&(e.style.position=``),cr.delete(e),t()};cr.set(e,r);let i=requestAnimationFrame(()=>{e.style.transition=`transform 220ms ease`,e.style.transform=``,n=setTimeout(r,220)})})}const ur=[`aria-label`];var dr=Q(A({__name:`FullscreenButton`,props:{player:{type:[Object,null],required:!1},for:{type:String,required:!1}},setup(e){let t=e,n=Yn(G(t,`player`),G(t,`for`));return(e,t)=>(z(),D(`button`,{type:`button`,class:`mlv-fullscreen-button`,"aria-label":K(n)?.isFullscreen?`Exit fullscreen`:`Enter fullscreen`,onClick:t[0]||=e=>K(n)?.toggleFullscreen()},[U(e.$slots,`default`,{isFullscreen:K(n)?.isFullscreen??!1},()=>[K(n)?.isFullscreen?(z(),T(K(cn),{key:0})):(z(),T(K(rn),{key:1}))],!0)],8,ur))}}),[[`__scopeId`,`data-v-b93a5017`]]);const fr=[`aria-pressed`];var pr=Q(A({__name:`PipButton`,props:{player:{type:[Object,null],required:!1},for:{type:String,required:!1}},setup(e){let t=e,n=Yn(G(t,`player`),G(t,`for`));return(e,t)=>K(n)?.supportsPip?(z(),D(`button`,{key:0,type:`button`,class:F([`mlv-pip-button`,{"mlv-pip-button--active":K(n)?.isPipActive}]),"aria-pressed":K(n)?.isPipActive??!1,"aria-label":`Toggle Picture-in-Picture`,onClick:t[0]||=e=>K(n)?.togglePip()},[U(e.$slots,`default`,{isPipActive:K(n)?.isPipActive??!1},()=>[k(K(wn))],!0)],10,fr)):E(`v-if`,!0)}}),[[`__scopeId`,`data-v-f654d93e`]]);function mr(e){let n=H(!1),r=H(null),i=!1,a=null,o=!1,s=w(()=>{let t=e.value;return t?.total?t.current/t.total*100:0}),c=w(()=>r.value??s.value),l=w(()=>r.value!==null),u=w(()=>{let t=e.value?.total??0;return c.value/100*t});function d(){a&&clearTimeout(a),a=null}function f(){d(),r.value=null}function p(t){let a=e.value;a?.total&&(n.value||=(i=a.isPlaying,a.isPlaying&&a.togglePlay(),!0),d(),r.value=Number(t.target.value))}function m(s){if(!n.value)return;n.value=!1,o=!0;let c=e.value;if(!c)return;let l=Number(s.target.value);r.value=l,c.seek(l),i&&c.togglePlay(),d(),a=setTimeout(f,t)}function h(s){if(n.value||o)return;o=!1;let c=e.value;if(!c?.total)return;let l=Number(s.target.value);r.value=l,c.seek(l),i&&c.togglePlay(),d(),a=setTimeout(f,t)}return q(()=>e.value?.current,()=>{let t=e.value;if(r.value===null||!t?.total)return;let n=r.value/100*t.total;Math.abs(t.current-n)<1&&f()}),L(f),{scrubbing:l,displayPercent:c,previewSeconds:u,onInput:p,onChange:m,onTouchEnd:h}}const hr={class:`mlv-scrubber-wrap`},gr=[`value`,`aria-valuetext`];var _r=Q(A({inheritAttrs:!1,__name:`Scrubber`,props:{player:{type:[Object,null],required:!1},for:{type:String,required:!1}},setup(e){let t=e,n=Yn(G(t,`player`),G(t,`for`)),{scrubbing:r,displayPercent:i,previewSeconds:a,onInput:o,onChange:s,onTouchEnd:c}=mr(n),l=e=>Se(e,!0);return(e,t)=>(z(),D(`div`,hr,[O(`input`,N({type:`range`,min:`0`,max:`100`,step:`0.5`,value:K(i),class:`mlv-scrubber`},e.$attrs,{style:{"--p":`${K(i)}%`,"--b":`${K(n)?.bufferedDisplay??0}%`},"aria-label":`Seek`,"aria-valuetext":`${l(K(a))} of ${l(K(n)?.total??0)}`,onInput:t[0]||=(...e)=>K(o)&&K(o)(...e),onChange:t[1]||=(...e)=>K(s)&&K(s)(...e),onTouchend:t[2]||=(...e)=>K(c)&&K(c)(...e)}),null,16,gr),U(e.$slots,`preview`,{scrubbing:K(r),percent:K(i),previewSeconds:K(a),formatTime:l},()=>[K(r)?(z(),D(`div`,{key:0,class:`mlv-scrubber__preview`,style:I({left:`${K(i)}%`})},W(l(K(a))),5)):E(`v-if`,!0)],!0)]))}}),[[`__scopeId`,`data-v-043f1bc8`]]);const vr={class:`mlv-time-display__time`},yr={class:`mlv-time-display__total`};var br=Q(A({__name:`TimeDisplay`,props:{player:{type:[Object,null],required:!1},for:{type:String,required:!1}},setup(e){let t=e,n=Yn(G(t,`player`),G(t,`for`));return(e,t)=>(z(),D(`span`,{class:F([`mlv-time-display`,{"mlv-time-display--live":K(n)?.isLive}])},[U(e.$slots,`default`,{isLive:K(n)?.isLive??!1,current:K(n)?.current??0,total:K(n)?.total??0,formatTime:K(Se)},()=>[K(n)?.isLive?(z(),D(S,{key:0},[t[0]||=O(`span`,{class:`mlv-time-display__dot`},null,-1),t[1]||=re(`Live `,-1)],64)):(z(),D(S,{key:1},[O(`span`,vr,W(K(Se)(K(n)?.current??0)),1),O(`span`,yr,`/ `+W(K(Se)(K(n)?.total??0)),1)],64))],!0)],2))}}),[[`__scopeId`,`data-v-0285c811`]]);const xr={class:`mlv-volume-wrap`},Sr=[`value`],Cr={class:`mlv-volume-pct`};var wr=Q(A({inheritAttrs:!1,__name:`VolumeSlider`,props:{player:{type:[Object,null],required:!1},for:{type:String,required:!1}},setup(e){let t=e,n=Yn(G(t,`player`),G(t,`for`)),r=w(()=>{let e=n.value;return e?e.isMuted?0:Math.round(e.vol*100):0});function i(e){n.value?.setVolume(Number(e.target.value)/100)}return(e,t)=>(z(),D(`div`,xr,[O(`input`,N({type:`range`,min:`0`,max:`100`,step:`1`,value:r.value,class:`mlv-volume-slider`},e.$attrs,{style:{"--v":`${r.value}%`},"aria-label":`Volume`,onInput:i}),null,16,Sr),U(e.$slots,`default`,{percent:r.value},()=>[O(`span`,Cr,W(r.value)+`%`,1)],!0)]))}}),[[`__scopeId`,`data-v-fbb2c86c`]]);const Tr={class:`controls__vol-header`},Er=[`aria-label`],Dr={class:`controls__vol-body`},Or={class:`controls__vol-pct`};var kr=Q(A({__name:`VolumePanel`,emits:[`back`],setup(e){let t=Z(Et),n=Z(Dt);return(e,r)=>(z(),D(S,null,[O(`div`,Tr,[O(`button`,{class:`controls__btn`,"aria-label":`Back`,onClick:r[0]||=t=>e.$emit(`back`)},[k(K(Lt))]),r[6]||=O(`span`,{class:`controls__vol-label`},`Volume`,-1),O(`button`,{class:`controls__btn`,"aria-label":K(t).isMuted?`Unmute`:`Mute`,onClick:r[1]||=e=>K(t).toggleMute()},[k(tr,{"is-audible":K(t).isAudible},null,8,[`is-audible`])],8,Er)]),O(`div`,Dr,[k(wr,{player:K(t),class:`controls__vol-slider`,onMousedown:r[2]||=e=>K(n).pauseHide(),onMouseup:r[3]||=e=>K(n).scheduleHide(),onTouchstartPassive:r[4]||=e=>K(n).pauseHide(),onTouchend:r[5]||=e=>K(n).scheduleHide()},{default:J(({percent:e})=>[O(`span`,Or,W(e)+`%`,1)]),_:1},8,[`player`])])],64))}}),[[`__scopeId`,`data-v-10b0ae67`]]);function Ar(e){function t(){let t=_.indexOf(e.currentPlaybackRate);e.setPlaybackRate(_[(t+1)%_.length])}function n(e){return`${e}×`}return{cycleRate:t,fmtRate:n}}function jr(e){function t(){let t=e.captionTracks;if(!t.length)return;let n=t[t.findIndex(t=>t.index===e.activeCaptionIndex)+1];e.setCaptionTrack(n?n.index:null)}function n(){return e.captionTracks.find(t=>t.index===e.activeCaptionIndex)?.label??`Off`}return{cycleCaptionTrack:t,currentCaptionLabel:n}}function Mr(e){function t(){let t=e.qualityLevels;if(!t.length)return;if(e.isAutoQuality){e.setQuality(t[t.length-1].index);return}let n=t.findIndex(t=>t.index===e.currentQualityIndex);e.setQuality(n<=0?null:t[n-1].index)}function n(){return e.isAutoQuality?`Auto`:e.qualityLevels.find(t=>t.index===e.currentQualityIndex)?.label??`Auto`}return{cycleQuality:t,currentQualityLabel:n}}const Nr=[`aria-label`],Pr={key:0,class:`controls__more-row-label`},Fr=[`innerHTML`],Ir={key:1},Lr={key:2,class:`controls__more-value`};var $=Q(A({__name:`MoreMenuRow`,props:{label:{type:String,required:!0},ariaLabel:{type:String,required:!1,default:``},icon:{type:null,required:!1},iconHtml:{type:String,required:!1},active:{type:Boolean,required:!1,default:!1},value:{type:String,required:!1}},emits:[`click`],setup(e){return(t,n)=>(z(),D(`button`,{class:F([`controls__more-row`,{"controls__more-row--active":e.active}]),"aria-label":e.ariaLabel||e.label,onClick:n[0]||=e=>t.$emit(`click`)},[e.icon||e.iconHtml?(z(),D(`span`,Pr,[e.icon?(z(),T(oe(e.icon),{key:0,class:`controls__more-row-icon`})):(z(),D(`span`,{key:1,class:`controls__more-row-icon`,innerHTML:e.iconHtml},null,8,Fr)),re(` `+W(e.label),1)])):(z(),D(`span`,Ir,W(e.label),1)),e.value===void 0?E(`v-if`,!0):(z(),D(`span`,Lr,W(e.value),1))],10,Nr))}}),[[`__scopeId`,`data-v-47ca5bfc`]]);const Rr={class:`controls__more-header`};var zr=Q(A({__name:`MoreMenu`,props:{isCustom:{type:Boolean,required:!0},customAction:{type:[Object,null],required:!0},compact:{type:Boolean,required:!0}},emits:[`back`],setup(e){let t=Z(Et),n=Z(Dt),r=Z(kt),{cycleRate:i,fmtRate:a}=Ar(t),{cycleCaptionTrack:o,currentCaptionLabel:s}=jr(t),{cycleQuality:c,currentQualityLabel:l}=Mr(t);return(u,d)=>(z(),D(S,null,[O(`div`,Rr,[O(`button`,{class:`controls__btn`,"aria-label":`Back`,onClick:d[0]||=e=>u.$emit(`back`)},[k(K(Lt))]),d[8]||=O(`span`,{class:`controls__more-label`},`More`,-1)]),O(`div`,{class:`controls__more-body`,onTouchstartPassive:d[7]||=e=>K(n).keepOpen()},[K(t).supportsPlaybackRate?(z(),T($,{key:0,label:`Playback speed`,value:K(a)(K(t).currentPlaybackRate),onClick:K(i)},null,8,[`value`,`onClick`])):E(`v-if`,!0),k($,{label:`Loop`,"aria-label":`Toggle loop`,icon:K(fn),active:K(t).isLooping,value:K(t).isLooping?`On`:`Off`,onClick:d[1]||=e=>K(t).toggleLoop()},null,8,[`icon`,`active`,`value`]),K(t).supportsCaptions?(z(),T($,{key:1,label:`Captions`,icon:K(Vt),active:K(t).activeCaptionIndex!==null,value:K(s)(),onClick:K(o)},null,8,[`icon`,`active`,`value`,`onClick`])):E(`v-if`,!0),K(t).supportsQuality?(z(),T($,{key:2,label:`Quality`,icon:K(Mn),active:!K(t).isAutoQuality,value:K(l)(),onClick:K(c)},null,8,[`icon`,`active`,`value`,`onClick`])):E(`v-if`,!0),K(r).hasPlaylist?(z(),T($,{key:3,label:`Autoplay next`,"aria-label":`Toggle autoplay next`,icon:K(Bn),active:K(r).autoAdvance,value:K(r).autoAdvance?`On`:`Off`,onClick:d[2]||=e=>K(r).toggleAutoAdvance()},null,8,[`icon`,`active`,`value`])):E(`v-if`,!0),e.compact&&K(t).supportsPip?(z(),T($,{key:4,label:`Picture-in-picture`,"aria-label":`Toggle picture-in-picture`,icon:K(wn),active:K(t).isPipActive,onClick:d[3]||=e=>K(t).togglePip()},null,8,[`icon`,`active`])):E(`v-if`,!0),e.compact&&K(r).hasNext?(z(),T($,{key:5,label:`Play next`,"aria-label":`Play next`,icon:K(Bn),onClick:d[4]||=e=>K(r).playNext()},null,8,[`icon`])):E(`v-if`,!0),e.compact?(z(),T($,{key:6,label:`Mute`,"aria-label":`Toggle mute`,icon:K(t).isAudible?K(Jn):K(Wn),active:!K(t).isAudible,onClick:d[5]||=e=>K(t).toggleMute()},null,8,[`icon`,`active`])):E(`v-if`,!0),e.isCustom&&e.customAction?(z(),T($,{key:7,label:e.customAction.label,"icon-html":e.customAction.icon,onClick:d[6]||=t=>e.customAction.onClick()},null,8,[`label`,`icon-html`])):E(`v-if`,!0)],32)],64))}}),[[`__scopeId`,`data-v-e89a8208`]]);const Br={class:`controls__row`},Vr={class:`controls__play-wrap`},Hr=[`aria-expanded`],Ur=[`aria-expanded`],Wr={class:`controls__fs-wrap`};var Gr=Q(A({__name:`ControlsPopup`,setup(e){let t=Z(Et),n=Z(Dt),r=Z(kt),{isCustom:i,customAction:a}=Nt(M(Ot),t,r),o=H(!1),s=H(!1),c=H(null),l=H(null),u=jt(c),d=w(()=>t.isLooping||t.currentPlaybackRate!==1||r.autoAdvance);function f(e){return!c.value||c.value.contains(e)?!1:(n.closeControls(),!0)}function p(e){f(e.target)}function m(e){f(e.target)&&e.preventDefault()}R(()=>{t.fire(`controlsopen`,{element:c.value}),document.addEventListener(`click`,p,!0),document.addEventListener(`touchend`,m,!0)}),L(()=>{o.value=!1,s.value=!1,t.fire(`controlsclose`,{element:c.value}),document.removeEventListener(`click`,p,!0),document.removeEventListener(`touchend`,m,!0)});function h(e){n.suppressMouseLeave();let t=c.value,r=l.value;if(!t||!r){e();return}r.style.opacity=`0`,lr(t,e).then(()=>{r.style.transition=`opacity 130ms ease`,r.style.opacity=``,setTimeout(()=>{r.style.transition=``},130)})}function g(){if(v()){t.toggleMute();return}h(()=>{o.value=!0})}function _(){h(()=>{s.value=!0})}return(e,f)=>(z(),D(`div`,{ref_key:`popupEl`,ref:c,class:F([`controls`,{"controls--fs":K(t).isFullscreen,"controls--compact":K(u)}]),onMousemove:f[8]||=Y((...e)=>K(n).keepOpen&&K(n).keepOpen(...e),[`stop`])},[O(`div`,{class:`controls__inner`,ref_key:`contentEl`,ref:l},[o.value?(z(),T(kr,{key:0,onBack:f[0]||=e=>h(()=>o.value=!1)})):s.value?(z(),T(zr,{key:1,"is-custom":K(i),"custom-action":K(a),compact:K(u),onBack:f[1]||=e=>h(()=>s.value=!1)},null,8,[`is-custom`,`custom-action`,`compact`])):(z(),D(S,{key:2},[K(t).isLive?E(`v-if`,!0):(z(),T(_r,{key:0,player:K(t),class:`controls__seek`,onMousedown:f[2]||=e=>K(n).pauseHide(),onMouseup:f[3]||=e=>K(n).scheduleHide(),onTouchstartPassive:f[4]||=e=>K(n).pauseHide(),onTouchend:f[5]||=e=>K(n).scheduleHide()},null,8,[`player`])),O(`div`,Br,[O(`div`,Vr,[k(er,{player:K(t)},null,8,[`player`]),K(t).isBuffering?E(`v-if`,!0):(z(),T(Zn,{key:0,player:K(t),class:`ppbtn ppbtn--sm`},null,8,[`player`]))]),k(br,{player:K(t),class:`controls__time-display`},null,8,[`player`]),K(r).hasNext?(z(),D(`button`,{key:0,class:`controls__btn controls__btn--next`,"aria-label":`Play next`,onClick:f[6]||=e=>K(r).playNext()},[k(K(Bn))])):E(`v-if`,!0),O(`button`,{class:`controls__btn controls__btn--volume`,"aria-label":`Volume`,"aria-haspopup":`true`,"aria-expanded":o.value,onClick:g},[k(tr,{"is-audible":K(t).isAudible},null,8,[`is-audible`])],8,Hr),O(`button`,{class:F([`controls__btn controls__btn--more`,{"controls__btn--active":d.value}]),"aria-label":`More`,"aria-haspopup":`true`,"aria-expanded":s.value,onClick:_},[k(K(gn))],10,Ur),k(pr,{player:K(t),class:`controls__btn controls__btn--pip`},null,8,[`player`]),O(`div`,Wr,[K(t).isFullscreenPending?(z(),T(Qn,{key:0})):(z(),T(dr,{key:1,player:K(t),class:`controls__btn`},null,8,[`player`]))])])],64))],512),O(`button`,{type:`button`,class:`controls__close`,"aria-label":`Close player controls`,onClick:f[7]||=e=>K(n).closeControls(!0)},`Close player controls`)],34))}}),[[`__scopeId`,`data-v-5712aad4`]]);const Kr={key:0,class:`overlay__spinner`},qr={key:0,class:`overlay__error`},Jr=[`inert`];var Yr=Q(A({__name:`PlayerOverlay`,setup(e){let t=Z(Et),n=Z(Dt),{hudVisible:r,popupVisible:i}=At(t,n);return(e,a)=>(z(),D(S,null,[k(C,{name:`fade`},{default:J(()=>[!K(t).isReady&&!K(t).isError?(z(),D(`div`,Kr,[k(Qn,{size:40,"border-width":3})])):E(`v-if`,!0)]),_:1}),k(C,{name:`fade`},{default:J(()=>[K(t).isError?(z(),D(`div`,qr,[O(`p`,null,W(K(t).errorMessage||`This video could not be played.`),1),O(`button`,{class:`overlay__retry`,onClick:a[0]||=Y((...e)=>K(t).retry&&K(t).retry(...e),[`stop`])},`Retry`)])):E(`v-if`,!0)]),_:1}),O(`button`,{type:`button`,class:`overlay__reveal`,"aria-label":`Show player controls`,onClick:a[1]||=e=>K(n).openControls()},`Show player controls`),O(`div`,{class:F([`overlay__hud`,{"overlay__hud--visible":K(r)}]),inert:!K(r)},[k(sr)],10,Jr),k(C,{name:`popup`},{default:J(()=>[K(i)?(z(),D(`div`,{key:0,class:F([`overlay__popup`,{"overlay__popup--fs":K(t).isFullscreen}])},[k(Gr)],2)):E(`v-if`,!0)]),_:1})],64))}}),[[`__scopeId`,`data-v-2fba5782`]]);const Xr={class:`ad-overlay`},Zr={class:`ad-overlay__bar`},Qr={class:`ad-overlay__badge`},$r={key:0,class:`ad-overlay__countdown`},ei=[`aria-label`],ti=[`aria-label`];var ni=Q(A({__name:`AdOverlay`,setup(e){let t=Z(Et),n=w(()=>t.adRemainingTime>0?t.fmt(t.adRemainingTime):``);return(e,r)=>(z(),D(`div`,Xr,[O(`div`,Zr,[O(`div`,Qr,[r[2]||=O(`span`,null,`Ad`,-1),n.value?(z(),D(`span`,$r,W(n.value),1)):E(`v-if`,!0)]),O(`button`,{class:`ad-overlay__btn`,"aria-label":K(t).isAdPaused?`Resume ad`:`Pause ad`,onClick:r[0]||=e=>K(t).togglePlay()},[K(t).isAdPaused?(z(),T(K(On),{key:0})):(z(),T(K(bn),{key:1}))],8,ei),O(`button`,{class:`ad-overlay__btn`,"aria-label":K(t).isAdMuted?`Unmute ad`:`Mute ad`,onClick:r[1]||=e=>K(t).toggleAdMute()},[K(t).isAdMuted?(z(),T(K(Wn),{key:0})):(z(),T(K(Jn),{key:1}))],8,ti)])]))}}),[[`__scopeId`,`data-v-23efcc8b`]]);const ri=H(0),ii=w(()=>ri.value>0),ai=H(!1);function oi(){ri.value++}function si(){ri.value--}function ci(e,t,n){let r=H(!1),i=w(()=>r.value&&ai.value),a=null;function o(){if(a?.(),a=null,!n.value||!e.value){r.value=!1;return}a=Ve(e.value,e=>{e.intersectionRatio<.1?t.value&&(r.value=!0):r.value=!1})}return R(o),q(n,o),q(e,o),L(()=>a?.()),{isPinned:r,isTucked:i,unpin:()=>r.value=!1}}function li(e,t,n){let r=H(null),i=H(null);q(n,n=>{let i=e.value?.offsetWidth??null;r.value=n&&t.value&&i?{height:t.value.offsetHeight,wrapperWidth:i}:null});let a=w(()=>{if(!r.value)return{};let{height:e,wrapperWidth:t}=r.value,n=i.value?i.value/t:1;return{height:`${Math.round(e*n)}px`}}),o=null;return q(e,e=>{o?.disconnect(),o=null,e&&(o=new ResizeObserver(([e])=>i.value=e.contentRect.width),o.observe(e))},{immediate:!0}),L(()=>o?.disconnect()),{wrapperStyle:a,clear:()=>r.value=null}}function ui(e){e?.scrollIntoView({behavior:`smooth`,block:`center`})}var di=Q(A({__name:`PinnablePlayerShell`,props:{isPlaying:{type:Boolean,required:!0}},setup(e){let t=e,n=H(null),r=H(null),{isPinned:i,unpin:a}=ci(n,G(t,`isPlaying`),H(!0)),o=H(i.value);q(i,e=>{lr(r.value,()=>{o.value=e})});let s=w(()=>o.value&&ai.value),{wrapperStyle:c}=li(n,r,o);function l(){ui(n.value)}function u(e){r.value=e}return(e,t)=>(z(),D(`div`,{ref_key:`wrapperEl`,ref:n,class:`player-wrapper`,style:I(K(c))},[U(e.$slots,`default`,{isPinned:o.value,isTucked:s.value,setBoxEl:u,unpin:K(a),scrollToPlayer:l},void 0,!0)],4))}}),[[`__scopeId`,`data-v-a2f8a547`]]);const fi={class:`player-wrapper`};var pi=Q(A({__name:`PlainPlayerShell`,props:{isPlaying:{type:Boolean,required:!0}},setup(e){function t(){}return(e,n)=>(z(),D(`div`,fi,[U(e.$slots,`default`,{isPinned:!1,isTucked:!1,setBoxEl:t,unpin:t,scrollToPlayer:t},void 0,!0)]))}}),[[`__scopeId`,`data-v-9188c23a`]]),mi=Q(A({__name:`PinnedControls`,emits:[`scroll-to`,`dismiss`],setup(e){return(e,t)=>(z(),D(S,null,[O(`button`,{class:`pinned-controls__scroll-to`,"aria-label":`Scroll to player`,onClick:t[0]||=Y(t=>e.$emit(`scroll-to`),[`stop`])},[k(K($t))]),O(`button`,{class:`pinned-controls__dismiss`,"aria-label":`Close`,onClick:t[1]||=Y(t=>e.$emit(`dismiss`),[`stop`])},[k(K(Gt))])],64))}}),[[`__scopeId`,`data-v-690b416a`]]);function hi(e){let[t,n]=e.split(`:`).map(Number);return{isPortrait:n>t,cssRatio:`${t}/${n}`}}const gi=[`aria-label`,`tabindex`],_i={"data-mlv-player":``},vi=[`poster`],yi=[`src`,`kind`,`srclang`,`label`,`default`],bi={key:3,class:`player__native-play`};var xi=Q(A({__name:`VideoPlayer`,props:{src:{type:String,required:!0},title:{type:String,required:!1,default:``},poster:{type:String,required:!1,default:``},aspectRatio:{type:String,required:!1,default:u},adTagUrl:{type:String,required:!1,default:``},adMacroParams:{type:Object,required:!1},headerBidding:{type:Object,required:!1},tracks:{type:Array,required:!1,default:()=>[]},autoplay:{type:Boolean,required:!1,default:!1},muted:{type:Boolean,required:!1,default:void 0},volume:{type:Number,required:!1},playbackRate:{type:Number,required:!1},nativeUi:{type:Boolean,required:!1,default:!1},autoStage:{type:Boolean,required:!1,default:!1},lazy:{type:Boolean,required:!1,default:!1},payload:{type:[Object,String],required:!1,default:()=>({})},action:{type:[String,Object,null],required:!1,default:null},disableTapCapture:{type:Boolean,required:!1,default:!1},disableKeyboardShortcuts:{type:Boolean,required:!1,default:!1},controls:{type:Boolean,required:!1,default:!0},playInView:{type:Boolean,required:!1,default:!1},pin:{type:String,required:!1},hasPlaylist:{type:Boolean,required:!1,default:!1},hasNext:{type:Boolean,required:!1,default:!1},hasPrevious:{type:Boolean,required:!1,default:!1},autoAdvance:{type:Boolean,required:!1,default:!1}},emits:[`state-change`,`play-next`,`play-previous`,`toggle-auto-advance`],setup(e,{expose:t,emit:n}){let r=e,i=n,a=H(null),o=V(yt(a,r,i)),s=V(St(G(o,`isPlaying`),G(o,`isFullscreen`))),{onKeydown:c}=xt(o,s);function l(e){r.disableKeyboardShortcuts||c(e)}let u=H(null);q(()=>o.isFullscreen,e=>{e&&!r.disableKeyboardShortcuts&&P(()=>u.value?.focus())});function d(e){if(r.disableKeyboardShortcuts)return;let t=e.relatedTarget;t&&u.value?.contains(t)||requestAnimationFrame(()=>{document.activeElement===document.body&&u.value?.focus()})}B(Et,o),B(Dt,s),B(Ot,G(r,`action`)),B(kt,V({hasPlaylist:w(()=>r.hasPlaylist),hasNext:w(()=>r.hasNext),hasPrevious:w(()=>r.hasPrevious),autoAdvance:w(()=>r.autoAdvance),playNext:()=>i(`play-next`),playPrevious:()=>i(`play-previous`),toggleAutoAdvance:()=>i(`toggle-auto-advance`)}));let f=w(()=>hi(r.aspectRatio)),p=w(()=>f.value.isPortrait),m=w(()=>f.value.cssRatio),h=w(()=>!r.poster&&!o.isReady),g=w(()=>r.pin?di:pi);function _(e){o.isPlaying&&o.togglePlay(),e()}function v(){s.onVideoTap(),o.fire(`tap`)}let{playerRef:y,forwarded:b}=Tt();return y.value=o,t(b),(t,n)=>(z(),T(oe(g.value),{"is-playing":o.isPlaying},{default:J(({isPinned:t,isTucked:i,setBoxEl:c,unpin:f,scrollToPlayer:g})=>[O(`div`,{ref:c,class:F([`player`,{"player--pinned":t,"player--tucked":i,[`player--pin-${e.pin}`]:t}])},[t?(z(),T(mi,{key:0,onScrollTo:g,onDismiss:e=>_(f)},null,8,[`onScrollTo`,`onDismiss`])):E(`v-if`,!0),O(`div`,{ref_key:`shellEl`,ref:u,class:F([`player__shell`,{"player__shell--portrait":p.value}]),style:I({aspectRatio:m.value}),role:`group`,"aria-label":e.title||`Video player`,tabindex:e.disableKeyboardShortcuts?void 0:0,onMousemove:n[0]||=e=>s.onMouseMove(),onContextmenuCapture:n[1]||=Y(()=>{},[`prevent`]),onMouseleave:n[2]||=e=>s.onMouseLeave(),onKeydown:l,onFocusout:d},[O(`div`,_i,[O(`video`,{ref_key:`videoEl`,ref:a,class:F([`mlv-video`,{"mlv-video--hidden":h.value}]),poster:r.poster,playsinline:``},[(z(!0),D(S,null,ae(r.tracks,(e,t)=>(z(),D(`track`,{key:`${e.src}-${t}`,src:e.src,kind:e.kind??`captions`,srclang:e.srclang,label:e.label,default:e.default},null,8,yi))),128))],10,vi),!r.disableTapCapture&&!o.isNativeUi&&o.hasStarted&&!o.isAdPlaying?(z(),D(`div`,{key:0,class:`overlay__tap-capture`,onClick:v,onTouchend:Y(v,[`prevent`,`stop`])},null,32)):E(`v-if`,!0),o.isAdPlaying&&!o.isNativeUi?(z(),T(ni,{key:1})):E(`v-if`,!0),r.controls&&!o.isNativeUi?(z(),T(Yr,{key:2})):E(`v-if`,!0),r.controls&&o.isNativeUi&&!o.hasStarted?(z(),D(`div`,bi,[k(Zn,{player:o,class:`ppbtn ppbtn--lg`},null,8,[`player`])])):E(`v-if`,!0)])],46,gi)],2)]),_:1},8,[`is-playing`]))}}),[[`__scopeId`,`data-v-4ab3cf75`]]);function Si(e,t){window.dispatchEvent(new CustomEvent(e,{detail:t}))}function Ci(e,t){let n=e=>t(e.detail);R(()=>window.addEventListener(e,n)),L(()=>window.removeEventListener(e,n))}function wi(e,t){let n=w(()=>!e.value||!t.value?-1:e.value.findIndex(e=>e.src===t.value?.src)),r=w(()=>n.value===-1||!e.value?null:e.value[n.value+1]??null),i=w(()=>n.value<=0||!e.value?null:e.value[n.value-1]??null);return{hasNext:w(()=>r.value!==null),hasPrevious:w(()=>i.value!==null),nextEntry:r,previousEntry:i}}function Ti(){return localStorage.getItem(r)===`true`}function Ei(e){localStorage.setItem(r,String(e))}const Di=[`src`],Oi={class:`stage__idle-body`},ki={class:`stage__idle-btn`},Ai={class:`stage__idle-title`},ji={key:1,class:`stage__idle-empty`};var Mi=Q(A({__name:`VideoStage`,props:{pin:{type:String,required:!1,default:`bottom-right`},playlist:{type:Array,required:!1}},emits:[`state-change`],setup(t,{expose:n,emit:r}){let i=t,a=r,o=H(Ti());q(o,Ei);let s=w(()=>!!i.playlist?.length),c=H(null),l=H(!1),u=H(!1);function p(e){a(`state-change`,{type:e,currentTime:0,duration:0,src:c.value?.src??``})}q(l,e=>p(e?`stageopen`:`stageclose`));let{playerRef:m,forwarded:h}=Tt(()=>l.value),g=H(null),_=H(null),v=H(!1),{hasNext:y,hasPrevious:b,nextEntry:ee,previousEntry:te}=wi(G(i,`playlist`),c),x=w(()=>v.value&&!!c.value&&l.value),C=w(()=>x.value&&ai.value),ne=w(()=>hi(c.value?.aspectRatio||`16:9`).cssRatio),{wrapperStyle:re,clear:A}=li(g,_,x),j=null;function M(){j?.disconnect(),g.value&&(j=new IntersectionObserver(([e])=>{let t=!e.isIntersecting;if(!c.value||!l.value){v.value=t;return}lr(_.value,()=>{v.value=t})},{threshold:.98}),j.observe(g.value))}q(g,M);function P(){c.value&&(c.value={...c.value,autoplay:!0,muted:ct(c.value.muted)},l.value=!0)}function ie(){P()}function B(){ui(g.value)}function V(){c.value=null,l.value=!1,u.value=!1,A(),ae()}function ae(){Si(e,{currentSrc:c.value?.src??null,isPlaying:u.value})}function U(e){if(c.value?.src===e.src&&l.value){e.fromGesture&&m.value?.togglePlay();return}c.value=e,l.value=!1,u.value=!1,ae(),l.value=!0}function oe(e){if(c.value&&e.src===c.value.src){if(!l.value){P();return}m.value?.togglePlay()}}function se(e,t){e&&U({...e,fromGesture:t,autoplay:!0,muted:e.muted??m.value?.isMuted??ct(void 0,t),volume:e.volume??m.value?.vol})}function J(e=!0){se(ee.value,e)}function Y(e=!0){se(te.value,e)}function ce(e){e.type===`play`&&(u.value=!0),(e.type===`pause`||e.type===`ended`)&&(u.value=!1),e.type===`ended`&&o.value&&J(!1),ae(),a(`state-change`,e)}return Ci(f,U),Ci(d,oe),R(oi),L(()=>{si(),j?.disconnect()}),n({playNext:J,playPrevious:Y,hasNext:y,hasPrevious:b,...h}),(e,n)=>(z(),D(`div`,{ref_key:`wrapperEl`,ref:g,class:`stage-wrapper`,style:I(K(re))},[O(`div`,{ref_key:`stageEl`,ref:_,class:F([`stage`,{"stage--minified":x.value,"stage--tucked":C.value,[`stage--pin-${t.pin}`]:x.value}])},[x.value?(z(),T(mi,{key:0,onScrollTo:B,onDismiss:V})):E(`v-if`,!0),c.value&&l.value?(z(),T(xi,N({ref_key:`playerRef`,ref:m,key:c.value.src},c.value,{"has-playlist":s.value,"has-next":K(y),"has-previous":K(b),"auto-advance":o.value,onStateChange:ce,onPlayNext:J,onPlayPrevious:Y,onToggleAutoAdvance:n[0]||=e=>o.value=!o.value}),null,16,[`has-playlist`,`has-next`,`has-previous`,`auto-advance`])):(z(),D(`div`,{key:2,class:`stage__idle`,style:I({aspectRatio:ne.value}),onClick:ie},[c.value?.poster?(z(),D(`img`,{key:0,src:c.value.poster,class:`stage__idle-poster`},null,8,Di)):E(`v-if`,!0),n[1]||=O(`div`,{class:`stage__idle-scrim`},null,-1),O(`div`,Oi,[c.value?(z(),D(S,{key:0},[O(`div`,ki,[k(K(On))]),O(`p`,Ai,W(c.value.title),1)],64)):(z(),D(`p`,ji,`Select a video to play`))])],4))],2)],4))}}),[[`__scopeId`,`data-v-fb8c86cf`]]),Ni=A({__name:`PlayPauseIcon`,props:{isPlaying:{type:Boolean,required:!0},hasEnded:{type:Boolean,required:!1,default:!1}},setup(e){return(t,n)=>e.isPlaying?(z(),T(K(bn),{key:0})):e.hasEnded?(z(),T(K(In),{key:1})):(z(),T(K(On),{key:2}))}});const Pi={class:`placeholder`},Fi=[`src`,`alt`],Ii={class:`placeholder__btn-wrap`},Li=[`aria-label`],Ri={key:1,class:`placeholder__footer`},zi={class:`placeholder__title`};var Bi=Q(A({__name:`VideoPlaceholder`,props:{fromGesture:{type:Boolean,required:!1},src:{type:String,required:!0},title:{type:String,required:!1,default:``},poster:{type:String,required:!1,default:``},aspectRatio:{type:String,required:!1,default:u},adTagUrl:{type:String,required:!1,default:``},adMacroParams:{type:Object,required:!1},headerBidding:{type:Object,required:!1},tracks:{type:Array,required:!1},autoplay:{type:Boolean,required:!1,default:!1},muted:{type:Boolean,required:!1,default:void 0},volume:{type:Number,required:!1},playbackRate:{type:Number,required:!1},nativeUi:{type:Boolean,required:!1,default:!1},autoStage:{type:Boolean,required:!1,default:!1},lazy:{type:Boolean,required:!1},payload:{type:[Object,String],required:!1,default:()=>({})},action:{type:[String,Object,null],required:!1,default:null},disableTapCapture:{type:Boolean,required:!1},disableKeyboardShortcuts:{type:Boolean,required:!1},controls:{type:Boolean,required:!1},playInView:{type:Boolean,required:!1},pin:{type:String,required:!1}},emits:[`enter-view`],setup(t,{emit:n}){let r=t,i=n,a=w(()=>hi(r.aspectRatio)),o=w(()=>a.value.isPortrait),s=w(()=>a.value.cssRatio),c=H(null),l=null,u=H(!1),d=H(!1),p=w(()=>u.value&&d.value?`Pause`:`Play`);Ci(e,e=>{u.value=e.currentSrc===r.src,d.value=u.value&&e.isPlaying});function m(e,t,n){Si(f,{...r,fromGesture:e,...t!==void 0&&{autoplay:t},...n!==void 0&&{muted:n}})}function h(){m(!0,!0,ct(r.muted))}return R(()=>{r.autoStage&&m(!1),r.playInView&&c.value&&(l=Ue(c.value,()=>i(`enter-view`)))}),L(()=>l?.()),(e,n)=>(z(),D(`div`,Pi,[O(`div`,{ref_key:`shellEl`,ref:c,class:F([`placeholder__shell`,{"placeholder__shell--portrait":o.value,"placeholder__shell--active":u.value}]),style:I({aspectRatio:s.value}),onClick:h},[t.poster?(z(),D(`img`,{key:0,class:`placeholder__poster`,src:t.poster,alt:t.title},null,8,Fi)):E(`v-if`,!0),n[0]||=O(`div`,{class:`placeholder__scrim`},null,-1),O(`div`,Ii,[O(`button`,{type:`button`,class:`ppbtn ppbtn--lg`,"aria-label":p.value,onClick:Y(h,[`stop`])},[k(Ni,{"is-playing":u.value&&d.value},null,8,[`is-playing`])],8,Li)]),t.title?(z(),D(`div`,Ri,[O(`p`,zi,W(t.title),1)])):E(`v-if`,!0)],6)]))}}),[[`__scopeId`,`data-v-dbcb4f82`]]),Vi=A({__name:`VideoCard`,props:{fromGesture:{type:Boolean,required:!1},src:{type:String,required:!0},title:{type:String,required:!1},poster:{type:String,required:!1},aspectRatio:{type:String,required:!1},adTagUrl:{type:String,required:!1},adMacroParams:{type:Object,required:!1},headerBidding:{type:Object,required:!1},tracks:{type:Array,required:!1},autoplay:{type:Boolean,required:!1},muted:{type:Boolean,required:!1,default:void 0},volume:{type:Number,required:!1},playbackRate:{type:Number,required:!1},nativeUi:{type:Boolean,required:!1},autoStage:{type:Boolean,required:!1},lazy:{type:Boolean,required:!1,default:!0},payload:{type:[Object,String],required:!1},action:{type:[String,Object,null],required:!1,default:null},disableTapCapture:{type:Boolean,required:!1},disableKeyboardShortcuts:{type:Boolean,required:!1},controls:{type:Boolean,required:!1,default:void 0},playInView:{type:Boolean,required:!1},pin:{type:String,required:!1}},emits:[`state-change`],setup(e,{expose:t,emit:n}){let r=e,i=n,a=H(!1),o=H(!1);function s(){o.value=!0,a.value=!0}async function c(){a.value||(a.value=!0,await P())}let{playerRef:l,forwarded:u}=Tt(async e=>ii.value?(e===`togglePlay`&&Si(f,{...r,fromGesture:!0,autoplay:!0,muted:ct(r.muted)}),!1):(await c(),!0));return t(u),(e,t)=>K(ii)?(z(),T(Bi,ie(N({key:0},r)),null,16)):(z(),D(S,{key:1},[r.lazy&&!a.value&&!r.autoplay?(z(),T(Bi,N({key:0},r,{onClickCapture:s,onEnterView:t[0]||=e=>a.value=!0}),null,16)):(z(),T(xi,N({key:1,ref_key:`playerRef`,ref:l},r,{autoplay:a.value||r.autoplay,muted:K(ct)(r.muted,o.value),onStateChange:t[1]||=e=>i(`state-change`,e)}),null,16,[`autoplay`,`muted`]))],64))}}),Hi=Q(A({__name:`HideMarker`,setup(e){let t=H(null),n=null;return R(()=>{t.value&&(n=new IntersectionObserver(([e])=>{ai.value=e.isIntersecting}),n.observe(t.value))}),L(()=>{n?.disconnect(),ai.value=!1}),(e,n)=>(z(),D(`div`,{ref_key:`el`,ref:t,class:`mlv-hide-marker`},null,512))}}),[[`__scopeId`,`data-v-bacb702a`]]);const Ui=j(xi,{shadowRoot:!1}),Wi=j(Mi,{shadowRoot:!1}),Gi=j(Bi,{shadowRoot:!1}),Ki=j(Vi,{shadowRoot:!1}),qi=j(Hi,{shadowRoot:!1}),Ji=[[`ml-video-player`,Ui],[`ml-video-stage`,Wi],[`ml-video-placeholder`,Gi],[`ml-video-card`,Ki],[`ml-hide-marker`,qi]];function Yi(){for(let[e,t]of Ji)customElements.get(e)||customElements.define(e,t)}typeof import.meta.url==`string`&&new URL(import.meta.url).searchParams.has(`defer`)||Yi();export{qi as HideMarkerElement,Ki as VideoCardElement,Gi as VideoPlaceholderElement,Ui as VideoPlayerElement,Wi as VideoStageElement,Yi as defineElements,pe as registerEmbedAdapter,le as registerMatcher,be as registerPlatform,_e as registerSourceResolver};
|
|
1
|
+
import{A as e,C as t,D as n,E as r,S as i,T as a,a as o,d as s,g as c,h as l,i as u,j as d,k as f,o as p,r as m,s as h,u as g,x as _}from"./chunks/constants-zR-UwEWY.mjs";import{n as v,r as y,t as b}from"./chunks/platform-Dg9JBh8M.mjs";import{c as ee,d as x,s as S}from"./chunks/embedShared-duyOYFQN.mjs";import{Fragment as C,Transition as w,computed as T,createBlock as E,createCommentVNode as D,createElementBlock as O,createElementVNode as k,createStaticVNode as A,createTextVNode as te,createVNode as j,defineComponent as M,defineCustomElement as N,inject as P,mergeProps as F,nextTick as ne,normalizeClass as I,normalizeProps as re,normalizeStyle as L,onBeforeUnmount as R,onMounted as z,openBlock as B,provide as V,reactive as H,ref as U,renderList as ie,renderSlot as W,resolveDynamicComponent as ae,shallowRef as oe,toDisplayString as G,toRef as K,unref as q,watch as J,withCtx as Y,withModifiers as X}from"vue";const se=[];function ce(e){se.push(e)}function le(e){if(!e)return{key:`html5`,embed:!1};let t=se.find(t=>t.test(e));return{key:t?.key??`html5`,embed:t?.embed??!1}}const ue={},de={};function fe(e,t){ue[e]=t}async function pe(e,t,n){let r=ue[e];if(!r){let t=de[e];if(!t)return null;r=await t(),ue[e]=r}return r(t,n)}const me={},he={};function ge(e,t){me[e]=t}function _e(e){if(/\.m3u8(\?|#|$)/.test(e))return p;if(/\.mpd(\?|#|$)/.test(e))return m;if(/\.mp4(\?|#|$)/.test(e))return s}async function ve(e,t){let n=me[e];if(!n){let t=he[e];t&&(n=await t(),me[e]=n)}return n?n(t):{src:t,type:_e(t)}}function ye(e){ce({test:e.test,key:e.key,embed:e.embed}),e.embed?fe(e.key,e.createAdapter):e.resolveSource&&ge(e.key,e.resolveSource)}function be(e){ce({key:e.key,test:e.test,embed:e.embed}),e.embed?de[e.key]=e.loadAdapter:he[e.key]=e.loadResolver}be({key:`youtube`,test:e=>/youtu\.be|youtube\.com/.test(e),embed:!0,loadAdapter:()=>import(`./chunks/youtube-DbJ-IrvP.mjs`).then(e=>e.createYoutubeAdapter)}),be({key:`vimeo`,test:e=>/vimeo\.com|player\.vimeo\.com/.test(e),embed:!0,loadAdapter:()=>import(`./chunks/vimeo-WJYDJPA3.mjs`).then(e=>e.createVimeoAdapter)}),be({key:`dailymotion`,test:e=>/dailymotion\.com|dai\.ly/.test(e),embed:!0,loadAdapter:()=>import(`./chunks/dailymotion-gEquA4h5.mjs`).then(e=>e.createDailymotionAdapter)}),be({key:`jwplayer`,test:e=>/cdn\.jwplayer\.com/.test(e)||e.startsWith(`jwplayer://`),embed:!1,loadResolver:()=>import(`./chunks/jwplayer-WIkwoJTA.mjs`).then(e=>e.resolveSource)}),be({key:`brightcove`,test:e=>/players\.brightcove\.net/.test(e),embed:!1,loadResolver:()=>import(`./chunks/brightcove-rNI-XRxB.mjs`).then(e=>e.resolveSource)});function xe(e,t=!1){if(!e||isNaN(e))return`0:00`;let n=t?Math.round(e):Math.floor(e);return`${Math.floor(n/60)}:${String(n%60).padStart(2,`0`)}`}const Se=new Set;function Ce(e){return Se.add(e),()=>Se.delete(e)}function we(e){Se.forEach(t=>{if(t!==e)try{t()}catch{}})}function Te(e){let t=new Set,n=null;function r(){t.forEach(e=>e())}return i=>(n||=e(r),t.add(i),()=>{t.delete(i),t.size===0&&(n?.(),n=null)})}const Ee=Te(e=>(document.addEventListener(`fullscreenchange`,e),document.addEventListener(`webkitfullscreenchange`,e),()=>{document.removeEventListener(`fullscreenchange`,e),document.removeEventListener(`webkitfullscreenchange`,e)})),De=Te(e=>(document.addEventListener(`visibilitychange`,e),window.addEventListener(`blur`,e),()=>{document.removeEventListener(`visibilitychange`,e),window.removeEventListener(`blur`,e)}));function Oe(e){let t=U(!1),n=U(!1),r=null;function i(){let e=document;t.value=!!(document.fullscreenElement||e.webkitFullscreenElement),n.value=!1}function a(){let r=e();if(r){if(t.value){r.exitFullscreen();return}n.value=!0,r.enterFullscreen()}}function o(){n.value=!0}function s(e){e.on(l,()=>{n.value=!0}),e.on(c,()=>{n.value=!1}),e.on(`nativefullscreenenter`,()=>{t.value=!0,n.value=!1}),e.on(`nativefullscreenexit`,()=>{t.value=!1,n.value=!1})}return z(()=>{r=Ee(i)}),R(()=>{r?.()}),{isFullscreen:t,isFullscreenPending:n,toggleFullscreen:a,markFullscreenPending:o,attachPlayerEvents:s}}function ke(e){let t=U(!1),n=null;function r(){clearTimeout(n??void 0),t.value&&e(`bufferend`),t.value=!1}function i(i){i.on(`waiting`,()=>{clearTimeout(n??void 0),n=setTimeout(()=>{t.value=!0,e(`bufferstart`)},500)}),i.on(`playing`,r),i.on(`canplay`,r)}return R(()=>clearTimeout(n??void 0)),{isBuffering:t,attachPlayerEvents:i,reset:r}}function Ae(e,t,n){let r=new Set;function a(){if(!t.value)return;let a=e.value/t.value;for(let[e,t]of i)!r.has(e)&&a>=e&&(r.add(e),n(t))}function o(){r.clear()}return{checkQuartiles:a,reset:o}}function je(){try{return JSON.parse(localStorage.getItem(`player:positions`)??`[]`)}catch{return[]}}function Me(e){localStorage.setItem(n,JSON.stringify(e))}function Ne(e,t){if(t<5)return;let n=je().filter(t=>t.url!==e);n.unshift({url:e,time:t}),Me(n.slice(0,5))}function Pe(e){return je().find(t=>t.url===e)?.time??null}function Fe(e){Me(je().filter(t=>t.url!==e))}function Ie(e,t,n){let r=!1;function i(t){if(r)return;let n=Pe(e);n&&t.setCurrentTime(n),r=!0}function a(t){t&&!n.value&&Ne(e,t.currentTime()??0)}function o(){Fe(e)}let s=De(()=>{document.visibilityState===`hidden`&&a(t())});return R(()=>{a(t()),s()}),{restoreOnce:i,save:a,clear:o}}const Le=new WeakMap,Re=[.1,.5];function ze(e){let t=Le.get(e);if(t)return t;let n=new Set,r=new IntersectionObserver(([e])=>n.forEach(t=>t(e)),{threshold:Re});r.observe(e);let i={observer:r,callbacks:n};return Le.set(e,i),i}function Be(e,t){let n=ze(e);return n.callbacks.add(t),()=>{n.callbacks.delete(t),n.callbacks.size===0&&(n.observer.disconnect(),Le.delete(e))}}let Ve=null,He=null;function Ue(e,t){let n=Be(e,n=>{n.intersectionRatio<.5||(He&&clearTimeout(He),Ve=e,He=setTimeout(()=>{Ve=null,He=null,t()},150))});return()=>{Ve===e&&He&&(clearTimeout(He),Ve=null,He=null),n()}}function We(e,t,n,r,i){let a=null;z(()=>{let o=e.value&&S(e.value);o&&(a=Be(o,e=>{let a=t();e.intersectionRatio<.1&&a&&!a.paused()&&!n.value&&!r.value&&!i.value&&a.pause()}))}),R(()=>a?.())}function Ge(e){return e.kind===`captions`||e.kind===`subtitles`}function Ke(e,t){e.textTracks.addEventListener(`addtrack`,t),e.textTracks.addEventListener(`removetrack`,t);function n(){let t=[];for(let n=0;n<e.textTracks.length;n++){let r=e.textTracks[n];Ge(r)&&t.push({index:n,label:r.label||r.language||`Track ${n+1}`,language:r.language})}return t}function r(t){for(let n=0;n<e.textTracks.length;n++){let r=e.textTracks[n];Ge(r)&&(r.mode=n===t?`showing`:`hidden`)}}function i(){for(let t=0;t<e.textTracks.length;t++){let n=e.textTracks[t];if(Ge(n)&&n.mode===`showing`)return t}return null}return{supportsCaptions:()=>n().length>0,getCaptionTracks:n,setCaptionTrack:r,getActiveCaptionTrack:i,dispose:()=>{e.textTracks.removeEventListener(`addtrack`,t),e.textTracks.removeEventListener(`removetrack`,t)}}}function qe(e){let t=new Map;for(let n of e){if(!n.height)continue;let e=t.get(n.height);(!e||n.bitrate>e.bitrate)&&t.set(n.height,n)}return[...t.values()].sort((e,t)=>e.height-t.height)}function Je(e){function t(){return qe(e()?.levels()??[])}function n(){return e()?.isAuto()??!0}function r(){let t=e();return t?n()?null:t.currentIndex():null}function i(t){e()?.setIndex(t)}return{supportsQuality:()=>t().length>0,getQualityLevels:t,getCurrentQuality:r,isAutoQuality:n,setQuality:i}}function Ye(e,t,n){let r=[[`webkitbeginfullscreen`,t],[`webkitendfullscreen`,n]];for(let[t,n]of r)e.addEventListener(t,n);function i(){let t=e;if(typeof t.webkitEnterFullscreen==`function`){t.webkitEnterFullscreen();return}let n=S(e);n&&y(n)}function a(){let t=e;if(typeof t.webkitExitFullscreen==`function`){t.webkitExitFullscreen();return}b()}return{enterFullscreen:i,exitFullscreen:a,dispose:()=>{for(let[t,n]of r)e.removeEventListener(t,n)}}}function Xe(e,t){let n=[[`enterpictureinpicture`,t],[`leavepictureinpicture`,t]];for(let[t,r]of n)e.addEventListener(t,r);function r(){return typeof document<`u`&&!!document.pictureInPictureEnabled&&!e.disablePictureInPicture}function i(){return document.pictureInPictureElement===e}function a(){i()?document.exitPictureInPicture():r()&&e.requestPictureInPicture()}return{supportsPip:r,isPipActive:i,togglePip:a,dispose:()=>{for(let[t,r]of n)e.removeEventListener(t,r)}}}const Ze=[`play`,`pause`,`ended`,`error`,`timeupdate`,`durationchange`,`progress`,`volumechange`,`ratechange`,`seeking`,`seeked`,`waiting`,`playing`,`canplay`];function Qe(e){return{levels:()=>e.levels.map((e,t)=>({index:t,height:e.height,bitrate:e.bitrate,label:`${e.height}p`})),isAuto:()=>e.autoLevelEnabled,currentIndex:()=>e.manualLevel,setIndex:t=>{e.currentLevel=t??-1}}}function $e(e){return{levels:()=>e.getBitrateInfoListFor(`video`).map(e=>({index:e.qualityIndex,height:e.height,bitrate:e.bitrate,label:`${e.height}p`})),isAuto:()=>e.getSettings().streaming?.abr?.autoSwitchBitrate?.video??!0,currentIndex:()=>e.getQualityFor(`video`),setIndex:t=>{if(t===null){e.updateSettings({streaming:{abr:{autoSwitchBitrate:{video:!0}}}});return}e.updateSettings({streaming:{abr:{autoSwitchBitrate:{video:!1}}}}),e.setQualityFor(`video`,t,!0)}}}function et(e,t){let n=x(),r=null,i=null,a=!1,o=null,s=null,c=t.preload===`none`&&!t.autoplay,l=!1;async function u(i){let{default:s}=await import(`hls.js`);if(a||o!==i)return;if(typeof s?.isSupported!=`function`||!s.isSupported()){e.src=i,t.autoplay&&e.play();return}r=new s({liveDurationInfinity:!0,autoStartLoad:!c}),l=!c,r.loadSource(i),r.attachMedia(e),t.autoplay&&e.play();let u=s.Events,d=s.ErrorTypes;r.on(u.MANIFEST_PARSED,m(`qualitychange`)),r.on(u.LEVEL_SWITCHED,m(`qualitychange`)),r.on(u.ERROR,(e,t)=>{if(t.fatal&&!a&&o===i)switch(t.type){case d.NETWORK_ERROR:r?.startLoad();break;case d.MEDIA_ERROR:r?.recoverMediaError();break;default:r?.destroy(),r=null,n.trigger(`error`)}})}async function d(r){let o=await import(`dashjs`);if(a||s!==r)return;let c=o.MediaPlayer().create();i=c,c.initialize(e,r,t.autoplay??!1);let l=o.MediaPlayer.events;c.on(l.QUALITY_CHANGE_RENDERED,m(`qualitychange`)),c.on(l.STREAM_INITIALIZED,m(`qualitychange`)),c.on(l.ERROR,()=>{a||s!==r||(c.destroy(),i=null,n.trigger(`error`))})}function f(){return/Apple/.test(navigator.vendor)&&!/CriOS|FxiOS|OPiOS|EdgiOS|Chrome|Chromium|Android/.test(navigator.userAgent)&&(e.canPlayType(`application/vnd.apple.mpegurl`)!==``||e.canPlayType(`application/x-mpegURL`)!==``)}function p(n,a){if(r?.destroy(),r=null,o=null,i?.destroy(),i=null,s=null,a===`application/dash+xml`){s=n,d(n);return}if(a===`application/x-mpegURL`&&!f()){o=n,u(n);return}e.src=n,t.autoplay&&e.play()}let m=e=>()=>n.trigger(e),h=Ze.map(e=>[e,m(e)]);for(let[t,n]of h)e.addEventListener(t,n);let g=Ke(e,m(`captionschange`)),_=Je(()=>r?Qe(r):i?$e(i):null),v=Ye(e,m(`nativefullscreenenter`),m(`nativefullscreenexit`)),y=Xe(e,m(`pipchange`)),{poster:b,muted:ee,autoplay:S,volume:C,playbackRate:w,preload:T,src:E,type:D}=t;return e.poster=b??``,T&&(e.preload=T),e.muted=ee??S??!1,e.volume=C??1,e.playbackRate=w??1,e.playsInline=!0,p(E,D),{el:e,play:()=>(r&&!l&&(l=!0,r.startLoad()),e.play()),pause:()=>e.pause(),paused:()=>e.paused,currentTime:()=>e.currentTime,setCurrentTime:t=>{e.currentTime=t},duration:()=>e.duration,volume:()=>e.volume,setVolume:t=>{e.volume=t},muted:()=>e.muted,setMuted:t=>{e.muted=t},playbackRate:()=>e.playbackRate,setPlaybackRate:t=>{e.playbackRate=t},bufferedEnd:()=>{let{buffered:t,duration:n}=e;if(!t.length)return 0;let r=t.end(t.length-1);return n&&r>n?n:r},error:()=>{let t=e.error;return t?{code:t.code,message:t.message||`This video could not be played.`}:null},setSrc:p,supportsPlaybackRate:()=>!0,supportsCaptions:g.supportsCaptions,getCaptionTracks:g.getCaptionTracks,setCaptionTrack:g.setCaptionTrack,getActiveCaptionTrack:g.getActiveCaptionTrack,supportsQuality:_.supportsQuality,getQualityLevels:_.getQualityLevels,getCurrentQuality:_.getCurrentQuality,isAutoQuality:_.isAutoQuality,setQuality:_.setQuality,supportsPip:y.supportsPip,isPipActive:y.isPipActive,togglePip:y.togglePip,enterFullscreen:v.enterFullscreen,exitFullscreen:v.exitFullscreen,on:n.on,off:n.off,dispose:()=>{a=!0,r?.destroy(),i?.destroy();for(let[t,n]of h)e.removeEventListener(t,n);g.dispose(),v.dispose(),y.dispose(),n.dispose()}}}function tt(e,t){if(!t||!Object.keys(t).length)return e;let n=e;for(let[e,r]of Object.entries(t))r!=null&&r!==``&&(n=n.split(`{${e}}`).join(encodeURIComponent(r)));return n}function nt(){try{let e=localStorage.getItem(a);if(!e)return o;let t=JSON.parse(e);return{muted:typeof t.muted==`boolean`?t.muted:o.muted,volume:typeof t.volume==`number`?t.volume:o.volume}}catch{return o}}function rt(e){localStorage.setItem(a,JSON.stringify(e))}let it=!1;function at(){it=!0}function ot(){return it}function st(e){rt(e),e.muted||at()}function ct(e,t=!0){if(e!==void 0)return e;if(!t)return;let n=nt().muted;return n||at(),n}function lt(e,t){return e===void 0?t&&!ot()?!0:nt().muted:e}function ut(e){return e.volume??nt().volume}function dt(e){return{muted:lt(e.muted,!!(e.autoplay||e.playInView)),volume:ut(e)}}async function ft(e,t,n){if(!t.value)return{status:`aborted`};let r=await pe(e,t.value,{src:n.src,poster:n.poster,autoplay:n.autoplay,...dt(n),nativeUi:n.nativeUi});return t.value?r?{status:`mounted`,mounted:{adapter:r,currentSrc:{src:n.src},nativeUi:!!n.nativeUi,needsReveal:!0}}:{status:`unsupported`}:{status:`aborted`}}async function pt(e,t,n,r,i){let a=await ve(e,n.src).catch(()=>({src:n.src}));if(!t.value)return{status:`aborted`};let o=et(t.value,{src:a.src,type:a.type,poster:a.poster||n.poster||``,autoplay:n.autoplay,...dt(n),playbackRate:r.value,preload:n.preload}),s=tt(n.adTagUrl||a.adTagUrl||``,n.adMacroParams);return i.attach(t.value,o,s,n.headerBidding),{status:`mounted`,mounted:{adapter:o,currentSrc:{src:a.src,type:a.type},needsReveal:!1}}}function mt(e,t,n,r,i){return e.embed?ft(e.key,t,n):pt(e.key,t,n,r,i)}function ht(e,t,n,r,i){let a=null;z(()=>{let o=e.value&&S(e.value);o&&(a=Ue(o,()=>{let e=t();e&&e.paused()&&!n.value&&!r.value&&(e.setMuted(lt(i,!0)),e.play())}))}),R(()=>a?.())}function gt(e,t,n,r,i,a){function o(){let n=e();if(n&&t.value){if(!a.value){n.play();return}n.pause()}}function s(t){e()?.setCurrentTime(n.value*(t/100))}function c(){let t=e();if(!t)return;let n=!t.muted();t.setMuted(n),st({muted:n,volume:t.volume()})}function l(t){let n=e();if(!n)return;let r=t===0;n.setVolume(t),n.setMuted(r),st({muted:r,volume:t})}function u(){r.value=!r.value}function d(t){let n=e();n&&(n.setPlaybackRate(t),i.value=t)}return{togglePlay:o,seek:s,toggleMute:c,setVolume:l,toggleLoop:u,setPlaybackRate:d}}function _t(e,t){let{isPlaying:n,hasEnded:r,isReady:i,isAdPlaying:a,isLive:o,current:s,total:c,buffered:l,vol:u,isMuted:d,isLooping:f,playbackRate:p,supportsPlaybackRate:m,supportsCaptions:h,captionTracks:g,activeCaptionIndex:_,supportsQuality:v,qualityLevels:y,currentQualityIndex:b,isAutoQuality:ee,supportsPip:x,isPipActive:S,hasStarted:C,isError:w,errorMessage:T}=e,{fire:E,pauseThisPlayer:D,positionMemory:O,quartiles:k,buffering:A,fullscreen:te}=t;function j(e){i.value=!0,m.value=e.supportsPlaybackRate();function t(){g.value=e.getCaptionTracks(),h.value=g.value.length>0;let t=e.getActiveCaptionTrack();t!==_.value&&(_.value=t,C.value&&E(`captionchange`,{captionIndex:t}))}t(),e.on(`captionschange`,t);function j(){y.value=e.getQualityLevels(),v.value=y.value.length>0;let t=e.getCurrentQuality(),n=e.isAutoQuality(),r=t!==b.value||n!==ee.value;b.value=t,ee.value=n,r&&C.value&&E(`qualitychange`,{qualityIndex:n?null:t})}j(),e.on(`qualitychange`,j);function M(){x.value=e.supportsPip();let t=e.isPipActive();t!==S.value&&(S.value=t,C.value&&E(`pipchange`,{isPipActive:t}))}M(),e.on(`pipchange`,M);let N=()=>{if(a.value)return;let t=e.duration();if(t===1/0){o.value=!0;return}o.value=!1,t&&t>0&&isFinite(t)&&(c.value=t)};e.on(`adstart`,()=>{we(D),a.value=!0,E(`adstart`)}),e.on(`adend`,()=>{a.value=!1,E(`adend`)}),e.on(`play`,()=>{we(D),C.value=!0,n.value=!0,r.value=!1,o.value||O.restoreOnce(e),E(`play`)}),e.on(`pause`,()=>{n.value=!1,o.value||O.save(e),E(`pause`)}),e.on(`ended`,()=>{if(n.value=!1,k.reset(),A.reset(),f.value){e.setCurrentTime(0),e.play();return}c.value&&(s.value=c.value),r.value=!0,O.clear(),E(`ended`)}),e.on(`seeked`,()=>{E(`seeked`)}),e.on(`error`,()=>{let t=e.error();T.value=t?.message||`This video could not be played.`,w.value=!0,i.value=!0,console.error(`Video playback error:`,T.value),E(`error`,{error:t})});let P=0;e.on(`timeupdate`,()=>{if(r.value||a.value)return;s.value=e.currentTime()??0,c.value||N(),m.value||=e.supportsPlaybackRate();let t=e.getActiveCaptionTrack();_.value!==t&&(_.value=t,C.value&&E(`captionchange`,{captionIndex:t})),o.value||k.checkQuartiles();let n=Date.now();C.value&&n-P>=250&&(P=n,E(`timeupdate`))}),e.on(`durationchange`,N),e.on(`progress`,()=>{if(a.value)return;let t=e.duration();l.value=t?e.bufferedEnd()/t*100:0}),e.on(`volumechange`,()=>{let t=e.muted();u.value=e.volume()??1,d.value=t??!1,C.value&&E(`volumechange`,{isMuted:t})}),e.on(`ratechange`,()=>{let t=e.playbackRate()??1;p.value=t,C.value&&E(`ratechange`,{playbackRate:t})}),A.attachPlayerEvents(e),te.attachPlayerEvents(e)}return{attachPlayerEvents:j}}function vt(e,t){let{isAdPlaying:n,isAdPaused:r,isAdMuted:i,adRemainingTime:a}=e,{fire:o,pauseThisPlayer:s}=t,c=null,l=null,u=!1;async function d(e,t,d,f){if(!(d||f)||!e.parentElement)return;let p=!1;t.on(`play`,()=>{c?c.requestAdsOnFirstPlay():p=!0});let m=null;f&&import(`./chunks/prebid-RHDT0DOX.mjs`).then(({resolveHeaderBiddingAdTagUrl:e})=>e(f,d).catch(()=>d)).then(e=>{c?c.setAdTagUrl(e):m=e});function h(){!v()&&t.isPipActive()&&document.exitPictureInPicture()}function g(){!v()&&(document.hidden||!document.hasFocus())&&c?.isAdPlaying()&&c.pauseAd()}let _=De(g),y=()=>{t.isPipActive()||g()};t.on(`pipchange`,y),l=()=>{_(),t.off(`pipchange`,y)};let{attachAds:b}=await import(`./chunks/ads-BV769SMr.mjs`);!u&&e.parentElement&&(c=b(e.parentElement,e,d,{onAdStart:()=>{n.value=!0,r.value=!1,o(`adstart`),h(),g()},onAdEnd:()=>{n.value=!1,r.value=!1,a.value=0,o(`adend`)},onAdPauseChange:e=>{r.value=e,e||we(s)},onAdMuteChange:e=>{i.value=e},onAdProgress:e=>{a.value=e},onError:e=>{n.value=!1,r.value=!1,a.value=0,console.error(`Ad playback error:`,e)}}),m&&c.setAdTagUrl(m),p&&c.requestAdsOnFirstPlay())}return{attach:d,isAdPlaying:()=>c?.isAdPlaying()??!1,isAdPaused:()=>c?.isAdPaused()??!1,pauseAd:()=>c?.pauseAd(),resumeAd:()=>c?.resumeAd(),toggleAdMute:()=>c?.toggleAdMute(),dispose:()=>{u=!0,c?.dispose(),c=null,l?.(),l=null}}}function yt(e,t,n){let r=null,i=null,a=null,o=!1,s=U(!1),c=U(!1),l=U(!1),u=U(!1),d=U(0),f=U(0),p=U(0),m=U(ut(t)),h=U(!1),g=U(!1),_=U(!1),v=U(0),y=U(lt(t.muted,!!(t.autoplay||t.playInView))),b=U(!!t.loop),x=U(t.playbackRate??1),S=U(!1),C=U(!1),w=U([]),E=U(null),D=U(!1),O=U([]),k=U(null),A=U(!0),te=U(!1),j=U(!1),M=U(!1),N=U(!1),P=U(``),F=U(!1),ne=T(()=>f.value?d.value/f.value*100:0),I=T(()=>Math.max(p.value,ne.value)),re=T(()=>!y.value&&m.value>0),L=()=>r,B=T(()=>{if(typeof t.payload!=`string`)return t.payload??{};try{return JSON.parse(t.payload)}catch{return{}}});function V(e,r={}){n(`state-change`,{type:e,currentTime:d.value,duration:f.value,src:t.src,...r,payload:B.value})}let H=Oe(L),ie=ke(V),W=Ie(t.src,L,c),ae=Ae(d,f,V);function oe(){r&&a&&(N.value=!1,P.value=``,r.setSrc(a.src,a.type))}function G(){if(q.isAdPlaying()){q.pauseAd();return}r?.pause()}function K(){if(q.isAdPlaying()){q.isAdPaused()?q.resumeAd():q.pauseAd();return}Y.togglePlay()}let q=vt({isAdPlaying:h,isAdPaused:g,isAdMuted:_,adRemainingTime:v},{fire:V,pauseThisPlayer:G}),Y=gt(L,l,f,b,x,s),{attachPlayerEvents:X}=_t({isPlaying:s,hasEnded:c,isReady:l,isAdPlaying:h,isLive:u,current:d,total:f,buffered:p,vol:m,isMuted:y,isLooping:b,playbackRate:x,supportsPlaybackRate:S,supportsCaptions:C,captionTracks:w,activeCaptionIndex:E,supportsQuality:D,qualityLevels:O,currentQualityIndex:k,isAutoQuality:A,supportsPip:te,isPipActive:j,hasStarted:M,isError:N,errorMessage:P},{fire:V,pauseThisPlayer:G,positionMemory:W,quartiles:ae,buffering:ie,fullscreen:H});function se(e){r?.setCaptionTrack(e),E.value=e,M.value&&V(`captionchange`,{captionIndex:e})}function ce(e){r?.setQuality(e),k.value=e,A.value=e===null,M.value&&V(`qualitychange`,{qualityIndex:e})}function ue(){r?.togglePip()}function de(){Y.toggleLoop(),M.value&&V(`loopchange`,{isLooping:b.value})}J(()=>t.loop,e=>{e!==void 0&&e!==b.value&&de()}),J(()=>t.muted,e=>{r&&e!==void 0&&r.setMuted(e)}),J(()=>t.playbackRate,e=>{r&&e!==void 0&&r.setPlaybackRate(e)}),We(e,L,H.isFullscreen,H.isFullscreenPending,T(()=>!!t.pin)),t.playInView&&ht(e,L,H.isFullscreen,H.isFullscreenPending,t.muted);function fe(e){r=e.adapter,a=e.currentSrc,o=e.needsReveal,e.nativeUi!==void 0&&(F.value=e.nativeUi),i=Ce(G),X(e.adapter)}return J(M,t=>{t&&o&&e.value&&r&&ee(e.value,r.el)}),z(async()=>{let n=await mt(le(t.src),e,t,x,q);if(n.status===`unsupported`){N.value=!0,l.value=!0,P.value=`This platform is not yet supported.`;return}n.status===`mounted`&&fe(n.mounted)}),R(()=>{i?.(),q.dispose(),r?.dispose(),r=null}),{isPlaying:s,hasEnded:c,isReady:l,isLive:u,isBuffering:ie.isBuffering,current:d,total:f,progress:ne,bufferedDisplay:I,hasStarted:M,isError:N,errorMessage:P,fmt:xe,fire:V,retry:oe,togglePlay:K,seek:Y.seek,isAdPlaying:h,isAdPaused:g,isAdMuted:_,adRemainingTime:v,toggleAdMute:q.toggleAdMute,vol:m,isMuted:y,isAudible:re,toggleMute:Y.toggleMute,setVolume:Y.setVolume,isLooping:b,toggleLoop:de,currentPlaybackRate:x,setPlaybackRate:Y.setPlaybackRate,supportsPlaybackRate:S,isFullscreen:H.isFullscreen,isFullscreenPending:H.isFullscreenPending,toggleFullscreen:H.toggleFullscreen,markFullscreenPending:H.markFullscreenPending,supportsCaptions:C,captionTracks:w,activeCaptionIndex:E,setCaptionTrack:se,supportsQuality:D,qualityLevels:O,currentQualityIndex:k,isAutoQuality:A,setQuality:ce,supportsPip:te,isPipActive:j,togglePip:ue,isNativeUi:F}}const bt=new Set([`ArrowLeft`,`ArrowRight`,`ArrowUp`,`ArrowDown`,`Home`,`End`]);function xt(e,t){function n(e,t,n){return Math.min(n,Math.max(t,e))}function r(t){if(!e.total)return;let r=n(e.current+t,0,e.total);e.seek(r/e.total*100)}function i(t){e.setVolume(n(e.vol+t,0,1))}function a(){e.supportsCaptions&&e.setCaptionTrack(e.activeCaptionIndex===null?0:null)}function o(n){if(n.repeat||n.metaKey||n.ctrlKey||n.altKey)return;let o=n.target;if(!o.closest(`input:not([type="range"]), textarea, select, [contenteditable="true"]`)&&!(bt.has(n.key)&&o.closest(`input[type="range"]`))&&(n.key!==` `&&n.key!==`Enter`||!o.closest(`button, a[href]`))){switch(n.key){case` `:case`k`:n.preventDefault(),e.togglePlay();break;case`ArrowLeft`:n.preventDefault(),r(-5);break;case`ArrowRight`:n.preventDefault(),r(5);break;case`ArrowUp`:n.preventDefault(),i(g);break;case`ArrowDown`:n.preventDefault(),i(-g);break;case`m`:e.toggleMute();break;case`f`:e.toggleFullscreen();break;case`c`:a();break;case`Home`:n.preventDefault(),e.seek(0);break;case`End`:n.preventDefault(),e.seek(100);break;default:if(!/^[0-9]$/.test(n.key))return;e.seek(Number(n.key)*10)}t.onMouseMove()}}return{onKeydown:o}}function St(e,t){let n=U(!0),r=U(!1),i=null,a=0;function o(e=400){a=Date.now()+e}function s(e=h){clearTimeout(i??void 0),i=setTimeout(()=>{if(document.activeElement?.closest(`.overlay__hud, .overlay__popup`)){s(e);return}n.value=!1,r.value=!1},e)}function c(){clearTimeout(i??void 0)}function l(){r.value=!0,n.value=!0,s()}function u(i=!1){r.value=!1,(i||t.value)&&(n.value=!1),e.value&&s()}function d(){e.value&&s()}function f(){n.value=!0,e.value&&s()}function p(){n.value=!0,s()}function m(){Date.now()<a||e.value&&s(600)}return J(e,e=>{if(!e){clearTimeout(i??void 0),n.value=!0;return}s()}),R(()=>clearTimeout(i??void 0)),{showHUD:n,isOpen:r,scheduleHide:s,pauseHide:c,onVideoTap:f,onMouseMove:p,onMouseLeave:m,openControls:l,closeControls:u,keepOpen:d,suppressMouseLeave:o}}const Ct=[`retry`,`togglePlay`,`seek`,`toggleMute`,`setVolume`,`toggleFullscreen`,`markFullscreenPending`,`toggleLoop`,`toggleAdMute`,`setPlaybackRate`,`setCaptionTrack`,`setQuality`,`togglePip`],wt=`isPlaying.hasEnded.isReady.isAdPlaying.isAdPaused.isAdMuted.adRemainingTime.isLive.isBuffering.current.total.vol.isMuted.isAudible.isLooping.currentPlaybackRate.hasStarted.isError.errorMessage.progress.bufferedDisplay.isFullscreen.isFullscreenPending.supportsPlaybackRate.supportsCaptions.captionTracks.activeCaptionIndex.supportsQuality.qualityLevels.currentQualityIndex.isAutoQuality.supportsPip.isPipActive.isNativeUi`.split(`.`);function Tt(e=()=>!0){let t=oe(null),n={};for(let r of Ct)n[r]=async(...n)=>{await e(r)&&t.value?.[r]?.(...n)};for(let e of wt)n[e]=T(()=>t.value?.[e]);return{playerRef:t,forwarded:n}}const Et=Symbol(`player`),Dt=Symbol(`hud`),Ot=Symbol(`action`),kt=Symbol(`playlist`);function Z(e){let t=P(e);if(t===void 0)throw Error(`[video-player] missing "${String(e.description)}" context — this component must be rendered inside <VideoPlayer>`);return t}function At(e,t){let n=T(()=>e.isReady&&!e.isError);return{hudVisible:T(()=>n.value&&t.showHUD),popupVisible:T(()=>n.value?e.isFullscreen?t.showHUD:t.isOpen:!1)}}function jt(e,t=250){let n=U(!1),r=null;return J(e,e=>{r?.disconnect(),r=null,e&&(r=new ResizeObserver(([e])=>{n.value=e.contentRect.width<t}),r.observe(e))},{immediate:!0}),R(()=>r?.disconnect()),n}const Mt={mute:{label:e=>e.isMuted?`Unmute`:`Mute`,active:e=>e.isMuted,onClick:e=>e.toggleMute()},loop:{label:e=>e.isLooping?`Disable loop`:`Loop`,active:e=>e.isLooping,onClick:e=>e.toggleLoop()},autoplay:{label:(e,t)=>t.autoAdvance?`Disable autoplay next`:`Autoplay next`,active:(e,t)=>t.autoAdvance,onClick:(e,t)=>t.toggleAutoAdvance()}};function Nt(e,t,n){let r=T(()=>e?.value??null),i=T(()=>!!r.value&&typeof r.value==`object`),a=T(()=>i.value?r.value:null),o=T(()=>i.value||!r.value?null:Mt[r.value]),s=T(()=>o.value?.label(t,n)??``),c=T(()=>o.value?.active(t,n)??!1);function l(){o.value?.onClick(t,n)}return{currentAction:r,isCustom:i,customAction:a,builtinLabel:s,builtinActive:c,onBuiltinClick:l}}var Q=(e,t)=>{let n=e.__vccOpts||e;for(let[e,r]of t)n[e]=r;return n};const Pt={},Ft={viewBox:`0 0 24 24`,fill:`currentColor`};function It(e,t){return B(),O(`svg`,Ft,[...t[0]||=[k(`path`,{d:`M20 11H7.83l5.59-5.59L12 4l-8 8 8 8 1.41-1.41L7.83 13H20v-2z`},null,-1)]])}var Lt=Q(Pt,[[`render`,It]]);const Rt={},zt={viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`2`,"stroke-linecap":`round`,"stroke-linejoin":`round`};function Bt(e,t){return B(),O(`svg`,zt,[...t[0]||=[k(`rect`,{x:`2`,y:`5`,width:`20`,height:`14`,rx:`2`},null,-1),k(`path`,{d:`M9.5 10.5a2 2 0 0 0-3.5 1.3v.4a2 2 0 0 0 3.5 1.3`},null,-1),k(`path`,{d:`M17.5 10.5a2 2 0 0 0-3.5 1.3v.4a2 2 0 0 0 3.5 1.3`},null,-1)]])}var Vt=Q(Rt,[[`render`,Bt]]);const Ht={},Ut={viewBox:`0 0 24 24`,fill:`currentColor`};function Wt(e,t){return B(),O(`svg`,Ut,[...t[0]||=[k(`path`,{d:`M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z`},null,-1)]])}var Gt=Q(Ht,[[`render`,Wt]]);const Kt={},qt={viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`2`,"stroke-linecap":`round`,"stroke-linejoin":`round`};function Jt(e,t){return B(),O(`svg`,qt,[...t[0]||=[A(`<line x1="4" y1="6" x2="20" y2="6"></line><line x1="4" y1="12" x2="20" y2="12"></line><line x1="4" y1="18" x2="20" y2="18"></line><circle cx="9" cy="6" r="2.5" fill="currentColor" stroke="none"></circle><circle cx="15" cy="12" r="2.5" fill="currentColor" stroke="none"></circle><circle cx="9" cy="18" r="2.5" fill="currentColor" stroke="none"></circle>`,6)]])}var Yt=Q(Kt,[[`render`,Jt]]);const Xt={},Zt={viewBox:`0 0 24 24`,fill:`currentColor`};function Qt(e,t){return B(),O(`svg`,Zt,[...t[0]||=[k(`path`,{d:`M4 12l1.41 1.41L11 7.83V20h2V7.83l5.59 5.58L20 12l-8-8-8 8z`},null,-1)]])}var $t=Q(Xt,[[`render`,Qt]]);const en={},tn={viewBox:`0 0 24 24`,fill:`currentColor`};function nn(e,t){return B(),O(`svg`,tn,[...t[0]||=[k(`path`,{d:`M7 14H5v5h5v-2H7v-3zm-2-4h2V7h3V5H5v5zm12 7h-3v2h5v-5h-2v3zM14 5v2h3v3h2V5h-5z`},null,-1)]])}var rn=Q(en,[[`render`,nn]]);const an={},on={viewBox:`0 0 24 24`,fill:`currentColor`};function sn(e,t){return B(),O(`svg`,on,[...t[0]||=[k(`path`,{d:`M5 16h3v3h2v-5H5v2zm3-8H5v2h5V5H8v3zm6 11h2v-3h3v-2h-5v5zm2-11V5h-2v5h5V8h-3z`},null,-1)]])}var cn=Q(an,[[`render`,sn]]);const ln={},un={viewBox:`0 0 24 24`,fill:`currentColor`};function dn(e,t){return B(),O(`svg`,un,[...t[0]||=[k(`path`,{d:`M7 7h10v3l4-4-4-4v3H5v6h2V7zm10 10H7v-3l-4 4 4 4v-3h12v-6h-2v4z`},null,-1)]])}var fn=Q(ln,[[`render`,dn]]);const pn={},mn={viewBox:`0 0 24 24`,fill:`currentColor`};function hn(e,t){return B(),O(`svg`,mn,[...t[0]||=[k(`circle`,{cx:`5`,cy:`12`,r:`2`},null,-1),k(`circle`,{cx:`12`,cy:`12`,r:`2`},null,-1),k(`circle`,{cx:`19`,cy:`12`,r:`2`},null,-1)]])}var gn=Q(pn,[[`render`,hn]]);const _n={},vn={viewBox:`0 0 24 24`,fill:`currentColor`};function yn(e,t){return B(),O(`svg`,vn,[...t[0]||=[k(`path`,{d:`M6 19h4V5H6v14zm8-14v14h4V5h-4z`},null,-1)]])}var bn=Q(_n,[[`render`,yn]]);const xn={},Sn={viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`2`,"stroke-linecap":`round`,"stroke-linejoin":`round`};function Cn(e,t){return B(),O(`svg`,Sn,[...t[0]||=[k(`rect`,{x:`2`,y:`4`,width:`20`,height:`16`,rx:`2`},null,-1),k(`rect`,{x:`12`,y:`11`,width:`8`,height:`6`,rx:`1`,fill:`currentColor`,stroke:`none`},null,-1)]])}var wn=Q(xn,[[`render`,Cn]]);const Tn={},En={viewBox:`0 0 24 24`,fill:`currentColor`};function Dn(e,t){return B(),O(`svg`,En,[...t[0]||=[k(`path`,{d:`M8 5v14l11-7z`},null,-1)]])}var On=Q(Tn,[[`render`,Dn]]);const kn={},An={viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`2`,"stroke-linecap":`round`,"stroke-linejoin":`round`};function jn(e,t){return B(),O(`svg`,An,[...t[0]||=[k(`rect`,{x:`2`,y:`6`,width:`20`,height:`12`,rx:`2`},null,-1),k(`path`,{d:`M7 14v-4M12 14V8M17 14v-2`},null,-1)]])}var Mn=Q(kn,[[`render`,jn]]);const Nn={},Pn={viewBox:`0 0 24 24`,fill:`currentColor`};function Fn(e,t){return B(),O(`svg`,Pn,[...t[0]||=[k(`path`,{d:`M12 5V1L7 6l5 5V7c3.31 0 6 2.69 6 6s-2.69 6-6 6-6-2.69-6-6H4c0 4.42 3.58 8 8 8s8-3.58 8-8-3.58-8-8-8z`},null,-1)]])}var In=Q(Nn,[[`render`,Fn]]);const Ln={},Rn={viewBox:`0 0 24 24`,fill:`currentColor`};function zn(e,t){return B(),O(`svg`,Rn,[...t[0]||=[k(`path`,{d:`M6 18l8.5-6L6 6v12zM16 6v12h2V6h-2z`},null,-1)]])}var Bn=Q(Ln,[[`render`,zn]]);const Vn={},Hn={viewBox:`0 0 24 24`,fill:`currentColor`};function Un(e,t){return B(),O(`svg`,Hn,[...t[0]||=[k(`path`,{d:`M16.5 12A4.5 4.5 0 0 0 14 7.97v2.21l2.45 2.45c.03-.2.05-.41.05-.63zm2.5 0c0 .94-.2 1.82-.54 2.64l1.51 1.51A8.796 8.796 0 0 0 21 12c0-4.28-2.99-7.86-7-8.77v2.06c2.89.86 5 3.54 5 6.71zM4.27 3L3 4.27 7.73 9H3v6h4l5 5v-6.73l4.25 4.25c-.67.52-1.42.93-2.25 1.18v2.06A8.99 8.99 0 0 0 17.73 18L19 19.27 20.27 18 5.27 3 4.27 3zM12 4L9.91 6.09 12 8.18V4z`},null,-1)]])}var Wn=Q(Vn,[[`render`,Un]]);const Gn={},Kn={viewBox:`0 0 24 24`,fill:`currentColor`};function qn(e,t){return B(),O(`svg`,Kn,[...t[0]||=[k(`path`,{d:`M3 9v6h4l5 5V4L7 9H3zm13.5 3A4.5 4.5 0 0 0 14 7.97v8.05c1.48-.73 2.5-2.25 2.5-4.02z`},null,-1)]])}var Jn=Q(Gn,[[`render`,qn]]);function Yn(e,t){return T(()=>e.value?e.value:t.value?document.getElementById(t.value)??null:null)}const Xn=[`aria-label`];var Zn=Q(M({__name:`PlayButton`,props:{player:{type:[Object,null],required:!1},for:{type:String,required:!1}},setup(e){let t=e,n=Yn(K(t,`player`),K(t,`for`)),r=T(()=>n.value?.isError?`error`:n.value?.hasEnded?`ended`:n.value?.isPlaying?`playing`:`idle`),i=T(()=>{switch(r.value){case`error`:return`Retry`;case`ended`:return`Replay`;case`playing`:return`Pause`;default:return`Play`}});function a(){let e=n.value;e&&(e.isError?e.retry():e.togglePlay())}return(e,t)=>(B(),O(`button`,{type:`button`,class:`mlv-play-button`,"aria-label":i.value,onClick:a},[W(e.$slots,`default`,{isPlaying:q(n)?.isPlaying??!1,hasEnded:q(n)?.hasEnded??!1,isError:q(n)?.isError??!1},()=>[r.value===`error`||r.value===`ended`?(B(),E(q(In),{key:0})):r.value===`playing`?(B(),E(q(bn),{key:1})):(B(),E(q(On),{key:2}))],!0)],8,Xn))}}),[[`__scopeId`,`data-v-218255bd`]]),Qn=Q(M({__name:`Spinner`,props:{size:{type:Number,required:!1,default:14},borderWidth:{type:Number,required:!1,default:2}},setup(e){return(t,n)=>(B(),O(`div`,{class:`spinner`,style:L({width:`${e.size}px`,height:`${e.size}px`,borderWidth:`${e.borderWidth}px`})},null,4))}}),[[`__scopeId`,`data-v-259be2b2`]]);const $n={key:0,class:`mlv-buffering`};var er=Q(M({__name:`Buffering`,props:{player:{type:[Object,null],required:!1},for:{type:String,required:!1}},setup(e){let t=e,n=Yn(K(t,`player`),K(t,`for`));return(e,t)=>q(n)?.isBuffering?(B(),O(`div`,$n,[W(e.$slots,`default`,{},()=>[j(Qn)],!0)])):D(`v-if`,!0)}}),[[`__scopeId`,`data-v-454fec7f`]]),tr=M({__name:`VolumeIcon`,props:{isAudible:{type:Boolean,required:!0}},setup(e){return(t,n)=>e.isAudible?(B(),E(q(Jn),{key:0})):(B(),E(q(Wn),{key:1}))}});const nr={class:`hud`,"aria-hidden":`true`},rr=[`aria-label`],ir=[`aria-label`,`innerHTML`],ar={key:2,class:`hud__spacer`},or={class:`hud__play-wrap`};var sr=Q(M({__name:`HudButtons`,setup(e){let t=Z(Et),n=Z(Dt),{currentAction:r,isCustom:i,customAction:a,builtinLabel:o,builtinActive:s,onBuiltinClick:c}=Nt(P(Ot),t,Z(kt));return(e,l)=>(B(),O(C,null,[D(` tabindex="-1" + aria-hidden: this row's play/mute/custom/show-controls buttons are all redundant outside plain mouse hover - play/mute already have global hotkeys, everything else is duplicated in ControlsPopup, which PlayerOverlay's "Show player controls" skip link reaches directly for keyboard/AT users. `),k(`div`,nr,[!q(n).isOpen&&!q(t).isFullscreen?(B(),O(C,{key:0},[q(r)===`mute`||q(r)===`loop`||q(r)===`autoplay`?(B(),O(`button`,{key:0,class:I([`hud__btn`,{"hud__btn--active":q(s)}]),"aria-label":q(o),tabindex:`-1`,onClick:l[0]||=X((...e)=>q(c)&&q(c)(...e),[`stop`])},[q(r)===`mute`?(B(),E(tr,{key:0,"is-audible":q(t).isAudible},null,8,[`is-audible`])):q(r)===`loop`?(B(),E(q(fn),{key:1})):(B(),E(q(Bn),{key:2}))],10,rr)):q(i)&&q(a)?(B(),O(`button`,{key:1,class:`hud__btn`,"aria-label":q(a).label,tabindex:`-1`,onClick:l[1]||=X(e=>q(a).onClick(),[`stop`]),innerHTML:q(a).icon},null,8,ir)):(B(),O(`div`,ar))],64)):D(`v-if`,!0),k(`div`,or,[j(Zn,{player:q(t),class:`ppbtn ppbtn--lg`,tabindex:`-1`},null,8,[`player`]),j(er,{player:q(t),class:`hud__buf-spinner`},null,8,[`player`])]),!q(n).isOpen&&!q(t).isFullscreen?(B(),O(`button`,{key:1,class:`hud__btn`,"aria-label":`Show controls`,tabindex:`-1`,onClick:l[2]||=X((...e)=>q(n).openControls&&q(n).openControls(...e),[`stop`])},[j(q(Yt))])):D(`v-if`,!0)])],2112))}}),[[`__scopeId`,`data-v-a6d118e7`]]);const cr=new WeakMap;async function lr(e,t){if(!e){t();return}cr.get(e)?.();let n=e.getBoundingClientRect();t(),await ne();let r=e.getBoundingClientRect(),i=n.left-r.left,a=n.top-r.top,o=n.width/r.width,s=n.height/r.height;if(!i&&!a&&o===1&&s===1)return;let c=getComputedStyle(e).position===`static`;c&&(e.style.position=`relative`),e.style.zIndex=`2147483647`,e.style.transition=`none`,e.style.transformOrigin=`top left`,e.style.transform=`translate(${i}px, ${a}px) scale(${o}, ${s})`,e.getBoundingClientRect(),await new Promise(t=>{let n=null,r=()=>{cancelAnimationFrame(i),n&&clearTimeout(n),e.style.transition=``,e.style.transform=``,e.style.transformOrigin=``,e.style.zIndex=``,c&&(e.style.position=``),cr.delete(e),t()};cr.set(e,r);let i=requestAnimationFrame(()=>{e.style.transition=`transform 220ms ease`,e.style.transform=``,n=setTimeout(r,220)})})}const ur=[`aria-label`];var dr=Q(M({__name:`FullscreenButton`,props:{player:{type:[Object,null],required:!1},for:{type:String,required:!1}},setup(e){let t=e,n=Yn(K(t,`player`),K(t,`for`));return(e,t)=>(B(),O(`button`,{type:`button`,class:`mlv-fullscreen-button`,"aria-label":q(n)?.isFullscreen?`Exit fullscreen`:`Enter fullscreen`,onClick:t[0]||=e=>q(n)?.toggleFullscreen()},[W(e.$slots,`default`,{isFullscreen:q(n)?.isFullscreen??!1},()=>[q(n)?.isFullscreen?(B(),E(q(cn),{key:0})):(B(),E(q(rn),{key:1}))],!0)],8,ur))}}),[[`__scopeId`,`data-v-b93a5017`]]);const fr=[`aria-pressed`];var pr=Q(M({__name:`PipButton`,props:{player:{type:[Object,null],required:!1},for:{type:String,required:!1}},setup(e){let t=e,n=Yn(K(t,`player`),K(t,`for`));return(e,t)=>q(n)?.supportsPip?(B(),O(`button`,{key:0,type:`button`,class:I([`mlv-pip-button`,{"mlv-pip-button--active":q(n)?.isPipActive}]),"aria-pressed":q(n)?.isPipActive??!1,"aria-label":`Toggle Picture-in-Picture`,onClick:t[0]||=e=>q(n)?.togglePip()},[W(e.$slots,`default`,{isPipActive:q(n)?.isPipActive??!1},()=>[j(q(wn))],!0)],10,fr)):D(`v-if`,!0)}}),[[`__scopeId`,`data-v-f654d93e`]]);function mr(e){let n=U(!1),r=U(null),i=!1,a=null,o=!1,s=T(()=>{let t=e.value;return t?.total?t.current/t.total*100:0}),c=T(()=>r.value??s.value),l=T(()=>r.value!==null),u=T(()=>{let t=e.value?.total??0;return c.value/100*t});function d(){a&&clearTimeout(a),a=null}function f(){d(),r.value=null}function p(t){let a=e.value;a?.total&&(n.value||=(i=a.isPlaying,a.isPlaying&&a.togglePlay(),!0),d(),r.value=Number(t.target.value))}function m(s){if(!n.value)return;n.value=!1,o=!0;let c=e.value;if(!c)return;let l=Number(s.target.value);r.value=l,c.seek(l),i&&c.togglePlay(),d(),a=setTimeout(f,t)}function h(s){if(n.value||o)return;o=!1;let c=e.value;if(!c?.total)return;let l=Number(s.target.value);r.value=l,c.seek(l),i&&c.togglePlay(),d(),a=setTimeout(f,t)}return J(()=>e.value?.current,()=>{let t=e.value;if(r.value===null||!t?.total)return;let n=r.value/100*t.total;Math.abs(t.current-n)<1&&f()}),R(f),{scrubbing:l,displayPercent:c,previewSeconds:u,onInput:p,onChange:m,onTouchEnd:h}}const hr={class:`mlv-scrubber-wrap`},gr=[`value`,`aria-valuetext`];var _r=Q(M({inheritAttrs:!1,__name:`Scrubber`,props:{player:{type:[Object,null],required:!1},for:{type:String,required:!1}},setup(e){let t=e,n=Yn(K(t,`player`),K(t,`for`)),{scrubbing:r,displayPercent:i,previewSeconds:a,onInput:o,onChange:s,onTouchEnd:c}=mr(n),l=e=>xe(e,!0);return(e,t)=>(B(),O(`div`,hr,[k(`input`,F({type:`range`,min:`0`,max:`100`,step:`0.5`,value:q(i),class:`mlv-scrubber`},e.$attrs,{style:{"--p":`${q(i)}%`,"--b":`${q(n)?.bufferedDisplay??0}%`},"aria-label":`Seek`,"aria-valuetext":`${l(q(a))} of ${l(q(n)?.total??0)}`,onInput:t[0]||=(...e)=>q(o)&&q(o)(...e),onChange:t[1]||=(...e)=>q(s)&&q(s)(...e),onTouchend:t[2]||=(...e)=>q(c)&&q(c)(...e)}),null,16,gr),W(e.$slots,`preview`,{scrubbing:q(r),percent:q(i),previewSeconds:q(a),formatTime:l},()=>[q(r)?(B(),O(`div`,{key:0,class:`mlv-scrubber__preview`,style:L({left:`${q(i)}%`})},G(l(q(a))),5)):D(`v-if`,!0)],!0)]))}}),[[`__scopeId`,`data-v-043f1bc8`]]);const vr={class:`mlv-time-display__time`},yr={class:`mlv-time-display__total`};var br=Q(M({__name:`TimeDisplay`,props:{player:{type:[Object,null],required:!1},for:{type:String,required:!1}},setup(e){let t=e,n=Yn(K(t,`player`),K(t,`for`));return(e,t)=>(B(),O(`span`,{class:I([`mlv-time-display`,{"mlv-time-display--live":q(n)?.isLive}])},[W(e.$slots,`default`,{isLive:q(n)?.isLive??!1,current:q(n)?.current??0,total:q(n)?.total??0,formatTime:q(xe)},()=>[q(n)?.isLive?(B(),O(C,{key:0},[t[0]||=k(`span`,{class:`mlv-time-display__dot`},null,-1),t[1]||=te(`Live `,-1)],64)):(B(),O(C,{key:1},[k(`span`,vr,G(q(xe)(q(n)?.current??0)),1),k(`span`,yr,`/ `+G(q(xe)(q(n)?.total??0)),1)],64))],!0)],2))}}),[[`__scopeId`,`data-v-0285c811`]]);const xr={class:`mlv-volume-wrap`},Sr=[`value`],Cr={class:`mlv-volume-pct`};var wr=Q(M({inheritAttrs:!1,__name:`VolumeSlider`,props:{player:{type:[Object,null],required:!1},for:{type:String,required:!1}},setup(e){let t=e,n=Yn(K(t,`player`),K(t,`for`)),r=T(()=>{let e=n.value;return e?e.isMuted?0:Math.round(e.vol*100):0});function i(e){n.value?.setVolume(Number(e.target.value)/100)}return(e,t)=>(B(),O(`div`,xr,[k(`input`,F({type:`range`,min:`0`,max:`100`,step:`1`,value:r.value,class:`mlv-volume-slider`},e.$attrs,{style:{"--v":`${r.value}%`},"aria-label":`Volume`,onInput:i}),null,16,Sr),W(e.$slots,`default`,{percent:r.value},()=>[k(`span`,Cr,G(r.value)+`%`,1)],!0)]))}}),[[`__scopeId`,`data-v-fbb2c86c`]]);const Tr={class:`controls__vol-header`},Er=[`aria-label`],Dr={class:`controls__vol-body`},Or={class:`controls__vol-pct`};var kr=Q(M({__name:`VolumePanel`,emits:[`back`],setup(e){let t=Z(Et),n=Z(Dt);return(e,r)=>(B(),O(C,null,[k(`div`,Tr,[k(`button`,{class:`controls__btn`,"aria-label":`Back`,onClick:r[0]||=t=>e.$emit(`back`)},[j(q(Lt))]),r[6]||=k(`span`,{class:`controls__vol-label`},`Volume`,-1),k(`button`,{class:`controls__btn`,"aria-label":q(t).isMuted?`Unmute`:`Mute`,onClick:r[1]||=e=>q(t).toggleMute()},[j(tr,{"is-audible":q(t).isAudible},null,8,[`is-audible`])],8,Er)]),k(`div`,Dr,[j(wr,{player:q(t),class:`controls__vol-slider`,onMousedown:r[2]||=e=>q(n).pauseHide(),onMouseup:r[3]||=e=>q(n).scheduleHide(),onTouchstartPassive:r[4]||=e=>q(n).pauseHide(),onTouchend:r[5]||=e=>q(n).scheduleHide()},{default:Y(({percent:e})=>[k(`span`,Or,G(e)+`%`,1)]),_:1},8,[`player`])])],64))}}),[[`__scopeId`,`data-v-10b0ae67`]]);function Ar(e){function t(){let t=_.indexOf(e.currentPlaybackRate);e.setPlaybackRate(_[(t+1)%_.length])}function n(e){return`${e}×`}return{cycleRate:t,fmtRate:n}}function jr(e){function t(){let t=e.captionTracks;if(!t.length)return;let n=t[t.findIndex(t=>t.index===e.activeCaptionIndex)+1];e.setCaptionTrack(n?n.index:null)}function n(){return e.captionTracks.find(t=>t.index===e.activeCaptionIndex)?.label??`Off`}return{cycleCaptionTrack:t,currentCaptionLabel:n}}function Mr(e){function t(){let t=e.qualityLevels;if(!t.length)return;if(e.isAutoQuality){e.setQuality(t[t.length-1].index);return}let n=t.findIndex(t=>t.index===e.currentQualityIndex);e.setQuality(n<=0?null:t[n-1].index)}function n(){return e.isAutoQuality?`Auto`:e.qualityLevels.find(t=>t.index===e.currentQualityIndex)?.label??`Auto`}return{cycleQuality:t,currentQualityLabel:n}}const Nr=[`aria-label`],Pr={key:0,class:`controls__more-row-label`},Fr=[`innerHTML`],Ir={key:1},Lr={key:2,class:`controls__more-value`};var $=Q(M({__name:`MoreMenuRow`,props:{label:{type:String,required:!0},ariaLabel:{type:String,required:!1,default:``},icon:{type:null,required:!1},iconHtml:{type:String,required:!1},active:{type:Boolean,required:!1,default:!1},value:{type:String,required:!1}},emits:[`click`],setup(e){return(t,n)=>(B(),O(`button`,{class:I([`controls__more-row`,{"controls__more-row--active":e.active}]),"aria-label":e.ariaLabel||e.label,onClick:n[0]||=e=>t.$emit(`click`)},[e.icon||e.iconHtml?(B(),O(`span`,Pr,[e.icon?(B(),E(ae(e.icon),{key:0,class:`controls__more-row-icon`})):(B(),O(`span`,{key:1,class:`controls__more-row-icon`,innerHTML:e.iconHtml},null,8,Fr)),te(` `+G(e.label),1)])):(B(),O(`span`,Ir,G(e.label),1)),e.value===void 0?D(`v-if`,!0):(B(),O(`span`,Lr,G(e.value),1))],10,Nr))}}),[[`__scopeId`,`data-v-47ca5bfc`]]);const Rr={class:`controls__more-header`};var zr=Q(M({__name:`MoreMenu`,props:{isCustom:{type:Boolean,required:!0},customAction:{type:[Object,null],required:!0},compact:{type:Boolean,required:!0}},emits:[`back`],setup(e){let t=Z(Et),n=Z(Dt),r=Z(kt),{cycleRate:i,fmtRate:a}=Ar(t),{cycleCaptionTrack:o,currentCaptionLabel:s}=jr(t),{cycleQuality:c,currentQualityLabel:l}=Mr(t);return(u,d)=>(B(),O(C,null,[k(`div`,Rr,[k(`button`,{class:`controls__btn`,"aria-label":`Back`,onClick:d[0]||=e=>u.$emit(`back`)},[j(q(Lt))]),d[8]||=k(`span`,{class:`controls__more-label`},`More`,-1)]),k(`div`,{class:`controls__more-body`,onTouchstartPassive:d[7]||=e=>q(n).keepOpen()},[q(t).supportsPlaybackRate?(B(),E($,{key:0,label:`Playback speed`,value:q(a)(q(t).currentPlaybackRate),onClick:q(i)},null,8,[`value`,`onClick`])):D(`v-if`,!0),j($,{label:`Loop`,"aria-label":`Toggle loop`,icon:q(fn),active:q(t).isLooping,value:q(t).isLooping?`On`:`Off`,onClick:d[1]||=e=>q(t).toggleLoop()},null,8,[`icon`,`active`,`value`]),q(t).supportsCaptions?(B(),E($,{key:1,label:`Captions`,icon:q(Vt),active:q(t).activeCaptionIndex!==null,value:q(s)(),onClick:q(o)},null,8,[`icon`,`active`,`value`,`onClick`])):D(`v-if`,!0),q(t).supportsQuality?(B(),E($,{key:2,label:`Quality`,icon:q(Mn),active:!q(t).isAutoQuality,value:q(l)(),onClick:q(c)},null,8,[`icon`,`active`,`value`,`onClick`])):D(`v-if`,!0),q(r).hasPlaylist?(B(),E($,{key:3,label:`Autoplay next`,"aria-label":`Toggle autoplay next`,icon:q(Bn),active:q(r).autoAdvance,value:q(r).autoAdvance?`On`:`Off`,onClick:d[2]||=e=>q(r).toggleAutoAdvance()},null,8,[`icon`,`active`,`value`])):D(`v-if`,!0),e.compact&&q(t).supportsPip?(B(),E($,{key:4,label:`Picture-in-picture`,"aria-label":`Toggle picture-in-picture`,icon:q(wn),active:q(t).isPipActive,onClick:d[3]||=e=>q(t).togglePip()},null,8,[`icon`,`active`])):D(`v-if`,!0),e.compact&&q(r).hasNext?(B(),E($,{key:5,label:`Play next`,"aria-label":`Play next`,icon:q(Bn),onClick:d[4]||=e=>q(r).playNext()},null,8,[`icon`])):D(`v-if`,!0),e.compact?(B(),E($,{key:6,label:`Mute`,"aria-label":`Toggle mute`,icon:q(t).isAudible?q(Jn):q(Wn),active:!q(t).isAudible,onClick:d[5]||=e=>q(t).toggleMute()},null,8,[`icon`,`active`])):D(`v-if`,!0),e.isCustom&&e.customAction?(B(),E($,{key:7,label:e.customAction.label,"icon-html":e.customAction.icon,onClick:d[6]||=t=>e.customAction.onClick()},null,8,[`label`,`icon-html`])):D(`v-if`,!0)],32)],64))}}),[[`__scopeId`,`data-v-e89a8208`]]);const Br={class:`controls__row`},Vr={class:`controls__play-wrap`},Hr=[`aria-expanded`],Ur=[`aria-expanded`],Wr={class:`controls__fs-wrap`};var Gr=Q(M({__name:`ControlsPopup`,setup(e){let t=Z(Et),n=Z(Dt),r=Z(kt),{isCustom:i,customAction:a}=Nt(P(Ot),t,r),o=U(!1),s=U(!1),c=U(null),l=U(null),u=jt(c),d=T(()=>t.isLooping||t.currentPlaybackRate!==1||r.autoAdvance);function f(e){return!c.value||c.value.contains(e)?!1:(n.closeControls(),!0)}function p(e){f(e.target)}function m(e){f(e.target)&&e.preventDefault()}z(()=>{t.fire(`controlsopen`,{element:c.value}),document.addEventListener(`click`,p,!0),document.addEventListener(`touchend`,m,!0)}),R(()=>{o.value=!1,s.value=!1,t.fire(`controlsclose`,{element:c.value}),document.removeEventListener(`click`,p,!0),document.removeEventListener(`touchend`,m,!0)});function h(e){n.suppressMouseLeave();let t=c.value,r=l.value;if(!t||!r){e();return}r.style.opacity=`0`,lr(t,e).then(()=>{r.style.transition=`opacity 130ms ease`,r.style.opacity=``,setTimeout(()=>{r.style.transition=``},130)})}function g(){if(v()){t.toggleMute();return}h(()=>{o.value=!0})}function _(){h(()=>{s.value=!0})}return(e,f)=>(B(),O(`div`,{ref_key:`popupEl`,ref:c,class:I([`controls`,{"controls--fs":q(t).isFullscreen,"controls--compact":q(u)}]),onMousemove:f[8]||=X((...e)=>q(n).keepOpen&&q(n).keepOpen(...e),[`stop`])},[k(`div`,{class:`controls__inner`,ref_key:`contentEl`,ref:l},[o.value?(B(),E(kr,{key:0,onBack:f[0]||=e=>h(()=>o.value=!1)})):s.value?(B(),E(zr,{key:1,"is-custom":q(i),"custom-action":q(a),compact:q(u),onBack:f[1]||=e=>h(()=>s.value=!1)},null,8,[`is-custom`,`custom-action`,`compact`])):(B(),O(C,{key:2},[q(t).isLive?D(`v-if`,!0):(B(),E(_r,{key:0,player:q(t),class:`controls__seek`,onMousedown:f[2]||=e=>q(n).pauseHide(),onMouseup:f[3]||=e=>q(n).scheduleHide(),onTouchstartPassive:f[4]||=e=>q(n).pauseHide(),onTouchend:f[5]||=e=>q(n).scheduleHide()},null,8,[`player`])),k(`div`,Br,[k(`div`,Vr,[j(er,{player:q(t)},null,8,[`player`]),q(t).isBuffering?D(`v-if`,!0):(B(),E(Zn,{key:0,player:q(t),class:`ppbtn ppbtn--sm`},null,8,[`player`]))]),j(br,{player:q(t),class:`controls__time-display`},null,8,[`player`]),q(r).hasNext?(B(),O(`button`,{key:0,class:`controls__btn controls__btn--next`,"aria-label":`Play next`,onClick:f[6]||=e=>q(r).playNext()},[j(q(Bn))])):D(`v-if`,!0),k(`button`,{class:`controls__btn controls__btn--volume`,"aria-label":`Volume`,"aria-haspopup":`true`,"aria-expanded":o.value,onClick:g},[j(tr,{"is-audible":q(t).isAudible},null,8,[`is-audible`])],8,Hr),k(`button`,{class:I([`controls__btn controls__btn--more`,{"controls__btn--active":d.value}]),"aria-label":`More`,"aria-haspopup":`true`,"aria-expanded":s.value,onClick:_},[j(q(gn))],10,Ur),j(pr,{player:q(t),class:`controls__btn controls__btn--pip`},null,8,[`player`]),k(`div`,Wr,[q(t).isFullscreenPending?(B(),E(Qn,{key:0})):(B(),E(dr,{key:1,player:q(t),class:`controls__btn`},null,8,[`player`]))])])],64))],512),k(`button`,{type:`button`,class:`controls__close`,"aria-label":`Close player controls`,onClick:f[7]||=e=>q(n).closeControls(!0)},`Close player controls`)],34))}}),[[`__scopeId`,`data-v-5712aad4`]]);const Kr={key:0,class:`overlay__spinner`},qr={key:0,class:`overlay__error`},Jr=[`inert`];var Yr=Q(M({__name:`PlayerOverlay`,setup(e){let t=Z(Et),n=Z(Dt),{hudVisible:r,popupVisible:i}=At(t,n);return(e,a)=>(B(),O(C,null,[j(w,{name:`fade`},{default:Y(()=>[!q(t).isReady&&!q(t).isError?(B(),O(`div`,Kr,[j(Qn,{size:40,"border-width":3})])):D(`v-if`,!0)]),_:1}),j(w,{name:`fade`},{default:Y(()=>[q(t).isError?(B(),O(`div`,qr,[k(`p`,null,G(q(t).errorMessage||`This video could not be played.`),1),k(`button`,{class:`overlay__retry`,onClick:a[0]||=X((...e)=>q(t).retry&&q(t).retry(...e),[`stop`])},`Retry`)])):D(`v-if`,!0)]),_:1}),k(`button`,{type:`button`,class:`overlay__reveal`,"aria-label":`Show player controls`,onClick:a[1]||=e=>q(n).openControls()},`Show player controls`),k(`div`,{class:I([`overlay__hud`,{"overlay__hud--visible":q(r)}]),inert:!q(r)},[j(sr)],10,Jr),j(w,{name:`popup`},{default:Y(()=>[q(i)?(B(),O(`div`,{key:0,class:I([`overlay__popup`,{"overlay__popup--fs":q(t).isFullscreen}])},[j(Gr)],2)):D(`v-if`,!0)]),_:1})],64))}}),[[`__scopeId`,`data-v-2fba5782`]]);const Xr={class:`ad-overlay`},Zr={class:`ad-overlay__bar`},Qr={class:`ad-overlay__badge`},$r={key:0,class:`ad-overlay__countdown`},ei=[`aria-label`],ti=[`aria-label`];var ni=Q(M({__name:`AdOverlay`,setup(e){let t=Z(Et),n=T(()=>t.adRemainingTime>0?t.fmt(t.adRemainingTime):``);return(e,r)=>(B(),O(`div`,Xr,[k(`div`,Zr,[k(`div`,Qr,[r[2]||=k(`span`,null,`Ad`,-1),n.value?(B(),O(`span`,$r,G(n.value),1)):D(`v-if`,!0)]),k(`button`,{class:`ad-overlay__btn`,"aria-label":q(t).isAdPaused?`Resume ad`:`Pause ad`,onClick:r[0]||=e=>q(t).togglePlay()},[q(t).isAdPaused?(B(),E(q(On),{key:0})):(B(),E(q(bn),{key:1}))],8,ei),k(`button`,{class:`ad-overlay__btn`,"aria-label":q(t).isAdMuted?`Unmute ad`:`Mute ad`,onClick:r[1]||=e=>q(t).toggleAdMute()},[q(t).isAdMuted?(B(),E(q(Wn),{key:0})):(B(),E(q(Jn),{key:1}))],8,ti)])]))}}),[[`__scopeId`,`data-v-23efcc8b`]]);const ri=U(0),ii=T(()=>ri.value>0),ai=U(!1);function oi(){ri.value++}function si(){ri.value--}function ci(e,t,n){let r=U(!1),i=T(()=>r.value&&ai.value),a=null;function o(){if(a?.(),a=null,!n.value||!e.value){r.value=!1;return}a=Be(e.value,e=>{e.intersectionRatio<.1?t.value&&(r.value=!0):r.value=!1})}return z(o),J(n,o),J(e,o),R(()=>a?.()),{isPinned:r,isTucked:i,unpin:()=>r.value=!1}}function li(e,t,n){let r=U(null),i=U(null);J(n,n=>{let i=e.value?.offsetWidth??null;r.value=n&&t.value&&i?{height:t.value.offsetHeight,wrapperWidth:i}:null});let a=T(()=>{if(!r.value)return{};let{height:e,wrapperWidth:t}=r.value,n=i.value?i.value/t:1;return{height:`${Math.round(e*n)}px`}}),o=null;return J(e,e=>{o?.disconnect(),o=null,e&&(o=new ResizeObserver(([e])=>i.value=e.contentRect.width),o.observe(e))},{immediate:!0}),R(()=>o?.disconnect()),{wrapperStyle:a,clear:()=>r.value=null}}function ui(e){e?.scrollIntoView({behavior:`smooth`,block:`center`})}var di=Q(M({__name:`PinnablePlayerShell`,props:{isPlaying:{type:Boolean,required:!0}},setup(e){let t=e,n=U(null),r=U(null),{isPinned:i,unpin:a}=ci(n,K(t,`isPlaying`),U(!0)),o=U(i.value);J(i,e=>{lr(r.value,()=>{o.value=e})});let s=T(()=>o.value&&ai.value),{wrapperStyle:c}=li(n,r,o);function l(){ui(n.value)}function u(e){r.value=e}return(e,t)=>(B(),O(`div`,{ref_key:`wrapperEl`,ref:n,class:`player-wrapper`,style:L(q(c))},[W(e.$slots,`default`,{isPinned:o.value,isTucked:s.value,setBoxEl:u,unpin:q(a),scrollToPlayer:l},void 0,!0)],4))}}),[[`__scopeId`,`data-v-a2f8a547`]]);const fi={class:`player-wrapper`};var pi=Q(M({__name:`PlainPlayerShell`,props:{isPlaying:{type:Boolean,required:!0}},setup(e){function t(){}return(e,n)=>(B(),O(`div`,fi,[W(e.$slots,`default`,{isPinned:!1,isTucked:!1,setBoxEl:t,unpin:t,scrollToPlayer:t},void 0,!0)]))}}),[[`__scopeId`,`data-v-9188c23a`]]),mi=Q(M({__name:`PinnedControls`,emits:[`scroll-to`,`dismiss`],setup(e){return(e,t)=>(B(),O(C,null,[k(`button`,{class:`pinned-controls__scroll-to`,"aria-label":`Scroll to player`,onClick:t[0]||=X(t=>e.$emit(`scroll-to`),[`stop`])},[j(q($t))]),k(`button`,{class:`pinned-controls__dismiss`,"aria-label":`Close`,onClick:t[1]||=X(t=>e.$emit(`dismiss`),[`stop`])},[j(q(Gt))])],64))}}),[[`__scopeId`,`data-v-690b416a`]]);function hi(e){let[t,n]=e.split(`:`).map(Number);return{isPortrait:n>t,cssRatio:`${t}/${n}`}}const gi=[`aria-label`,`tabindex`],_i={"data-mlv-player":``},vi=[`poster`,`preload`],yi=[`src`,`kind`,`srclang`,`label`,`default`],bi={key:3,class:`player__native-play`};var xi=Q(M({__name:`VideoPlayer`,props:{src:{type:String,required:!0},title:{type:String,required:!1,default:``},poster:{type:String,required:!1,default:``},aspectRatio:{type:String,required:!1,default:u},adTagUrl:{type:String,required:!1,default:``},adMacroParams:{type:Object,required:!1},headerBidding:{type:Object,required:!1},tracks:{type:Array,required:!1,default:()=>[]},autoplay:{type:Boolean,required:!1,default:!1},muted:{type:Boolean,required:!1,default:void 0},volume:{type:Number,required:!1},playbackRate:{type:Number,required:!1},nativeUi:{type:Boolean,required:!1,default:!1},autoStage:{type:Boolean,required:!1,default:!1},lazy:{type:Boolean,required:!1,default:!1},payload:{type:[Object,String],required:!1,default:()=>({})},action:{type:[String,Object,null],required:!1,default:null},disableTapCapture:{type:Boolean,required:!1,default:!1},disableKeyboardShortcuts:{type:Boolean,required:!1,default:!1},controls:{type:Boolean,required:!1,default:!0},playInView:{type:Boolean,required:!1,default:!1},pin:{type:String,required:!1},loop:{type:Boolean,required:!1,default:!1},preload:{type:String,required:!1,default:void 0},hasPlaylist:{type:Boolean,required:!1,default:!1},hasNext:{type:Boolean,required:!1,default:!1},hasPrevious:{type:Boolean,required:!1,default:!1},autoAdvance:{type:Boolean,required:!1,default:!1}},emits:[`state-change`,`play-next`,`play-previous`,`toggle-auto-advance`],setup(e,{expose:t,emit:n}){let r=e,i=n,a=U(null),o=H(yt(a,r,i)),s=H(St(K(o,`isPlaying`),K(o,`isFullscreen`))),{onKeydown:c}=xt(o,s);function l(e){r.disableKeyboardShortcuts||c(e)}let u=U(null);J(()=>o.isFullscreen,e=>{e&&!r.disableKeyboardShortcuts&&ne(()=>u.value?.focus())});function d(e){if(r.disableKeyboardShortcuts)return;let t=e.relatedTarget;t&&u.value?.contains(t)||requestAnimationFrame(()=>{document.activeElement===document.body&&u.value?.focus()})}V(Et,o),V(Dt,s),V(Ot,K(r,`action`)),V(kt,H({hasPlaylist:T(()=>r.hasPlaylist),hasNext:T(()=>r.hasNext),hasPrevious:T(()=>r.hasPrevious),autoAdvance:T(()=>r.autoAdvance),playNext:()=>i(`play-next`),playPrevious:()=>i(`play-previous`),toggleAutoAdvance:()=>i(`toggle-auto-advance`)}));let f=T(()=>hi(r.aspectRatio)),p=T(()=>f.value.isPortrait),m=T(()=>f.value.cssRatio),h=T(()=>!r.poster&&!o.isReady),g=T(()=>r.pin?di:pi);function _(e){o.isPlaying&&o.togglePlay(),e()}function v(){s.onVideoTap(),o.fire(`tap`)}let{playerRef:y,forwarded:b}=Tt();return y.value=o,t(b),(t,n)=>(B(),E(ae(g.value),{"is-playing":o.isPlaying},{default:Y(({isPinned:t,isTucked:i,setBoxEl:c,unpin:f,scrollToPlayer:g})=>[k(`div`,{ref:c,class:I([`player`,{"player--pinned":t,"player--tucked":i,[`player--pin-${e.pin}`]:t}])},[t?(B(),E(mi,{key:0,onScrollTo:g,onDismiss:e=>_(f)},null,8,[`onScrollTo`,`onDismiss`])):D(`v-if`,!0),k(`div`,{ref_key:`shellEl`,ref:u,class:I([`player__shell`,{"player__shell--portrait":p.value}]),style:L({aspectRatio:m.value}),role:`group`,"aria-label":e.title||`Video player`,tabindex:e.disableKeyboardShortcuts?void 0:0,onMousemove:n[0]||=e=>s.onMouseMove(),onContextmenuCapture:n[1]||=X(()=>{},[`prevent`]),onMouseleave:n[2]||=e=>s.onMouseLeave(),onKeydown:l,onFocusout:d},[k(`div`,_i,[k(`video`,{ref_key:`videoEl`,ref:a,class:I([`mlv-video`,{"mlv-video--hidden":h.value}]),poster:r.poster,preload:r.preload,playsinline:``},[(B(!0),O(C,null,ie(r.tracks,(e,t)=>(B(),O(`track`,{key:`${e.src}-${t}`,src:e.src,kind:e.kind??`captions`,srclang:e.srclang,label:e.label,default:e.default},null,8,yi))),128))],10,vi),!r.disableTapCapture&&!o.isNativeUi&&o.hasStarted&&!o.isAdPlaying?(B(),O(`div`,{key:0,class:`overlay__tap-capture`,onClick:v,onTouchend:X(v,[`prevent`,`stop`])},null,32)):D(`v-if`,!0),o.isAdPlaying&&!o.isNativeUi?(B(),E(ni,{key:1})):D(`v-if`,!0),r.controls&&!o.isNativeUi?(B(),E(Yr,{key:2})):D(`v-if`,!0),r.controls&&o.isNativeUi&&!o.hasStarted?(B(),O(`div`,bi,[j(Zn,{player:o,class:`ppbtn ppbtn--lg`},null,8,[`player`])])):D(`v-if`,!0)])],46,gi)],2)]),_:1},8,[`is-playing`]))}}),[[`__scopeId`,`data-v-4ab3cf75`]]);function Si(e,t){window.dispatchEvent(new CustomEvent(e,{detail:t}))}function Ci(e,t){let n=e=>t(e.detail);z(()=>window.addEventListener(e,n)),R(()=>window.removeEventListener(e,n))}function wi(e,t){let n=T(()=>!e.value||!t.value?-1:e.value.findIndex(e=>e.src===t.value?.src)),r=T(()=>n.value===-1||!e.value?null:e.value[n.value+1]??null),i=T(()=>n.value<=0||!e.value?null:e.value[n.value-1]??null);return{hasNext:T(()=>r.value!==null),hasPrevious:T(()=>i.value!==null),nextEntry:r,previousEntry:i}}function Ti(){return localStorage.getItem(r)===`true`}function Ei(e){localStorage.setItem(r,String(e))}const Di=[`src`],Oi={class:`stage__idle-body`},ki={class:`stage__idle-btn`},Ai={class:`stage__idle-title`},ji={key:1,class:`stage__idle-empty`};var Mi=Q(M({__name:`VideoStage`,props:{pin:{type:String,required:!1,default:`bottom-right`},playlist:{type:Array,required:!1}},emits:[`state-change`],setup(t,{expose:n,emit:r}){let i=t,a=r,o=U(Ti());J(o,Ei);let s=T(()=>!!i.playlist?.length),c=U(null),l=U(!1),u=U(!1);function p(e){a(`state-change`,{type:e,currentTime:0,duration:0,src:c.value?.src??``})}J(l,e=>p(e?`stageopen`:`stageclose`));let{playerRef:m,forwarded:h}=Tt(()=>l.value),g=U(null),_=U(null),v=U(!1),{hasNext:y,hasPrevious:b,nextEntry:ee,previousEntry:x}=wi(K(i,`playlist`),c),S=T(()=>v.value&&!!c.value&&l.value),w=T(()=>S.value&&ai.value),A=T(()=>hi(c.value?.aspectRatio||`16:9`).cssRatio),{wrapperStyle:te,clear:M}=li(g,_,S),N=null;function P(){N?.disconnect(),g.value&&(N=new IntersectionObserver(([e])=>{let t=!e.isIntersecting;if(!c.value||!l.value){v.value=t;return}lr(_.value,()=>{v.value=t})},{threshold:.98}),N.observe(g.value))}J(g,P);function ne(){c.value&&(c.value={...c.value,autoplay:!0,muted:ct(c.value.muted)},l.value=!0)}function re(){ne()}function V(){ui(g.value)}function H(){c.value=null,l.value=!1,u.value=!1,M(),ie()}function ie(){Si(e,{currentSrc:c.value?.src??null,isPlaying:u.value})}function W(e){if(c.value?.src===e.src&&l.value){e.fromGesture&&m.value?.togglePlay();return}c.value=e,l.value=!1,u.value=!1,ie(),l.value=!0}function ae(e){if(c.value&&e.src===c.value.src){if(!l.value){ne();return}m.value?.togglePlay()}}function oe(e,t){e&&W({...e,fromGesture:t,autoplay:!0,muted:e.muted??m.value?.isMuted??ct(void 0,t),volume:e.volume??m.value?.vol})}function Y(e=!0){oe(ee.value,e)}function X(e=!0){oe(x.value,e)}function se(e){e.type===`play`&&(u.value=!0),(e.type===`pause`||e.type===`ended`)&&(u.value=!1),e.type===`ended`&&o.value&&Y(!1),ie(),a(`state-change`,e)}return Ci(f,W),Ci(d,ae),z(oi),R(()=>{si(),N?.disconnect()}),n({playNext:Y,playPrevious:X,hasNext:y,hasPrevious:b,...h}),(e,n)=>(B(),O(`div`,{ref_key:`wrapperEl`,ref:g,class:`stage-wrapper`,style:L(q(te))},[k(`div`,{ref_key:`stageEl`,ref:_,class:I([`stage`,{"stage--minified":S.value,"stage--tucked":w.value,[`stage--pin-${t.pin}`]:S.value}])},[S.value?(B(),E(mi,{key:0,onScrollTo:V,onDismiss:H})):D(`v-if`,!0),c.value&&l.value?(B(),E(xi,F({ref_key:`playerRef`,ref:m,key:c.value.src},c.value,{"has-playlist":s.value,"has-next":q(y),"has-previous":q(b),"auto-advance":o.value,onStateChange:se,onPlayNext:Y,onPlayPrevious:X,onToggleAutoAdvance:n[0]||=e=>o.value=!o.value}),null,16,[`has-playlist`,`has-next`,`has-previous`,`auto-advance`])):(B(),O(`div`,{key:2,class:`stage__idle`,style:L({aspectRatio:A.value}),onClick:re},[c.value?.poster?(B(),O(`img`,{key:0,src:c.value.poster,class:`stage__idle-poster`},null,8,Di)):D(`v-if`,!0),n[1]||=k(`div`,{class:`stage__idle-scrim`},null,-1),k(`div`,Oi,[c.value?(B(),O(C,{key:0},[k(`div`,ki,[j(q(On))]),k(`p`,Ai,G(c.value.title),1)],64)):(B(),O(`p`,ji,`Select a video to play`))])],4))],2)],4))}}),[[`__scopeId`,`data-v-fb8c86cf`]]),Ni=M({__name:`PlayPauseIcon`,props:{isPlaying:{type:Boolean,required:!0},hasEnded:{type:Boolean,required:!1,default:!1}},setup(e){return(t,n)=>e.isPlaying?(B(),E(q(bn),{key:0})):e.hasEnded?(B(),E(q(In),{key:1})):(B(),E(q(On),{key:2}))}});const Pi={class:`placeholder`},Fi=[`src`,`alt`],Ii={class:`placeholder__btn-wrap`},Li=[`aria-label`],Ri={key:1,class:`placeholder__footer`},zi={class:`placeholder__title`};var Bi=Q(M({__name:`VideoPlaceholder`,props:{fromGesture:{type:Boolean,required:!1},src:{type:String,required:!0},title:{type:String,required:!1,default:``},poster:{type:String,required:!1,default:``},aspectRatio:{type:String,required:!1,default:u},adTagUrl:{type:String,required:!1,default:``},adMacroParams:{type:Object,required:!1},headerBidding:{type:Object,required:!1},tracks:{type:Array,required:!1},autoplay:{type:Boolean,required:!1,default:!1},muted:{type:Boolean,required:!1,default:void 0},volume:{type:Number,required:!1},playbackRate:{type:Number,required:!1},nativeUi:{type:Boolean,required:!1,default:!1},autoStage:{type:Boolean,required:!1,default:!1},lazy:{type:Boolean,required:!1},payload:{type:[Object,String],required:!1,default:()=>({})},action:{type:[String,Object,null],required:!1,default:null},disableTapCapture:{type:Boolean,required:!1},disableKeyboardShortcuts:{type:Boolean,required:!1},controls:{type:Boolean,required:!1},playInView:{type:Boolean,required:!1},pin:{type:String,required:!1},loop:{type:Boolean,required:!1},preload:{type:String,required:!1}},emits:[`enter-view`],setup(t,{emit:n}){let r=t,i=n,a=T(()=>hi(r.aspectRatio)),o=T(()=>a.value.isPortrait),s=T(()=>a.value.cssRatio),c=U(null),l=null,u=U(!1),d=U(!1),p=T(()=>u.value&&d.value?`Pause`:`Play`);Ci(e,e=>{u.value=e.currentSrc===r.src,d.value=u.value&&e.isPlaying});function m(e,t,n){Si(f,{...r,fromGesture:e,...t!==void 0&&{autoplay:t},...n!==void 0&&{muted:n}})}function h(){m(!0,!0,ct(r.muted))}return z(()=>{r.autoStage&&m(!1),r.playInView&&c.value&&(l=Ue(c.value,()=>i(`enter-view`)))}),R(()=>l?.()),(e,n)=>(B(),O(`div`,Pi,[k(`div`,{ref_key:`shellEl`,ref:c,class:I([`placeholder__shell`,{"placeholder__shell--portrait":o.value,"placeholder__shell--active":u.value}]),style:L({aspectRatio:s.value}),onClick:h},[t.poster?(B(),O(`img`,{key:0,class:`placeholder__poster`,src:t.poster,alt:t.title},null,8,Fi)):D(`v-if`,!0),n[0]||=k(`div`,{class:`placeholder__scrim`},null,-1),k(`div`,Ii,[k(`button`,{type:`button`,class:`ppbtn ppbtn--lg`,"aria-label":p.value,onClick:X(h,[`stop`])},[j(Ni,{"is-playing":u.value&&d.value},null,8,[`is-playing`])],8,Li)]),t.title?(B(),O(`div`,Ri,[k(`p`,zi,G(t.title),1)])):D(`v-if`,!0)],6)]))}}),[[`__scopeId`,`data-v-dbcb4f82`]]),Vi=M({__name:`VideoCard`,props:{fromGesture:{type:Boolean,required:!1},src:{type:String,required:!0},title:{type:String,required:!1},poster:{type:String,required:!1},aspectRatio:{type:String,required:!1},adTagUrl:{type:String,required:!1},adMacroParams:{type:Object,required:!1},headerBidding:{type:Object,required:!1},tracks:{type:Array,required:!1},autoplay:{type:Boolean,required:!1},muted:{type:Boolean,required:!1,default:void 0},volume:{type:Number,required:!1},playbackRate:{type:Number,required:!1},nativeUi:{type:Boolean,required:!1},autoStage:{type:Boolean,required:!1},lazy:{type:Boolean,required:!1,default:!0},payload:{type:[Object,String],required:!1},action:{type:[String,Object,null],required:!1,default:null},disableTapCapture:{type:Boolean,required:!1},disableKeyboardShortcuts:{type:Boolean,required:!1},controls:{type:Boolean,required:!1,default:void 0},playInView:{type:Boolean,required:!1},pin:{type:String,required:!1},loop:{type:Boolean,required:!1},preload:{type:String,required:!1}},emits:[`state-change`],setup(e,{expose:t,emit:n}){let r=e,i=n,a=U(!1),o=U(!1);function s(){o.value=!0,a.value=!0}async function c(){a.value||(a.value=!0,await ne())}let{playerRef:l,forwarded:u}=Tt(async e=>ii.value?(e===`togglePlay`&&Si(f,{...r,fromGesture:!0,autoplay:!0,muted:ct(r.muted)}),!1):(await c(),!0));return t(u),(e,t)=>q(ii)?(B(),E(Bi,re(F({key:0},r)),null,16)):(B(),O(C,{key:1},[r.lazy&&!a.value&&!r.autoplay?(B(),E(Bi,F({key:0},r,{onClickCapture:s,onEnterView:t[0]||=e=>a.value=!0}),null,16)):(B(),E(xi,F({key:1,ref_key:`playerRef`,ref:l},r,{autoplay:a.value||r.autoplay,muted:q(ct)(r.muted,o.value),onStateChange:t[1]||=e=>i(`state-change`,e)}),null,16,[`autoplay`,`muted`]))],64))}}),Hi=Q(M({__name:`HideMarker`,setup(e){let t=U(null),n=null;return z(()=>{t.value&&(n=new IntersectionObserver(([e])=>{ai.value=e.isIntersecting}),n.observe(t.value))}),R(()=>{n?.disconnect(),ai.value=!1}),(e,n)=>(B(),O(`div`,{ref_key:`el`,ref:t,class:`mlv-hide-marker`},null,512))}}),[[`__scopeId`,`data-v-bacb702a`]]);const Ui=N(xi,{shadowRoot:!1}),Wi=N(Mi,{shadowRoot:!1}),Gi=N(Bi,{shadowRoot:!1}),Ki=N(Vi,{shadowRoot:!1}),qi=N(Hi,{shadowRoot:!1}),Ji=[[`ml-video-player`,Ui],[`ml-video-stage`,Wi],[`ml-video-placeholder`,Gi],[`ml-video-card`,Ki],[`ml-hide-marker`,qi]];function Yi(){for(let[e,t]of Ji)customElements.get(e)||customElements.define(e,t)}typeof import.meta.url==`string`&&new URL(import.meta.url).searchParams.has(`defer`)||Yi();export{qi as HideMarkerElement,Ki as VideoCardElement,Gi as VideoPlaceholderElement,Ui as VideoPlayerElement,Wi as VideoStageElement,Yi as defineElements,fe as registerEmbedAdapter,ce as registerMatcher,ye as registerPlatform,ge as registerSourceResolver};
|
|
@@ -139,8 +139,11 @@ interface PlayerProps {
|
|
|
139
139
|
controls?: boolean;
|
|
140
140
|
playInView?: boolean;
|
|
141
141
|
pin?: PinCorner;
|
|
142
|
+
loop?: boolean;
|
|
143
|
+
preload?: PreloadMode;
|
|
142
144
|
}
|
|
143
145
|
type PinCorner = 'bottom-right' | 'bottom-left' | 'top-right' | 'top-left';
|
|
146
|
+
type PreloadMode = 'none' | 'metadata' | 'auto';
|
|
144
147
|
type VideoEntry = PlayerProps;
|
|
145
148
|
interface VideoSelectDetail extends VideoEntry {
|
|
146
149
|
fromGesture?: boolean;
|