@munsonlabs/video-player 0.1.2 → 0.1.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 +28 -20
- package/dist/element.mjs +2 -2
- package/dist/index.d.mts +1 -1
- package/dist/index.mjs +2 -2
- package/package.json +6 -1
package/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# @munsonlabs/video-player
|
|
2
2
|
|
|
3
|
-
A Vue 3 video player supporting YouTube, Vimeo, Dailymotion, Brightcove, JW Player, and plain HTML5. Includes a sticky stage player, lazy loading, custom actions, IMA ad support, header bidding, captions, adaptive quality selection, and web component exports.
|
|
3
|
+
A Vue 3 video player supporting YouTube, Vimeo, Dailymotion, Brightcove, JW Player, and plain HTML5 (MP4, HLS, DASH). Includes a sticky stage player, lazy loading, custom actions, IMA ad support, header bidding, captions, adaptive quality selection, and web component exports.
|
|
4
4
|
|
|
5
5
|
## Installation
|
|
6
6
|
|
|
@@ -106,7 +106,7 @@ The platform is detected automatically from the shape of `videoUrl`; there's no
|
|
|
106
106
|
| `dailymotion` | `https://www.dailymotion.com/video/VIDEO_ID` |
|
|
107
107
|
| `brightcove` | `https://players.brightcove.net/ACCOUNT_ID/PLAYER_ID_EMBED/index.html?videoId=VIDEO_ID`\* |
|
|
108
108
|
| `jwplayer` | `https://cdn.jwplayer.com/videos/...` · `https://cdn.jwplayer.com/manifests/...` · `jwplayer://MEDIA_ID` |
|
|
109
|
-
| `html5` | Any direct MP4 / HLS URL
|
|
109
|
+
| `html5` | Any direct MP4 / HLS / DASH URL |
|
|
110
110
|
|
|
111
111
|
\* `PLAYER_ID_EMBED` is one path segment: `{PLAYER_ID}_{EMBED_NAME}` (e.g. `abc123_default` for the account's default player), which is exactly the URL Brightcove Studio's "Publish" panel gives you for an embed.
|
|
112
112
|
|
|
@@ -139,6 +139,8 @@ interface StateChangeEvent {
|
|
|
139
139
|
| 'thirdQuartile'
|
|
140
140
|
| 'controlsopen'
|
|
141
141
|
| 'controlsclose'
|
|
142
|
+
| 'bufferstart'
|
|
143
|
+
| 'bufferend'
|
|
142
144
|
currentTime: number
|
|
143
145
|
duration: number
|
|
144
146
|
src: string
|
|
@@ -158,12 +160,14 @@ interface StateChangeEvent {
|
|
|
158
160
|
|
|
159
161
|
`controlsopen` / `controlsclose` fire when the expanded controls popup mounts/unmounts (e.g. via the "show controls" button), with `element` set to the popup's root DOM node: handy for positioning your own UI relative to it, or measuring it. On `controlsclose`, `element` is a snapshot of the closing node; it's detached from the DOM immediately after.
|
|
160
162
|
|
|
161
|
-
`captionchange` / `qualitychange` fire on every `setCaptionTrack()`/`setQuality()` call (whichever menu triggered it) and whenever the adapter detects the active track/level changed on its own (e.g. hls.js's own ABR switching), but never before playback has started (so the initial caption/quality detection at mount doesn't get reported as a "change"). See [Captions](#captions-webvtt) and [Video Quality](#video-quality-hls).
|
|
163
|
+
`captionchange` / `qualitychange` fire on every `setCaptionTrack()`/`setQuality()` call (whichever menu triggered it) and whenever the adapter detects the active track/level changed on its own (e.g. hls.js's/dash.js's own ABR switching), but never before playback has started (so the initial caption/quality detection at mount doesn't get reported as a "change"). See [Captions](#captions-webvtt) and [Video Quality](#video-quality-hls--dash).
|
|
162
164
|
|
|
163
165
|
`pipchange` fires whenever Picture-in-Picture is entered or exited, whether that came from the player's own PiP button or the user closing the browser's floating PiP window directly.
|
|
164
166
|
|
|
165
167
|
`loopchange` fires whenever `toggleLoop()` is called (e.g. from the "Loop" row in the controls menu), never before playback has started.
|
|
166
168
|
|
|
169
|
+
`bufferstart` fires when the player has been stalled on `waiting` for longer than the buffering-spinner delay; `bufferend` fires once `playing`/`canplay` resolves it (or on `ended`). Useful for tracking rebuffer count/ratio.
|
|
170
|
+
|
|
167
171
|
On `error`, the player shows a "Retry" button that re-attempts loading the current source. You can also trigger this yourself via a template ref on `VideoPlayer`, which exposes a `retry()` method along with `togglePlay()`, `seek()`, `toggleMute()`, `setVolume()`, `toggleFullscreen()`, `toggleLoop()`, `setPlaybackRate()`, `setCaptionTrack()`, `setQuality()`, and `togglePip()`. Note this is on `VideoPlayer` specifically: `VideoItem` doesn't forward a ref to it, since it may be showing a lazy placeholder instead:
|
|
168
172
|
|
|
169
173
|
```vue
|
|
@@ -331,14 +335,16 @@ Clicking "Captions" in the controls menu cycles Off → first track → next tra
|
|
|
331
335
|
|
|
332
336
|
---
|
|
333
337
|
|
|
334
|
-
## Video Quality (HLS)
|
|
338
|
+
## Video Quality (HLS / DASH)
|
|
335
339
|
|
|
336
|
-
Adaptive HLS streams automatically expose a "Quality" option in the controls menu once hls.js (or Safari's native HLS) has parsed the manifest's resolution variants: there's no prop to set and nothing to configure. Clicking it cycles Auto → highest → ... → lowest → Auto; Auto leaves
|
|
340
|
+
Adaptive HLS and DASH streams automatically expose a "Quality" option in the controls menu once hls.js/dash.js (or Safari's native HLS) has parsed the manifest's resolution variants: there's no prop to set and nothing to configure. Clicking it cycles Auto → highest → ... → lowest → Auto; Auto leaves the streaming engine's adaptive bitrate algorithm in control.
|
|
337
341
|
|
|
338
|
-
This only applies to HLS: plain MP4/HTML5 sources have no variant levels at all, and it's unsupported on YouTube, Vimeo, and Dailymotion. Brightcove and JW Player get it for free, same reasoning as captions above.
|
|
342
|
+
This only applies to HLS and DASH: plain MP4/HTML5 sources have no variant levels at all, and it's unsupported on YouTube, Vimeo, and Dailymotion. Brightcove and JW Player get it for free, same reasoning as captions above.
|
|
339
343
|
|
|
340
344
|
**Safari plays HLS natively instead of through hls.js** (see [Peer Dependencies](#peer-dependencies)), and native HLS has no manual quality-override hook at all: the Quality option simply won't appear there, since Safari's own adaptive bitrate algorithm is always in control on that path.
|
|
341
345
|
|
|
346
|
+
A manual DASH quality switch takes effect immediately, even mid-playback: dash.js is told to discard whatever it's already buffered ahead at the old quality and refetch at the new one, rather than only affecting segments requested after the switch (which could otherwise be a long way ahead of the playhead on a fast connection).
|
|
347
|
+
|
|
342
348
|
Programmatically, a template ref on `VideoPlayer` exposes `setQuality(index)` (`null` re-enables Auto); see [Events](#state-change) for the `qualitychange` event this fires.
|
|
343
349
|
|
|
344
350
|
---
|
|
@@ -419,7 +425,7 @@ window.addEventListener('video-state', (e) => {
|
|
|
419
425
|
|
|
420
426
|
## Web Component Usage
|
|
421
427
|
|
|
422
|
-
Import the element bundle to register all components as native custom elements. These elements render into the light DOM, not a shadow root (`shadowRoot: false` — YouTube/Vimeo/Dailymotion's SDKs mount by resolving a plain element ID, which can't see into a shadow root), so styling has nowhere encapsulated to live. Rather than requiring a separate stylesheet import, the element bundle links its own `dist/style.css` onto the page automatically the moment it's imported — nothing else to remember there. Vue is an external dependency: use an import map to provide it:
|
|
428
|
+
Import the element bundle to register all components as native custom elements. These elements render into the light DOM, not a shadow root (`shadowRoot: false` — YouTube/Vimeo/Dailymotion's SDKs mount by resolving a plain element ID, which can't see into a shadow root), so styling has nowhere encapsulated to live. Rather than requiring a separate stylesheet import, the element bundle links its own `dist/style.css` onto the page automatically the moment it's imported — nothing else to remember there, whether you load it via a bundler, unpkg, jsdelivr, or esm.sh. Vue is an external dependency: use an import map to provide it:
|
|
423
429
|
|
|
424
430
|
```html
|
|
425
431
|
<script type="importmap">
|
|
@@ -431,21 +437,22 @@ Import the element bundle to register all components as native custom elements.
|
|
|
431
437
|
</script>
|
|
432
438
|
<script type="module" src="@munsonlabs/video-player/element"></script>
|
|
433
439
|
|
|
434
|
-
<video-item
|
|
440
|
+
<muns-video-item
|
|
435
441
|
video-url="https://cdn.jwplayer.com/videos/O5chtspP-4VHSaSK0.mp4"
|
|
436
442
|
title="Big Buck Bunny"
|
|
437
443
|
poster="https://storage.googleapis.com/gtv-videos-bucket/sample/images/BigBuckBunny.jpg"
|
|
438
|
-
></video-item>
|
|
444
|
+
></muns-video-item>
|
|
439
445
|
```
|
|
440
446
|
|
|
441
|
-
If you'll be playing HLS (`.m3u8`) sources, also add an import map entry for `hls.js`.
|
|
447
|
+
If you'll be playing HLS (`.m3u8`) or DASH (`.mpd`) sources, also add an import map entry for `hls.js`/`dashjs`. Each is loaded on demand via a dynamic `import(...)`, which (unlike the Vue usage, where your own bundler resolves it) has no resolution path in a plain browser without one:
|
|
442
448
|
|
|
443
449
|
```html
|
|
444
450
|
<script type="importmap">
|
|
445
451
|
{
|
|
446
452
|
"imports": {
|
|
447
453
|
"vue": "https://unpkg.com/vue@3/dist/vue.esm-browser.js",
|
|
448
|
-
"hls.js": "https://cdn.jsdelivr.net/npm/hls.js@1/+esm"
|
|
454
|
+
"hls.js": "https://cdn.jsdelivr.net/npm/hls.js@1/+esm",
|
|
455
|
+
"dashjs": "https://cdn.jsdelivr.net/npm/dashjs@4/+esm"
|
|
449
456
|
}
|
|
450
457
|
}
|
|
451
458
|
</script>
|
|
@@ -453,32 +460,32 @@ If you'll be playing HLS (`.m3u8`) sources, also add an import map entry for `hl
|
|
|
453
460
|
|
|
454
461
|
### Available elements
|
|
455
462
|
|
|
456
|
-
| Element
|
|
457
|
-
|
|
|
458
|
-
| `<video-item>` | `<VideoItem>` |
|
|
459
|
-
| `<video-stage>` | `<VideoStage>` |
|
|
460
|
-
| `<video-player>` | `<VideoPlayer>` |
|
|
461
|
-
| `<video-placeholder>` | `<VideoPlaceholder>` |
|
|
463
|
+
| Element | Vue equivalent |
|
|
464
|
+
| -------------------------- | -------------------- |
|
|
465
|
+
| `<muns-video-item>` | `<VideoItem>` |
|
|
466
|
+
| `<muns-video-stage>` | `<VideoStage>` |
|
|
467
|
+
| `<muns-video-player>` | `<VideoPlayer>` |
|
|
468
|
+
| `<muns-video-placeholder>` | `<VideoPlaceholder>` |
|
|
462
469
|
|
|
463
470
|
### Passing objects as web component attributes
|
|
464
471
|
|
|
465
472
|
Boolean and string props map directly to HTML attributes. Object props (`payload`) can be passed as inline JSON strings: Vue's custom element runtime parses them automatically:
|
|
466
473
|
|
|
467
474
|
```html
|
|
468
|
-
<video-item video-url="https://..." ad-tag-url="https://..." payload='{"articleId":"123"}'></video-item>
|
|
475
|
+
<muns-video-item video-url="https://..." ad-tag-url="https://..." payload='{"articleId":"123"}'></muns-video-item>
|
|
469
476
|
```
|
|
470
477
|
|
|
471
478
|
For `action` (which contains a function), set it via JavaScript:
|
|
472
479
|
|
|
473
480
|
```js
|
|
474
|
-
const player = document.querySelector('video-item')
|
|
481
|
+
const player = document.querySelector('muns-video-item')
|
|
475
482
|
player.action = { icon: '<svg.../>', label: 'Save', onClick: () => {} }
|
|
476
483
|
```
|
|
477
484
|
|
|
478
485
|
### Listening to events
|
|
479
486
|
|
|
480
487
|
```js
|
|
481
|
-
const player = document.querySelector('video-item')
|
|
488
|
+
const player = document.querySelector('muns-video-item')
|
|
482
489
|
player.addEventListener('state-change', (e) => {
|
|
483
490
|
console.log(e.detail)
|
|
484
491
|
})
|
|
@@ -492,3 +499,4 @@ player.addEventListener('state-change', (e) => {
|
|
|
492
499
|
| -------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
493
500
|
| `vue` | `>=3` (Vue usage only) |
|
|
494
501
|
| `hls.js` | `^1.6.16`, optional, only needed for HLS (`.m3u8`) playback via native `<video>`; see [Web Component Usage](#web-component-usage) for the import map entry if you're not using a bundler |
|
|
502
|
+
| `dashjs` | `^4.7.4`, optional, only needed for DASH (`.mpd`) playback via native `<video>`; see [Web Component Usage](#web-component-usage) for the import map entry if you're not using a bundler |
|
package/dist/element.mjs
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import{Fragment as e,Transition as t,computed as n,createBlock as r,createCommentVNode as i,createElementBlock as a,createElementVNode as o,createStaticVNode as s,createTextVNode as c,createVNode as l,defineComponent as u,defineCustomElement as d,inject as f,mergeProps as p,nextTick as m,normalizeClass as h,normalizeProps as g,normalizeStyle as _,onBeforeUnmount as v,onMounted as y,openBlock as b,provide as x,reactive as S,ref as C,renderList as w,resolveDynamicComponent as T,toDisplayString as E,toRef as D,unref as O,watch as k,withCtx as A,withModifiers as j}from"vue";function M(){return/iPad|iPhone|iPod/.test(navigator.userAgent)||/Mac/.test(navigator.userAgent)&&navigator.maxTouchPoints>1}function N(e){(e.requestFullscreen||e.webkitRequestFullscreen)?.call(e)}function P(){(document.exitFullscreen||document.webkitExitFullscreen)?.call(document)}function F(e){let[t,n]=e.split(`:`).map(Number);return{isPortrait:n>t,cssRatio:`${t}/${n}`}}function ee(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 te(e){return!e||isNaN(e)?`0:00`:`${Math.floor(e/60)}:${String(Math.floor(e%60)).padStart(2,`0`)}`}function I(e,t=(...e)=>String(e[0])){let n={};return async(...r)=>{let i=t(...r);if(n[i])return n[i];let a=await e(...r);return n[i]=a,a}}function L(e){return e.filter(e=>e.src&&(e.type===`application/x-mpegURL`||e.type===`video/mp4`)).sort((e,t)=>e.type===`application/x-mpegURL`?-1:1)}const R=`video-select`,ne=`video-state`,re=`fullscreen-pending`,z=`fullscreen-pending-done`,B=`player:autoAdvance`,V=`mvp-youtube`,H=`mvp-vimeo`,U=`mvp-dailymotion`,W=`mvp-ad-playing`,G=`mvp-ad-paused`,ie=`16:9`,K=[.5,.75,1,1.25,1.5,2],ae=[[.25,`firstQuartile`],[.5,`midpoint`],[.75,`thirdQuartile`]];function q(e){return e.match(/cdn\.jwplayer\.com\/videos\/([^-]+)/)?.[1]??e.match(/cdn\.jwplayer\.com\/manifests\/([^.]+)/)?.[1]??e.match(/^jwplayer:\/\/([^/]+)$/)?.[1]??null}function J(e){let t=e?.advertising?.schedule;return Array.isArray(t)&&t.length?t[0].tag??null:e?.advertising?.tag??null}const oe=I(async e=>{let t=await fetch(`https://cdn.jwplayer.com/v2/media/${e}`);if(!t.ok)throw Error(`JW Platform API error: ${t.status}`);let n=(await t.json()).playlist?.[0];if(!n)throw Error(`JW Platform: empty playlist`);let r=L((n.sources??[]).map(e=>({src:e.file,type:e.type})));if(!r.length)throw Error(`JW Platform: no playable sources found`);return{src:r[0].src,type:r[0].type,poster:n.image??null,adTagUrl:J(n)}});async function se(e){let t=q(e);if(!t)throw Error(`JW Platform: unrecognised source URL: ${e}`);let n=await oe(t);if(e.startsWith(`jwplayer://`))return n;let r=/\.mp4(\?|#|$)/.test(e)?`video/mp4`:`application/x-mpegURL`;return{...n,src:e,type:r}}function ce(e){let t;try{t=new URL(e)}catch{return null}if(t.hostname!==`players.brightcove.net`)return null;let[,n,r]=t.pathname.split(`/`),i=t.searchParams.get(`videoId`),a=r?.indexOf(`_`)??-1;return!n||a===-1||!i?null:{accountId:n,playerId:r.slice(0,a),embed:r.slice(a+1),videoId:i}}function le(e){for(let t of e?.plugins??[]){let e=t.options?.serverUrl??t.options?.imaOptions?.serverUrl;if(e)return e}return null}const ue=I(async(e,t,n,r)=>{let i=await fetch(`https://players.brightcove.net/${e}/${t}_${n}/config.json`);if(!i.ok)throw Error(`Brightcove: could not load player config (${i.status})`);let a=await i.json(),o=r??a?.video_cloud?.policy_key;if(!o)throw Error(`Brightcove: policy_key not found in player config`);return{policyKey:o,adTagUrl:le(a)}},(e,t,n)=>`${e}/${t}_${n}`);async function de(e,t,n){let r=await fetch(`https://edge.api.brightcove.com/playback/v1/accounts/${e}/videos/${t}`,{headers:{Accept:`application/json;pk=${n}`}});if(!r.ok)throw Error(`Brightcove Playback API error: ${r.status}`);let i=await r.json(),a=L(i.sources||[]);if(!a.length)throw Error(`Brightcove: no playable sources found`);return{sources:a.map(e=>({src:e.src,type:e.type})),poster:i.poster??i.thumbnail??null}}async function fe(e,t){let n=ce(e);if(!n)throw Error(`Brightcove: invalid src — expected a Brightcove embed URL, e.g. "https://players.brightcove.net/{accountId}/{playerId}_{embed}/index.html?videoId={videoId}"`);let{accountId:r,playerId:i,embed:a,videoId:o}=n,{policyKey:s,adTagUrl:c}=await ue(r,i,a,t),{sources:l,poster:u}=await de(r,o,s);return{...l[0],poster:u,adTagUrl:c}}function pe(){let e=new Map;function t(t,n){for(let r of Array.isArray(t)?t:[t])e.has(r)||e.set(r,new Set),e.get(r)?.add(n)}function n(t,n){e.get(t)?.delete(n)}function r(t,...n){e.get(t)?.forEach(e=>e(...n))}function i(){e.clear()}return{on:t,off:n,trigger:r,dispose:i}}const me={};function he(e,t=e){return me[t]||(me[t]=new Promise((t,n)=>{let r=document.createElement(`script`);r.src=e,r.onload=()=>t(),r.onerror=()=>n(Error(`Failed to load script: ${e}`)),document.head.appendChild(r)})),me[t]}let ge=0;function _e(e,t){e.parentElement?.classList.add(t);let n=`${t}-${++ge}`,r=document.createElement(`div`);r.id=n,r.className=`mvp-tech`,r.style.cssText=`width:100%;height:100%;top:0;left:0;position:absolute`;let i=document.createElement(`div`);return i.style.cssText=`width:100%;height:100%;position:absolute;inset:0;opacity:0;pointer-events:none;transition:opacity 0.2s`,i.appendChild(r),e.parentElement?.insertBefore(i,e),{techId:n,wrapper:i,innerDiv:r}}function ve(e,t){e.style.display=`none`,t.style.opacity=`1`,t.style.pointerEvents=``}function ye(e,t,n){t.remove(),e.parentElement?.classList.remove(n),e.style.display=``}function be(e){return e.closest(`.player__shell`)}function xe(e){e.trigger(re);let t=document.createElement(`div`);t.style.cssText=`position:fixed;inset:0;z-index:99999;opacity:0;pointer-events:none`,document.body.appendChild(t);let n=!1;function r(){n||e.trigger(z)}function i(r){n||(n=!0,e.trigger(z),t.remove(),r?.())}return{overlay:t,reveal:r,finish:i}}function Se(e,t){return t===e.PlayerState.PLAYING||t===e.PlayerState.BUFFERING}function Ce(e){let t={videoId:null,listId:null},n=e.match(/^.*(youtu\.be\/|v\/|u\/\w\/|embed\/|watch\?v=|shorts\/|&v=)([^#&?]*).*/);n?.[2]?.length===11&&(t.videoId=n[2]);let r=e.match(/[?&]list=([^#&?]+)/);return r?.[1]&&(t.listId=r[1]),t}let we=!1,Te=!1;const Ee=[];function De(){Te||(Te=!0,he(`https://www.youtube.com/iframe_api`).then(()=>{window.YT?.ready(()=>{we=!0,Ee.forEach(e=>e()),Ee.length=0})}))}function Oe(e,t){De();let n=pe(),{techId:r,wrapper:i}=_e(e,V),a=Ce(t.src),o=null,s=a.videoId,c=!1,l=!1,u=!1,d=null,f=!1,p=null,m=!1,h=new Set,g=null,_={active:!1,wasPaused:!1,timeBefore:0,catchUpInterval:null};function v(e,t=0){let n=setTimeout(()=>{h.delete(n),e()},t);h.add(n)}function y(){try{let e=o?.getPlayerResponse()?.adPlacements;return Array.isArray(e)&&e.length>0}catch{return!1}}function b(e){o?.loadVideoById({videoId:e})}function x(e){o?.cueVideoById({videoId:e})}function S(){a.videoId&&(_.wasPaused=!1,c?s===a.videoId?o?.playVideo():(b(a.videoId),s=a.videoId):(n.trigger(`waiting`),l=!0))}function C(){_.catchUpInterval&&clearInterval(_.catchUpInterval),_.active=!1,_.wasPaused&&o?.pauseVideo(),n.trigger(`seeked`)}function w(){m=(o?.getAvailablePlaybackRates()??[]).length>1,c=!0,t.muted&&o?.mute(),l?S():u&&a.videoId&&(x(a.videoId),s=a.videoId)}function T(e){if(e===d||p!==null)return;d=e;let t=y();t!==f&&(f=t,n.trigger(t?`adstart`:`adend`));let r=window.YT;if(r){switch(e){case-1:n.trigger(`loadstart`),n.trigger(`loadedmetadata`),n.trigger(`durationchange`),n.trigger(`ratechange`);break;case r.PlayerState.ENDED:n.trigger(`ended`);break;case r.PlayerState.PLAYING:n.trigger(`timeupdate`),n.trigger(`durationchange`),n.trigger(`playing`),n.trigger(`play`),_.active&&C();break;case r.PlayerState.PAUSED:n.trigger(`canplay`),_.active||n.trigger(`pause`);break;case r.PlayerState.BUFFERING:n.trigger(`waiting`);break;case r.PlayerState.CUED:n.trigger(`canplay`);break}g&&=(clearInterval(g),null),e===r.PlayerState.PLAYING&&(g=setInterval(()=>n.trigger(`timeupdate`),250))}}function E(){let e={controls:+!!t.nativeUi,modestbranding:1,rel:0,showinfo:0,mute:+!!t.muted,origin:window.location.origin,allowfullscreen:1,fullscreen:1,fs:1,playsinline:1,...t.customVars};s=a.videoId,o=new window.YT.Player(r,{videoId:s??void 0,playerVars:e,events:{onReady:w,onStateChange:e=>T(e.data),onPlaybackRateChange:()=>n.trigger(`ratechange`),onVolumeChange:()=>n.trigger(`volumechange`),onError:e=>{p=e.data,n.trigger(`error`),v(()=>{p=null})}}})}we?E():Ee.push(E),t.autoplay?c?S():l=!0:a.videoId&&(u=!0);function D(){if(!o)return;let e=o.getCurrentTime(),{video_id:t}=o.getVideoData();o.pauseVideo();let{overlay:r,reveal:i,finish:a}=xe(n),s=document.createElement(`div`);s.id=`yt-fs-${Math.random().toString(36).slice(2)}`,r.appendChild(s);let c=null,l=()=>{document.removeEventListener(`pointerdown`,u,!0),a(()=>{let t=c?.getCurrentTime()??e;try{c?.destroy()}catch{}o?.seekTo(t,!0),n.trigger(`timeupdate`)})};function u(){l()}c=new window.YT.Player(s.id,{videoId:t,playerVars:{playsinline:0,autoplay:1,controls:1,modestbranding:1,rel:0,start:Math.floor(e)},events:{onReady:t=>{i(),t.target.seekTo(e,!0),t.target.playVideo()},onStateChange:e=>{let t=window.YT;t&&(e.data===t.PlayerState.ENDED?l():e.data===t.PlayerState.PAUSED?(document.removeEventListener(`pointerdown`,u,!0),document.addEventListener(`pointerdown`,u,{capture:!0,once:!0})):(document.removeEventListener(`pointerdown`,u,!0),i()))}}})}function O(){if(M()&&o){D();return}let t=be(e);t&&N(t)}function k(){P()}return{el:i,play:S,pause:()=>o?.pauseVideo(),paused:()=>{if(!o)return!0;let e=window.YT;return!e||!Se(e,d)},currentTime:()=>o?.getCurrentTime()??0,setCurrentTime:e=>{if(!o)return;let t=window.YT;t&&d===t.PlayerState.PAUSED&&(_.timeBefore=o.getCurrentTime()),_.active||(_.wasPaused=!t||!Se(t,d)),o.seekTo(e,!0),n.trigger(`timeupdate`),n.trigger(`seeking`),_.active=!0,t&&d===t.PlayerState.PAUSED&&_.timeBefore!==e&&(_.catchUpInterval&&clearInterval(_.catchUpInterval),_.catchUpInterval=setInterval(()=>{d!==t.PlayerState.PAUSED||!_.active?_.catchUpInterval&&clearInterval(_.catchUpInterval):o&&o.getCurrentTime()!==_.timeBefore&&(n.trigger(`timeupdate`),C())},250))},duration:()=>o?.getDuration()??0,volume:()=>o?o.getVolume()/100:1,setVolume:e=>o?.setVolume(e*100),muted:()=>o?.isMuted()??!1,setMuted:e=>{o&&(e?o.mute():o.unMute(),v(()=>n.trigger(`volumechange`),50))},playbackRate:()=>o?.getPlaybackRate()??1,setPlaybackRate:e=>o?.setPlaybackRate(e),bufferedEnd:()=>o?.getVideoLoadedFraction?o.getVideoLoadedFraction()*o.getDuration():0,error:()=>p===null?null:{code:p,message:`This video could not be played.`},setSrc:e=>{let t=Ce(e);a.videoId=t.videoId,a.listId=t.listId,a.videoId&&(c?(b(a.videoId),s=a.videoId):u=!0)},featuresPlaybackRate:()=>m,featuresCaptions:()=>!1,getCaptionTracks:()=>[],setCaptionTrack:()=>{},getActiveCaptionTrack:()=>null,featuresQuality:()=>!1,getQualityLevels:()=>[],getCurrentQuality:()=>null,isAutoQuality:()=>!0,setQuality:()=>{},featuresPip:()=>!1,isPipActive:()=>!1,togglePip:()=>{},enterFullscreen:O,exitFullscreen:k,on:n.on,off:n.off,dispose:()=>{if(h.forEach(clearTimeout),h.clear(),g&&clearInterval(g),_.catchUpInterval&&clearInterval(_.catchUpInterval),o)try{o.stopVideo(),o.destroy()}catch{}else{let e=Ee.indexOf(E);e!==-1&&Ee.splice(e,1)}o=null,ye(e,i,V),n.dispose()}}}function ke(e){return e.match(/(?:vimeo\.com\/(?:video\/|channels\/[^/]+\/|groups\/[^/]+\/videos\/)?|player\.vimeo\.com\/video\/)(\d+)/)?.[1]??null}function Ae(e,t){let n=pe(),{techId:r,wrapper:i}=_e(e,H),a=ke(t.src),o=null,s=0,c=0,l=1,u=!1,d=!0,f=1,p=!1,m=!1,h=!1,g=null,_=new Set;function v(e,t=0){let n=setTimeout(()=>{_.delete(n),e()},t);_.add(n)}function y(){if(!o){m=!0;return}o.play().catch(()=>{})}function b(){t.muted&&o?.setMuted(!0).catch(()=>{}),m&&y()}async function x(e){if(await he(`https://player.vimeo.com/api/player.js`,`vimeo`),h||!window.Vimeo)return;let i={id:Number(e),byline:!1,portrait:!1,title:!1,transparent:!0,controls:!!t.nativeUi,autopause:!1,...t.autoplay!==void 0&&{autoplay:t.autoplay},...t.muted!==void 0&&{muted:t.muted}};o=new window.Vimeo.Player(r,i),t.autoplay&&(m=!0),o.ready().then(b).catch(e=>{g={code:4,message:e?.message||`This video is unavailable or cannot be embedded here.`},n.trigger(`error`)}),o.on(`play`,()=>{d=!1,n.trigger(`play`),n.trigger(`playing`)}),o.on(`pause`,()=>{d=!0,n.trigger(`pause`)}),o.on(`ended`,()=>{d=!0,n.trigger(`ended`)}),o.on(`timeupdate`,e=>{let{seconds:t,duration:r}=e;s=t,c=r,n.trigger(`timeupdate`),r&&!p&&(p=!0,n.trigger(`durationchange`))}),o.on(`loaded`,()=>{p=!1,n.trigger(`loadedmetadata`),n.trigger(`durationchange`)}),o.on(`seeking`,e=>{s=e.seconds,n.trigger(`seeking`)}),o.on(`seeked`,e=>{s=e.seconds,n.trigger(`seeked`),n.trigger(`timeupdate`)}),o.on(`bufferstart`,()=>n.trigger(`waiting`)),o.on(`bufferend`,()=>n.trigger(`canplay`)),o.on(`volumechange`,e=>{l=e.volume,n.trigger(`volumechange`)}),o.on(`error`,()=>n.trigger(`error`))}a&&x(a);function S(){if(!M()){let t=be(e);t&&N(t);return}o?.requestFullscreen().catch(()=>{})}function C(){P()}return{el:i,play:y,pause:()=>o?.pause().catch(()=>{}),paused:()=>d,currentTime:()=>s,setCurrentTime:e=>{o?.setCurrentTime(e).catch(()=>{}),n.trigger(`timeupdate`),n.trigger(`seeking`)},duration:()=>c,volume:()=>l,setVolume:e=>{l=e,o?.setVolume(e).catch(()=>{})},muted:()=>u,setMuted:e=>{u=e,o?.setMuted(e).then(()=>v(()=>n.trigger(`volumechange`),50)).catch(()=>{})},playbackRate:()=>f,setPlaybackRate:e=>{f=e,o?.setPlaybackRate(e).catch(()=>{}),n.trigger(`ratechange`)},bufferedEnd:()=>s,error:()=>g,setSrc:()=>{},featuresPlaybackRate:()=>!1,featuresCaptions:()=>!1,getCaptionTracks:()=>[],setCaptionTrack:()=>{},getActiveCaptionTrack:()=>null,featuresQuality:()=>!1,getQualityLevels:()=>[],getCurrentQuality:()=>null,isAutoQuality:()=>!0,setQuality:()=>{},featuresPip:()=>!1,isPipActive:()=>!1,togglePip:()=>{},enterFullscreen:S,exitFullscreen:C,on:n.on,off:n.off,dispose:()=>{h=!0,_.forEach(clearTimeout),_.clear(),o?.destroy().catch(()=>{}),o=null,ye(e,i,H),n.dispose()}}}function je(e){let t=e.match(/[?&]video=([a-zA-Z0-9]+)/);return t?t[1]:e.match(/(?:dailymotion\.com\/(?:embed\/)?video\/|dai\.ly\/)([a-zA-Z0-9]+)/)?.[1]??null}function Me(e,t){let n=pe(),{techId:r,wrapper:i}=_e(e,U),a=be(e),o=je(t.src),s=typeof t.customVars?.playerId==`string`?t.customVars.playerId:void 0,c=null,l=0,u=0,d=1,f=!1,p=!0,m=!1,h=!1,g=null;async function _(){if(!o){g={code:4,message:`Could not parse video ID from source URL`},n.trigger(`error`);return}try{let e=await he(s?`https://geo.dailymotion.com/libs/player/${s}.js`:`https://geo.dailymotion.com/libs/player.js`,s||`dailymotion-sdk`).then(()=>window.dailymotion);if(!e)return;let i=await e.createPlayer(r,{...s&&{player:s},video:o,params:{autoplay:!!t.autoplay,mute:!!t.muted}});c=i;let a=e.events;m&&i.play(),i.on(a.PLAYER_CRITICALPATHREADY,e=>{let t=e.videoThumbnails;if(!t)return;let r=Object.keys(t).map(Number).sort((e,t)=>t-e)[0],i=r===void 0?void 0:t[r];i&&n.trigger(`posterchange`,i)}),i.on(a.VIDEO_PLAY,()=>{p=!1,n.trigger(`play`),n.trigger(`playing`),!t.autoplay&&!h&&(h=!0,i.pause())}),i.on(a.VIDEO_PLAYING,()=>{p=!1,n.trigger(`play`),n.trigger(`playing`)}),i.on(a.VIDEO_PAUSE,()=>{p=!0,n.trigger(`pause`)}),a.VIDEO_BUFFERING&&i.on(a.VIDEO_BUFFERING,()=>n.trigger(`waiting`)),i.on(a.VIDEO_END,()=>{p=!0,n.trigger(`ended`)}),i.on(a.VIDEO_TIMECHANGE,e=>{l=e.videoTime??l,u=e.videoDuration??u,n.trigger(`timeupdate`)}),i.on(a.VIDEO_DURATIONCHANGE,e=>{u=e.videoDuration??u,n.trigger(`durationchange`)}),i.on(a.VIDEO_SEEKSTART,()=>n.trigger(`seeking`)),i.on(a.VIDEO_SEEKEND,e=>{l=e.videoTime??l,n.trigger(`seeked`)}),i.on(a.PLAYER_VOLUMECHANGE,e=>{d=e.playerVolume??d,f=e.playerIsMuted??f,n.trigger(`volumechange`)}),i.on(a.PLAYER_ERROR,()=>n.trigger(`error`)),a.AD_START&&i.on(a.AD_START,()=>{p=!1,n.trigger(`play`),n.trigger(`adstart`)}),a.AD_END&&i.on(a.AD_END,()=>n.trigger(`adend`))}catch(e){g={code:4,message:e instanceof Error?e.message:`This video could not be played.`},n.trigger(`error`)}}_();function v(){c?c.play():m=!0}function y(){if(M()){c?.setFullscreen(!0);return}a&&N(a)}function b(){if(M()){c?.setFullscreen(!1);return}P()}return{el:i,play:v,pause:()=>c?.pause(),paused:()=>p,currentTime:()=>l,setCurrentTime:e=>{l=e,c?.seek(e),n.trigger(`seeking`)},duration:()=>u,volume:()=>d,setVolume:e=>{d=e,c?.setVolume(e)},muted:()=>f,setMuted:e=>{f=e,c?.setMute(e)},playbackRate:()=>1,setPlaybackRate:()=>{},bufferedEnd:()=>l,error:()=>g,setSrc:()=>{},featuresPlaybackRate:()=>!1,featuresCaptions:()=>!1,getCaptionTracks:()=>[],setCaptionTrack:()=>{},getActiveCaptionTrack:()=>null,featuresQuality:()=>!1,getQualityLevels:()=>[],getCurrentQuality:()=>null,isAutoQuality:()=>!0,setQuality:()=>{},featuresPip:()=>!1,isPipActive:()=>!1,togglePip:()=>{},enterFullscreen:y,exitFullscreen:b,on:n.on,off:n.off,dispose:()=>{c?.destroy?.(),c=null,ye(e,i,U),n.dispose()}}}const Ne=[{test:e=>/youtu\.be|youtube\.com/.test(e),key:`youtube`,embed:!0},{test:e=>/vimeo\.com|player\.vimeo\.com/.test(e),key:`vimeo`,embed:!0},{test:e=>/dailymotion\.com|dai\.ly/.test(e),key:`dailymotion`,embed:!0},{test:e=>/cdn\.jwplayer\.com/.test(e)||e.startsWith(`jwplayer://`),key:`jwplayer`,embed:!1},{test:e=>/players\.brightcove\.net/.test(e),key:`brightcove`,embed:!1}];function Pe(e){return Ne.find(t=>t.test(e))?.key??`html5`}function Fe(e){if(/\.m3u8(\?|#|$)/.test(e))return`application/x-mpegURL`;if(/\.mp4(\?|#|$)/.test(e))return`video/mp4`}function Ie(e){return Ne.find(t=>t.test(e))?.embed??!1}const Le={youtube:Oe,vimeo:Ae,dailymotion:Me};function Re(e,t,n){let r=Le[Pe(e)];return r?r(t,n):null}async function ze(e){let t=Pe(e);return t===`jwplayer`?se(e):t===`brightcove`?fe(e):{src:e,type:Fe(e)}}function Be(e){return e.kind===`captions`||e.kind===`subtitles`}function Ve(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];Be(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];Be(r)&&(r.mode=n===t?`showing`:`hidden`)}}function i(){for(let t=0;t<e.textTracks.length;t++){let n=e.textTracks[t];if(Be(n)&&n.mode===`showing`)return t}return null}return{featuresCaptions:()=>n().length>0,getCaptionTracks:n,setCaptionTrack:r,getActiveCaptionTrack:i,dispose:()=>{e.textTracks.removeEventListener(`addtrack`,t),e.textTracks.removeEventListener(`removetrack`,t)}}}function He(e){function t(){return(e()?.levels??[]).map((e,t)=>({index:t,height:e.height,bitrate:e.bitrate,label:`${e.height}p`}))}function n(){return e()?.autoLevelEnabled??!0}function r(){let t=e();return t?n()?null:t.currentLevel:null}function i(t){let n=e();n&&(n.currentLevel=t??-1)}return{featuresQuality:()=>t().length>0,getQualityLevels:t,getCurrentQuality:r,isAutoQuality:n,setQuality:i}}function Ue(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=e.closest(`.player__shell`);n instanceof HTMLElement&&N(n)}function a(){let t=e;if(typeof t.webkitExitFullscreen==`function`){t.webkitExitFullscreen();return}P()}return{enterFullscreen:i,exitFullscreen:a,dispose:()=>{for(let[t,n]of r)e.removeEventListener(t,n)}}}function We(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{featuresPip:r,isPipActive:i,togglePip:a,dispose:()=>{for(let[t,r]of n)e.removeEventListener(t,r)}}}const Ge=`application/x-mpegURL`,Ke=[`play`,`pause`,`ended`,`error`,`timeupdate`,`durationchange`,`progress`,`volumechange`,`ratechange`,`seeking`,`seeked`,`waiting`,`playing`,`canplay`];function qe(e,t){let n=pe(),r=null,i=!1,a=null;async function o(o){let{default:s}=await import(`hls.js`);if(i||a!==o)return;if(typeof s?.isSupported!=`function`||!s.isSupported()){e.src=o,t.autoplay&&e.play();return}r=new s({liveDurationInfinity:!0}),r.loadSource(o),r.attachMedia(e),t.autoplay&&e.play();let c=s.Events,u=s.ErrorTypes;r.on(c.MANIFEST_PARSED,l(`qualitychange`)),r.on(c.LEVEL_SWITCHED,l(`qualitychange`)),r.on(c.ERROR,(e,t)=>{if(!(!t.fatal||i||a!==o))switch(t.type){case u.NETWORK_ERROR:r?.startLoad();break;case u.MEDIA_ERROR:r?.recoverMediaError();break;default:r?.destroy(),r=null,n.trigger(`error`);break}})}function s(){return/Apple/.test(navigator.vendor)&&!/CriOS|FxiOS|OPiOS|EdgiOS|Chrome|Chromium|Android/.test(navigator.userAgent)&&(e.canPlayType(`application/vnd.apple.mpegurl`)!==``||e.canPlayType(Ge)!==``)}function c(n,i){if(r?.destroy(),r=null,a=null,i===Ge&&!s()){a=n,o(n);return}e.src=n,t.autoplay&&e.play()}let l=e=>()=>n.trigger(e),u=Ke.map(e=>[e,l(e)]);for(let[t,n]of u)e.addEventListener(t,n);let d=Ve(e,l(`captionschange`)),f=He(()=>r),p=Ue(e,l(`nativefullscreenenter`),l(`nativefullscreenexit`)),m=We(e,l(`pipchange`));return e.poster=t.poster??``,e.muted=t.muted??t.autoplay??!1,e.playbackRate=t.playbackRate??1,e.playsInline=!0,c(t.src,t.type),{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:c,featuresPlaybackRate:()=>!0,featuresCaptions:d.featuresCaptions,getCaptionTracks:d.getCaptionTracks,setCaptionTrack:d.setCaptionTrack,getActiveCaptionTrack:d.getActiveCaptionTrack,featuresQuality:f.featuresQuality,getQualityLevels:f.getQualityLevels,getCurrentQuality:f.getCurrentQuality,isAutoQuality:f.isAutoQuality,setQuality:f.setQuality,featuresPip:m.featuresPip,isPipActive:m.isPipActive,togglePip:m.togglePip,enterFullscreen:p.enterFullscreen,exitFullscreen:p.exitFullscreen,on:n.on,off:n.off,dispose:()=>{i=!0,r?.destroy();for(let[t,n]of u)e.removeEventListener(t,n);d.dispose(),p.dispose(),m.dispose(),n.dispose()}}}const Je=new Set;function Ye(e){return Je.add(e),()=>Je.delete(e)}function Xe(e){Je.forEach(t=>{if(t!==e)try{t()}catch{}})}function Ze(e){let t=C(!1),n=C(!1);function r(){let e=document;t.value=!!(document.fullscreenElement||e.webkitFullscreenElement),n.value=!1}function i(){let n=e();if(n){if(t.value){n.exitFullscreen();return}n.enterFullscreen()}}function a(){n.value=!0}function o(e){e.on(re,()=>{n.value=!0}),e.on(z,()=>{n.value=!1}),e.on(`nativefullscreenenter`,()=>{t.value=!0,n.value=!1}),e.on(`nativefullscreenexit`,()=>{t.value=!1,n.value=!1})}return y(()=>{document.addEventListener(`fullscreenchange`,r),document.addEventListener(`webkitfullscreenchange`,r)}),v(()=>{document.removeEventListener(`fullscreenchange`,r),document.removeEventListener(`webkitfullscreenchange`,r)}),{isFullscreen:t,isFullscreenPending:n,toggleFullscreen:i,markFullscreenPending:a,attachPlayerEvents:o}}function Qe(){let e=C(!1),t=null;function n(){clearTimeout(t??void 0),e.value=!1}function r(r){r.on(`waiting`,()=>{clearTimeout(t??void 0),t=setTimeout(()=>{e.value=!0},500)}),r.on(`playing`,n),r.on(`canplay`,n)}return v(()=>clearTimeout(t??void 0)),{isBuffering:e,attachPlayerEvents:r,reset:n}}function $e(e,t,n){let r=new Set;function i(){if(!t.value)return;let i=e.value/t.value;for(let[e,t]of ae)!r.has(e)&&i>=e&&(r.add(e),n(t))}function a(){r.clear()}return{checkQuartiles:i,reset:a}}function et(){try{return JSON.parse(localStorage.getItem(`player:positions`)??`[]`)}catch{return[]}}function tt(e){localStorage.setItem(`player:positions`,JSON.stringify(e))}function nt(e){return et().find(t=>t.url===e)?.time??null}function rt(e){tt(et().filter(t=>t.url!==e))}function it(e,t,n){let r=!1;function i(t){if(r)return;let n=nt(e);n&&t.setCurrentTime(n),r=!0}function a(e){!e||n.value}function o(){rt(e)}function s(){document.visibilityState===`hidden`&&a(t())}return y(()=>document.addEventListener(`visibilitychange`,s)),v(()=>{a(t()),document.removeEventListener(`visibilitychange`,s)}),{restoreOnce:i,save:a,clear:o}}function at(e,t,n,r){let i=null;y(()=>{let a=e.value?.closest(`.player__shell`);a&&(i=new IntersectionObserver(([e])=>{let i=t();!e.isIntersecting&&i&&!i.paused()&&!n.value&&!r.value&&i.pause()},{threshold:.1}),i.observe(a))}),v(()=>i?.disconnect())}function ot(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();t?.setMuted(!t.muted())}function l(t){let n=e();n&&(n.setVolume(t),n.setMuted(t===0))}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 st(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:x,supportsPip:S,isPipActive:C,hasStarted:w,isError:T,errorMessage:E}=e,{fire:D,pauseThisPlayer:O,positionMemory:k,quartiles:A,buffering:j,fullscreen:M}=t;function N(e){i.value=!0,m.value=e.featuresPlaybackRate();function t(){g.value=e.getCaptionTracks(),h.value=e.featuresCaptions();let t=e.getActiveCaptionTrack();t!==_.value&&(_.value=t,w.value&&D(`captionchange`,{captionIndex:t}))}t(),e.on(`captionschange`,t);function N(){y.value=e.getQualityLevels(),v.value=e.featuresQuality();let t=e.getCurrentQuality(),n=e.isAutoQuality(),r=t!==b.value||n!==x.value;b.value=t,x.value=n,r&&w.value&&D(`qualitychange`,{qualityIndex:n?null:t})}N(),e.on(`qualitychange`,N);function P(){S.value=e.featuresPip();let t=e.isPipActive();t!==C.value&&(C.value=t,w.value&&D(`pipchange`,{isPipActive:t}))}P(),e.on(`pipchange`,P);let F=()=>{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`,()=>{Xe(O),a.value=!0,D(`adstart`)}),e.on(`adend`,()=>{a.value=!1,D(`adend`)}),e.on(`play`,()=>{Xe(O),w.value=!0,n.value=!0,r.value=!1,o.value||k.restoreOnce(e),D(`play`)}),e.on(`pause`,()=>{n.value=!1,o.value||k.save(e),D(`pause`)}),e.on(`ended`,()=>{if(n.value=!1,A.reset(),j.reset(),f.value){e.setCurrentTime(0),e.play();return}c.value&&(s.value=c.value),r.value=!0,k.clear(),D(`ended`)}),e.on(`seeked`,()=>{D(`seeked`)}),e.on(`error`,()=>{let t=e.error();E.value=t?.message||`This video could not be played.`,T.value=!0,i.value=!0,D(`error`,{error:t})}),e.on(`timeupdate`,()=>{if(r.value)return;s.value=e.currentTime()??0,c.value||F(),m.value||=e.featuresPlaybackRate();let t=e.getActiveCaptionTrack();_.value!==t&&(_.value=t,w.value&&D(`captionchange`,{captionIndex:t})),o.value||A.checkQuartiles()}),e.on(`durationchange`,F),e.on(`progress`,()=>{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,w.value&&D(`volumechange`,{isMuted:t})}),e.on(`ratechange`,()=>{let t=e.playbackRate()??1;p.value=t,w.value&&D(`ratechange`,{playbackRate:t})}),j.attachPlayerEvents(e),M.attachPlayerEvents(e)}return{attachPlayerEvents:N}}function ct(){return window.google?.ima?Promise.resolve():new Promise((e,t)=>{let n=document.createElement(`script`);n.src=`https://imasdk.googleapis.com/js/sdkloader/ima3.js`,n.onload=()=>e(),n.onerror=()=>t(Error(`Failed to load Google IMA SDK`)),document.head.appendChild(n)})}function lt(e,t,n,r){let i=document.createElement(`div`);i.className=`ima-ad-container`,e.appendChild(i);let a=n,o=null,s=null,c=null,l=!1,u=!1,d=!1,f=!1,p=!1,m=!1,h=1,g=new ResizeObserver(([e])=>{let t=window.google?.ima;if(!c||!t)return;let{width:n,height:r}=e.contentRect;c.resize(n,r,t.ViewMode.NORMAL)});g.observe(t);function _(){s?.contentComplete()}function v(t){f=t,e.classList.toggle(W,t),t||(p=!1,e.classList.remove(G))}function y(){if(l||!u||!d||!o||!s||!a)return;l=!0;let e=window.google?.ima;if(!e)return;o.initialize();let t=new e.AdsRequest;t.adTagUrl=a,s.requestAds(t)}function b(e){a=e,y()}ct().then(()=>{if(m)return;let n=window.google?.ima;n&&(o=new n.AdDisplayContainer(i,t),s=new n.AdsLoader(o),u=!0,s.addEventListener(n.AdsManagerLoadedEvent.Type.ADS_MANAGER_LOADED,i=>{if(m)return;let a=new n.AdsRenderingSettings;a.restoreCustomPlaybackStateOnAdBreakComplete=!0,c=i.getAdsManager(t,a),t.addEventListener(`ended`,_),c.addEventListener(n.AdEvent.Type.CONTENT_PAUSE_REQUESTED,()=>{t.removeEventListener(`ended`,_),t.pause(),v(!0),r.onAdStart();let e=c?.getVolume()??1;e>0&&(h=e),r.onAdMuteChange(e===0)}),c.addEventListener(n.AdEvent.Type.CONTENT_RESUME_REQUESTED,()=>{t.addEventListener(`ended`,_),v(!1),r.onAdEnd(),t.ended||t.play()}),c.addEventListener(n.AdEvent.Type.PAUSED,()=>{p=!0,e.classList.add(G),r.onAdPauseChange(!0)}),c.addEventListener(n.AdEvent.Type.RESUMED,()=>{p=!1,e.classList.remove(G),r.onAdPauseChange(!1)}),c.addEventListener(n.AdEvent.Type.AD_PROGRESS,()=>{r.onAdProgress(c?.getRemainingTime()??0)}),c.addEventListener(n.AdErrorEvent.Type.AD_ERROR,e=>{v(!1),r.onError(e.getError().getMessage()),t.play()});try{c.init(t.clientWidth,t.clientHeight,n.ViewMode.NORMAL),c.start()}catch(e){r.onError(e instanceof Error?e.message:`Ad playback failed to start.`)}}),s.addEventListener(n.AdErrorEvent.Type.AD_ERROR,e=>{r.onError(e.getError().getMessage())}),y())}).catch(e=>r.onError(e.message));function x(){d=!0,y()}function S(){if(!c)return;let e=c.getVolume();e>0?(h=e,c.setVolume(0)):c.setVolume(h||1),r.onAdMuteChange(c.getVolume()===0)}return{isAdPlaying:()=>f,isAdPaused:()=>p,requestAdsOnFirstPlay:x,setAdTagUrl:b,pauseAd:()=>c?.pause(),resumeAd:()=>c?.resume(),toggleAdMute:S,dispose:()=>{m=!0,g.disconnect(),t.removeEventListener(`ended`,_),c?.destroy(),s?.destroy(),i.remove(),e.classList.remove(W,G)}}}function ut(e,t){let n=window.pbjs;if(!n)return Promise.resolve(t);let r=e.timeoutMs??1e3;return new Promise(i=>{let a=!1;function o(e){a||(a=!0,i(e||t))}let s=setTimeout(()=>o(t),r);n.que.push(()=>{try{n.addAdUnits(e.adUnit),n.requestBids({adUnitCodes:[e.adUnit.code],timeout:r,bidsBackHandler:()=>{clearTimeout(s);try{o(n.adServers?.gam?.buildVideoUrl({adUnit:e.adUnit,params:e.params}))}catch{o(t)}}})}catch{clearTimeout(s),o(t)}})})}function dt(e,t){let{isAdPlaying:n,isAdPaused:r,isAdMuted:i,adRemainingTime:a}=e,{fire:o,pauseThisPlayer:s}=t,c=null,l=null;function u(e,t,u,d){if(!(u||d)||!e.parentElement)return;d&&ut(d,u).catch(()=>u).then(e=>c?.setAdTagUrl(e));function f(){!M()&&t.isPipActive()&&document.exitPictureInPicture()}function p(){!M()&&(document.hidden||!document.hasFocus())&&c?.isAdPlaying()&&c.pauseAd()}document.addEventListener(`visibilitychange`,p),window.addEventListener(`blur`,p);let m=()=>{t.isPipActive()||p()};t.on(`pipchange`,m),l=()=>{document.removeEventListener(`visibilitychange`,p),window.removeEventListener(`blur`,p),t.off(`pipchange`,m)},c=lt(e.parentElement,e,u,{onAdStart:()=>{n.value=!0,r.value=!1,o(`adstart`),f(),p()},onAdEnd:()=>{n.value=!1,r.value=!1,a.value=0,o(`adend`)},onAdPauseChange:e=>{r.value=e,e||Xe(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)}}),t.on(`play`,()=>c?.requestAdsOnFirstPlay())}return{attach:u,isAdPlaying:()=>c?.isAdPlaying()??!1,isAdPaused:()=>c?.isAdPaused()??!1,pauseAd:()=>c?.pauseAd(),resumeAd:()=>c?.resumeAd(),toggleAdMute:()=>c?.toggleAdMute(),dispose:()=>{c?.dispose(),c=null,l?.(),l=null}}}function ft(e,t,r){let i=null,a=null,o=null,s=C(!1),c=C(!1),l=C(!1),u=C(!1),d=C(!1),f=C(!1),p=C(0),m=C(!1),h=C(0),g=C(0),_=C(0),b=C(1),x=C(t.muted??t.autoplay??!1),S=C(!1),w=C(t.playbackRate??1),T=C(!1),E=C(!1),D=C([]),O=C(null),A=C(!1),j=C([]),M=C(null),N=C(!0),P=C(!1),F=C(!1),I=C(!1),L=C(!1),R=C(``),ne=C(!1),re=n(()=>g.value?h.value/g.value*100:0),z=n(()=>Math.max(_.value,re.value)),B=()=>i,V=Ze(B),H=Qe(),U=it(t.videoUrl,B,c);function W(e,n={}){r(`state-change`,{type:e,currentTime:h.value,duration:g.value,src:t.videoUrl,...n,payload:t.payload})}let G=$e(h,g,W);function ie(){!i||!o||(L.value=!1,R.value=``,i.setSrc(o.src,o.type))}function K(){if(q.isAdPlaying()){q.pauseAd();return}i?.pause()}function ae(){if(q.isAdPlaying()){q.isAdPaused()?q.resumeAd():q.pauseAd();return}J.togglePlay()}let q=dt({isAdPlaying:u,isAdPaused:d,isAdMuted:f,adRemainingTime:p},{fire:W,pauseThisPlayer:K}),J=ot(B,l,g,S,w,s),{attachPlayerEvents:oe}=st({isPlaying:s,hasEnded:c,isReady:l,isAdPlaying:u,isLive:m,current:h,total:g,buffered:_,vol:b,isMuted:x,isLooping:S,playbackRate:w,supportsPlaybackRate:T,supportsCaptions:E,captionTracks:D,activeCaptionIndex:O,supportsQuality:A,qualityLevels:j,currentQualityIndex:M,isAutoQuality:N,supportsPip:P,isPipActive:F,hasStarted:I,isError:L,errorMessage:R},{fire:W,pauseThisPlayer:K,positionMemory:U,quartiles:G,buffering:H,fullscreen:V});function se(e){i?.setCaptionTrack(e),O.value=e,I.value&&W(`captionchange`,{captionIndex:e})}function ce(e){i?.setQuality(e),M.value=e,N.value=e===null,I.value&&W(`qualitychange`,{qualityIndex:e})}function le(){i?.togglePip()}function ue(){J.toggleLoop(),I.value&&W(`loopchange`,{isLooping:S.value})}return k(()=>t.muted,e=>{!i||e===void 0||i.setMuted(e)}),k(()=>t.playbackRate,e=>{!i||e===void 0||i.setPlaybackRate(e)}),at(e,B,V.isFullscreen,V.isFullscreenPending),k(I,t=>{!t||!e.value||!i||i.el===e.value||ve(e.value,i.el)}),y(async()=>{if(Ie(t.videoUrl)){if(!e.value)return;let n=Re(t.videoUrl,e.value,{src:t.videoUrl,poster:t.poster,autoplay:t.autoplay,muted:t.muted??t.autoplay,nativeUi:t.nativeUi});if(!n){L.value=!0,l.value=!0,R.value=`This platform is not yet supported.`;return}ne.value=!!t.nativeUi,i=n,o={src:t.videoUrl},a=Ye(K),oe(i);return}let n=await ze(t.videoUrl).catch(()=>({src:t.videoUrl}));if(!e.value)return;o={src:n.src,type:n.type},i=qe(e.value,{src:n.src,type:n.type,poster:n.poster||t.poster||``,autoplay:t.autoplay,muted:t.muted??t.autoplay,playbackRate:w.value});let r=ee(t.adTagUrl||n.adTagUrl||``,t.adTagParams);q.attach(e.value,i,r,t.headerBidding),a=Ye(K),oe(i)}),v(()=>{a?.(),q.dispose(),i?.dispose(),i=null}),{isPlaying:s,hasEnded:c,isReady:l,isAdPlaying:u,isAdPaused:d,isAdMuted:f,adRemainingTime:p,isLive:m,isBuffering:H.isBuffering,current:h,total:g,vol:b,isMuted:x,isLooping:S,playbackRate:w,hasStarted:I,isError:L,errorMessage:R,progress:re,bufferedDisplay:z,isFullscreen:V.isFullscreen,isFullscreenPending:V.isFullscreenPending,fmt:te,fire:W,retry:ie,togglePlay:ae,seek:J.seek,toggleMute:J.toggleMute,setVolume:J.setVolume,toggleFullscreen:V.toggleFullscreen,markFullscreenPending:V.markFullscreenPending,toggleLoop:ue,toggleAdMute:q.toggleAdMute,setPlaybackRate:J.setPlaybackRate,supportsPlaybackRate:T,supportsCaptions:E,captionTracks:D,activeCaptionIndex:O,setCaptionTrack:se,supportsQuality:A,qualityLevels:j,currentQualityIndex:M,isAutoQuality:N,setQuality:ce,supportsPip:P,isPipActive:F,togglePip:le,nativeUi:ne}}function pt(e){let t=C(!0),n=C(!1),r=null,i=0;function a(e=400){i=Date.now()+e}function o(e=3500){clearTimeout(r??void 0),r=setTimeout(()=>{t.value=!1,n.value=!1},e)}function s(){clearTimeout(r??void 0)}function c(){n.value=!0,t.value=!0,o()}function l(){n.value=!1,e.value&&o()}function u(){e.value&&o()}function d(){t.value=!0,e.value&&o()}function f(){t.value=!0,o()}function p(){Date.now()<i||e.value&&o(600)}return k(e,e=>{if(!e){clearTimeout(r??void 0),t.value=!0;return}o()}),v(()=>clearTimeout(r??void 0)),{showHUD:t,isOpen:n,scheduleHide:o,pauseHide:s,onVideoTap:d,onMouseMove:f,onMouseLeave:p,openControls:c,closeControls:l,keepOpen:u,suppressMouseLeave:a}}const Y=Symbol(`player`),X=Symbol(`hud`),mt=Symbol(`action`),ht=Symbol(`compact`),gt=Symbol(`playlist`);function Z(e){let t=f(e);if(t===void 0)throw Error(`[video-player] missing "${String(e.description)}" context — this component must be rendered inside <VideoPlayer>`);return t}function _t(e,t){return{hudVisible:n(()=>!e.isReady||e.isError?!1:t.showHUD),popupVisible:n(()=>!e.isReady||e.isError?!1:e.isFullscreen?t.showHUD:t.isOpen)}}function vt(e,t){return n(()=>!(!e?.value||t.isFullscreen))}function yt(e,t,r){let i=n(()=>e?.value??null),a=n(()=>!!i.value&&typeof i.value==`object`),o=n(()=>a.value?i.value:null),s=n(()=>i.value===`mute`?t.isMuted?`Unmute`:`Mute`:i.value===`loop`?t.isLooping?`Disable loop`:`Loop`:i.value===`autoplay`?r.autoAdvance?`Disable autoplay next`:`Autoplay next`:``),c=n(()=>i.value===`mute`?t.isMuted:i.value===`loop`?t.isLooping:i.value===`autoplay`&&r.autoAdvance);function l(){i.value===`mute`?t.toggleMute():i.value===`loop`?t.toggleLoop():i.value===`autoplay`&&r.toggleAutoAdvance()}return{currentAction:i,isCustom:a,customAction:o,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 bt={},xt={viewBox:`0 0 24 24`,fill:`currentColor`};function St(e,t){return b(),a(`svg`,xt,[...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 Ct=Q(bt,[[`render`,St]]);const wt={},Tt={viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`2`,"stroke-linecap":`round`,"stroke-linejoin":`round`};function Et(e,t){return b(),a(`svg`,Tt,[...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 Dt=Q(wt,[[`render`,Et]]);const Ot={},kt={viewBox:`0 0 24 24`,fill:`currentColor`};function At(e,t){return b(),a(`svg`,kt,[...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 jt=Q(Ot,[[`render`,At]]);const Mt={},Nt={viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`2`,"stroke-linecap":`round`,"stroke-linejoin":`round`};function Pt(e,t){return b(),a(`svg`,Nt,[...t[0]||=[s(`<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 Ft=Q(Mt,[[`render`,Pt]]);const It={},Lt={viewBox:`0 0 24 24`,fill:`currentColor`};function Rt(e,t){return b(),a(`svg`,Lt,[...t[0]||=[o(`path`,{d:`M4 12l1.41 1.41L11 7.83V20h2V7.83l5.59 5.58L20 12l-8-8-8 8z`},null,-1)]])}var zt=Q(It,[[`render`,Rt]]);const Bt={},Vt={viewBox:`0 0 24 24`,fill:`currentColor`};function Ht(e,t){return b(),a(`svg`,Vt,[...t[0]||=[o(`path`,{d:`M7 14H5v5h5v-2H7v-3zm-2-4h2V7h3V5H5v5zm12 7h-3v2h5v-5h-2v3zM14 5v2h3v3h2V5h-5z`},null,-1)]])}var Ut=Q(Bt,[[`render`,Ht]]);const Wt={},Gt={viewBox:`0 0 24 24`,fill:`currentColor`};function Kt(e,t){return b(),a(`svg`,Gt,[...t[0]||=[o(`path`,{d:`M5 16h3v3h2v-5H5v2zm3-8H5v2h5V5H8v3zm6 11h2v-3h3v-2h-5v5zm2-11V5h-2v5h5V8h-3z`},null,-1)]])}var qt=Q(Wt,[[`render`,Kt]]);const Jt={},Yt={viewBox:`0 0 24 24`,fill:`currentColor`};function Xt(e,t){return b(),a(`svg`,Yt,[...t[0]||=[o(`path`,{d:`M7 7h10v3l4-4-4-4v3H5v6h2V7zm10 10H7v-3l-4 4 4 4v-3h12v-6h-2v4z`},null,-1)]])}var Zt=Q(Jt,[[`render`,Xt]]);const Qt={},$t={viewBox:`0 0 24 24`,fill:`currentColor`};function en(e,t){return b(),a(`svg`,$t,[...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 tn=Q(Qt,[[`render`,en]]);const nn={},rn={viewBox:`0 0 24 24`,fill:`currentColor`};function an(e,t){return b(),a(`svg`,rn,[...t[0]||=[o(`path`,{d:`M6 19h4V5H6v14zm8-14v14h4V5h-4z`},null,-1)]])}var on=Q(nn,[[`render`,an]]);const sn={},cn={viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`2`,"stroke-linecap":`round`,"stroke-linejoin":`round`};function ln(e,t){return b(),a(`svg`,cn,[...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 un=Q(sn,[[`render`,ln]]);const dn={},fn={viewBox:`0 0 24 24`,fill:`currentColor`};function pn(e,t){return b(),a(`svg`,fn,[...t[0]||=[o(`path`,{d:`M8 5v14l11-7z`},null,-1)]])}var mn=Q(dn,[[`render`,pn]]);const hn={},gn={viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`2`,"stroke-linecap":`round`,"stroke-linejoin":`round`};function _n(e,t){return b(),a(`svg`,gn,[...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 vn=Q(hn,[[`render`,_n]]);const yn={},bn={viewBox:`0 0 24 24`,fill:`currentColor`};function xn(e,t){return b(),a(`svg`,bn,[...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 Sn=Q(yn,[[`render`,xn]]);const Cn={},wn={viewBox:`0 0 24 24`,fill:`currentColor`};function Tn(e,t){return b(),a(`svg`,wn,[...t[0]||=[o(`path`,{d:`M6 18l8.5-6L6 6v12zM16 6v12h2V6h-2z`},null,-1)]])}var En=Q(Cn,[[`render`,Tn]]);const Dn={},On={viewBox:`0 0 24 24`,fill:`currentColor`};function kn(e,t){return b(),a(`svg`,On,[...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 An=Q(Dn,[[`render`,kn]]);const jn={},Mn={viewBox:`0 0 24 24`,fill:`currentColor`};function Nn(e,t){return b(),a(`svg`,Mn,[...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 Pn=Q(jn,[[`render`,Nn]]);const Fn=[`aria-label`];var In=Q(u({__name:`PlayPauseButton`,props:{isPlaying:{type:Boolean,required:!0},hasEnded:{type:Boolean,required:!1,default:!1},size:{type:String,required:!1,default:`sm`}},emits:[`toggle-play`],setup(e){let t=e,i=n(()=>t.isPlaying?`Pause`:t.hasEnded?`Replay`:`Play`);return(t,n)=>(b(),a(`button`,{class:h([`ppbtn`,`ppbtn--${e.size}`]),"aria-label":i.value,onClick:n[0]||=j(e=>t.$emit(`toggle-play`),[`stop`])},[e.isPlaying?(b(),r(O(on),{key:0})):e.hasEnded?(b(),r(O(Sn),{key:1})):(b(),r(O(mn),{key:2}))],10,Fn))}}),[[`__scopeId`,`data-v-85902525`]]),Ln=u({__name:`VolumeIcon`,setup(e){let t=Z(Y),i=n(()=>!t.isMuted&&t.vol>0);return(e,t)=>i.value?(b(),r(O(Pn),{key:0})):(b(),r(O(An),{key:1}))}}),Rn=Q(u({__name:`Spinner`,props:{size:{type:Number,required:!1,default:14},borderWidth:{type:Number,required:!1,default:2}},setup(e){return(t,n)=>(b(),a(`div`,{class:`spinner`,style:_({width:`${e.size}px`,height:`${e.size}px`,borderWidth:`${e.borderWidth}px`})},null,4))}}),[[`__scopeId`,`data-v-259be2b2`]]);const zn={class:`hud`},Bn=[`aria-label`],Vn=[`aria-label`],Hn=[`aria-label`],Un=[`aria-label`,`innerHTML`],Wn={key:4,class:`hud__spacer`},Gn={class:`hud__play-wrap`};var Kn=Q(u({__name:`HudButtons`,setup(t){let n=Z(Y),s=Z(X),{currentAction:c,isCustom:u,customAction:d,builtinLabel:p,builtinActive:m,onBuiltinClick:g}=yt(f(mt),n,Z(gt));return(t,f)=>(b(),a(`div`,zn,[!O(s).isOpen&&!O(n).isFullscreen?(b(),a(e,{key:0},[O(c)===`mute`?(b(),a(`button`,{key:0,class:h([`hud__btn`,{"hud__btn--active":O(m)}]),"aria-label":O(p),onClick:f[0]||=j((...e)=>O(g)&&O(g)(...e),[`stop`])},[l(Ln)],10,Bn)):O(c)===`loop`?(b(),a(`button`,{key:1,class:h([`hud__btn`,{"hud__btn--active":O(m)}]),"aria-label":O(p),onClick:f[1]||=j((...e)=>O(g)&&O(g)(...e),[`stop`])},[l(O(Zt))],10,Vn)):O(c)===`autoplay`?(b(),a(`button`,{key:2,class:h([`hud__btn`,{"hud__btn--active":O(m)}]),"aria-label":O(p),onClick:f[2]||=j((...e)=>O(g)&&O(g)(...e),[`stop`])},[l(O(En))],10,Hn)):O(u)&&O(d)?(b(),a(`button`,{key:3,class:`hud__btn`,"aria-label":O(d).label,onClick:f[3]||=j(e=>O(d).onClick(),[`stop`]),innerHTML:O(d).icon},null,8,Un)):(b(),a(`div`,Wn))],64)):i(`v-if`,!0),o(`div`,Gn,[l(In,{"is-playing":O(n).isPlaying,"has-ended":O(n).hasEnded,size:`lg`,onTogglePlay:O(n).togglePlay},null,8,[`is-playing`,`has-ended`,`onTogglePlay`]),O(n).isBuffering?(b(),r(Rn,{key:0,class:`hud__buf-spinner`})):i(`v-if`,!0)]),!O(s).isOpen&&!O(n).isFullscreen?(b(),a(`button`,{key:1,class:`hud__btn`,"aria-label":`Show controls`,onClick:f[4]||=j((...e)=>O(s).openControls&&O(s).openControls(...e),[`stop`])},[l(O(Ft))])):i(`v-if`,!0)]))}}),[[`__scopeId`,`data-v-a6d118e7`]]);function qn(e){let t=C(null),r=n(()=>t.value??e.progress),i=null;function a(){i&&clearTimeout(i),i=null,t.value=null}function o(e){i&&clearTimeout(i),i=null,t.value=Number(e.target.value)}function s(n){let r=Number(n.target.value);t.value=r,e.seek(r),i&&clearTimeout(i),i=setTimeout(a,3e3)}return k(()=>e.current,()=>{if(t.value===null||!e.total)return;let n=t.value/100*e.total;Math.abs(e.current-n)<1&&a()}),v(a),{displaySeek:r,onSeekInput:o,onSeekChange:s}}function Jn(e,t,n){if(!document.startViewTransition||!e.value){n();return}e.value.style.viewTransitionName=t,document.startViewTransition(async()=>{n(),await m()}).finished.finally(()=>{e.value&&(e.value.style.viewTransitionName=``)})}const Yn={class:`controls__vol-header`},Xn=[`aria-label`],Zn={class:`controls__vol-body`},Qn=[`value`],$n={class:`controls__vol-pct`};var er=Q(u({__name:`VolumePanel`,emits:[`back`],setup(t){let r=Z(Y),i=Z(X),s=n(()=>r.isMuted?0:Math.round(r.vol*100));function c(e){r.setVolume(Number(e.target.value)/100)}return(t,n)=>(b(),a(e,null,[o(`div`,Yn,[o(`button`,{class:`controls__btn`,"aria-label":`Back`,onClick:n[0]||=e=>t.$emit(`back`)},[l(O(Ct))]),n[6]||=o(`span`,{class:`controls__vol-label`},`Volume`,-1),o(`button`,{class:`controls__btn`,"aria-label":O(r).isMuted?`Unmute`:`Mute`,onClick:n[1]||=e=>O(r).toggleMute()},[l(Ln)],8,Xn)]),o(`div`,Zn,[o(`input`,{type:`range`,min:`0`,max:`100`,step:`1`,value:s.value,class:`controls__vol-slider`,style:_({"--v":s.value+`%`}),"aria-label":`Volume`,onInput:c,onMousedown:n[2]||=e=>O(i).pauseHide(),onMouseup:n[3]||=e=>O(i).scheduleHide(),onTouchstartPassive:n[4]||=e=>O(i).pauseHide(),onTouchend:n[5]||=e=>O(i).scheduleHide()},null,44,Qn),o(`span`,$n,E(s.value)+`%`,1)])],64))}}),[[`__scopeId`,`data-v-10b0ae67`]]);function tr(e){function t(){let t=K.indexOf(e.playbackRate);e.setPlaybackRate(K[(t+1)%K.length])}function n(e){return`${e}×`}return{cycleRate:t,fmtRate:n}}function nr(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 rr(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 ir=[`aria-label`],ar={key:0,class:`controls__more-row-label`},or=[`innerHTML`],sr={key:1},cr={key:2,class:`controls__more-value`};var $=Q(u({__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(),a(`button`,{class:h([`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(),a(`span`,ar,[e.icon?(b(),r(T(e.icon),{key:0,class:`controls__more-row-icon`})):(b(),a(`span`,{key:1,class:`controls__more-row-icon`,innerHTML:e.iconHtml},null,8,or)),c(` `+E(e.label),1)])):(b(),a(`span`,sr,E(e.label),1)),e.value===void 0?i(`v-if`,!0):(b(),a(`span`,cr,E(e.value),1))],10,ir))}}),[[`__scopeId`,`data-v-47ca5bfc`]]);const lr={class:`controls__more-header`};var ur=Q(u({__name:`MoreMenu`,props:{isCustom:{type:Boolean,required:!0},customAction:{type:[Object,null],required:!0}},emits:[`back`],setup(t){let n=Z(Y),s=Z(X),c=Z(gt),{cycleRate:u,fmtRate:d}=tr(n),{cycleCaptionTrack:f,currentCaptionLabel:p}=nr(n),{cycleQuality:m,currentQualityLabel:h}=rr(n);return(g,_)=>(b(),a(e,null,[o(`div`,lr,[o(`button`,{class:`controls__btn`,"aria-label":`Back`,onClick:_[0]||=e=>g.$emit(`back`)},[l(O(Ct))]),_[5]||=o(`span`,{class:`controls__more-label`},`More`,-1)]),o(`div`,{class:`controls__more-body`,onTouchstartPassive:_[4]||=e=>O(s).keepOpen()},[O(n).supportsPlaybackRate?(b(),r($,{key:0,label:`Playback speed`,value:O(d)(O(n).playbackRate),onClick:O(u)},null,8,[`value`,`onClick`])):i(`v-if`,!0),l($,{label:`Loop`,"aria-label":`Toggle loop`,icon:O(Zt),active:O(n).isLooping,value:O(n).isLooping?`On`:`Off`,onClick:_[1]||=e=>O(n).toggleLoop()},null,8,[`icon`,`active`,`value`]),O(n).supportsCaptions?(b(),r($,{key:1,label:`Captions`,icon:O(Dt),active:O(n).activeCaptionIndex!==null,value:O(p)(),onClick:O(f)},null,8,[`icon`,`active`,`value`,`onClick`])):i(`v-if`,!0),O(n).supportsQuality?(b(),r($,{key:2,label:`Quality`,icon:O(vn),active:!O(n).isAutoQuality,value:O(h)(),onClick:O(m)},null,8,[`icon`,`active`,`value`,`onClick`])):i(`v-if`,!0),O(c).hasPlaylist?(b(),r($,{key:3,label:`Autoplay next`,"aria-label":`Toggle autoplay next`,icon:O(En),active:O(c).autoAdvance,value:O(c).autoAdvance?`On`:`Off`,onClick:_[2]||=e=>O(c).toggleAutoAdvance()},null,8,[`icon`,`active`,`value`])):i(`v-if`,!0),t.isCustom&&t.customAction?(b(),r($,{key:4,label:t.customAction.label,"icon-html":t.customAction.icon,onClick:_[3]||=e=>t.customAction.onClick()},null,8,[`label`,`icon-html`])):i(`v-if`,!0)],32)],64))}}),[[`__scopeId`,`data-v-e89a8208`]]);const dr=[`value`],fr={class:`controls__row`},pr={class:`controls__play-wrap`},mr={key:0,class:`controls__live`},hr={key:1,class:`controls__time`},gr=[`aria-label`],_r={class:`controls__fs-wrap`},vr=[`aria-label`];var yr=Q(u({__name:`ControlsPopup`,setup(t){let n=Z(Y),s=Z(X),u=Z(gt),d=vt(f(ht),n),{isCustom:p,customAction:m}=yt(f(mt),n,u),g=C(!1),x=C(!1),S=C(null);function w(e){return!S.value||S.value.contains(e)?!1:(s.closeControls(),!0)}function T(e){w(e.target)}function D(e){w(e.target)&&e.preventDefault()}y(()=>{n.fire(`controlsopen`,{element:S.value}),document.addEventListener(`click`,T,!0),document.addEventListener(`touchend`,D,!0)}),v(()=>{g.value=!1,x.value=!1,n.fire(`controlsclose`,{element:S.value}),document.removeEventListener(`click`,T,!0),document.removeEventListener(`touchend`,D,!0)});function k(e){s.suppressMouseLeave(),Jn(S,`controls-popup`,e)}function A(){if(M()){n.toggleMute();return}k(()=>{g.value=!0})}function N(){k(()=>{x.value=!0})}let{displaySeek:P,onSeekInput:F,onSeekChange:ee}=qn(n);function te(){n.isFullscreen||n.markFullscreenPending(),n.toggleFullscreen()}return(t,f)=>(b(),a(`div`,{ref_key:`popupEl`,ref:S,class:h([`controls`,{"controls--fs":O(n).isFullscreen,"controls--compact":O(d)}]),onMousemove:f[11]||=j((...e)=>O(s).keepOpen&&O(s).keepOpen(...e),[`stop`])},[g.value?(b(),r(er,{key:0,onBack:f[0]||=e=>k(()=>g.value=!1)})):x.value?(b(),r(ur,{key:1,"is-custom":O(p),"custom-action":O(m),onBack:f[1]||=e=>k(()=>x.value=!1)},null,8,[`is-custom`,`custom-action`])):(b(),a(e,{key:2},[O(n).isLive?i(`v-if`,!0):(b(),a(`input`,{key:0,type:`range`,min:`0`,max:`100`,value:O(P),class:`controls__seek`,style:_({"--p":O(P)+`%`,"--b":O(n).bufferedDisplay+`%`}),onInput:f[2]||=(...e)=>O(F)&&O(F)(...e),onChange:f[3]||=(...e)=>O(ee)&&O(ee)(...e),onMousedown:f[4]||=e=>O(s).pauseHide(),onMouseup:f[5]||=e=>O(s).scheduleHide(),onTouchstartPassive:f[6]||=e=>O(s).pauseHide(),onTouchend:f[7]||=e=>O(s).scheduleHide()},null,44,dr)),o(`div`,fr,[o(`div`,pr,[O(n).isBuffering?(b(),r(Rn,{key:0})):(b(),r(In,{key:1,"is-playing":O(n).isPlaying,"has-ended":O(n).hasEnded,size:`sm`,onTogglePlay:f[8]||=e=>O(n).togglePlay()},null,8,[`is-playing`,`has-ended`]))]),O(n).isLive?(b(),a(`span`,mr,[...f[12]||=[o(`span`,{class:`controls__live-dot`},null,-1),c(`Live`,-1)]])):(b(),a(`span`,hr,E(O(n).fmt(O(n).current))+` / `+E(O(n).fmt(O(n).total)),1)),O(u).hasNext?(b(),a(`button`,{key:2,class:`controls__btn`,"aria-label":`Play next`,onClick:f[9]||=e=>O(u).playNext()},[l(O(En))])):i(`v-if`,!0),o(`button`,{class:`controls__btn`,"aria-label":`Volume`,onClick:A},[l(Ln)]),o(`button`,{class:h([`controls__btn controls__btn--more`,{"controls__btn--active":O(n).isLooping||O(n).playbackRate!==1||O(u).autoAdvance}]),"aria-label":`More`,onClick:N},[l(O(tn))],2),O(n).supportsPip?(b(),a(`button`,{key:3,class:h([`controls__btn controls__btn--pip`,{"controls__btn--active":O(n).isPipActive}]),"aria-label":O(n).isPipActive?`Exit picture-in-picture`:`Picture-in-picture`,onClick:f[10]||=e=>O(n).togglePip()},[l(O(un))],10,gr)):i(`v-if`,!0),o(`div`,_r,[O(n).isFullscreenPending?(b(),r(Rn,{key:0})):(b(),a(`button`,{key:1,class:`controls__btn`,"aria-label":O(n).isFullscreen?`Exit fullscreen`:`Fullscreen`,onClick:te},[O(n).isFullscreen?(b(),r(O(qt),{key:0})):(b(),r(O(Ut),{key:1}))],8,vr))])])],64))],34))}}),[[`__scopeId`,`data-v-5712aad4`]]);const br={class:`ad-overlay`},xr={class:`ad-overlay__bar`},Sr={class:`ad-overlay__badge`},Cr={key:0,class:`ad-overlay__countdown`},wr=[`aria-label`],Tr=[`aria-label`];var Er=Q(u({__name:`AdOverlay`,setup(e){let t=Z(Y),s=n(()=>t.adRemainingTime>0?t.fmt(t.adRemainingTime):``);return(e,n)=>(b(),a(`div`,br,[o(`div`,xr,[o(`div`,Sr,[n[2]||=o(`span`,null,`Ad`,-1),s.value?(b(),a(`span`,Cr,E(s.value),1)):i(`v-if`,!0)]),o(`button`,{class:`ad-overlay__btn`,"aria-label":O(t).isAdPaused?`Resume ad`:`Pause ad`,onClick:n[0]||=e=>O(t).togglePlay()},[O(t).isAdPaused?(b(),r(O(mn),{key:0})):(b(),r(O(on),{key:1}))],8,wr),o(`button`,{class:`ad-overlay__btn`,"aria-label":O(t).isAdMuted?`Unmute ad`:`Mute ad`,onClick:n[1]||=e=>O(t).toggleAdMute()},[O(t).isAdMuted?(b(),r(O(An),{key:0})):(b(),r(O(Pn),{key:1}))],8,Tr)])]))}}),[[`__scopeId`,`data-v-23efcc8b`]]);const Dr={key:0,class:`overlay__spinner`},Or={key:0,class:`overlay__error`};var kr=Q(u({__name:`PlayerOverlay`,props:{disableTapCapture:{type:Boolean,required:!1,default:!1}},setup(n){let s=Z(Y),c=Z(X),{hudVisible:u,popupVisible:d}=_t(s,c);function f(){c.onVideoTap()}return(c,p)=>(b(),a(e,null,[i(` Never rendered during any ad state (playing or paused) — pausing/resuming an ad goes
|
|
1
|
+
import{Fragment as e,Transition as t,computed as n,createBlock as r,createCommentVNode as i,createElementBlock as a,createElementVNode as o,createStaticVNode as s,createTextVNode as c,createVNode as l,defineComponent as u,defineCustomElement as d,inject as f,mergeProps as p,nextTick as m,normalizeClass as h,normalizeProps as g,normalizeStyle as _,onBeforeUnmount as v,onMounted as y,openBlock as b,provide as x,reactive as S,ref as C,renderList as w,resolveDynamicComponent as T,toDisplayString as E,toRef as D,unref as O,watch as k,withCtx as A,withModifiers as j}from"vue";function M(){return/iPad|iPhone|iPod/.test(navigator.userAgent)||/Mac/.test(navigator.userAgent)&&navigator.maxTouchPoints>1}function N(e){(e.requestFullscreen||e.webkitRequestFullscreen)?.call(e)}function P(){(document.exitFullscreen||document.webkitExitFullscreen)?.call(document)}function F(e){let[t,n]=e.split(`:`).map(Number);return{isPortrait:n>t,cssRatio:`${t}/${n}`}}function ee(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 te(e){return!e||isNaN(e)?`0:00`:`${Math.floor(e/60)}:${String(Math.floor(e%60)).padStart(2,`0`)}`}function I(e,t=(...e)=>String(e[0])){let n={};return async(...r)=>{let i=t(...r);if(n[i])return n[i];let a=await e(...r);return n[i]=a,a}}function L(e){return e.filter(e=>e.src&&(e.type===`application/x-mpegURL`||e.type===`video/mp4`)).sort((e,t)=>e.type===`application/x-mpegURL`?-1:1)}const R=`video-select`,ne=`video-state`,re=`fullscreen-pending`,z=`fullscreen-pending-done`,B=`player:autoAdvance`,V=`mvp-youtube`,H=`mvp-vimeo`,U=`mvp-dailymotion`,W=`mvp-ad-playing`,G=`mvp-ad-paused`,ie=`16:9`,K=[.5,.75,1,1.25,1.5,2],ae=[[.25,`firstQuartile`],[.5,`midpoint`],[.75,`thirdQuartile`]];function q(e){return e.match(/cdn\.jwplayer\.com\/videos\/([^-]+)/)?.[1]??e.match(/cdn\.jwplayer\.com\/manifests\/([^.]+)/)?.[1]??e.match(/^jwplayer:\/\/([^/]+)$/)?.[1]??null}function J(e){let t=e?.advertising?.schedule;return Array.isArray(t)&&t.length?t[0].tag??null:e?.advertising?.tag??null}const oe=I(async e=>{let t=await fetch(`https://cdn.jwplayer.com/v2/media/${e}`);if(!t.ok)throw Error(`JW Platform API error: ${t.status}`);let n=(await t.json()).playlist?.[0];if(!n)throw Error(`JW Platform: empty playlist`);let r=L((n.sources??[]).map(e=>({src:e.file,type:e.type})));if(!r.length)throw Error(`JW Platform: no playable sources found`);return{src:r[0].src,type:r[0].type,poster:n.image??null,adTagUrl:J(n)}});async function se(e){let t=q(e);if(!t)throw Error(`JW Platform: unrecognised source URL: ${e}`);let n=await oe(t);if(e.startsWith(`jwplayer://`))return n;let r=/\.mp4(\?|#|$)/.test(e)?`video/mp4`:`application/x-mpegURL`;return{...n,src:e,type:r}}function ce(e){let t;try{t=new URL(e)}catch{return null}if(t.hostname!==`players.brightcove.net`)return null;let[,n,r]=t.pathname.split(`/`),i=t.searchParams.get(`videoId`),a=r?.indexOf(`_`)??-1;return!n||a===-1||!i?null:{accountId:n,playerId:r.slice(0,a),embed:r.slice(a+1),videoId:i}}function le(e){for(let t of e?.plugins??[]){let e=t.options?.serverUrl??t.options?.imaOptions?.serverUrl;if(e)return e}return null}const ue=I(async(e,t,n,r)=>{let i=await fetch(`https://players.brightcove.net/${e}/${t}_${n}/config.json`);if(!i.ok)throw Error(`Brightcove: could not load player config (${i.status})`);let a=await i.json(),o=r??a?.video_cloud?.policy_key;if(!o)throw Error(`Brightcove: policy_key not found in player config`);return{policyKey:o,adTagUrl:le(a)}},(e,t,n)=>`${e}/${t}_${n}`);async function de(e,t,n){let r=await fetch(`https://edge.api.brightcove.com/playback/v1/accounts/${e}/videos/${t}`,{headers:{Accept:`application/json;pk=${n}`}});if(!r.ok)throw Error(`Brightcove Playback API error: ${r.status}`);let i=await r.json(),a=L(i.sources||[]);if(!a.length)throw Error(`Brightcove: no playable sources found`);return{sources:a.map(e=>({src:e.src,type:e.type})),poster:i.poster??i.thumbnail??null}}async function fe(e,t){let n=ce(e);if(!n)throw Error(`Brightcove: invalid src — expected a Brightcove embed URL, e.g. "https://players.brightcove.net/{accountId}/{playerId}_{embed}/index.html?videoId={videoId}"`);let{accountId:r,playerId:i,embed:a,videoId:o}=n,{policyKey:s,adTagUrl:c}=await ue(r,i,a,t),{sources:l,poster:u}=await de(r,o,s);return{...l[0],poster:u,adTagUrl:c}}function pe(){let e=new Map;function t(t,n){for(let r of Array.isArray(t)?t:[t])e.has(r)||e.set(r,new Set),e.get(r)?.add(n)}function n(t,n){e.get(t)?.delete(n)}function r(t,...n){e.get(t)?.forEach(e=>e(...n))}function i(){e.clear()}return{on:t,off:n,trigger:r,dispose:i}}const me={};function he(e,t=e){return me[t]||(me[t]=new Promise((t,n)=>{let r=document.createElement(`script`);r.src=e,r.onload=()=>t(),r.onerror=()=>n(Error(`Failed to load script: ${e}`)),document.head.appendChild(r)})),me[t]}let ge=0;function _e(e,t){e.parentElement?.classList.add(t);let n=`${t}-${++ge}`,r=document.createElement(`div`);r.id=n,r.className=`mvp-tech`,r.style.cssText=`width:100%;height:100%;top:0;left:0;position:absolute`;let i=document.createElement(`div`);return i.style.cssText=`width:100%;height:100%;position:absolute;inset:0;opacity:0;pointer-events:none;transition:opacity 0.2s`,i.appendChild(r),e.parentElement?.insertBefore(i,e),{techId:n,wrapper:i,innerDiv:r}}function ve(e,t){e.style.display=`none`,t.style.opacity=`1`,t.style.pointerEvents=``}function ye(e,t,n){t.remove(),e.parentElement?.classList.remove(n),e.style.display=``}function be(e){return e.closest(`.player__shell`)}function xe(e){e.trigger(re);let t=document.createElement(`div`);t.style.cssText=`position:fixed;inset:0;z-index:99999;opacity:0;pointer-events:none`,document.body.appendChild(t);let n=!1;function r(){n||e.trigger(z)}function i(r){n||(n=!0,e.trigger(z),t.remove(),r?.())}return{overlay:t,reveal:r,finish:i}}function Se(e,t){return t===e.PlayerState.PLAYING||t===e.PlayerState.BUFFERING}function Ce(e){let t={videoId:null,listId:null},n=e.match(/^.*(youtu\.be\/|v\/|u\/\w\/|embed\/|watch\?v=|shorts\/|&v=)([^#&?]*).*/);n?.[2]?.length===11&&(t.videoId=n[2]);let r=e.match(/[?&]list=([^#&?]+)/);return r?.[1]&&(t.listId=r[1]),t}let we=!1,Te=!1;const Ee=[];function De(){Te||(Te=!0,he(`https://www.youtube.com/iframe_api`).then(()=>{window.YT?.ready(()=>{we=!0,Ee.forEach(e=>e()),Ee.length=0})}))}function Oe(e,t){De();let n=pe(),{techId:r,wrapper:i}=_e(e,V),a=Ce(t.src),o=null,s=a.videoId,c=!1,l=!1,u=!1,d=null,f=!1,p=null,m=!1,h=new Set,g=null,_={active:!1,wasPaused:!1,timeBefore:0,catchUpInterval:null};function v(e,t=0){let n=setTimeout(()=>{h.delete(n),e()},t);h.add(n)}function y(){try{let e=o?.getPlayerResponse()?.adPlacements;return Array.isArray(e)&&e.length>0}catch{return!1}}function b(e){o?.loadVideoById({videoId:e})}function x(e){o?.cueVideoById({videoId:e})}function S(){a.videoId&&(_.wasPaused=!1,c?s===a.videoId?o?.playVideo():(b(a.videoId),s=a.videoId):(n.trigger(`waiting`),l=!0))}function C(){_.catchUpInterval&&clearInterval(_.catchUpInterval),_.active=!1,_.wasPaused&&o?.pauseVideo(),n.trigger(`seeked`)}function w(){m=(o?.getAvailablePlaybackRates()??[]).length>1,c=!0,t.muted&&o?.mute(),l?S():u&&a.videoId&&(x(a.videoId),s=a.videoId)}function T(e){if(e===d||p!==null)return;d=e;let t=y();t!==f&&(f=t,n.trigger(t?`adstart`:`adend`));let r=window.YT;if(r){switch(e){case-1:n.trigger(`loadstart`),n.trigger(`loadedmetadata`),n.trigger(`durationchange`),n.trigger(`ratechange`);break;case r.PlayerState.ENDED:n.trigger(`ended`);break;case r.PlayerState.PLAYING:n.trigger(`timeupdate`),n.trigger(`durationchange`),n.trigger(`playing`),n.trigger(`play`),_.active&&C();break;case r.PlayerState.PAUSED:n.trigger(`canplay`),_.active||n.trigger(`pause`);break;case r.PlayerState.BUFFERING:n.trigger(`waiting`);break;case r.PlayerState.CUED:n.trigger(`canplay`);break}g&&=(clearInterval(g),null),e===r.PlayerState.PLAYING&&(g=setInterval(()=>n.trigger(`timeupdate`),250))}}function E(){let e={controls:+!!t.nativeUi,modestbranding:1,rel:0,showinfo:0,mute:+!!t.muted,origin:window.location.origin,allowfullscreen:1,fullscreen:1,fs:1,playsinline:1,...t.customVars};s=a.videoId,o=new window.YT.Player(r,{videoId:s??void 0,playerVars:e,events:{onReady:w,onStateChange:e=>T(e.data),onPlaybackRateChange:()=>n.trigger(`ratechange`),onVolumeChange:()=>n.trigger(`volumechange`),onError:e=>{p=e.data,n.trigger(`error`),v(()=>{p=null})}}})}we?E():Ee.push(E),t.autoplay?c?S():l=!0:a.videoId&&(u=!0);function D(){if(!o)return;let e=o.getCurrentTime(),{video_id:t}=o.getVideoData();o.pauseVideo();let{overlay:r,reveal:i,finish:a}=xe(n),s=document.createElement(`div`);s.id=`yt-fs-${Math.random().toString(36).slice(2)}`,r.appendChild(s);let c=null,l=()=>{document.removeEventListener(`pointerdown`,u,!0),a(()=>{let t=c?.getCurrentTime()??e;try{c?.destroy()}catch{}o?.seekTo(t,!0),n.trigger(`timeupdate`)})};function u(){l()}c=new window.YT.Player(s.id,{videoId:t,playerVars:{playsinline:0,autoplay:1,controls:1,modestbranding:1,rel:0,start:Math.floor(e)},events:{onReady:t=>{i(),t.target.seekTo(e,!0),t.target.playVideo()},onStateChange:e=>{let t=window.YT;t&&(e.data===t.PlayerState.ENDED?l():e.data===t.PlayerState.PAUSED?(document.removeEventListener(`pointerdown`,u,!0),document.addEventListener(`pointerdown`,u,{capture:!0,once:!0})):(document.removeEventListener(`pointerdown`,u,!0),i()))}}})}function O(){if(M()&&o){D();return}let t=be(e);t&&N(t)}function k(){P()}return{el:i,play:S,pause:()=>o?.pauseVideo(),paused:()=>{if(!o)return!0;let e=window.YT;return!e||!Se(e,d)},currentTime:()=>o?.getCurrentTime()??0,setCurrentTime:e=>{if(!o)return;let t=window.YT;t&&d===t.PlayerState.PAUSED&&(_.timeBefore=o.getCurrentTime()),_.active||(_.wasPaused=!t||!Se(t,d)),o.seekTo(e,!0),n.trigger(`timeupdate`),n.trigger(`seeking`),_.active=!0,t&&d===t.PlayerState.PAUSED&&_.timeBefore!==e&&(_.catchUpInterval&&clearInterval(_.catchUpInterval),_.catchUpInterval=setInterval(()=>{d!==t.PlayerState.PAUSED||!_.active?_.catchUpInterval&&clearInterval(_.catchUpInterval):o&&o.getCurrentTime()!==_.timeBefore&&(n.trigger(`timeupdate`),C())},250))},duration:()=>o?.getDuration()??0,volume:()=>o?o.getVolume()/100:1,setVolume:e=>o?.setVolume(e*100),muted:()=>o?.isMuted()??!1,setMuted:e=>{o&&(e?o.mute():o.unMute(),v(()=>n.trigger(`volumechange`),50))},playbackRate:()=>o?.getPlaybackRate()??1,setPlaybackRate:e=>o?.setPlaybackRate(e),bufferedEnd:()=>o?.getVideoLoadedFraction?o.getVideoLoadedFraction()*o.getDuration():0,error:()=>p===null?null:{code:p,message:`This video could not be played.`},setSrc:e=>{let t=Ce(e);a.videoId=t.videoId,a.listId=t.listId,a.videoId&&(c?(b(a.videoId),s=a.videoId):u=!0)},featuresPlaybackRate:()=>m,featuresCaptions:()=>!1,getCaptionTracks:()=>[],setCaptionTrack:()=>{},getActiveCaptionTrack:()=>null,featuresQuality:()=>!1,getQualityLevels:()=>[],getCurrentQuality:()=>null,isAutoQuality:()=>!0,setQuality:()=>{},featuresPip:()=>!1,isPipActive:()=>!1,togglePip:()=>{},enterFullscreen:O,exitFullscreen:k,on:n.on,off:n.off,dispose:()=>{if(h.forEach(clearTimeout),h.clear(),g&&clearInterval(g),_.catchUpInterval&&clearInterval(_.catchUpInterval),o)try{o.stopVideo(),o.destroy()}catch{}else{let e=Ee.indexOf(E);e!==-1&&Ee.splice(e,1)}o=null,ye(e,i,V),n.dispose()}}}function ke(e){return e.match(/(?:vimeo\.com\/(?:video\/|channels\/[^/]+\/|groups\/[^/]+\/videos\/)?|player\.vimeo\.com\/video\/)(\d+)/)?.[1]??null}function Ae(e,t){let n=pe(),{techId:r,wrapper:i}=_e(e,H),a=ke(t.src),o=null,s=0,c=0,l=1,u=!1,d=!0,f=1,p=!1,m=!1,h=!1,g=null,_=new Set;function v(e,t=0){let n=setTimeout(()=>{_.delete(n),e()},t);_.add(n)}function y(){if(!o){m=!0;return}o.play().catch(()=>{})}function b(){t.muted&&o?.setMuted(!0).catch(()=>{}),m&&y()}async function x(e){if(await he(`https://player.vimeo.com/api/player.js`,`vimeo`),h||!window.Vimeo)return;let i={id:Number(e),byline:!1,portrait:!1,title:!1,transparent:!0,controls:!!t.nativeUi,autopause:!1,...t.autoplay!==void 0&&{autoplay:t.autoplay},...t.muted!==void 0&&{muted:t.muted}};o=new window.Vimeo.Player(r,i),t.autoplay&&(m=!0),o.ready().then(b).catch(e=>{g={code:4,message:e?.message||`This video is unavailable or cannot be embedded here.`},n.trigger(`error`)}),o.on(`play`,()=>{d=!1,n.trigger(`play`),n.trigger(`playing`)}),o.on(`pause`,()=>{d=!0,n.trigger(`pause`)}),o.on(`ended`,()=>{d=!0,n.trigger(`ended`)}),o.on(`timeupdate`,e=>{let{seconds:t,duration:r}=e;s=t,c=r,n.trigger(`timeupdate`),r&&!p&&(p=!0,n.trigger(`durationchange`))}),o.on(`loaded`,()=>{p=!1,n.trigger(`loadedmetadata`),n.trigger(`durationchange`)}),o.on(`seeking`,e=>{s=e.seconds,n.trigger(`seeking`)}),o.on(`seeked`,e=>{s=e.seconds,n.trigger(`seeked`),n.trigger(`timeupdate`)}),o.on(`bufferstart`,()=>n.trigger(`waiting`)),o.on(`bufferend`,()=>n.trigger(`canplay`)),o.on(`volumechange`,e=>{l=e.volume,n.trigger(`volumechange`)}),o.on(`error`,()=>n.trigger(`error`))}a&&x(a);function S(){if(!M()){let t=be(e);t&&N(t);return}o?.requestFullscreen().catch(()=>{})}function C(){P()}return{el:i,play:y,pause:()=>o?.pause().catch(()=>{}),paused:()=>d,currentTime:()=>s,setCurrentTime:e=>{o?.setCurrentTime(e).catch(()=>{}),n.trigger(`timeupdate`),n.trigger(`seeking`)},duration:()=>c,volume:()=>l,setVolume:e=>{l=e,o?.setVolume(e).catch(()=>{})},muted:()=>u,setMuted:e=>{u=e,o?.setMuted(e).then(()=>v(()=>n.trigger(`volumechange`),50)).catch(()=>{})},playbackRate:()=>f,setPlaybackRate:e=>{f=e,o?.setPlaybackRate(e).catch(()=>{}),n.trigger(`ratechange`)},bufferedEnd:()=>s,error:()=>g,setSrc:()=>{},featuresPlaybackRate:()=>!1,featuresCaptions:()=>!1,getCaptionTracks:()=>[],setCaptionTrack:()=>{},getActiveCaptionTrack:()=>null,featuresQuality:()=>!1,getQualityLevels:()=>[],getCurrentQuality:()=>null,isAutoQuality:()=>!0,setQuality:()=>{},featuresPip:()=>!1,isPipActive:()=>!1,togglePip:()=>{},enterFullscreen:S,exitFullscreen:C,on:n.on,off:n.off,dispose:()=>{h=!0,_.forEach(clearTimeout),_.clear(),o?.destroy().catch(()=>{}),o=null,ye(e,i,H),n.dispose()}}}function je(e){let t=e.match(/[?&]video=([a-zA-Z0-9]+)/);return t?t[1]:e.match(/(?:dailymotion\.com\/(?:embed\/)?video\/|dai\.ly\/)([a-zA-Z0-9]+)/)?.[1]??null}function Me(e,t){let n=pe(),{techId:r,wrapper:i}=_e(e,U),a=be(e),o=je(t.src),s=typeof t.customVars?.playerId==`string`?t.customVars.playerId:void 0,c=null,l=0,u=0,d=1,f=!1,p=!0,m=!1,h=!1,g=null;async function _(){if(!o){g={code:4,message:`Could not parse video ID from source URL`},n.trigger(`error`);return}try{let e=await he(s?`https://geo.dailymotion.com/libs/player/${s}.js`:`https://geo.dailymotion.com/libs/player.js`,s||`dailymotion-sdk`).then(()=>window.dailymotion);if(!e)return;let i=await e.createPlayer(r,{...s&&{player:s},video:o,params:{autoplay:!!t.autoplay,mute:!!t.muted}});c=i;let a=e.events;m&&i.play(),i.on(a.PLAYER_CRITICALPATHREADY,e=>{let t=e.videoThumbnails;if(!t)return;let r=Object.keys(t).map(Number).sort((e,t)=>t-e)[0],i=r===void 0?void 0:t[r];i&&n.trigger(`posterchange`,i)}),i.on(a.VIDEO_PLAY,()=>{p=!1,n.trigger(`play`),n.trigger(`playing`),!t.autoplay&&!h&&(h=!0,i.pause())}),i.on(a.VIDEO_PLAYING,()=>{p=!1,n.trigger(`play`),n.trigger(`playing`)}),i.on(a.VIDEO_PAUSE,()=>{p=!0,n.trigger(`pause`)}),a.VIDEO_BUFFERING&&i.on(a.VIDEO_BUFFERING,()=>n.trigger(`waiting`)),i.on(a.VIDEO_END,()=>{p=!0,n.trigger(`ended`)}),i.on(a.VIDEO_TIMECHANGE,e=>{l=e.videoTime??l,u=e.videoDuration??u,n.trigger(`timeupdate`)}),i.on(a.VIDEO_DURATIONCHANGE,e=>{u=e.videoDuration??u,n.trigger(`durationchange`)}),i.on(a.VIDEO_SEEKSTART,()=>n.trigger(`seeking`)),i.on(a.VIDEO_SEEKEND,e=>{l=e.videoTime??l,n.trigger(`seeked`)}),i.on(a.PLAYER_VOLUMECHANGE,e=>{d=e.playerVolume??d,f=e.playerIsMuted??f,n.trigger(`volumechange`)}),i.on(a.PLAYER_ERROR,()=>n.trigger(`error`)),a.AD_START&&i.on(a.AD_START,()=>{p=!1,n.trigger(`play`),n.trigger(`adstart`)}),a.AD_END&&i.on(a.AD_END,()=>n.trigger(`adend`))}catch(e){g={code:4,message:e instanceof Error?e.message:`This video could not be played.`},n.trigger(`error`)}}_();function v(){c?c.play():m=!0}function y(){if(M()){c?.setFullscreen(!0);return}a&&N(a)}function b(){if(M()){c?.setFullscreen(!1);return}P()}return{el:i,play:v,pause:()=>c?.pause(),paused:()=>p,currentTime:()=>l,setCurrentTime:e=>{l=e,c?.seek(e),n.trigger(`seeking`)},duration:()=>u,volume:()=>d,setVolume:e=>{d=e,c?.setVolume(e)},muted:()=>f,setMuted:e=>{f=e,c?.setMute(e)},playbackRate:()=>1,setPlaybackRate:()=>{},bufferedEnd:()=>l,error:()=>g,setSrc:()=>{},featuresPlaybackRate:()=>!1,featuresCaptions:()=>!1,getCaptionTracks:()=>[],setCaptionTrack:()=>{},getActiveCaptionTrack:()=>null,featuresQuality:()=>!1,getQualityLevels:()=>[],getCurrentQuality:()=>null,isAutoQuality:()=>!0,setQuality:()=>{},featuresPip:()=>!1,isPipActive:()=>!1,togglePip:()=>{},enterFullscreen:y,exitFullscreen:b,on:n.on,off:n.off,dispose:()=>{c?.destroy?.(),c=null,ye(e,i,U),n.dispose()}}}const Ne=[{test:e=>/youtu\.be|youtube\.com/.test(e),key:`youtube`,embed:!0},{test:e=>/vimeo\.com|player\.vimeo\.com/.test(e),key:`vimeo`,embed:!0},{test:e=>/dailymotion\.com|dai\.ly/.test(e),key:`dailymotion`,embed:!0},{test:e=>/cdn\.jwplayer\.com/.test(e)||e.startsWith(`jwplayer://`),key:`jwplayer`,embed:!1},{test:e=>/players\.brightcove\.net/.test(e),key:`brightcove`,embed:!1}];function Pe(e){return Ne.find(t=>t.test(e))?.key??`html5`}function Fe(e){if(/\.m3u8(\?|#|$)/.test(e))return`application/x-mpegURL`;if(/\.mpd(\?|#|$)/.test(e))return`application/dash+xml`;if(/\.mp4(\?|#|$)/.test(e))return`video/mp4`}function Ie(e){return Ne.find(t=>t.test(e))?.embed??!1}const Le={youtube:Oe,vimeo:Ae,dailymotion:Me};function Re(e,t,n){let r=Le[Pe(e)];return r?r(t,n):null}async function ze(e){let t=Pe(e);return t===`jwplayer`?se(e):t===`brightcove`?fe(e):{src:e,type:Fe(e)}}function Be(e){return e.kind===`captions`||e.kind===`subtitles`}function Ve(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];Be(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];Be(r)&&(r.mode=n===t?`showing`:`hidden`)}}function i(){for(let t=0;t<e.textTracks.length;t++){let n=e.textTracks[t];if(Be(n)&&n.mode===`showing`)return t}return null}return{featuresCaptions:()=>n().length>0,getCaptionTracks:n,setCaptionTrack:r,getActiveCaptionTrack:i,dispose:()=>{e.textTracks.removeEventListener(`addtrack`,t),e.textTracks.removeEventListener(`removetrack`,t)}}}function He(e){function t(){return 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{featuresQuality:()=>t().length>0,getQualityLevels:t,getCurrentQuality:r,isAutoQuality:n,setQuality:i}}function Ue(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=e.closest(`.player__shell`);n instanceof HTMLElement&&N(n)}function a(){let t=e;if(typeof t.webkitExitFullscreen==`function`){t.webkitExitFullscreen();return}P()}return{enterFullscreen:i,exitFullscreen:a,dispose:()=>{for(let[t,n]of r)e.removeEventListener(t,n)}}}function We(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{featuresPip:r,isPipActive:i,togglePip:a,dispose:()=>{for(let[t,r]of n)e.removeEventListener(t,r)}}}const Ge=`application/x-mpegURL`,Ke=[`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.currentLevel,setIndex:t=>{e.currentLevel=t??-1}}}function Je(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 Ye(e,t){let n=pe(),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`);break}})}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(Ge)!==``)}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===Ge&&!u()){o=n,c(n);return}e.src=n,t.autoplay&&e.play()}let f=e=>()=>n.trigger(e),p=Ke.map(e=>[e,f(e)]);for(let[t,n]of p)e.addEventListener(t,n);let m=Ve(e,f(`captionschange`)),h=He(()=>r?qe(r):i?Je(i):null),g=Ue(e,f(`nativefullscreenenter`),f(`nativefullscreenexit`)),_=We(e,f(`pipchange`));return e.poster=t.poster??``,e.muted=t.muted??t.autoplay??!1,e.playbackRate=t.playbackRate??1,e.playsInline=!0,d(t.src,t.type),{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,featuresPlaybackRate:()=>!0,featuresCaptions:m.featuresCaptions,getCaptionTracks:m.getCaptionTracks,setCaptionTrack:m.setCaptionTrack,getActiveCaptionTrack:m.getActiveCaptionTrack,featuresQuality:h.featuresQuality,getQualityLevels:h.getQualityLevels,getCurrentQuality:h.getCurrentQuality,isAutoQuality:h.isAutoQuality,setQuality:h.setQuality,featuresPip:_.featuresPip,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()}}}const Xe=new Set;function Ze(e){return Xe.add(e),()=>Xe.delete(e)}function Qe(e){Xe.forEach(t=>{if(t!==e)try{t()}catch{}})}function $e(e){let t=C(!1),n=C(!1);function r(){let e=document;t.value=!!(document.fullscreenElement||e.webkitFullscreenElement),n.value=!1}function i(){let n=e();if(n){if(t.value){n.exitFullscreen();return}n.enterFullscreen()}}function a(){n.value=!0}function o(e){e.on(re,()=>{n.value=!0}),e.on(z,()=>{n.value=!1}),e.on(`nativefullscreenenter`,()=>{t.value=!0,n.value=!1}),e.on(`nativefullscreenexit`,()=>{t.value=!1,n.value=!1})}return y(()=>{document.addEventListener(`fullscreenchange`,r),document.addEventListener(`webkitfullscreenchange`,r)}),v(()=>{document.removeEventListener(`fullscreenchange`,r),document.removeEventListener(`webkitfullscreenchange`,r)}),{isFullscreen:t,isFullscreenPending:n,toggleFullscreen:i,markFullscreenPending:a,attachPlayerEvents:o}}function et(e){let t=C(!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 v(()=>clearTimeout(n??void 0)),{isBuffering:t,attachPlayerEvents:i,reset:r}}function tt(e,t,n){let r=new Set;function i(){if(!t.value)return;let i=e.value/t.value;for(let[e,t]of ae)!r.has(e)&&i>=e&&(r.add(e),n(t))}function a(){r.clear()}return{checkQuartiles:i,reset:a}}function nt(){try{return JSON.parse(localStorage.getItem(`player:positions`)??`[]`)}catch{return[]}}function rt(e){localStorage.setItem(`player:positions`,JSON.stringify(e))}function it(e){return nt().find(t=>t.url===e)?.time??null}function at(e){rt(nt().filter(t=>t.url!==e))}function ot(e,t,n){let r=!1;function i(t){if(r)return;let n=it(e);n&&t.setCurrentTime(n),r=!0}function a(e){!e||n.value}function o(){at(e)}function s(){document.visibilityState===`hidden`&&a(t())}return y(()=>document.addEventListener(`visibilitychange`,s)),v(()=>{a(t()),document.removeEventListener(`visibilitychange`,s)}),{restoreOnce:i,save:a,clear:o}}function st(e,t,n,r){let i=null;y(()=>{let a=e.value?.closest(`.player__shell`);a&&(i=new IntersectionObserver(([e])=>{let i=t();!e.isIntersecting&&i&&!i.paused()&&!n.value&&!r.value&&i.pause()},{threshold:.1}),i.observe(a))}),v(()=>i?.disconnect())}function ct(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();t?.setMuted(!t.muted())}function l(t){let n=e();n&&(n.setVolume(t),n.setMuted(t===0))}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 lt(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:x,supportsPip:S,isPipActive:C,hasStarted:w,isError:T,errorMessage:E}=e,{fire:D,pauseThisPlayer:O,positionMemory:k,quartiles:A,buffering:j,fullscreen:M}=t;function N(e){i.value=!0,m.value=e.featuresPlaybackRate();function t(){g.value=e.getCaptionTracks(),h.value=e.featuresCaptions();let t=e.getActiveCaptionTrack();t!==_.value&&(_.value=t,w.value&&D(`captionchange`,{captionIndex:t}))}t(),e.on(`captionschange`,t);function N(){y.value=e.getQualityLevels(),v.value=e.featuresQuality();let t=e.getCurrentQuality(),n=e.isAutoQuality(),r=t!==b.value||n!==x.value;b.value=t,x.value=n,r&&w.value&&D(`qualitychange`,{qualityIndex:n?null:t})}N(),e.on(`qualitychange`,N);function P(){S.value=e.featuresPip();let t=e.isPipActive();t!==C.value&&(C.value=t,w.value&&D(`pipchange`,{isPipActive:t}))}P(),e.on(`pipchange`,P);let F=()=>{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`,()=>{Qe(O),a.value=!0,D(`adstart`)}),e.on(`adend`,()=>{a.value=!1,D(`adend`)}),e.on(`play`,()=>{Qe(O),w.value=!0,n.value=!0,r.value=!1,o.value||k.restoreOnce(e),D(`play`)}),e.on(`pause`,()=>{n.value=!1,o.value||k.save(e),D(`pause`)}),e.on(`ended`,()=>{if(n.value=!1,A.reset(),j.reset(),f.value){e.setCurrentTime(0),e.play();return}c.value&&(s.value=c.value),r.value=!0,k.clear(),D(`ended`)}),e.on(`seeked`,()=>{D(`seeked`)}),e.on(`error`,()=>{let t=e.error();E.value=t?.message||`This video could not be played.`,T.value=!0,i.value=!0,D(`error`,{error:t})}),e.on(`timeupdate`,()=>{if(r.value)return;s.value=e.currentTime()??0,c.value||F(),m.value||=e.featuresPlaybackRate();let t=e.getActiveCaptionTrack();_.value!==t&&(_.value=t,w.value&&D(`captionchange`,{captionIndex:t})),o.value||A.checkQuartiles()}),e.on(`durationchange`,F),e.on(`progress`,()=>{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,w.value&&D(`volumechange`,{isMuted:t})}),e.on(`ratechange`,()=>{let t=e.playbackRate()??1;p.value=t,w.value&&D(`ratechange`,{playbackRate:t})}),j.attachPlayerEvents(e),M.attachPlayerEvents(e)}return{attachPlayerEvents:N}}function ut(){return window.google?.ima?Promise.resolve():new Promise((e,t)=>{let n=document.createElement(`script`);n.src=`https://imasdk.googleapis.com/js/sdkloader/ima3.js`,n.onload=()=>e(),n.onerror=()=>t(Error(`Failed to load Google IMA SDK`)),document.head.appendChild(n)})}function dt(e,t,n,r){let i=document.createElement(`div`);i.className=`ima-ad-container`,e.appendChild(i);let a=n,o=null,s=null,c=null,l=!1,u=!1,d=!1,f=!1,p=!1,m=!1,h=1,g=new ResizeObserver(([e])=>{let t=window.google?.ima;if(!c||!t)return;let{width:n,height:r}=e.contentRect;c.resize(n,r,t.ViewMode.NORMAL)});g.observe(t);function _(){s?.contentComplete()}function v(t){f=t,e.classList.toggle(W,t),t||(p=!1,e.classList.remove(G))}function y(){if(l||!u||!d||!o||!s||!a)return;l=!0;let e=window.google?.ima;if(!e)return;o.initialize();let t=new e.AdsRequest;t.adTagUrl=a,s.requestAds(t)}function b(e){a=e,y()}ut().then(()=>{if(m)return;let n=window.google?.ima;n&&(o=new n.AdDisplayContainer(i,t),s=new n.AdsLoader(o),u=!0,s.addEventListener(n.AdsManagerLoadedEvent.Type.ADS_MANAGER_LOADED,i=>{if(m)return;let a=new n.AdsRenderingSettings;a.restoreCustomPlaybackStateOnAdBreakComplete=!0,c=i.getAdsManager(t,a),t.addEventListener(`ended`,_),c.addEventListener(n.AdEvent.Type.CONTENT_PAUSE_REQUESTED,()=>{t.removeEventListener(`ended`,_),t.pause(),v(!0),r.onAdStart();let e=c?.getVolume()??1;e>0&&(h=e),r.onAdMuteChange(e===0)}),c.addEventListener(n.AdEvent.Type.CONTENT_RESUME_REQUESTED,()=>{t.addEventListener(`ended`,_),v(!1),r.onAdEnd(),t.ended||t.play()}),c.addEventListener(n.AdEvent.Type.PAUSED,()=>{p=!0,e.classList.add(G),r.onAdPauseChange(!0)}),c.addEventListener(n.AdEvent.Type.RESUMED,()=>{p=!1,e.classList.remove(G),r.onAdPauseChange(!1)}),c.addEventListener(n.AdEvent.Type.AD_PROGRESS,()=>{r.onAdProgress(c?.getRemainingTime()??0)}),c.addEventListener(n.AdErrorEvent.Type.AD_ERROR,e=>{v(!1),r.onError(e.getError().getMessage()),t.play()});try{c.init(t.clientWidth,t.clientHeight,n.ViewMode.NORMAL),c.start()}catch(e){r.onError(e instanceof Error?e.message:`Ad playback failed to start.`)}}),s.addEventListener(n.AdErrorEvent.Type.AD_ERROR,e=>{r.onError(e.getError().getMessage())}),y())}).catch(e=>r.onError(e.message));function x(){d=!0,y()}function S(){if(!c)return;let e=c.getVolume();e>0?(h=e,c.setVolume(0)):c.setVolume(h||1),r.onAdMuteChange(c.getVolume()===0)}return{isAdPlaying:()=>f,isAdPaused:()=>p,requestAdsOnFirstPlay:x,setAdTagUrl:b,pauseAd:()=>c?.pause(),resumeAd:()=>c?.resume(),toggleAdMute:S,dispose:()=>{m=!0,g.disconnect(),t.removeEventListener(`ended`,_),c?.destroy(),s?.destroy(),i.remove(),e.classList.remove(W,G)}}}function ft(e,t){let n=window.pbjs;if(!n)return Promise.resolve(t);let r=e.timeoutMs??1e3;return new Promise(i=>{let a=!1;function o(e){a||(a=!0,i(e||t))}let s=setTimeout(()=>o(t),r);n.que.push(()=>{try{n.addAdUnits(e.adUnit),n.requestBids({adUnitCodes:[e.adUnit.code],timeout:r,bidsBackHandler:()=>{clearTimeout(s);try{o(n.adServers?.gam?.buildVideoUrl({adUnit:e.adUnit,params:e.params}))}catch{o(t)}}})}catch{clearTimeout(s),o(t)}})})}function pt(e,t){let{isAdPlaying:n,isAdPaused:r,isAdMuted:i,adRemainingTime:a}=e,{fire:o,pauseThisPlayer:s}=t,c=null,l=null;function u(e,t,u,d){if(!(u||d)||!e.parentElement)return;d&&ft(d,u).catch(()=>u).then(e=>c?.setAdTagUrl(e));function f(){!M()&&t.isPipActive()&&document.exitPictureInPicture()}function p(){!M()&&(document.hidden||!document.hasFocus())&&c?.isAdPlaying()&&c.pauseAd()}document.addEventListener(`visibilitychange`,p),window.addEventListener(`blur`,p);let m=()=>{t.isPipActive()||p()};t.on(`pipchange`,m),l=()=>{document.removeEventListener(`visibilitychange`,p),window.removeEventListener(`blur`,p),t.off(`pipchange`,m)},c=dt(e.parentElement,e,u,{onAdStart:()=>{n.value=!0,r.value=!1,o(`adstart`),f(),p()},onAdEnd:()=>{n.value=!1,r.value=!1,a.value=0,o(`adend`)},onAdPauseChange:e=>{r.value=e,e||Qe(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)}}),t.on(`play`,()=>c?.requestAdsOnFirstPlay())}return{attach:u,isAdPlaying:()=>c?.isAdPlaying()??!1,isAdPaused:()=>c?.isAdPaused()??!1,pauseAd:()=>c?.pauseAd(),resumeAd:()=>c?.resumeAd(),toggleAdMute:()=>c?.toggleAdMute(),dispose:()=>{c?.dispose(),c=null,l?.(),l=null}}}function mt(e,t,r){let i=null,a=null,o=null,s=C(!1),c=C(!1),l=C(!1),u=C(!1),d=C(!1),f=C(!1),p=C(0),m=C(!1),h=C(0),g=C(0),_=C(0),b=C(1),x=C(t.muted??t.autoplay??!1),S=C(!1),w=C(t.playbackRate??1),T=C(!1),E=C(!1),D=C([]),O=C(null),A=C(!1),j=C([]),M=C(null),N=C(!0),P=C(!1),F=C(!1),I=C(!1),L=C(!1),R=C(``),ne=C(!1),re=n(()=>g.value?h.value/g.value*100:0),z=n(()=>Math.max(_.value,re.value)),B=()=>i,V=$e(B),H=et(W),U=ot(t.videoUrl,B,c);function W(e,n={}){r(`state-change`,{type:e,currentTime:h.value,duration:g.value,src:t.videoUrl,...n,payload:t.payload})}let G=tt(h,g,W);function ie(){!i||!o||(L.value=!1,R.value=``,i.setSrc(o.src,o.type))}function K(){if(q.isAdPlaying()){q.pauseAd();return}i?.pause()}function ae(){if(q.isAdPlaying()){q.isAdPaused()?q.resumeAd():q.pauseAd();return}J.togglePlay()}let q=pt({isAdPlaying:u,isAdPaused:d,isAdMuted:f,adRemainingTime:p},{fire:W,pauseThisPlayer:K}),J=ct(B,l,g,S,w,s),{attachPlayerEvents:oe}=lt({isPlaying:s,hasEnded:c,isReady:l,isAdPlaying:u,isLive:m,current:h,total:g,buffered:_,vol:b,isMuted:x,isLooping:S,playbackRate:w,supportsPlaybackRate:T,supportsCaptions:E,captionTracks:D,activeCaptionIndex:O,supportsQuality:A,qualityLevels:j,currentQualityIndex:M,isAutoQuality:N,supportsPip:P,isPipActive:F,hasStarted:I,isError:L,errorMessage:R},{fire:W,pauseThisPlayer:K,positionMemory:U,quartiles:G,buffering:H,fullscreen:V});function se(e){i?.setCaptionTrack(e),O.value=e,I.value&&W(`captionchange`,{captionIndex:e})}function ce(e){i?.setQuality(e),M.value=e,N.value=e===null,I.value&&W(`qualitychange`,{qualityIndex:e})}function le(){i?.togglePip()}function ue(){J.toggleLoop(),I.value&&W(`loopchange`,{isLooping:S.value})}return k(()=>t.muted,e=>{!i||e===void 0||i.setMuted(e)}),k(()=>t.playbackRate,e=>{!i||e===void 0||i.setPlaybackRate(e)}),st(e,B,V.isFullscreen,V.isFullscreenPending),k(I,t=>{!t||!e.value||!i||i.el===e.value||ve(e.value,i.el)}),y(async()=>{if(Ie(t.videoUrl)){if(!e.value)return;let n=Re(t.videoUrl,e.value,{src:t.videoUrl,poster:t.poster,autoplay:t.autoplay,muted:t.muted??t.autoplay,nativeUi:t.nativeUi});if(!n){L.value=!0,l.value=!0,R.value=`This platform is not yet supported.`;return}ne.value=!!t.nativeUi,i=n,o={src:t.videoUrl},a=Ze(K),oe(i);return}let n=await ze(t.videoUrl).catch(()=>({src:t.videoUrl}));if(!e.value)return;o={src:n.src,type:n.type},i=Ye(e.value,{src:n.src,type:n.type,poster:n.poster||t.poster||``,autoplay:t.autoplay,muted:t.muted??t.autoplay,playbackRate:w.value});let r=ee(t.adTagUrl||n.adTagUrl||``,t.adTagParams);q.attach(e.value,i,r,t.headerBidding),a=Ze(K),oe(i)}),v(()=>{a?.(),q.dispose(),i?.dispose(),i=null}),{isPlaying:s,hasEnded:c,isReady:l,isAdPlaying:u,isAdPaused:d,isAdMuted:f,adRemainingTime:p,isLive:m,isBuffering:H.isBuffering,current:h,total:g,vol:b,isMuted:x,isLooping:S,playbackRate:w,hasStarted:I,isError:L,errorMessage:R,progress:re,bufferedDisplay:z,isFullscreen:V.isFullscreen,isFullscreenPending:V.isFullscreenPending,fmt:te,fire:W,retry:ie,togglePlay:ae,seek:J.seek,toggleMute:J.toggleMute,setVolume:J.setVolume,toggleFullscreen:V.toggleFullscreen,markFullscreenPending:V.markFullscreenPending,toggleLoop:ue,toggleAdMute:q.toggleAdMute,setPlaybackRate:J.setPlaybackRate,supportsPlaybackRate:T,supportsCaptions:E,captionTracks:D,activeCaptionIndex:O,setCaptionTrack:se,supportsQuality:A,qualityLevels:j,currentQualityIndex:M,isAutoQuality:N,setQuality:ce,supportsPip:P,isPipActive:F,togglePip:le,nativeUi:ne}}function ht(e){let t=C(!0),n=C(!1),r=null,i=0;function a(e=400){i=Date.now()+e}function o(e=3500){clearTimeout(r??void 0),r=setTimeout(()=>{t.value=!1,n.value=!1},e)}function s(){clearTimeout(r??void 0)}function c(){n.value=!0,t.value=!0,o()}function l(){n.value=!1,e.value&&o()}function u(){e.value&&o()}function d(){t.value=!0,e.value&&o()}function f(){t.value=!0,o()}function p(){Date.now()<i||e.value&&o(600)}return k(e,e=>{if(!e){clearTimeout(r??void 0),t.value=!0;return}o()}),v(()=>clearTimeout(r??void 0)),{showHUD:t,isOpen:n,scheduleHide:o,pauseHide:s,onVideoTap:d,onMouseMove:f,onMouseLeave:p,openControls:c,closeControls:l,keepOpen:u,suppressMouseLeave:a}}const Y=Symbol(`player`),X=Symbol(`hud`),gt=Symbol(`action`),_t=Symbol(`compact`),vt=Symbol(`playlist`);function Z(e){let t=f(e);if(t===void 0)throw Error(`[video-player] missing "${String(e.description)}" context — this component must be rendered inside <VideoPlayer>`);return t}function yt(e,t){return{hudVisible:n(()=>!e.isReady||e.isError?!1:t.showHUD),popupVisible:n(()=>!e.isReady||e.isError?!1:e.isFullscreen?t.showHUD:t.isOpen)}}function bt(e,t){return n(()=>!(!e?.value||t.isFullscreen))}function xt(e,t,r){let i=n(()=>e?.value??null),a=n(()=>!!i.value&&typeof i.value==`object`),o=n(()=>a.value?i.value:null),s=n(()=>i.value===`mute`?t.isMuted?`Unmute`:`Mute`:i.value===`loop`?t.isLooping?`Disable loop`:`Loop`:i.value===`autoplay`?r.autoAdvance?`Disable autoplay next`:`Autoplay next`:``),c=n(()=>i.value===`mute`?t.isMuted:i.value===`loop`?t.isLooping:i.value===`autoplay`&&r.autoAdvance);function l(){i.value===`mute`?t.toggleMute():i.value===`loop`?t.toggleLoop():i.value===`autoplay`&&r.toggleAutoAdvance()}return{currentAction:i,isCustom:a,customAction:o,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 St={},Ct={viewBox:`0 0 24 24`,fill:`currentColor`};function wt(e,t){return b(),a(`svg`,Ct,[...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 Tt=Q(St,[[`render`,wt]]);const Et={},Dt={viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`2`,"stroke-linecap":`round`,"stroke-linejoin":`round`};function Ot(e,t){return b(),a(`svg`,Dt,[...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 kt=Q(Et,[[`render`,Ot]]);const At={},jt={viewBox:`0 0 24 24`,fill:`currentColor`};function Mt(e,t){return b(),a(`svg`,jt,[...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 Nt=Q(At,[[`render`,Mt]]);const Pt={},Ft={viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`2`,"stroke-linecap":`round`,"stroke-linejoin":`round`};function It(e,t){return b(),a(`svg`,Ft,[...t[0]||=[s(`<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 Lt=Q(Pt,[[`render`,It]]);const Rt={},zt={viewBox:`0 0 24 24`,fill:`currentColor`};function Bt(e,t){return b(),a(`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 Vt=Q(Rt,[[`render`,Bt]]);const Ht={},Ut={viewBox:`0 0 24 24`,fill:`currentColor`};function Wt(e,t){return b(),a(`svg`,Ut,[...t[0]||=[o(`path`,{d:`M7 14H5v5h5v-2H7v-3zm-2-4h2V7h3V5H5v5zm12 7h-3v2h5v-5h-2v3zM14 5v2h3v3h2V5h-5z`},null,-1)]])}var Gt=Q(Ht,[[`render`,Wt]]);const Kt={},qt={viewBox:`0 0 24 24`,fill:`currentColor`};function Jt(e,t){return b(),a(`svg`,qt,[...t[0]||=[o(`path`,{d:`M5 16h3v3h2v-5H5v2zm3-8H5v2h5V5H8v3zm6 11h2v-3h3v-2h-5v5zm2-11V5h-2v5h5V8h-3z`},null,-1)]])}var Yt=Q(Kt,[[`render`,Jt]]);const Xt={},Zt={viewBox:`0 0 24 24`,fill:`currentColor`};function Qt(e,t){return b(),a(`svg`,Zt,[...t[0]||=[o(`path`,{d:`M7 7h10v3l4-4-4-4v3H5v6h2V7zm10 10H7v-3l-4 4 4 4v-3h12v-6h-2v4z`},null,-1)]])}var $t=Q(Xt,[[`render`,Qt]]);const en={},tn={viewBox:`0 0 24 24`,fill:`currentColor`};function nn(e,t){return b(),a(`svg`,tn,[...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 rn=Q(en,[[`render`,nn]]);const an={},on={viewBox:`0 0 24 24`,fill:`currentColor`};function sn(e,t){return b(),a(`svg`,on,[...t[0]||=[o(`path`,{d:`M6 19h4V5H6v14zm8-14v14h4V5h-4z`},null,-1)]])}var cn=Q(an,[[`render`,sn]]);const ln={},un={viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`2`,"stroke-linecap":`round`,"stroke-linejoin":`round`};function dn(e,t){return b(),a(`svg`,un,[...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 fn=Q(ln,[[`render`,dn]]);const pn={},mn={viewBox:`0 0 24 24`,fill:`currentColor`};function hn(e,t){return b(),a(`svg`,mn,[...t[0]||=[o(`path`,{d:`M8 5v14l11-7z`},null,-1)]])}var gn=Q(pn,[[`render`,hn]]);const _n={},vn={viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`2`,"stroke-linecap":`round`,"stroke-linejoin":`round`};function yn(e,t){return b(),a(`svg`,vn,[...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 bn=Q(_n,[[`render`,yn]]);const xn={},Sn={viewBox:`0 0 24 24`,fill:`currentColor`};function Cn(e,t){return b(),a(`svg`,Sn,[...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 wn=Q(xn,[[`render`,Cn]]);const Tn={},En={viewBox:`0 0 24 24`,fill:`currentColor`};function Dn(e,t){return b(),a(`svg`,En,[...t[0]||=[o(`path`,{d:`M6 18l8.5-6L6 6v12zM16 6v12h2V6h-2z`},null,-1)]])}var On=Q(Tn,[[`render`,Dn]]);const kn={},An={viewBox:`0 0 24 24`,fill:`currentColor`};function jn(e,t){return b(),a(`svg`,An,[...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 Mn=Q(kn,[[`render`,jn]]);const Nn={},Pn={viewBox:`0 0 24 24`,fill:`currentColor`};function Fn(e,t){return b(),a(`svg`,Pn,[...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 In=Q(Nn,[[`render`,Fn]]);const Ln=[`aria-label`];var Rn=Q(u({__name:`PlayPauseButton`,props:{isPlaying:{type:Boolean,required:!0},hasEnded:{type:Boolean,required:!1,default:!1},size:{type:String,required:!1,default:`sm`}},emits:[`toggle-play`],setup(e){let t=e,i=n(()=>t.isPlaying?`Pause`:t.hasEnded?`Replay`:`Play`);return(t,n)=>(b(),a(`button`,{class:h([`ppbtn`,`ppbtn--${e.size}`]),"aria-label":i.value,onClick:n[0]||=j(e=>t.$emit(`toggle-play`),[`stop`])},[e.isPlaying?(b(),r(O(cn),{key:0})):e.hasEnded?(b(),r(O(wn),{key:1})):(b(),r(O(gn),{key:2}))],10,Ln))}}),[[`__scopeId`,`data-v-85902525`]]),zn=u({__name:`VolumeIcon`,setup(e){let t=Z(Y),i=n(()=>!t.isMuted&&t.vol>0);return(e,t)=>i.value?(b(),r(O(In),{key:0})):(b(),r(O(Mn),{key:1}))}}),Bn=Q(u({__name:`Spinner`,props:{size:{type:Number,required:!1,default:14},borderWidth:{type:Number,required:!1,default:2}},setup(e){return(t,n)=>(b(),a(`div`,{class:`spinner`,style:_({width:`${e.size}px`,height:`${e.size}px`,borderWidth:`${e.borderWidth}px`})},null,4))}}),[[`__scopeId`,`data-v-259be2b2`]]);const Vn={class:`hud`},Hn=[`aria-label`],Un=[`aria-label`],Wn=[`aria-label`],Gn=[`aria-label`,`innerHTML`],Kn={key:4,class:`hud__spacer`},qn={class:`hud__play-wrap`};var Jn=Q(u({__name:`HudButtons`,setup(t){let n=Z(Y),s=Z(X),{currentAction:c,isCustom:u,customAction:d,builtinLabel:p,builtinActive:m,onBuiltinClick:g}=xt(f(gt),n,Z(vt));return(t,f)=>(b(),a(`div`,Vn,[!O(s).isOpen&&!O(n).isFullscreen?(b(),a(e,{key:0},[O(c)===`mute`?(b(),a(`button`,{key:0,class:h([`hud__btn`,{"hud__btn--active":O(m)}]),"aria-label":O(p),onClick:f[0]||=j((...e)=>O(g)&&O(g)(...e),[`stop`])},[l(zn)],10,Hn)):O(c)===`loop`?(b(),a(`button`,{key:1,class:h([`hud__btn`,{"hud__btn--active":O(m)}]),"aria-label":O(p),onClick:f[1]||=j((...e)=>O(g)&&O(g)(...e),[`stop`])},[l(O($t))],10,Un)):O(c)===`autoplay`?(b(),a(`button`,{key:2,class:h([`hud__btn`,{"hud__btn--active":O(m)}]),"aria-label":O(p),onClick:f[2]||=j((...e)=>O(g)&&O(g)(...e),[`stop`])},[l(O(On))],10,Wn)):O(u)&&O(d)?(b(),a(`button`,{key:3,class:`hud__btn`,"aria-label":O(d).label,onClick:f[3]||=j(e=>O(d).onClick(),[`stop`]),innerHTML:O(d).icon},null,8,Gn)):(b(),a(`div`,Kn))],64)):i(`v-if`,!0),o(`div`,qn,[l(Rn,{"is-playing":O(n).isPlaying,"has-ended":O(n).hasEnded,size:`lg`,onTogglePlay:O(n).togglePlay},null,8,[`is-playing`,`has-ended`,`onTogglePlay`]),O(n).isBuffering?(b(),r(Bn,{key:0,class:`hud__buf-spinner`})):i(`v-if`,!0)]),!O(s).isOpen&&!O(n).isFullscreen?(b(),a(`button`,{key:1,class:`hud__btn`,"aria-label":`Show controls`,onClick:f[4]||=j((...e)=>O(s).openControls&&O(s).openControls(...e),[`stop`])},[l(O(Lt))])):i(`v-if`,!0)]))}}),[[`__scopeId`,`data-v-a6d118e7`]]);function Yn(e){let t=C(null),r=n(()=>t.value??e.progress),i=null;function a(){i&&clearTimeout(i),i=null,t.value=null}function o(e){i&&clearTimeout(i),i=null,t.value=Number(e.target.value)}function s(n){let r=Number(n.target.value);t.value=r,e.seek(r),i&&clearTimeout(i),i=setTimeout(a,3e3)}return k(()=>e.current,()=>{if(t.value===null||!e.total)return;let n=t.value/100*e.total;Math.abs(e.current-n)<1&&a()}),v(a),{displaySeek:r,onSeekInput:o,onSeekChange:s}}function Xn(e,t,n){if(!document.startViewTransition||!e.value){n();return}e.value.style.viewTransitionName=t,document.startViewTransition(async()=>{n(),await m()}).finished.finally(()=>{e.value&&(e.value.style.viewTransitionName=``)})}const Zn={class:`controls__vol-header`},Qn=[`aria-label`],$n={class:`controls__vol-body`},er=[`value`],tr={class:`controls__vol-pct`};var nr=Q(u({__name:`VolumePanel`,emits:[`back`],setup(t){let r=Z(Y),i=Z(X),s=n(()=>r.isMuted?0:Math.round(r.vol*100));function c(e){r.setVolume(Number(e.target.value)/100)}return(t,n)=>(b(),a(e,null,[o(`div`,Zn,[o(`button`,{class:`controls__btn`,"aria-label":`Back`,onClick:n[0]||=e=>t.$emit(`back`)},[l(O(Tt))]),n[6]||=o(`span`,{class:`controls__vol-label`},`Volume`,-1),o(`button`,{class:`controls__btn`,"aria-label":O(r).isMuted?`Unmute`:`Mute`,onClick:n[1]||=e=>O(r).toggleMute()},[l(zn)],8,Qn)]),o(`div`,$n,[o(`input`,{type:`range`,min:`0`,max:`100`,step:`1`,value:s.value,class:`controls__vol-slider`,style:_({"--v":s.value+`%`}),"aria-label":`Volume`,onInput:c,onMousedown:n[2]||=e=>O(i).pauseHide(),onMouseup:n[3]||=e=>O(i).scheduleHide(),onTouchstartPassive:n[4]||=e=>O(i).pauseHide(),onTouchend:n[5]||=e=>O(i).scheduleHide()},null,44,er),o(`span`,tr,E(s.value)+`%`,1)])],64))}}),[[`__scopeId`,`data-v-10b0ae67`]]);function rr(e){function t(){let t=K.indexOf(e.playbackRate);e.setPlaybackRate(K[(t+1)%K.length])}function n(e){return`${e}×`}return{cycleRate:t,fmtRate:n}}function ir(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 ar(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 or=[`aria-label`],sr={key:0,class:`controls__more-row-label`},cr=[`innerHTML`],lr={key:1},ur={key:2,class:`controls__more-value`};var $=Q(u({__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(),a(`button`,{class:h([`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(),a(`span`,sr,[e.icon?(b(),r(T(e.icon),{key:0,class:`controls__more-row-icon`})):(b(),a(`span`,{key:1,class:`controls__more-row-icon`,innerHTML:e.iconHtml},null,8,cr)),c(` `+E(e.label),1)])):(b(),a(`span`,lr,E(e.label),1)),e.value===void 0?i(`v-if`,!0):(b(),a(`span`,ur,E(e.value),1))],10,or))}}),[[`__scopeId`,`data-v-47ca5bfc`]]);const dr={class:`controls__more-header`};var fr=Q(u({__name:`MoreMenu`,props:{isCustom:{type:Boolean,required:!0},customAction:{type:[Object,null],required:!0}},emits:[`back`],setup(t){let n=Z(Y),s=Z(X),c=Z(vt),{cycleRate:u,fmtRate:d}=rr(n),{cycleCaptionTrack:f,currentCaptionLabel:p}=ir(n),{cycleQuality:m,currentQualityLabel:h}=ar(n);return(g,_)=>(b(),a(e,null,[o(`div`,dr,[o(`button`,{class:`controls__btn`,"aria-label":`Back`,onClick:_[0]||=e=>g.$emit(`back`)},[l(O(Tt))]),_[5]||=o(`span`,{class:`controls__more-label`},`More`,-1)]),o(`div`,{class:`controls__more-body`,onTouchstartPassive:_[4]||=e=>O(s).keepOpen()},[O(n).supportsPlaybackRate?(b(),r($,{key:0,label:`Playback speed`,value:O(d)(O(n).playbackRate),onClick:O(u)},null,8,[`value`,`onClick`])):i(`v-if`,!0),l($,{label:`Loop`,"aria-label":`Toggle loop`,icon:O($t),active:O(n).isLooping,value:O(n).isLooping?`On`:`Off`,onClick:_[1]||=e=>O(n).toggleLoop()},null,8,[`icon`,`active`,`value`]),O(n).supportsCaptions?(b(),r($,{key:1,label:`Captions`,icon:O(kt),active:O(n).activeCaptionIndex!==null,value:O(p)(),onClick:O(f)},null,8,[`icon`,`active`,`value`,`onClick`])):i(`v-if`,!0),O(n).supportsQuality?(b(),r($,{key:2,label:`Quality`,icon:O(bn),active:!O(n).isAutoQuality,value:O(h)(),onClick:O(m)},null,8,[`icon`,`active`,`value`,`onClick`])):i(`v-if`,!0),O(c).hasPlaylist?(b(),r($,{key:3,label:`Autoplay next`,"aria-label":`Toggle autoplay next`,icon:O(On),active:O(c).autoAdvance,value:O(c).autoAdvance?`On`:`Off`,onClick:_[2]||=e=>O(c).toggleAutoAdvance()},null,8,[`icon`,`active`,`value`])):i(`v-if`,!0),t.isCustom&&t.customAction?(b(),r($,{key:4,label:t.customAction.label,"icon-html":t.customAction.icon,onClick:_[3]||=e=>t.customAction.onClick()},null,8,[`label`,`icon-html`])):i(`v-if`,!0)],32)],64))}}),[[`__scopeId`,`data-v-e89a8208`]]);const pr=[`value`],mr={class:`controls__row`},hr={class:`controls__play-wrap`},gr={key:0,class:`controls__live`},_r={key:1,class:`controls__time`},vr=[`aria-label`],yr={class:`controls__fs-wrap`},br=[`aria-label`];var xr=Q(u({__name:`ControlsPopup`,setup(t){let n=Z(Y),s=Z(X),u=Z(vt),d=bt(f(_t),n),{isCustom:p,customAction:m}=xt(f(gt),n,u),g=C(!1),x=C(!1),S=C(null);function w(e){return!S.value||S.value.contains(e)?!1:(s.closeControls(),!0)}function T(e){w(e.target)}function D(e){w(e.target)&&e.preventDefault()}y(()=>{n.fire(`controlsopen`,{element:S.value}),document.addEventListener(`click`,T,!0),document.addEventListener(`touchend`,D,!0)}),v(()=>{g.value=!1,x.value=!1,n.fire(`controlsclose`,{element:S.value}),document.removeEventListener(`click`,T,!0),document.removeEventListener(`touchend`,D,!0)});function k(e){s.suppressMouseLeave(),Xn(S,`controls-popup`,e)}function A(){if(M()){n.toggleMute();return}k(()=>{g.value=!0})}function N(){k(()=>{x.value=!0})}let{displaySeek:P,onSeekInput:F,onSeekChange:ee}=Yn(n);function te(){n.isFullscreen||n.markFullscreenPending(),n.toggleFullscreen()}return(t,f)=>(b(),a(`div`,{ref_key:`popupEl`,ref:S,class:h([`controls`,{"controls--fs":O(n).isFullscreen,"controls--compact":O(d)}]),onMousemove:f[11]||=j((...e)=>O(s).keepOpen&&O(s).keepOpen(...e),[`stop`])},[g.value?(b(),r(nr,{key:0,onBack:f[0]||=e=>k(()=>g.value=!1)})):x.value?(b(),r(fr,{key:1,"is-custom":O(p),"custom-action":O(m),onBack:f[1]||=e=>k(()=>x.value=!1)},null,8,[`is-custom`,`custom-action`])):(b(),a(e,{key:2},[O(n).isLive?i(`v-if`,!0):(b(),a(`input`,{key:0,type:`range`,min:`0`,max:`100`,value:O(P),class:`controls__seek`,style:_({"--p":O(P)+`%`,"--b":O(n).bufferedDisplay+`%`}),onInput:f[2]||=(...e)=>O(F)&&O(F)(...e),onChange:f[3]||=(...e)=>O(ee)&&O(ee)(...e),onMousedown:f[4]||=e=>O(s).pauseHide(),onMouseup:f[5]||=e=>O(s).scheduleHide(),onTouchstartPassive:f[6]||=e=>O(s).pauseHide(),onTouchend:f[7]||=e=>O(s).scheduleHide()},null,44,pr)),o(`div`,mr,[o(`div`,hr,[O(n).isBuffering?(b(),r(Bn,{key:0})):(b(),r(Rn,{key:1,"is-playing":O(n).isPlaying,"has-ended":O(n).hasEnded,size:`sm`,onTogglePlay:f[8]||=e=>O(n).togglePlay()},null,8,[`is-playing`,`has-ended`]))]),O(n).isLive?(b(),a(`span`,gr,[...f[12]||=[o(`span`,{class:`controls__live-dot`},null,-1),c(`Live`,-1)]])):(b(),a(`span`,_r,E(O(n).fmt(O(n).current))+` / `+E(O(n).fmt(O(n).total)),1)),O(u).hasNext?(b(),a(`button`,{key:2,class:`controls__btn`,"aria-label":`Play next`,onClick:f[9]||=e=>O(u).playNext()},[l(O(On))])):i(`v-if`,!0),o(`button`,{class:`controls__btn`,"aria-label":`Volume`,onClick:A},[l(zn)]),o(`button`,{class:h([`controls__btn controls__btn--more`,{"controls__btn--active":O(n).isLooping||O(n).playbackRate!==1||O(u).autoAdvance}]),"aria-label":`More`,onClick:N},[l(O(rn))],2),O(n).supportsPip?(b(),a(`button`,{key:3,class:h([`controls__btn controls__btn--pip`,{"controls__btn--active":O(n).isPipActive}]),"aria-label":O(n).isPipActive?`Exit picture-in-picture`:`Picture-in-picture`,onClick:f[10]||=e=>O(n).togglePip()},[l(O(fn))],10,vr)):i(`v-if`,!0),o(`div`,yr,[O(n).isFullscreenPending?(b(),r(Bn,{key:0})):(b(),a(`button`,{key:1,class:`controls__btn`,"aria-label":O(n).isFullscreen?`Exit fullscreen`:`Fullscreen`,onClick:te},[O(n).isFullscreen?(b(),r(O(Yt),{key:0})):(b(),r(O(Gt),{key:1}))],8,br))])])],64))],34))}}),[[`__scopeId`,`data-v-5712aad4`]]);const Sr={class:`ad-overlay`},Cr={class:`ad-overlay__bar`},wr={class:`ad-overlay__badge`},Tr={key:0,class:`ad-overlay__countdown`},Er=[`aria-label`],Dr=[`aria-label`];var Or=Q(u({__name:`AdOverlay`,setup(e){let t=Z(Y),s=n(()=>t.adRemainingTime>0?t.fmt(t.adRemainingTime):``);return(e,n)=>(b(),a(`div`,Sr,[o(`div`,Cr,[o(`div`,wr,[n[2]||=o(`span`,null,`Ad`,-1),s.value?(b(),a(`span`,Tr,E(s.value),1)):i(`v-if`,!0)]),o(`button`,{class:`ad-overlay__btn`,"aria-label":O(t).isAdPaused?`Resume ad`:`Pause ad`,onClick:n[0]||=e=>O(t).togglePlay()},[O(t).isAdPaused?(b(),r(O(gn),{key:0})):(b(),r(O(cn),{key:1}))],8,Er),o(`button`,{class:`ad-overlay__btn`,"aria-label":O(t).isAdMuted?`Unmute ad`:`Mute ad`,onClick:n[1]||=e=>O(t).toggleAdMute()},[O(t).isAdMuted?(b(),r(O(Mn),{key:0})):(b(),r(O(In),{key:1}))],8,Dr)])]))}}),[[`__scopeId`,`data-v-23efcc8b`]]);const kr={key:0,class:`overlay__spinner`},Ar={key:0,class:`overlay__error`};var jr=Q(u({__name:`PlayerOverlay`,props:{disableTapCapture:{type:Boolean,required:!1,default:!1}},setup(n){let s=Z(Y),c=Z(X),{hudVisible:u,popupVisible:d}=yt(s,c);function f(){c.onVideoTap()}return(c,p)=>(b(),a(e,null,[i(` Never rendered during any ad state (playing or paused) — pausing/resuming an ad goes
|
|
2
2
|
through AdOverlay's own dedicated button now, not a tap-anywhere gesture over the whole ad
|
|
3
|
-
creative, so there's no reason for this layer to cover the ad break at all. `),!n.disableTapCapture&&O(s).hasStarted&&!O(s).isAdPlaying?(b(),a(`div`,{key:0,class:`overlay__tap-capture`,onClick:f,onTouchend:j(f,[`prevent`,`stop`])},null,32)):i(`v-if`,!0),O(s).isAdPlaying?(b(),r(Er,{key:1})):i(`v-if`,!0),l(t,{name:`fade`},{default:A(()=>[!O(s).isReady&&!O(s).isError?(b(),a(`div`,Dr,[l(Rn,{size:40,"border-width":3})])):i(`v-if`,!0)]),_:1}),l(t,{name:`fade`},{default:A(()=>[O(s).isError?(b(),a(`div`,Or,[o(`p`,null,E(O(s).errorMessage||`This video could not be played.`),1),o(`button`,{class:`overlay__retry`,onClick:p[0]||=j((...e)=>O(s).retry&&O(s).retry(...e),[`stop`])},`Retry`)])):i(`v-if`,!0)]),_:1}),o(`div`,{class:h([`overlay__hud`,{"overlay__hud--visible":O(u)}])},[l(Kn)],2),l(t,{name:`popup`},{default:A(()=>[O(d)?(b(),a(`div`,{key:0,class:h([`overlay__popup`,{"overlay__popup--fs":O(s).isFullscreen}])},[l(yr)],2)):i(`v-if`,!0)]),_:1})],64))}}),[[`__scopeId`,`data-v-f3307b98`]]);const Ar={class:`player`},jr={"data-mvp-player":``},Mr=[`poster`],Nr=[`src`,`kind`,`srclang`,`label`,`default`],Pr={key:1,class:`player__native-play`};var Fr=Q(u({__name:`VideoPlayer`,props:{videoUrl:{type:String,required:!0},title:{type:String,required:!1,default:``},poster:{type:String,required:!1,default:``},aspectRatio:{type:String,required:!1,default:ie},adTagUrl:{type:String,required:!1,default:``},adTagParams:{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},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,required:!1,default:()=>({})},action:{type:[String,Object,null],required:!1,default:null},disableTapCapture:{type:Boolean,required:!1,default:!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(t,{expose:s,emit:c}){let u=t,d=c,f=C(null),p=S(ft(f,u,d)),m=S(pt(D(p,`isPlaying`)));x(Y,p),x(X,m),x(mt,D(u,`action`)),x(gt,S({hasPlaylist:n(()=>u.hasPlaylist),hasNext:n(()=>u.hasNext),hasPrevious:n(()=>u.hasPrevious),autoAdvance:n(()=>u.autoAdvance),playNext:()=>d(`play-next`),playPrevious:()=>d(`play-previous`),toggleAutoAdvance:()=>d(`toggle-auto-advance`)}));let g=n(()=>F(u.aspectRatio)),v=n(()=>g.value.isPortrait),y=n(()=>g.value.cssRatio),T=n(()=>!u.poster&&!p.isReady);return s(p),(t,n)=>(b(),a(`div`,Ar,[o(`div`,{class:h([`player__shell`,{"player__shell--portrait":v.value}]),style:_({aspectRatio:y.value}),onMousemove:n[0]||=e=>m.onMouseMove(),onContextmenuCapture:n[1]||=j(()=>{},[`prevent`]),onMouseleave:n[2]||=e=>m.onMouseLeave()},[o(`div`,jr,[o(`video`,{ref_key:`videoEl`,ref:f,class:h([`mvp-video`,{"mvp-video--hidden":T.value}]),poster:u.poster,playsinline:``},[(b(!0),a(e,null,w(u.tracks,(e,t)=>(b(),a(`track`,{key:`${e.src}-${t}`,src:e.src,kind:e.kind??`captions`,srclang:e.srclang,label:e.label,default:e.default},null,8,Nr))),128))],10,Mr),p.nativeUi?i(`v-if`,!0):(b(),r(kr,{key:0,"disable-tap-capture":u.disableTapCapture},null,8,[`disable-tap-capture`])),p.nativeUi&&!p.hasStarted?(b(),a(`div`,Pr,[l(In,{"is-playing":!1,size:`lg`,onTogglePlay:p.togglePlay},null,8,[`onTogglePlay`])])):i(`v-if`,!0)])],38)]))}}),[[`__scopeId`,`data-v-4ab3cf75`]]);const Ir=C(0),Lr=n(()=>Ir.value>0);function Rr(){Ir.value++}function zr(){Ir.value--}function Br(e,t){window.dispatchEvent(new CustomEvent(e,{detail:t}))}function Vr(e,t){let n=e=>t(e.detail);y(()=>window.addEventListener(e,n)),v(()=>window.removeEventListener(e,n))}function Hr(e,t){let r=n(()=>!e.value||!t.value?-1:e.value.findIndex(e=>e.videoUrl===t.value?.videoUrl)),i=n(()=>r.value===-1||!e.value?null:e.value[r.value+1]??null),a=n(()=>r.value<=0||!e.value?null:e.value[r.value-1]??null);return{hasNext:n(()=>i.value!==null),hasPrevious:n(()=>a.value!==null),nextEntry:i,previousEntry:a}}function Ur(){return localStorage.getItem(B)===`true`}function Wr(e){localStorage.setItem(B,String(e))}const Gr=[`src`],Kr={class:`stage__idle-body`},qr={class:`stage__idle-btn`},Jr={class:`stage__idle-title`},Yr={key:1,class:`stage__idle-empty`};var Xr=Q(u({__name:`VideoStage`,props:{pinPosition:{type:String,required:!1,default:`bottom-right`},playlist:{type:Array,required:!1}},emits:[`state-change`],setup(t,{expose:s,emit:c}){let u=t,d=c,f=C(Ur());k(f,Wr);let m=n(()=>!!u.playlist?.length),g=C(null),S=C(null),w=C(!1),T=C(!1),A=C(null),M=C(null),N=C(!1);x(ht,N);let{hasNext:P,hasPrevious:ee,nextEntry:te,previousEntry:I}=Hr(D(u,`playlist`),S),L=n(()=>N.value&&!!S.value&&w.value),re=n(()=>F(S.value?.aspectRatio||`16:9`).cssRatio),z=C(null),B=C(null);k(L,e=>{z.value=e&&M.value?{height:M.value.offsetHeight,width:M.value.offsetWidth}:null});let V=n(()=>{if(!z.value)return{};let{height:e,width:t}=z.value,n=B.value&&t?B.value/t:1;return{height:`${Math.round(e*n)}px`}}),H=null,U=null;function W(){H?.disconnect(),U?.disconnect(),A.value&&(H=new IntersectionObserver(([e])=>{N.value=!e.isIntersecting},{threshold:1}),H.observe(A.value),U=new ResizeObserver(([e])=>{B.value=e.contentRect.width}),U.observe(A.value))}k(A,W);function G(){S.value&&(S.value={...S.value,autoplay:!0},w.value=!0)}function ie(){A.value?.scrollIntoView({behavior:`smooth`,block:`center`})}function K(){S.value=null,w.value=!1,T.value=!1,z.value=null,ae()}function ae(){Br(ne,{currentVideoUrl:S.value?.videoUrl??null,isPlaying:T.value})}function q(e){if(S.value?.videoUrl===e.videoUrl&&w.value){g.value?.togglePlay();return}S.value=e,w.value=!1,T.value=!1,ae(),w.value=!0}function J(e){if(!(!S.value||e.videoUrl!==S.value.videoUrl)){if(!w.value){S.value={...S.value,autoplay:!0},w.value=!0;return}g.value?.togglePlay()}}function oe(e){return{...e,muted:e.muted??g.value?.isMuted,autoplay:!0}}function se(){te.value&&q(oe(te.value))}function ce(){I.value&&q(oe(I.value))}function le(e){e.type===`play`&&(T.value=!0),(e.type===`pause`||e.type===`ended`)&&(T.value=!1),e.type===`ended`&&f.value&&se(),ae(),d(`state-change`,e)}return Vr(R,q),Vr(`video-toggle`,J),y(Rr),v(()=>{zr(),H?.disconnect(),U?.disconnect()}),s({playNext:se,playPrevious:ce,hasNext:P,hasPrevious:ee}),(n,s)=>(b(),a(`div`,{ref_key:`wrapperEl`,ref:A,class:`stage-wrapper`,style:_(V.value)},[o(`div`,{ref_key:`stageEl`,ref:M,class:h([`stage`,{"stage--minified":L.value,[`stage--pin-${t.pinPosition}`]:L.value}])},[L.value?(b(),a(`button`,{key:0,class:`stage__scroll-to`,"aria-label":`Scroll to player`,onClick:j(ie,[`stop`])},[l(O(zt))])):i(`v-if`,!0),L.value?(b(),a(`button`,{key:1,class:`stage__dismiss`,"aria-label":`Close`,onClick:j(K,[`stop`])},[l(O(jt))])):i(`v-if`,!0),S.value&&w.value?(b(),r(Fr,p({ref_key:`playerRef`,ref:g,key:S.value.videoUrl},S.value,{"has-playlist":m.value,"has-next":O(P),"has-previous":O(ee),"auto-advance":f.value,onStateChange:le,onPlayNext:se,onPlayPrevious:ce,onToggleAutoAdvance:s[0]||=e=>f.value=!f.value}),null,16,[`has-playlist`,`has-next`,`has-previous`,`auto-advance`])):(b(),a(`div`,{key:3,class:`stage__idle`,style:_({aspectRatio:re.value}),onClick:G},[S.value?.poster?(b(),a(`img`,{key:0,src:S.value.poster,class:`stage__idle-poster`},null,8,Gr)):i(`v-if`,!0),s[1]||=o(`div`,{class:`stage__idle-scrim`},null,-1),o(`div`,Kr,[S.value?(b(),a(e,{key:0},[o(`div`,qr,[l(O(mn))]),o(`p`,Jr,E(S.value.title),1)],64)):(b(),a(`p`,Yr,`Select a video to play`))])],4))],2)],4))}}),[[`__scopeId`,`data-v-fb8c86cf`]]);const Zr={class:`placeholder`},Qr=[`src`,`alt`],$r={class:`placeholder__btn-wrap`},ei={key:1,class:`placeholder__footer`},ti={class:`placeholder__title`};var ni=Q(u({__name:`VideoPlaceholder`,props:{videoUrl:{type:String,required:!0},title:{type:String,required:!1,default:``},poster:{type:String,required:!1,default:``},aspectRatio:{type:String,required:!1,default:ie},adTagUrl:{type:String,required:!1,default:``},adTagParams:{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},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,required:!1,default:()=>({})},action:{type:[String,Object,null],required:!1,default:null},disableTapCapture:{type:Boolean,required:!1}},setup(e){let t=e,r=n(()=>F(t.aspectRatio)),s=n(()=>r.value.isPortrait),c=n(()=>r.value.cssRatio),u=C(!1),d=C(!1);Vr(ne,e=>{u.value=e.currentVideoUrl===t.videoUrl,d.value=u.value&&e.isPlaying});function f(e){Br(R,{...t,...e!==void 0&&{autoplay:e}})}function p(){f(!0)}return y(()=>{t.autoStage&&f()}),(t,n)=>(b(),a(`div`,Zr,[o(`div`,{class:h([`placeholder__shell`,{"placeholder__shell--portrait":s.value,"placeholder__shell--active":u.value}]),style:_({aspectRatio:c.value}),onClick:p},[e.poster?(b(),a(`img`,{key:0,class:`placeholder__poster`,src:e.poster,alt:e.title},null,8,Qr)):i(`v-if`,!0),n[0]||=o(`div`,{class:`placeholder__scrim`},null,-1),o(`div`,$r,[l(In,{"is-playing":u.value&&d.value,size:`lg`,onTogglePlay:p},null,8,[`is-playing`])]),e.title?(b(),a(`div`,ei,[o(`p`,ti,E(e.title),1)])):i(`v-if`,!0)],6)]))}}),[[`__scopeId`,`data-v-dbcb4f82`]]),ri=u({__name:`VideoItem`,props:{videoUrl:{type:String,required:!0},title:{type:String,required:!1},poster:{type:String,required:!1},aspectRatio:{type:String,required:!1},adTagUrl:{type:String,required:!1},adTagParams:{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},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,required:!1},action:{type:[String,Object,null],required:!1,default:null},disableTapCapture:{type:Boolean,required:!1}},emits:[`state-change`],setup(t,{emit:n}){let i=t,o=n,s=C(!1);return(t,n)=>O(Lr)?(b(),r(ni,g(p({key:0},i)),null,16)):(b(),a(e,{key:1},[i.lazy&&!s.value&&!i.autoplay?(b(),r(ni,p({key:0},i,{onClickCapture:n[0]||=e=>s.value=!0}),null,16)):(b(),r(Fr,p({key:1},i,{autoplay:s.value||i.autoplay,onStateChange:n[1]||=e=>o(`state-change`,e)}),null,16,[`autoplay`]))],64))}});if(typeof document<`u`){let e=new URL(`./style.css`,import.meta.url).href;if(!document.querySelector(`link[href="${e}"]`)){let t=document.createElement(`link`);t.rel=`stylesheet`,t.href=e,document.head.appendChild(t)}}const ii=d(Fr,{shadowRoot:!1}),ai=d(Xr,{shadowRoot:!1}),oi=d(ni,{shadowRoot:!1}),si=d(ri,{shadowRoot:!1});customElements.define(`video-player`,ii),customElements.define(`video-stage`,ai),customElements.define(`video-placeholder`,oi),customElements.define(`video-item`,si);export{si as VideoItemElement,oi as VideoPlaceholderElement,ii as VideoPlayerElement,ai as VideoStageElement};
|
|
3
|
+
creative, so there's no reason for this layer to cover the ad break at all. `),!n.disableTapCapture&&O(s).hasStarted&&!O(s).isAdPlaying?(b(),a(`div`,{key:0,class:`overlay__tap-capture`,onClick:f,onTouchend:j(f,[`prevent`,`stop`])},null,32)):i(`v-if`,!0),O(s).isAdPlaying?(b(),r(Or,{key:1})):i(`v-if`,!0),l(t,{name:`fade`},{default:A(()=>[!O(s).isReady&&!O(s).isError?(b(),a(`div`,kr,[l(Bn,{size:40,"border-width":3})])):i(`v-if`,!0)]),_:1}),l(t,{name:`fade`},{default:A(()=>[O(s).isError?(b(),a(`div`,Ar,[o(`p`,null,E(O(s).errorMessage||`This video could not be played.`),1),o(`button`,{class:`overlay__retry`,onClick:p[0]||=j((...e)=>O(s).retry&&O(s).retry(...e),[`stop`])},`Retry`)])):i(`v-if`,!0)]),_:1}),o(`div`,{class:h([`overlay__hud`,{"overlay__hud--visible":O(u)}])},[l(Jn)],2),l(t,{name:`popup`},{default:A(()=>[O(d)?(b(),a(`div`,{key:0,class:h([`overlay__popup`,{"overlay__popup--fs":O(s).isFullscreen}])},[l(xr)],2)):i(`v-if`,!0)]),_:1})],64))}}),[[`__scopeId`,`data-v-f3307b98`]]);const Mr={class:`player`},Nr={"data-mvp-player":``},Pr=[`poster`],Fr=[`src`,`kind`,`srclang`,`label`,`default`],Ir={key:1,class:`player__native-play`};var Lr=Q(u({__name:`VideoPlayer`,props:{videoUrl:{type:String,required:!0},title:{type:String,required:!1,default:``},poster:{type:String,required:!1,default:``},aspectRatio:{type:String,required:!1,default:ie},adTagUrl:{type:String,required:!1,default:``},adTagParams:{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},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,required:!1,default:()=>({})},action:{type:[String,Object,null],required:!1,default:null},disableTapCapture:{type:Boolean,required:!1,default:!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(t,{expose:s,emit:c}){let u=t,d=c,f=C(null),p=S(mt(f,u,d)),m=S(ht(D(p,`isPlaying`)));x(Y,p),x(X,m),x(gt,D(u,`action`)),x(vt,S({hasPlaylist:n(()=>u.hasPlaylist),hasNext:n(()=>u.hasNext),hasPrevious:n(()=>u.hasPrevious),autoAdvance:n(()=>u.autoAdvance),playNext:()=>d(`play-next`),playPrevious:()=>d(`play-previous`),toggleAutoAdvance:()=>d(`toggle-auto-advance`)}));let g=n(()=>F(u.aspectRatio)),v=n(()=>g.value.isPortrait),y=n(()=>g.value.cssRatio),T=n(()=>!u.poster&&!p.isReady);return s(p),(t,n)=>(b(),a(`div`,Mr,[o(`div`,{class:h([`player__shell`,{"player__shell--portrait":v.value}]),style:_({aspectRatio:y.value}),onMousemove:n[0]||=e=>m.onMouseMove(),onContextmenuCapture:n[1]||=j(()=>{},[`prevent`]),onMouseleave:n[2]||=e=>m.onMouseLeave()},[o(`div`,Nr,[o(`video`,{ref_key:`videoEl`,ref:f,class:h([`mvp-video`,{"mvp-video--hidden":T.value}]),poster:u.poster,playsinline:``},[(b(!0),a(e,null,w(u.tracks,(e,t)=>(b(),a(`track`,{key:`${e.src}-${t}`,src:e.src,kind:e.kind??`captions`,srclang:e.srclang,label:e.label,default:e.default},null,8,Fr))),128))],10,Pr),p.nativeUi?i(`v-if`,!0):(b(),r(jr,{key:0,"disable-tap-capture":u.disableTapCapture},null,8,[`disable-tap-capture`])),p.nativeUi&&!p.hasStarted?(b(),a(`div`,Ir,[l(Rn,{"is-playing":!1,size:`lg`,onTogglePlay:p.togglePlay},null,8,[`onTogglePlay`])])):i(`v-if`,!0)])],38)]))}}),[[`__scopeId`,`data-v-4ab3cf75`]]);const Rr=C(0),zr=n(()=>Rr.value>0);function Br(){Rr.value++}function Vr(){Rr.value--}function Hr(e,t){window.dispatchEvent(new CustomEvent(e,{detail:t}))}function Ur(e,t){let n=e=>t(e.detail);y(()=>window.addEventListener(e,n)),v(()=>window.removeEventListener(e,n))}function Wr(e,t){let r=n(()=>!e.value||!t.value?-1:e.value.findIndex(e=>e.videoUrl===t.value?.videoUrl)),i=n(()=>r.value===-1||!e.value?null:e.value[r.value+1]??null),a=n(()=>r.value<=0||!e.value?null:e.value[r.value-1]??null);return{hasNext:n(()=>i.value!==null),hasPrevious:n(()=>a.value!==null),nextEntry:i,previousEntry:a}}function Gr(){return localStorage.getItem(B)===`true`}function Kr(e){localStorage.setItem(B,String(e))}const qr=[`src`],Jr={class:`stage__idle-body`},Yr={class:`stage__idle-btn`},Xr={class:`stage__idle-title`},Zr={key:1,class:`stage__idle-empty`};var Qr=Q(u({__name:`VideoStage`,props:{pinPosition:{type:String,required:!1,default:`bottom-right`},playlist:{type:Array,required:!1}},emits:[`state-change`],setup(t,{expose:s,emit:c}){let u=t,d=c,f=C(Gr());k(f,Kr);let m=n(()=>!!u.playlist?.length),g=C(null),S=C(null),w=C(!1),T=C(!1),A=C(null),M=C(null),N=C(!1);x(_t,N);let{hasNext:P,hasPrevious:ee,nextEntry:te,previousEntry:I}=Wr(D(u,`playlist`),S),L=n(()=>N.value&&!!S.value&&w.value),re=n(()=>F(S.value?.aspectRatio||`16:9`).cssRatio),z=C(null),B=C(null);k(L,e=>{z.value=e&&M.value?{height:M.value.offsetHeight,width:M.value.offsetWidth}:null});let V=n(()=>{if(!z.value)return{};let{height:e,width:t}=z.value,n=B.value&&t?B.value/t:1;return{height:`${Math.round(e*n)}px`}}),H=null,U=null;function W(){H?.disconnect(),U?.disconnect(),A.value&&(H=new IntersectionObserver(([e])=>{N.value=!e.isIntersecting},{threshold:1}),H.observe(A.value),U=new ResizeObserver(([e])=>{B.value=e.contentRect.width}),U.observe(A.value))}k(A,W);function G(){S.value&&(S.value={...S.value,autoplay:!0},w.value=!0)}function ie(){A.value?.scrollIntoView({behavior:`smooth`,block:`center`})}function K(){S.value=null,w.value=!1,T.value=!1,z.value=null,ae()}function ae(){Hr(ne,{currentVideoUrl:S.value?.videoUrl??null,isPlaying:T.value})}function q(e){if(S.value?.videoUrl===e.videoUrl&&w.value){g.value?.togglePlay();return}S.value=e,w.value=!1,T.value=!1,ae(),w.value=!0}function J(e){if(!(!S.value||e.videoUrl!==S.value.videoUrl)){if(!w.value){S.value={...S.value,autoplay:!0},w.value=!0;return}g.value?.togglePlay()}}function oe(e){return{...e,muted:e.muted??g.value?.isMuted,autoplay:!0}}function se(){te.value&&q(oe(te.value))}function ce(){I.value&&q(oe(I.value))}function le(e){e.type===`play`&&(T.value=!0),(e.type===`pause`||e.type===`ended`)&&(T.value=!1),e.type===`ended`&&f.value&&se(),ae(),d(`state-change`,e)}return Ur(R,q),Ur(`video-toggle`,J),y(Br),v(()=>{Vr(),H?.disconnect(),U?.disconnect()}),s({playNext:se,playPrevious:ce,hasNext:P,hasPrevious:ee}),(n,s)=>(b(),a(`div`,{ref_key:`wrapperEl`,ref:A,class:`stage-wrapper`,style:_(V.value)},[o(`div`,{ref_key:`stageEl`,ref:M,class:h([`stage`,{"stage--minified":L.value,[`stage--pin-${t.pinPosition}`]:L.value}])},[L.value?(b(),a(`button`,{key:0,class:`stage__scroll-to`,"aria-label":`Scroll to player`,onClick:j(ie,[`stop`])},[l(O(Vt))])):i(`v-if`,!0),L.value?(b(),a(`button`,{key:1,class:`stage__dismiss`,"aria-label":`Close`,onClick:j(K,[`stop`])},[l(O(Nt))])):i(`v-if`,!0),S.value&&w.value?(b(),r(Lr,p({ref_key:`playerRef`,ref:g,key:S.value.videoUrl},S.value,{"has-playlist":m.value,"has-next":O(P),"has-previous":O(ee),"auto-advance":f.value,onStateChange:le,onPlayNext:se,onPlayPrevious:ce,onToggleAutoAdvance:s[0]||=e=>f.value=!f.value}),null,16,[`has-playlist`,`has-next`,`has-previous`,`auto-advance`])):(b(),a(`div`,{key:3,class:`stage__idle`,style:_({aspectRatio:re.value}),onClick:G},[S.value?.poster?(b(),a(`img`,{key:0,src:S.value.poster,class:`stage__idle-poster`},null,8,qr)):i(`v-if`,!0),s[1]||=o(`div`,{class:`stage__idle-scrim`},null,-1),o(`div`,Jr,[S.value?(b(),a(e,{key:0},[o(`div`,Yr,[l(O(gn))]),o(`p`,Xr,E(S.value.title),1)],64)):(b(),a(`p`,Zr,`Select a video to play`))])],4))],2)],4))}}),[[`__scopeId`,`data-v-fb8c86cf`]]);const $r={class:`placeholder`},ei=[`src`,`alt`],ti={class:`placeholder__btn-wrap`},ni={key:1,class:`placeholder__footer`},ri={class:`placeholder__title`};var ii=Q(u({__name:`VideoPlaceholder`,props:{videoUrl:{type:String,required:!0},title:{type:String,required:!1,default:``},poster:{type:String,required:!1,default:``},aspectRatio:{type:String,required:!1,default:ie},adTagUrl:{type:String,required:!1,default:``},adTagParams:{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},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,required:!1,default:()=>({})},action:{type:[String,Object,null],required:!1,default:null},disableTapCapture:{type:Boolean,required:!1}},setup(e){let t=e,r=n(()=>F(t.aspectRatio)),s=n(()=>r.value.isPortrait),c=n(()=>r.value.cssRatio),u=C(!1),d=C(!1);Ur(ne,e=>{u.value=e.currentVideoUrl===t.videoUrl,d.value=u.value&&e.isPlaying});function f(e){Hr(R,{...t,...e!==void 0&&{autoplay:e}})}function p(){f(!0)}return y(()=>{t.autoStage&&f()}),(t,n)=>(b(),a(`div`,$r,[o(`div`,{class:h([`placeholder__shell`,{"placeholder__shell--portrait":s.value,"placeholder__shell--active":u.value}]),style:_({aspectRatio:c.value}),onClick:p},[e.poster?(b(),a(`img`,{key:0,class:`placeholder__poster`,src:e.poster,alt:e.title},null,8,ei)):i(`v-if`,!0),n[0]||=o(`div`,{class:`placeholder__scrim`},null,-1),o(`div`,ti,[l(Rn,{"is-playing":u.value&&d.value,size:`lg`,onTogglePlay:p},null,8,[`is-playing`])]),e.title?(b(),a(`div`,ni,[o(`p`,ri,E(e.title),1)])):i(`v-if`,!0)],6)]))}}),[[`__scopeId`,`data-v-dbcb4f82`]]),ai=u({__name:`VideoItem`,props:{videoUrl:{type:String,required:!0},title:{type:String,required:!1},poster:{type:String,required:!1},aspectRatio:{type:String,required:!1},adTagUrl:{type:String,required:!1},adTagParams:{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},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,required:!1},action:{type:[String,Object,null],required:!1,default:null},disableTapCapture:{type:Boolean,required:!1}},emits:[`state-change`],setup(t,{emit:n}){let i=t,o=n,s=C(!1);return(t,n)=>O(zr)?(b(),r(ii,g(p({key:0},i)),null,16)):(b(),a(e,{key:1},[i.lazy&&!s.value&&!i.autoplay?(b(),r(ii,p({key:0},i,{onClickCapture:n[0]||=e=>s.value=!0}),null,16)):(b(),r(Lr,p({key:1},i,{autoplay:s.value||i.autoplay,onStateChange:n[1]||=e=>o(`state-change`,e)}),null,16,[`autoplay`]))],64))}});if(typeof document<`u`&&!document.querySelector(`style[data-video-player]`)){let e=document.createElement(`style`);e.setAttribute(`data-video-player`,``),e.textContent=".ppbtn[data-v-85902525]{backdrop-filter:blur(12px);will-change:backdrop-filter;color:#fff;cursor:pointer;background:#ffffff1a;border:1px solid #ffffff2e;border-radius:50%;justify-content:center;align-items:center;transition:background .2s,transform .15s;display:flex}.ppbtn[data-v-85902525]:hover{background:#fff3;transform:scale(1.08)}.ppbtn--lg[data-v-85902525]{background:var(--mvp-btn-bg,#ffffff1a);width:clamp(48px,20cqw,64px);height:clamp(48px,20cqw,64px);color:var(--mvp-btn-color,#fff)}.ppbtn--lg svg[data-v-85902525]{width:clamp(20px,9cqw,28px);height:clamp(20px,9cqw,28px)}.ppbtn--lg[data-v-85902525]:hover{background:var(--mvp-btn-bg,#fff3);filter:brightness(1.12)}.ppbtn--sm[data-v-85902525]{color:#ffffffbf;background:0 0;border:none;border-radius:8px;width:30px;height:30px}.ppbtn--sm svg[data-v-85902525]{width:16px;height:16px}.ppbtn--sm[data-v-85902525]:hover{color:#fff;background:#ffffff1a;transform:none}@keyframes spin-259be2b2{to{transform:rotate(360deg)}}.spinner[data-v-259be2b2]{border-style:solid;border-color:#fffc #ffffff26 #ffffff26;border-radius:50%;animation:.75s linear infinite spin-259be2b2}.hud[data-v-a6d118e7]{align-items:center;gap:clamp(12px,5cqw,20px);display:flex}.hud__play-wrap[data-v-a6d118e7]{display:flex;position:relative}.hud__buf-spinner[data-v-a6d118e7]{margin-top:8px;position:absolute;top:100%;left:calc(50% - 7px)}.hud__spacer[data-v-a6d118e7]{flex-shrink:0;width:clamp(36px,14cqw,44px);height:clamp(36px,14cqw,44px)}.hud__btn[data-v-a6d118e7]{background:var(--mvp-btn-bg,#ffffff1a);backdrop-filter:blur(12px);will-change:backdrop-filter;width:clamp(36px,14cqw,44px);height:clamp(36px,14cqw,44px);color:var(--mvp-btn-color,#fff);cursor:pointer;border:1px solid #ffffff2e;border-radius:50%;justify-content:center;align-items:center;transition:background .2s,transform .15s;display:flex}.hud__btn svg[data-v-a6d118e7]{width:clamp(16px,6cqw,18px);height:clamp(16px,6cqw,18px)}.hud__btn[data-v-a6d118e7]:hover{background:var(--mvp-btn-bg,#fff3);filter:brightness(1.12);transform:scale(1.08)}.hud__btn--active[data-v-a6d118e7]{border-color:var(--mvp-accent,#3b82f6);background:color-mix(in srgb, var(--mvp-accent,#3b82f6) 30%, var(--mvp-btn-bg,#ffffff1a));color:var(--mvp-btn-color,#fff)}.hud__btn--active[data-v-a6d118e7]:hover{background:color-mix(in srgb, var(--mvp-accent,#3b82f6) 45%, var(--mvp-btn-bg,#fff3))}.controls__vol-header[data-v-10b0ae67]{align-items:center;gap:4px;display:flex}.controls__vol-label[data-v-10b0ae67]{color:#ffffffe6;flex:1;padding:0 4px;font-size:.8rem;font-weight:600}.controls__vol-body[data-v-10b0ae67]{align-items:center;gap:12px;padding:6px 0 4px;display:flex}.controls__vol-pct[data-v-10b0ae67]{font-variant-numeric:tabular-nums;color:#fff9;text-align:right;min-width:32px;font-size:.75rem;font-weight:600}.controls__vol-slider[data-v-10b0ae67]{-webkit-appearance:none;appearance:none;cursor:pointer;background:linear-gradient(to right, #fff 0%, #fff var(--v), #ffffff26 var(--v), #ffffff26 100%);outline:none;flex:1;height:5px;transition:height .15s}.controls__vol-slider[data-v-10b0ae67]:hover{height:7px}.controls__vol-slider[data-v-10b0ae67]::-webkit-slider-runnable-track{background:0 0;height:5px}.controls__vol-slider[data-v-10b0ae67]::-webkit-slider-thumb{-webkit-appearance:none;cursor:pointer;background:#fff;border-radius:50%;width:16px;height:16px;margin-top:-5.5px;transition:transform .15s;box-shadow:0 0 0 3px #fff3}.controls__vol-slider[data-v-10b0ae67]:hover::-webkit-slider-thumb{transform:scale(1.2)}.controls__vol-slider[data-v-10b0ae67]::-moz-range-track{background:#ffffff26;height:5px}.controls__vol-slider[data-v-10b0ae67]::-moz-range-progress{background:#fff;height:5px}.controls__vol-slider[data-v-10b0ae67]::-moz-range-thumb{cursor:pointer;background:#fff;border:none;border-radius:50%;width:16px;height:16px;box-shadow:0 0 0 3px #fff3}.controls__more-row[data-v-47ca5bfc]{color:#ffffffd9;cursor:pointer;background:0 0;border:none;border-radius:8px;justify-content:space-between;align-items:center;width:100%;padding:8px 4px;font-size:.8rem;font-weight:500;transition:background .15s;display:flex}.controls__more-row[data-v-47ca5bfc]:hover{background:#ffffff14}.controls__more-row-label[data-v-47ca5bfc]{align-items:center;gap:8px;display:flex}.controls__more-row-icon[data-v-47ca5bfc]{flex-shrink:0;width:16px;height:16px}.controls__more-value[data-v-47ca5bfc]{font-variant-numeric:tabular-nums;color:#ffffff80;font-size:.7rem;font-weight:600}.controls__more-row--active .controls__more-value[data-v-47ca5bfc]{color:var(--mvp-accent,#3b82f6)}.controls__more-header[data-v-e89a8208]{flex-shrink:0;align-items:center;gap:4px;display:flex}.controls__more-label[data-v-e89a8208]{color:#ffffffe6;flex:1;padding:0 4px;font-size:.8rem;font-weight:600}.controls__more-body[data-v-e89a8208]{flex-direction:column;min-height:0;padding:2px 0;display:flex;overflow-y:auto}::view-transition-old(controls-popup),::view-transition-new(controls-popup){animation-duration:.22s;animation-timing-function:ease-in-out}.controls__btn{color:#ffffffbf;cursor:pointer;background:0 0;border:none;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;width:30px;height:30px;transition:background .15s,color .15s;display:flex}.controls__btn svg{width:16px;height:16px}.controls__btn:hover{color:#fff;background:#ffffff1a}.controls[data-v-5712aad4]{-webkit-backdrop-filter:blur(20px);background:#0a0a0e;border:1px solid #ffffff1a;border-radius:18px;flex-direction:column;gap:10px;width:min(340px,100% - 32px);max-height:100%;padding:14px 16px 12px;display:flex;overflow:hidden;box-shadow:0 8px 32px #00000080}.controls--fs[data-v-5712aad4]{width:100%}.controls--compact .controls__seek[data-v-5712aad4],.controls--compact .controls__btn--more[data-v-5712aad4],.controls--compact .controls__btn--pip[data-v-5712aad4],.controls--compact .controls__fs-wrap[data-v-5712aad4]{display:none}@container player-shell (width<=300px){.controls__seek[data-v-5712aad4],.controls__btn--more[data-v-5712aad4],.controls__btn--pip[data-v-5712aad4],.controls__fs-wrap[data-v-5712aad4]{display:none}}.controls__seek[data-v-5712aad4]{-webkit-appearance:none;appearance:none;cursor:pointer;box-sizing:border-box;background:padding-box content-box;background-image:linear-gradient(to right, var(--mvp-accent,#3b82f6) 0%, var(--mvp-accent,#3b82f6) var(--p), #ffffff4d var(--p), #ffffff4d var(--b), #ffffff1a var(--b), #ffffff1a 100%);outline:none;width:100%;height:20px;padding:8px 0}.controls__seek[data-v-5712aad4]::-webkit-slider-runnable-track{background:0 0;height:4px}.controls__seek[data-v-5712aad4]::-webkit-slider-thumb{-webkit-appearance:none;background:var(--mvp-accent,#3b82f6);width:14px;height:14px;box-shadow:0 0 0 3px color-mix(in srgb, var(--mvp-accent,#3b82f6) 30%, transparent);cursor:pointer;border-radius:50%;margin-top:-5px;transition:transform .15s}.controls__seek[data-v-5712aad4]:hover::-webkit-slider-thumb{transform:scale(1.25)}.controls__seek[data-v-5712aad4]::-moz-range-track{background:#ffffff1a;height:4px}.controls__seek[data-v-5712aad4]::-moz-range-progress{background:var(--mvp-accent,#3b82f6);height:4px}.controls__seek[data-v-5712aad4]::-moz-range-thumb{background:var(--mvp-accent,#3b82f6);width:14px;height:14px;box-shadow:0 0 0 3px color-mix(in srgb, var(--mvp-accent,#3b82f6) 30%, transparent);cursor:pointer;border:none;border-radius:50%}.controls__row[data-v-5712aad4]{align-items:center;gap:4px;display:flex}.controls__time[data-v-5712aad4]{font-variant-numeric:tabular-nums;color:#fff9;letter-spacing:.02em;flex:1;padding:0 4px;font-size:.7rem;font-weight:500}.controls__live[data-v-5712aad4]{letter-spacing:.04em;text-transform:uppercase;color:#f87171;flex:1;align-items:center;gap:5px;padding:0 4px;font-size:.7rem;font-weight:700;display:flex}.controls__live-dot[data-v-5712aad4]{background:#f87171;border-radius:50%;width:6px;height:6px}.controls__play-wrap[data-v-5712aad4]{flex-shrink:0;justify-content:center;align-items:center;width:30px;height:30px;display:flex}.controls__btn--active[data-v-5712aad4]{color:var(--mvp-accent,#3b82f6)}.controls__btn--active[data-v-5712aad4]:hover{color:var(--mvp-accent,#60a5fa)}.controls__fs-wrap[data-v-5712aad4]{flex-shrink:0;justify-content:center;align-items:center;width:30px;height:30px;display:flex}.ad-overlay[data-v-23efcc8b]{z-index:21;pointer-events:none;position:absolute;inset:0}.ad-overlay__bar[data-v-23efcc8b]{align-items:center;gap:6px;display:flex;position:absolute;bottom:10px;left:10px}.ad-overlay__badge[data-v-23efcc8b]{color:#fff;text-transform:uppercase;letter-spacing:.06em;background:#0009;border-radius:4px;align-items:center;gap:6px;padding:3px 8px;font-size:.65rem;font-weight:700;display:flex}.ad-overlay__countdown[data-v-23efcc8b]{font-variant-numeric:tabular-nums;text-transform:none;letter-spacing:.02em;opacity:.8;font-weight:500}.ad-overlay__btn[data-v-23efcc8b]{color:#fff;cursor:pointer;pointer-events:auto;background:#0009;border:none;border-radius:4px;justify-content:center;align-items:center;padding:3px;transition:background .15s;display:flex}.ad-overlay__btn[data-v-23efcc8b]:hover{background:#000c}.ad-overlay__btn svg[data-v-23efcc8b]{width:11px;height:11px}.overlay__tap-capture[data-v-f3307b98]{z-index:2;position:absolute;inset:0}.overlay__spinner[data-v-f3307b98]{z-index:5;pointer-events:none;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.fade-enter-active[data-v-f3307b98],.fade-leave-active[data-v-f3307b98]{transition:opacity .25s}.fade-enter-from[data-v-f3307b98],.fade-leave-to[data-v-f3307b98]{opacity:0}.overlay__error[data-v-f3307b98]{z-index:6;pointer-events:none;flex-direction:column;justify-content:center;align-items:center;gap:.75rem;padding:1.5rem;display:flex;position:absolute;inset:0}.overlay__error p[data-v-f3307b98]{color:#ffffffb3;text-align:center;max-width:260px;font-size:.875rem;line-height:1.5}.overlay__retry[data-v-f3307b98]{pointer-events:auto;color:#fff;cursor:pointer;background:#ffffff1a;border:1px solid #ffffff40;border-radius:8px;padding:.4rem 1rem;font-size:.8rem;font-weight:600;transition:background .15s}.overlay__retry[data-v-f3307b98]:hover{background:#fff3}.overlay__hud[data-v-f3307b98]{z-index:4;opacity:0;pointer-events:none;justify-content:center;align-items:center;transition:opacity .3s;display:flex;position:absolute;top:50%;left:0;right:0;transform:translateY(-50%)}.overlay__hud--visible[data-v-f3307b98]{opacity:1;pointer-events:all}.overlay__popup[data-v-f3307b98]{z-index:5;align-items:var(--mvp-popup-align,center);pointer-events:none;justify-content:center;padding:16px;display:flex;position:absolute;inset:0}.overlay__popup[data-v-f3307b98] .controls{pointer-events:auto}.overlay__popup--fs[data-v-f3307b98]{align-items:flex-end}.popup-enter-active[data-v-f3307b98],.popup-leave-active[data-v-f3307b98]{transition:opacity .2s,transform .2s}.popup-enter-from[data-v-f3307b98],.popup-leave-to[data-v-f3307b98]{opacity:0;transform:scale(.95)}.player[data-v-4ab3cf75]{user-select:none;-webkit-tap-highlight-color:transparent;width:100%;max-width:800px;margin:0 auto}[data-mvp-player][data-v-4ab3cf75]{position:absolute;inset:0}.player__shell[data-v-4ab3cf75]{border-radius:var(--mvp-radius,12px);cursor:pointer;background:#000;position:relative;overflow:hidden;container:player-shell/inline-size}.mvp-video--hidden[data-v-4ab3cf75]{opacity:0}.player__shell--portrait[data-v-4ab3cf75]{width:auto;max-width:100%;max-height:75dvh;margin:0 auto}.player__native-play[data-v-4ab3cf75]{z-index:3;pointer-events:none;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.player__native-play[data-v-4ab3cf75]>*{pointer-events:auto}.player__shell[data-v-4ab3cf75]:fullscreen{border-radius:0;width:100vw;height:100dvh}.player__shell:fullscreen .mvp-video[data-v-4ab3cf75],.player__shell:fullscreen [data-mvp-player][data-v-4ab3cf75]{width:100%!important;height:100%!important}.mvp-video{border-radius:var(--mvp-radius,12px);object-fit:cover;background:#000;width:100%;height:100%;position:absolute;inset:0;overflow:hidden}.mvp-dailymotion .mvp-tech>*,.mvp-dailymotion .dailymotion-player-root,.mvp-dailymotion iframe{width:100%!important;height:100%!important;position:absolute!important;inset:0!important}.mvp-vimeo .mvp-tech>div{width:100%!important;height:100%!important;padding:0!important;position:absolute!important;top:0!important;left:0!important}.mvp-vimeo iframe{width:100%!important;height:100%!important;position:absolute!important;top:0!important;left:0!important}[data-mvp-player] .ima-ad-container{pointer-events:none;z-index:20!important;width:100%!important;height:100%!important;position:absolute!important;top:0!important;left:0!important}.mvp-ad-playing .ima-ad-container{pointer-events:auto}.mvp-ad-playing .overlay__hud,.mvp-ad-playing .overlay__spinner{display:none!important}.stage-wrapper[data-v-fb8c86cf]{width:100%;max-width:800px;margin:0 auto}.stage[data-v-fb8c86cf]{width:100%}.stage__dismiss[data-v-fb8c86cf],.stage__scroll-to[data-v-fb8c86cf]{z-index:10;backdrop-filter:blur(6px);color:#fff;cursor:pointer;background:#0009;border:none;border-radius:50%;justify-content:center;align-items:center;width:26px;height:26px;transition:all .15s;display:flex;position:absolute;top:.4rem}.stage__dismiss[data-v-fb8c86cf]:hover,.stage__scroll-to[data-v-fb8c86cf]:hover{background:#000000d9}.stage__dismiss svg[data-v-fb8c86cf],.stage__scroll-to svg[data-v-fb8c86cf]{width:14px;height:14px}.stage__dismiss[data-v-fb8c86cf]{right:.4rem}.stage__scroll-to[data-v-fb8c86cf]{left:.4rem}.stage--minified[data-v-fb8c86cf]{z-index:100;margin:0;position:fixed;overflow:hidden;box-shadow:0 8px 32px #0009}.stage--pin-bottom-right[data-v-fb8c86cf],.stage--pin-bottom-left[data-v-fb8c86cf],.stage--pin-top-right[data-v-fb8c86cf],.stage--pin-top-left[data-v-fb8c86cf]{border-radius:var(--mvp-radius,12px);width:360px;max-width:360px;@media (width<=740px){max-width:300px}}.stage--pin-bottom-right[data-v-fb8c86cf]{bottom:1.25rem;right:1.25rem}.stage--pin-bottom-left[data-v-fb8c86cf]{bottom:1.25rem;left:1.25rem}.stage--pin-top-right[data-v-fb8c86cf]{top:1.25rem;right:1.25rem}.stage--pin-top-left[data-v-fb8c86cf]{top:1.25rem;left:1.25rem}.stage--pin-full-width[data-v-fb8c86cf]{width:100%;max-width:100%;box-shadow:none;border-radius:0;top:0;left:0;right:0}.stage__idle[data-v-fb8c86cf]{border-radius:var(--mvp-radius,12px);cursor:pointer;background:#111;justify-content:center;align-items:center;width:100%;display:flex;position:relative;overflow:hidden}.stage__idle-poster[data-v-fb8c86cf]{object-fit:cover;width:100%;height:100%;position:absolute;inset:0}.stage__idle-scrim[data-v-fb8c86cf]{background:#00000073;transition:background .15s;position:absolute;inset:0}.stage__idle:hover .stage__idle-scrim[data-v-fb8c86cf]{background:#0000004d}.stage__idle-body[data-v-fb8c86cf]{text-align:center;flex-direction:column;align-items:center;gap:.75rem;padding:1rem;display:flex;position:relative}.stage__idle-btn[data-v-fb8c86cf]{backdrop-filter:blur(4px);color:#fff;background:#0009;border-radius:50%;justify-content:center;align-items:center;width:64px;height:64px;transition:transform .15s,background .15s;display:flex}.stage__idle:hover .stage__idle-btn[data-v-fb8c86cf]{background:#000c;transform:scale(1.1)}.stage__idle-btn svg[data-v-fb8c86cf]{width:32px;height:32px}.stage__idle-title[data-v-fb8c86cf]{color:#f1f5f9;text-shadow:0 1px 4px #000c;font-size:1rem;font-weight:600}.stage__idle-empty[data-v-fb8c86cf]{color:#64748b;font-size:.95rem}.placeholder[data-v-dbcb4f82]{width:100%}.placeholder__shell[data-v-dbcb4f82]{border-radius:var(--mvp-radius,12px);cursor:pointer;background:#111;position:relative;overflow:hidden}.placeholder__shell--portrait[data-v-dbcb4f82]{width:auto;max-height:75dvh;margin:0 auto}.placeholder__poster[data-v-dbcb4f82]{object-fit:cover;width:100%;height:100%;position:absolute;inset:0}.placeholder__scrim[data-v-dbcb4f82]{background:#00000059;transition:background .15s;position:absolute;inset:0}.placeholder__shell:hover .placeholder__scrim[data-v-dbcb4f82]{background:#00000026}.placeholder__btn-wrap[data-v-dbcb4f82]{pointer-events:none;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.placeholder__btn-wrap[data-v-dbcb4f82]>*{pointer-events:auto}.placeholder__footer[data-v-dbcb4f82]{pointer-events:none;background:linear-gradient(#0000 0%,#000c 100%);padding:1.5rem .75rem .6rem;position:absolute;bottom:0;left:0;right:0}.placeholder__title[data-v-dbcb4f82]{color:#f1f5f9;white-space:nowrap;text-overflow:ellipsis;text-shadow:0 1px 3px #0009;font-size:.8rem;font-weight:600;overflow:hidden}\n",document.head.appendChild(e)}const oi=d(Lr,{shadowRoot:!1}),si=d(Qr,{shadowRoot:!1}),ci=d(ii,{shadowRoot:!1}),li=d(ai,{shadowRoot:!1});customElements.define(`muns-video-player`,oi),customElements.define(`muns-video-stage`,si),customElements.define(`muns-video-placeholder`,ci),customElements.define(`muns-video-item`,li);export{li as VideoItemElement,ci as VideoPlaceholderElement,oi as VideoPlayerElement,si as VideoStageElement};
|
package/dist/index.d.mts
CHANGED
|
@@ -20,7 +20,7 @@ interface CustomAction {
|
|
|
20
20
|
onClick: () => void;
|
|
21
21
|
}
|
|
22
22
|
type PlayerAction = BuiltinAction | CustomAction;
|
|
23
|
-
type StateChangeType = 'play' | 'pause' | 'ended' | 'seeked' | 'error' | 'adstart' | 'adend' | 'volumechange' | 'ratechange' | 'captionchange' | 'qualitychange' | 'pipchange' | 'loopchange' | 'firstQuartile' | 'midpoint' | 'thirdQuartile' | 'controlsopen' | 'controlsclose';
|
|
23
|
+
type StateChangeType = 'play' | 'pause' | 'ended' | 'seeked' | 'error' | 'adstart' | 'adend' | 'volumechange' | 'ratechange' | 'captionchange' | 'qualitychange' | 'pipchange' | 'loopchange' | 'firstQuartile' | 'midpoint' | 'thirdQuartile' | 'controlsopen' | 'controlsclose' | 'bufferstart' | 'bufferend';
|
|
24
24
|
interface StateChangeEvent {
|
|
25
25
|
type: StateChangeType;
|
|
26
26
|
currentTime: number;
|
package/dist/index.mjs
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import{Fragment as e,Transition as t,computed as n,createBlock as r,createCommentVNode as i,createElementBlock as a,createElementVNode as o,createStaticVNode as s,createTextVNode as c,createVNode as l,defineComponent as u,inject as d,mergeProps as f,nextTick as p,normalizeClass as m,normalizeProps as h,normalizeStyle as g,onBeforeUnmount as _,onMounted as v,openBlock as y,provide as b,reactive as x,ref as S,renderList as C,resolveDynamicComponent as w,toDisplayString as T,toRef as E,unref as D,watch as O,withCtx as k,withModifiers as A}from"vue";function j(){return/iPad|iPhone|iPod/.test(navigator.userAgent)||/Mac/.test(navigator.userAgent)&&navigator.maxTouchPoints>1}function M(e){(e.requestFullscreen||e.webkitRequestFullscreen)?.call(e)}function N(){(document.exitFullscreen||document.webkitExitFullscreen)?.call(document)}function P(e){let[t,n]=e.split(`:`).map(Number);return{isPortrait:n>t,cssRatio:`${t}/${n}`}}function F(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 ee(e){return!e||isNaN(e)?`0:00`:`${Math.floor(e/60)}:${String(Math.floor(e%60)).padStart(2,`0`)}`}function I(e,t=(...e)=>String(e[0])){let n={};return async(...r)=>{let i=t(...r);if(n[i])return n[i];let a=await e(...r);return n[i]=a,a}}function L(e){return e.filter(e=>e.src&&(e.type===`application/x-mpegURL`||e.type===`video/mp4`)).sort((e,t)=>e.type===`application/x-mpegURL`?-1:1)}const R=`video-select`,z=`video-state`,B=`fullscreen-pending`,V=`fullscreen-pending-done`,H=`player:autoAdvance`,U=`mvp-youtube`,W=`mvp-vimeo`,G=`mvp-dailymotion`,K=`mvp-ad-playing`,q=`mvp-ad-paused`,te=`16:9`,ne=[.5,.75,1,1.25,1.5,2],re=[[.25,`firstQuartile`],[.5,`midpoint`],[.75,`thirdQuartile`]];function ie(e){return e.match(/cdn\.jwplayer\.com\/videos\/([^-]+)/)?.[1]??e.match(/cdn\.jwplayer\.com\/manifests\/([^.]+)/)?.[1]??e.match(/^jwplayer:\/\/([^/]+)$/)?.[1]??null}function J(e){let t=e?.advertising?.schedule;return Array.isArray(t)&&t.length?t[0].tag??null:e?.advertising?.tag??null}const Y=I(async e=>{let t=await fetch(`https://cdn.jwplayer.com/v2/media/${e}`);if(!t.ok)throw Error(`JW Platform API error: ${t.status}`);let n=(await t.json()).playlist?.[0];if(!n)throw Error(`JW Platform: empty playlist`);let r=L((n.sources??[]).map(e=>({src:e.file,type:e.type})));if(!r.length)throw Error(`JW Platform: no playable sources found`);return{src:r[0].src,type:r[0].type,poster:n.image??null,adTagUrl:J(n)}});async function ae(e){let t=ie(e);if(!t)throw Error(`JW Platform: unrecognised source URL: ${e}`);let n=await Y(t);if(e.startsWith(`jwplayer://`))return n;let r=/\.mp4(\?|#|$)/.test(e)?`video/mp4`:`application/x-mpegURL`;return{...n,src:e,type:r}}function oe(e){let t;try{t=new URL(e)}catch{return null}if(t.hostname!==`players.brightcove.net`)return null;let[,n,r]=t.pathname.split(`/`),i=t.searchParams.get(`videoId`),a=r?.indexOf(`_`)??-1;return!n||a===-1||!i?null:{accountId:n,playerId:r.slice(0,a),embed:r.slice(a+1),videoId:i}}function se(e){for(let t of e?.plugins??[]){let e=t.options?.serverUrl??t.options?.imaOptions?.serverUrl;if(e)return e}return null}const ce=I(async(e,t,n,r)=>{let i=await fetch(`https://players.brightcove.net/${e}/${t}_${n}/config.json`);if(!i.ok)throw Error(`Brightcove: could not load player config (${i.status})`);let a=await i.json(),o=r??a?.video_cloud?.policy_key;if(!o)throw Error(`Brightcove: policy_key not found in player config`);return{policyKey:o,adTagUrl:se(a)}},(e,t,n)=>`${e}/${t}_${n}`);async function le(e,t,n){let r=await fetch(`https://edge.api.brightcove.com/playback/v1/accounts/${e}/videos/${t}`,{headers:{Accept:`application/json;pk=${n}`}});if(!r.ok)throw Error(`Brightcove Playback API error: ${r.status}`);let i=await r.json(),a=L(i.sources||[]);if(!a.length)throw Error(`Brightcove: no playable sources found`);return{sources:a.map(e=>({src:e.src,type:e.type})),poster:i.poster??i.thumbnail??null}}async function ue(e,t){let n=oe(e);if(!n)throw Error(`Brightcove: invalid src — expected a Brightcove embed URL, e.g. "https://players.brightcove.net/{accountId}/{playerId}_{embed}/index.html?videoId={videoId}"`);let{accountId:r,playerId:i,embed:a,videoId:o}=n,{policyKey:s,adTagUrl:c}=await ce(r,i,a,t),{sources:l,poster:u}=await le(r,o,s);return{...l[0],poster:u,adTagUrl:c}}function de(){let e=new Map;function t(t,n){for(let r of Array.isArray(t)?t:[t])e.has(r)||e.set(r,new Set),e.get(r)?.add(n)}function n(t,n){e.get(t)?.delete(n)}function r(t,...n){e.get(t)?.forEach(e=>e(...n))}function i(){e.clear()}return{on:t,off:n,trigger:r,dispose:i}}const fe={};function pe(e,t=e){return fe[t]||(fe[t]=new Promise((t,n)=>{let r=document.createElement(`script`);r.src=e,r.onload=()=>t(),r.onerror=()=>n(Error(`Failed to load script: ${e}`)),document.head.appendChild(r)})),fe[t]}let me=0;function he(e,t){e.parentElement?.classList.add(t);let n=`${t}-${++me}`,r=document.createElement(`div`);r.id=n,r.className=`mvp-tech`,r.style.cssText=`width:100%;height:100%;top:0;left:0;position:absolute`;let i=document.createElement(`div`);return i.style.cssText=`width:100%;height:100%;position:absolute;inset:0;opacity:0;pointer-events:none;transition:opacity 0.2s`,i.appendChild(r),e.parentElement?.insertBefore(i,e),{techId:n,wrapper:i,innerDiv:r}}function ge(e,t){e.style.display=`none`,t.style.opacity=`1`,t.style.pointerEvents=``}function _e(e,t,n){t.remove(),e.parentElement?.classList.remove(n),e.style.display=``}function ve(e){return e.closest(`.player__shell`)}function ye(e){e.trigger(B);let t=document.createElement(`div`);t.style.cssText=`position:fixed;inset:0;z-index:99999;opacity:0;pointer-events:none`,document.body.appendChild(t);let n=!1;function r(){n||e.trigger(V)}function i(r){n||(n=!0,e.trigger(V),t.remove(),r?.())}return{overlay:t,reveal:r,finish:i}}function be(e,t){return t===e.PlayerState.PLAYING||t===e.PlayerState.BUFFERING}function xe(e){let t={videoId:null,listId:null},n=e.match(/^.*(youtu\.be\/|v\/|u\/\w\/|embed\/|watch\?v=|shorts\/|&v=)([^#&?]*).*/);n?.[2]?.length===11&&(t.videoId=n[2]);let r=e.match(/[?&]list=([^#&?]+)/);return r?.[1]&&(t.listId=r[1]),t}let Se=!1,Ce=!1;const we=[];function Te(){Ce||(Ce=!0,pe(`https://www.youtube.com/iframe_api`).then(()=>{window.YT?.ready(()=>{Se=!0,we.forEach(e=>e()),we.length=0})}))}function Ee(e,t){Te();let n=de(),{techId:r,wrapper:i}=he(e,U),a=xe(t.src),o=null,s=a.videoId,c=!1,l=!1,u=!1,d=null,f=!1,p=null,m=!1,h=new Set,g=null,_={active:!1,wasPaused:!1,timeBefore:0,catchUpInterval:null};function v(e,t=0){let n=setTimeout(()=>{h.delete(n),e()},t);h.add(n)}function y(){try{let e=o?.getPlayerResponse()?.adPlacements;return Array.isArray(e)&&e.length>0}catch{return!1}}function b(e){o?.loadVideoById({videoId:e})}function x(e){o?.cueVideoById({videoId:e})}function S(){a.videoId&&(_.wasPaused=!1,c?s===a.videoId?o?.playVideo():(b(a.videoId),s=a.videoId):(n.trigger(`waiting`),l=!0))}function C(){_.catchUpInterval&&clearInterval(_.catchUpInterval),_.active=!1,_.wasPaused&&o?.pauseVideo(),n.trigger(`seeked`)}function w(){m=(o?.getAvailablePlaybackRates()??[]).length>1,c=!0,t.muted&&o?.mute(),l?S():u&&a.videoId&&(x(a.videoId),s=a.videoId)}function T(e){if(e===d||p!==null)return;d=e;let t=y();t!==f&&(f=t,n.trigger(t?`adstart`:`adend`));let r=window.YT;if(r){switch(e){case-1:n.trigger(`loadstart`),n.trigger(`loadedmetadata`),n.trigger(`durationchange`),n.trigger(`ratechange`);break;case r.PlayerState.ENDED:n.trigger(`ended`);break;case r.PlayerState.PLAYING:n.trigger(`timeupdate`),n.trigger(`durationchange`),n.trigger(`playing`),n.trigger(`play`),_.active&&C();break;case r.PlayerState.PAUSED:n.trigger(`canplay`),_.active||n.trigger(`pause`);break;case r.PlayerState.BUFFERING:n.trigger(`waiting`);break;case r.PlayerState.CUED:n.trigger(`canplay`);break}g&&=(clearInterval(g),null),e===r.PlayerState.PLAYING&&(g=setInterval(()=>n.trigger(`timeupdate`),250))}}function E(){let e={controls:+!!t.nativeUi,modestbranding:1,rel:0,showinfo:0,mute:+!!t.muted,origin:window.location.origin,allowfullscreen:1,fullscreen:1,fs:1,playsinline:1,...t.customVars};s=a.videoId,o=new window.YT.Player(r,{videoId:s??void 0,playerVars:e,events:{onReady:w,onStateChange:e=>T(e.data),onPlaybackRateChange:()=>n.trigger(`ratechange`),onVolumeChange:()=>n.trigger(`volumechange`),onError:e=>{p=e.data,n.trigger(`error`),v(()=>{p=null})}}})}Se?E():we.push(E),t.autoplay?c?S():l=!0:a.videoId&&(u=!0);function D(){if(!o)return;let e=o.getCurrentTime(),{video_id:t}=o.getVideoData();o.pauseVideo();let{overlay:r,reveal:i,finish:a}=ye(n),s=document.createElement(`div`);s.id=`yt-fs-${Math.random().toString(36).slice(2)}`,r.appendChild(s);let c=null,l=()=>{document.removeEventListener(`pointerdown`,u,!0),a(()=>{let t=c?.getCurrentTime()??e;try{c?.destroy()}catch{}o?.seekTo(t,!0),n.trigger(`timeupdate`)})};function u(){l()}c=new window.YT.Player(s.id,{videoId:t,playerVars:{playsinline:0,autoplay:1,controls:1,modestbranding:1,rel:0,start:Math.floor(e)},events:{onReady:t=>{i(),t.target.seekTo(e,!0),t.target.playVideo()},onStateChange:e=>{let t=window.YT;t&&(e.data===t.PlayerState.ENDED?l():e.data===t.PlayerState.PAUSED?(document.removeEventListener(`pointerdown`,u,!0),document.addEventListener(`pointerdown`,u,{capture:!0,once:!0})):(document.removeEventListener(`pointerdown`,u,!0),i()))}}})}function O(){if(j()&&o){D();return}let t=ve(e);t&&M(t)}function k(){N()}return{el:i,play:S,pause:()=>o?.pauseVideo(),paused:()=>{if(!o)return!0;let e=window.YT;return!e||!be(e,d)},currentTime:()=>o?.getCurrentTime()??0,setCurrentTime:e=>{if(!o)return;let t=window.YT;t&&d===t.PlayerState.PAUSED&&(_.timeBefore=o.getCurrentTime()),_.active||(_.wasPaused=!t||!be(t,d)),o.seekTo(e,!0),n.trigger(`timeupdate`),n.trigger(`seeking`),_.active=!0,t&&d===t.PlayerState.PAUSED&&_.timeBefore!==e&&(_.catchUpInterval&&clearInterval(_.catchUpInterval),_.catchUpInterval=setInterval(()=>{d!==t.PlayerState.PAUSED||!_.active?_.catchUpInterval&&clearInterval(_.catchUpInterval):o&&o.getCurrentTime()!==_.timeBefore&&(n.trigger(`timeupdate`),C())},250))},duration:()=>o?.getDuration()??0,volume:()=>o?o.getVolume()/100:1,setVolume:e=>o?.setVolume(e*100),muted:()=>o?.isMuted()??!1,setMuted:e=>{o&&(e?o.mute():o.unMute(),v(()=>n.trigger(`volumechange`),50))},playbackRate:()=>o?.getPlaybackRate()??1,setPlaybackRate:e=>o?.setPlaybackRate(e),bufferedEnd:()=>o?.getVideoLoadedFraction?o.getVideoLoadedFraction()*o.getDuration():0,error:()=>p===null?null:{code:p,message:`This video could not be played.`},setSrc:e=>{let t=xe(e);a.videoId=t.videoId,a.listId=t.listId,a.videoId&&(c?(b(a.videoId),s=a.videoId):u=!0)},featuresPlaybackRate:()=>m,featuresCaptions:()=>!1,getCaptionTracks:()=>[],setCaptionTrack:()=>{},getActiveCaptionTrack:()=>null,featuresQuality:()=>!1,getQualityLevels:()=>[],getCurrentQuality:()=>null,isAutoQuality:()=>!0,setQuality:()=>{},featuresPip:()=>!1,isPipActive:()=>!1,togglePip:()=>{},enterFullscreen:O,exitFullscreen:k,on:n.on,off:n.off,dispose:()=>{if(h.forEach(clearTimeout),h.clear(),g&&clearInterval(g),_.catchUpInterval&&clearInterval(_.catchUpInterval),o)try{o.stopVideo(),o.destroy()}catch{}else{let e=we.indexOf(E);e!==-1&&we.splice(e,1)}o=null,_e(e,i,U),n.dispose()}}}function De(e){return e.match(/(?:vimeo\.com\/(?:video\/|channels\/[^/]+\/|groups\/[^/]+\/videos\/)?|player\.vimeo\.com\/video\/)(\d+)/)?.[1]??null}function Oe(e,t){let n=de(),{techId:r,wrapper:i}=he(e,W),a=De(t.src),o=null,s=0,c=0,l=1,u=!1,d=!0,f=1,p=!1,m=!1,h=!1,g=null,_=new Set;function v(e,t=0){let n=setTimeout(()=>{_.delete(n),e()},t);_.add(n)}function y(){if(!o){m=!0;return}o.play().catch(()=>{})}function b(){t.muted&&o?.setMuted(!0).catch(()=>{}),m&&y()}async function x(e){if(await pe(`https://player.vimeo.com/api/player.js`,`vimeo`),h||!window.Vimeo)return;let i={id:Number(e),byline:!1,portrait:!1,title:!1,transparent:!0,controls:!!t.nativeUi,autopause:!1,...t.autoplay!==void 0&&{autoplay:t.autoplay},...t.muted!==void 0&&{muted:t.muted}};o=new window.Vimeo.Player(r,i),t.autoplay&&(m=!0),o.ready().then(b).catch(e=>{g={code:4,message:e?.message||`This video is unavailable or cannot be embedded here.`},n.trigger(`error`)}),o.on(`play`,()=>{d=!1,n.trigger(`play`),n.trigger(`playing`)}),o.on(`pause`,()=>{d=!0,n.trigger(`pause`)}),o.on(`ended`,()=>{d=!0,n.trigger(`ended`)}),o.on(`timeupdate`,e=>{let{seconds:t,duration:r}=e;s=t,c=r,n.trigger(`timeupdate`),r&&!p&&(p=!0,n.trigger(`durationchange`))}),o.on(`loaded`,()=>{p=!1,n.trigger(`loadedmetadata`),n.trigger(`durationchange`)}),o.on(`seeking`,e=>{s=e.seconds,n.trigger(`seeking`)}),o.on(`seeked`,e=>{s=e.seconds,n.trigger(`seeked`),n.trigger(`timeupdate`)}),o.on(`bufferstart`,()=>n.trigger(`waiting`)),o.on(`bufferend`,()=>n.trigger(`canplay`)),o.on(`volumechange`,e=>{l=e.volume,n.trigger(`volumechange`)}),o.on(`error`,()=>n.trigger(`error`))}a&&x(a);function S(){if(!j()){let t=ve(e);t&&M(t);return}o?.requestFullscreen().catch(()=>{})}function C(){N()}return{el:i,play:y,pause:()=>o?.pause().catch(()=>{}),paused:()=>d,currentTime:()=>s,setCurrentTime:e=>{o?.setCurrentTime(e).catch(()=>{}),n.trigger(`timeupdate`),n.trigger(`seeking`)},duration:()=>c,volume:()=>l,setVolume:e=>{l=e,o?.setVolume(e).catch(()=>{})},muted:()=>u,setMuted:e=>{u=e,o?.setMuted(e).then(()=>v(()=>n.trigger(`volumechange`),50)).catch(()=>{})},playbackRate:()=>f,setPlaybackRate:e=>{f=e,o?.setPlaybackRate(e).catch(()=>{}),n.trigger(`ratechange`)},bufferedEnd:()=>s,error:()=>g,setSrc:()=>{},featuresPlaybackRate:()=>!1,featuresCaptions:()=>!1,getCaptionTracks:()=>[],setCaptionTrack:()=>{},getActiveCaptionTrack:()=>null,featuresQuality:()=>!1,getQualityLevels:()=>[],getCurrentQuality:()=>null,isAutoQuality:()=>!0,setQuality:()=>{},featuresPip:()=>!1,isPipActive:()=>!1,togglePip:()=>{},enterFullscreen:S,exitFullscreen:C,on:n.on,off:n.off,dispose:()=>{h=!0,_.forEach(clearTimeout),_.clear(),o?.destroy().catch(()=>{}),o=null,_e(e,i,W),n.dispose()}}}function ke(e){let t=e.match(/[?&]video=([a-zA-Z0-9]+)/);return t?t[1]:e.match(/(?:dailymotion\.com\/(?:embed\/)?video\/|dai\.ly\/)([a-zA-Z0-9]+)/)?.[1]??null}function Ae(e,t){let n=de(),{techId:r,wrapper:i}=he(e,G),a=ve(e),o=ke(t.src),s=typeof t.customVars?.playerId==`string`?t.customVars.playerId:void 0,c=null,l=0,u=0,d=1,f=!1,p=!0,m=!1,h=!1,g=null;async function _(){if(!o){g={code:4,message:`Could not parse video ID from source URL`},n.trigger(`error`);return}try{let e=await pe(s?`https://geo.dailymotion.com/libs/player/${s}.js`:`https://geo.dailymotion.com/libs/player.js`,s||`dailymotion-sdk`).then(()=>window.dailymotion);if(!e)return;let i=await e.createPlayer(r,{...s&&{player:s},video:o,params:{autoplay:!!t.autoplay,mute:!!t.muted}});c=i;let a=e.events;m&&i.play(),i.on(a.PLAYER_CRITICALPATHREADY,e=>{let t=e.videoThumbnails;if(!t)return;let r=Object.keys(t).map(Number).sort((e,t)=>t-e)[0],i=r===void 0?void 0:t[r];i&&n.trigger(`posterchange`,i)}),i.on(a.VIDEO_PLAY,()=>{p=!1,n.trigger(`play`),n.trigger(`playing`),!t.autoplay&&!h&&(h=!0,i.pause())}),i.on(a.VIDEO_PLAYING,()=>{p=!1,n.trigger(`play`),n.trigger(`playing`)}),i.on(a.VIDEO_PAUSE,()=>{p=!0,n.trigger(`pause`)}),a.VIDEO_BUFFERING&&i.on(a.VIDEO_BUFFERING,()=>n.trigger(`waiting`)),i.on(a.VIDEO_END,()=>{p=!0,n.trigger(`ended`)}),i.on(a.VIDEO_TIMECHANGE,e=>{l=e.videoTime??l,u=e.videoDuration??u,n.trigger(`timeupdate`)}),i.on(a.VIDEO_DURATIONCHANGE,e=>{u=e.videoDuration??u,n.trigger(`durationchange`)}),i.on(a.VIDEO_SEEKSTART,()=>n.trigger(`seeking`)),i.on(a.VIDEO_SEEKEND,e=>{l=e.videoTime??l,n.trigger(`seeked`)}),i.on(a.PLAYER_VOLUMECHANGE,e=>{d=e.playerVolume??d,f=e.playerIsMuted??f,n.trigger(`volumechange`)}),i.on(a.PLAYER_ERROR,()=>n.trigger(`error`)),a.AD_START&&i.on(a.AD_START,()=>{p=!1,n.trigger(`play`),n.trigger(`adstart`)}),a.AD_END&&i.on(a.AD_END,()=>n.trigger(`adend`))}catch(e){g={code:4,message:e instanceof Error?e.message:`This video could not be played.`},n.trigger(`error`)}}_();function v(){c?c.play():m=!0}function y(){if(j()){c?.setFullscreen(!0);return}a&&M(a)}function b(){if(j()){c?.setFullscreen(!1);return}N()}return{el:i,play:v,pause:()=>c?.pause(),paused:()=>p,currentTime:()=>l,setCurrentTime:e=>{l=e,c?.seek(e),n.trigger(`seeking`)},duration:()=>u,volume:()=>d,setVolume:e=>{d=e,c?.setVolume(e)},muted:()=>f,setMuted:e=>{f=e,c?.setMute(e)},playbackRate:()=>1,setPlaybackRate:()=>{},bufferedEnd:()=>l,error:()=>g,setSrc:()=>{},featuresPlaybackRate:()=>!1,featuresCaptions:()=>!1,getCaptionTracks:()=>[],setCaptionTrack:()=>{},getActiveCaptionTrack:()=>null,featuresQuality:()=>!1,getQualityLevels:()=>[],getCurrentQuality:()=>null,isAutoQuality:()=>!0,setQuality:()=>{},featuresPip:()=>!1,isPipActive:()=>!1,togglePip:()=>{},enterFullscreen:y,exitFullscreen:b,on:n.on,off:n.off,dispose:()=>{c?.destroy?.(),c=null,_e(e,i,G),n.dispose()}}}const je=[{test:e=>/youtu\.be|youtube\.com/.test(e),key:`youtube`,embed:!0},{test:e=>/vimeo\.com|player\.vimeo\.com/.test(e),key:`vimeo`,embed:!0},{test:e=>/dailymotion\.com|dai\.ly/.test(e),key:`dailymotion`,embed:!0},{test:e=>/cdn\.jwplayer\.com/.test(e)||e.startsWith(`jwplayer://`),key:`jwplayer`,embed:!1},{test:e=>/players\.brightcove\.net/.test(e),key:`brightcove`,embed:!1}];function Me(e){return je.find(t=>t.test(e))?.key??`html5`}function Ne(e){if(/\.m3u8(\?|#|$)/.test(e))return`application/x-mpegURL`;if(/\.mp4(\?|#|$)/.test(e))return`video/mp4`}function Pe(e){return je.find(t=>t.test(e))?.embed??!1}const Fe={youtube:Ee,vimeo:Oe,dailymotion:Ae};function Ie(e,t,n){let r=Fe[Me(e)];return r?r(t,n):null}async function Le(e){let t=Me(e);return t===`jwplayer`?ae(e):t===`brightcove`?ue(e):{src:e,type:Ne(e)}}function Re(e){return e.kind===`captions`||e.kind===`subtitles`}function ze(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];Re(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];Re(r)&&(r.mode=n===t?`showing`:`hidden`)}}function i(){for(let t=0;t<e.textTracks.length;t++){let n=e.textTracks[t];if(Re(n)&&n.mode===`showing`)return t}return null}return{featuresCaptions:()=>n().length>0,getCaptionTracks:n,setCaptionTrack:r,getActiveCaptionTrack:i,dispose:()=>{e.textTracks.removeEventListener(`addtrack`,t),e.textTracks.removeEventListener(`removetrack`,t)}}}function Be(e){function t(){return(e()?.levels??[]).map((e,t)=>({index:t,height:e.height,bitrate:e.bitrate,label:`${e.height}p`}))}function n(){return e()?.autoLevelEnabled??!0}function r(){let t=e();return t?n()?null:t.currentLevel:null}function i(t){let n=e();n&&(n.currentLevel=t??-1)}return{featuresQuality:()=>t().length>0,getQualityLevels:t,getCurrentQuality:r,isAutoQuality:n,setQuality:i}}function Ve(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=e.closest(`.player__shell`);n instanceof HTMLElement&&M(n)}function a(){let t=e;if(typeof t.webkitExitFullscreen==`function`){t.webkitExitFullscreen();return}N()}return{enterFullscreen:i,exitFullscreen:a,dispose:()=>{for(let[t,n]of r)e.removeEventListener(t,n)}}}function He(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{featuresPip:r,isPipActive:i,togglePip:a,dispose:()=>{for(let[t,r]of n)e.removeEventListener(t,r)}}}const Ue=`application/x-mpegURL`,We=[`play`,`pause`,`ended`,`error`,`timeupdate`,`durationchange`,`progress`,`volumechange`,`ratechange`,`seeking`,`seeked`,`waiting`,`playing`,`canplay`];function Ge(e,t){let n=de(),r=null,i=!1,a=null;async function o(o){let{default:s}=await import(`hls.js`);if(i||a!==o)return;if(typeof s?.isSupported!=`function`||!s.isSupported()){e.src=o,t.autoplay&&e.play();return}r=new s({liveDurationInfinity:!0}),r.loadSource(o),r.attachMedia(e),t.autoplay&&e.play();let c=s.Events,u=s.ErrorTypes;r.on(c.MANIFEST_PARSED,l(`qualitychange`)),r.on(c.LEVEL_SWITCHED,l(`qualitychange`)),r.on(c.ERROR,(e,t)=>{if(!(!t.fatal||i||a!==o))switch(t.type){case u.NETWORK_ERROR:r?.startLoad();break;case u.MEDIA_ERROR:r?.recoverMediaError();break;default:r?.destroy(),r=null,n.trigger(`error`);break}})}function s(){return/Apple/.test(navigator.vendor)&&!/CriOS|FxiOS|OPiOS|EdgiOS|Chrome|Chromium|Android/.test(navigator.userAgent)&&(e.canPlayType(`application/vnd.apple.mpegurl`)!==``||e.canPlayType(Ue)!==``)}function c(n,i){if(r?.destroy(),r=null,a=null,i===Ue&&!s()){a=n,o(n);return}e.src=n,t.autoplay&&e.play()}let l=e=>()=>n.trigger(e),u=We.map(e=>[e,l(e)]);for(let[t,n]of u)e.addEventListener(t,n);let d=ze(e,l(`captionschange`)),f=Be(()=>r),p=Ve(e,l(`nativefullscreenenter`),l(`nativefullscreenexit`)),m=He(e,l(`pipchange`));return e.poster=t.poster??``,e.muted=t.muted??t.autoplay??!1,e.playbackRate=t.playbackRate??1,e.playsInline=!0,c(t.src,t.type),{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:c,featuresPlaybackRate:()=>!0,featuresCaptions:d.featuresCaptions,getCaptionTracks:d.getCaptionTracks,setCaptionTrack:d.setCaptionTrack,getActiveCaptionTrack:d.getActiveCaptionTrack,featuresQuality:f.featuresQuality,getQualityLevels:f.getQualityLevels,getCurrentQuality:f.getCurrentQuality,isAutoQuality:f.isAutoQuality,setQuality:f.setQuality,featuresPip:m.featuresPip,isPipActive:m.isPipActive,togglePip:m.togglePip,enterFullscreen:p.enterFullscreen,exitFullscreen:p.exitFullscreen,on:n.on,off:n.off,dispose:()=>{i=!0,r?.destroy();for(let[t,n]of u)e.removeEventListener(t,n);d.dispose(),p.dispose(),m.dispose(),n.dispose()}}}const Ke=new Set;function qe(e){return Ke.add(e),()=>Ke.delete(e)}function Je(e){Ke.forEach(t=>{if(t!==e)try{t()}catch{}})}function Ye(e){let t=S(!1),n=S(!1);function r(){let e=document;t.value=!!(document.fullscreenElement||e.webkitFullscreenElement),n.value=!1}function i(){let n=e();if(n){if(t.value){n.exitFullscreen();return}n.enterFullscreen()}}function a(){n.value=!0}function o(e){e.on(B,()=>{n.value=!0}),e.on(V,()=>{n.value=!1}),e.on(`nativefullscreenenter`,()=>{t.value=!0,n.value=!1}),e.on(`nativefullscreenexit`,()=>{t.value=!1,n.value=!1})}return v(()=>{document.addEventListener(`fullscreenchange`,r),document.addEventListener(`webkitfullscreenchange`,r)}),_(()=>{document.removeEventListener(`fullscreenchange`,r),document.removeEventListener(`webkitfullscreenchange`,r)}),{isFullscreen:t,isFullscreenPending:n,toggleFullscreen:i,markFullscreenPending:a,attachPlayerEvents:o}}function Xe(){let e=S(!1),t=null;function n(){clearTimeout(t??void 0),e.value=!1}function r(r){r.on(`waiting`,()=>{clearTimeout(t??void 0),t=setTimeout(()=>{e.value=!0},500)}),r.on(`playing`,n),r.on(`canplay`,n)}return _(()=>clearTimeout(t??void 0)),{isBuffering:e,attachPlayerEvents:r,reset:n}}function Ze(e,t,n){let r=new Set;function i(){if(!t.value)return;let i=e.value/t.value;for(let[e,t]of re)!r.has(e)&&i>=e&&(r.add(e),n(t))}function a(){r.clear()}return{checkQuartiles:i,reset:a}}function Qe(){try{return JSON.parse(localStorage.getItem(`player:positions`)??`[]`)}catch{return[]}}function $e(e){localStorage.setItem(`player:positions`,JSON.stringify(e))}function et(e){return Qe().find(t=>t.url===e)?.time??null}function tt(e){$e(Qe().filter(t=>t.url!==e))}function nt(e,t,n){let r=!1;function i(t){if(r)return;let n=et(e);n&&t.setCurrentTime(n),r=!0}function a(e){!e||n.value}function o(){tt(e)}function s(){document.visibilityState===`hidden`&&a(t())}return v(()=>document.addEventListener(`visibilitychange`,s)),_(()=>{a(t()),document.removeEventListener(`visibilitychange`,s)}),{restoreOnce:i,save:a,clear:o}}function rt(e,t,n,r){let i=null;v(()=>{let a=e.value?.closest(`.player__shell`);a&&(i=new IntersectionObserver(([e])=>{let i=t();!e.isIntersecting&&i&&!i.paused()&&!n.value&&!r.value&&i.pause()},{threshold:.1}),i.observe(a))}),_(()=>i?.disconnect())}function it(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();t?.setMuted(!t.muted())}function l(t){let n=e();n&&(n.setVolume(t),n.setMuted(t===0))}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 at(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:x,supportsPip:S,isPipActive:C,hasStarted:w,isError:T,errorMessage:E}=e,{fire:D,pauseThisPlayer:O,positionMemory:k,quartiles:A,buffering:j,fullscreen:M}=t;function N(e){i.value=!0,m.value=e.featuresPlaybackRate();function t(){g.value=e.getCaptionTracks(),h.value=e.featuresCaptions();let t=e.getActiveCaptionTrack();t!==_.value&&(_.value=t,w.value&&D(`captionchange`,{captionIndex:t}))}t(),e.on(`captionschange`,t);function N(){y.value=e.getQualityLevels(),v.value=e.featuresQuality();let t=e.getCurrentQuality(),n=e.isAutoQuality(),r=t!==b.value||n!==x.value;b.value=t,x.value=n,r&&w.value&&D(`qualitychange`,{qualityIndex:n?null:t})}N(),e.on(`qualitychange`,N);function P(){S.value=e.featuresPip();let t=e.isPipActive();t!==C.value&&(C.value=t,w.value&&D(`pipchange`,{isPipActive:t}))}P(),e.on(`pipchange`,P);let F=()=>{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`,()=>{Je(O),a.value=!0,D(`adstart`)}),e.on(`adend`,()=>{a.value=!1,D(`adend`)}),e.on(`play`,()=>{Je(O),w.value=!0,n.value=!0,r.value=!1,o.value||k.restoreOnce(e),D(`play`)}),e.on(`pause`,()=>{n.value=!1,o.value||k.save(e),D(`pause`)}),e.on(`ended`,()=>{if(n.value=!1,A.reset(),j.reset(),f.value){e.setCurrentTime(0),e.play();return}c.value&&(s.value=c.value),r.value=!0,k.clear(),D(`ended`)}),e.on(`seeked`,()=>{D(`seeked`)}),e.on(`error`,()=>{let t=e.error();E.value=t?.message||`This video could not be played.`,T.value=!0,i.value=!0,D(`error`,{error:t})}),e.on(`timeupdate`,()=>{if(r.value)return;s.value=e.currentTime()??0,c.value||F(),m.value||=e.featuresPlaybackRate();let t=e.getActiveCaptionTrack();_.value!==t&&(_.value=t,w.value&&D(`captionchange`,{captionIndex:t})),o.value||A.checkQuartiles()}),e.on(`durationchange`,F),e.on(`progress`,()=>{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,w.value&&D(`volumechange`,{isMuted:t})}),e.on(`ratechange`,()=>{let t=e.playbackRate()??1;p.value=t,w.value&&D(`ratechange`,{playbackRate:t})}),j.attachPlayerEvents(e),M.attachPlayerEvents(e)}return{attachPlayerEvents:N}}function ot(){return window.google?.ima?Promise.resolve():new Promise((e,t)=>{let n=document.createElement(`script`);n.src=`https://imasdk.googleapis.com/js/sdkloader/ima3.js`,n.onload=()=>e(),n.onerror=()=>t(Error(`Failed to load Google IMA SDK`)),document.head.appendChild(n)})}function st(e,t,n,r){let i=document.createElement(`div`);i.className=`ima-ad-container`,e.appendChild(i);let a=n,o=null,s=null,c=null,l=!1,u=!1,d=!1,f=!1,p=!1,m=!1,h=1,g=new ResizeObserver(([e])=>{let t=window.google?.ima;if(!c||!t)return;let{width:n,height:r}=e.contentRect;c.resize(n,r,t.ViewMode.NORMAL)});g.observe(t);function _(){s?.contentComplete()}function v(t){f=t,e.classList.toggle(K,t),t||(p=!1,e.classList.remove(q))}function y(){if(l||!u||!d||!o||!s||!a)return;l=!0;let e=window.google?.ima;if(!e)return;o.initialize();let t=new e.AdsRequest;t.adTagUrl=a,s.requestAds(t)}function b(e){a=e,y()}ot().then(()=>{if(m)return;let n=window.google?.ima;n&&(o=new n.AdDisplayContainer(i,t),s=new n.AdsLoader(o),u=!0,s.addEventListener(n.AdsManagerLoadedEvent.Type.ADS_MANAGER_LOADED,i=>{if(m)return;let a=new n.AdsRenderingSettings;a.restoreCustomPlaybackStateOnAdBreakComplete=!0,c=i.getAdsManager(t,a),t.addEventListener(`ended`,_),c.addEventListener(n.AdEvent.Type.CONTENT_PAUSE_REQUESTED,()=>{t.removeEventListener(`ended`,_),t.pause(),v(!0),r.onAdStart();let e=c?.getVolume()??1;e>0&&(h=e),r.onAdMuteChange(e===0)}),c.addEventListener(n.AdEvent.Type.CONTENT_RESUME_REQUESTED,()=>{t.addEventListener(`ended`,_),v(!1),r.onAdEnd(),t.ended||t.play()}),c.addEventListener(n.AdEvent.Type.PAUSED,()=>{p=!0,e.classList.add(q),r.onAdPauseChange(!0)}),c.addEventListener(n.AdEvent.Type.RESUMED,()=>{p=!1,e.classList.remove(q),r.onAdPauseChange(!1)}),c.addEventListener(n.AdEvent.Type.AD_PROGRESS,()=>{r.onAdProgress(c?.getRemainingTime()??0)}),c.addEventListener(n.AdErrorEvent.Type.AD_ERROR,e=>{v(!1),r.onError(e.getError().getMessage()),t.play()});try{c.init(t.clientWidth,t.clientHeight,n.ViewMode.NORMAL),c.start()}catch(e){r.onError(e instanceof Error?e.message:`Ad playback failed to start.`)}}),s.addEventListener(n.AdErrorEvent.Type.AD_ERROR,e=>{r.onError(e.getError().getMessage())}),y())}).catch(e=>r.onError(e.message));function x(){d=!0,y()}function S(){if(!c)return;let e=c.getVolume();e>0?(h=e,c.setVolume(0)):c.setVolume(h||1),r.onAdMuteChange(c.getVolume()===0)}return{isAdPlaying:()=>f,isAdPaused:()=>p,requestAdsOnFirstPlay:x,setAdTagUrl:b,pauseAd:()=>c?.pause(),resumeAd:()=>c?.resume(),toggleAdMute:S,dispose:()=>{m=!0,g.disconnect(),t.removeEventListener(`ended`,_),c?.destroy(),s?.destroy(),i.remove(),e.classList.remove(K,q)}}}function ct(e,t){let n=window.pbjs;if(!n)return Promise.resolve(t);let r=e.timeoutMs??1e3;return new Promise(i=>{let a=!1;function o(e){a||(a=!0,i(e||t))}let s=setTimeout(()=>o(t),r);n.que.push(()=>{try{n.addAdUnits(e.adUnit),n.requestBids({adUnitCodes:[e.adUnit.code],timeout:r,bidsBackHandler:()=>{clearTimeout(s);try{o(n.adServers?.gam?.buildVideoUrl({adUnit:e.adUnit,params:e.params}))}catch{o(t)}}})}catch{clearTimeout(s),o(t)}})})}function lt(e,t){let{isAdPlaying:n,isAdPaused:r,isAdMuted:i,adRemainingTime:a}=e,{fire:o,pauseThisPlayer:s}=t,c=null,l=null;function u(e,t,u,d){if(!(u||d)||!e.parentElement)return;d&&ct(d,u).catch(()=>u).then(e=>c?.setAdTagUrl(e));function f(){!j()&&t.isPipActive()&&document.exitPictureInPicture()}function p(){!j()&&(document.hidden||!document.hasFocus())&&c?.isAdPlaying()&&c.pauseAd()}document.addEventListener(`visibilitychange`,p),window.addEventListener(`blur`,p);let m=()=>{t.isPipActive()||p()};t.on(`pipchange`,m),l=()=>{document.removeEventListener(`visibilitychange`,p),window.removeEventListener(`blur`,p),t.off(`pipchange`,m)},c=st(e.parentElement,e,u,{onAdStart:()=>{n.value=!0,r.value=!1,o(`adstart`),f(),p()},onAdEnd:()=>{n.value=!1,r.value=!1,a.value=0,o(`adend`)},onAdPauseChange:e=>{r.value=e,e||Je(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)}}),t.on(`play`,()=>c?.requestAdsOnFirstPlay())}return{attach:u,isAdPlaying:()=>c?.isAdPlaying()??!1,isAdPaused:()=>c?.isAdPaused()??!1,pauseAd:()=>c?.pauseAd(),resumeAd:()=>c?.resumeAd(),toggleAdMute:()=>c?.toggleAdMute(),dispose:()=>{c?.dispose(),c=null,l?.(),l=null}}}function ut(e,t,r){let i=null,a=null,o=null,s=S(!1),c=S(!1),l=S(!1),u=S(!1),d=S(!1),f=S(!1),p=S(0),m=S(!1),h=S(0),g=S(0),y=S(0),b=S(1),x=S(t.muted??t.autoplay??!1),C=S(!1),w=S(t.playbackRate??1),T=S(!1),E=S(!1),D=S([]),k=S(null),A=S(!1),j=S([]),M=S(null),N=S(!0),P=S(!1),I=S(!1),L=S(!1),R=S(!1),z=S(``),B=S(!1),V=n(()=>g.value?h.value/g.value*100:0),H=n(()=>Math.max(y.value,V.value)),U=()=>i,W=Ye(U),G=Xe(),K=nt(t.videoUrl,U,c);function q(e,n={}){r(`state-change`,{type:e,currentTime:h.value,duration:g.value,src:t.videoUrl,...n,payload:t.payload})}let te=Ze(h,g,q);function ne(){!i||!o||(R.value=!1,z.value=``,i.setSrc(o.src,o.type))}function re(){if(J.isAdPlaying()){J.pauseAd();return}i?.pause()}function ie(){if(J.isAdPlaying()){J.isAdPaused()?J.resumeAd():J.pauseAd();return}Y.togglePlay()}let J=lt({isAdPlaying:u,isAdPaused:d,isAdMuted:f,adRemainingTime:p},{fire:q,pauseThisPlayer:re}),Y=it(U,l,g,C,w,s),{attachPlayerEvents:ae}=at({isPlaying:s,hasEnded:c,isReady:l,isAdPlaying:u,isLive:m,current:h,total:g,buffered:y,vol:b,isMuted:x,isLooping:C,playbackRate:w,supportsPlaybackRate:T,supportsCaptions:E,captionTracks:D,activeCaptionIndex:k,supportsQuality:A,qualityLevels:j,currentQualityIndex:M,isAutoQuality:N,supportsPip:P,isPipActive:I,hasStarted:L,isError:R,errorMessage:z},{fire:q,pauseThisPlayer:re,positionMemory:K,quartiles:te,buffering:G,fullscreen:W});function oe(e){i?.setCaptionTrack(e),k.value=e,L.value&&q(`captionchange`,{captionIndex:e})}function se(e){i?.setQuality(e),M.value=e,N.value=e===null,L.value&&q(`qualitychange`,{qualityIndex:e})}function ce(){i?.togglePip()}function le(){Y.toggleLoop(),L.value&&q(`loopchange`,{isLooping:C.value})}return O(()=>t.muted,e=>{!i||e===void 0||i.setMuted(e)}),O(()=>t.playbackRate,e=>{!i||e===void 0||i.setPlaybackRate(e)}),rt(e,U,W.isFullscreen,W.isFullscreenPending),O(L,t=>{!t||!e.value||!i||i.el===e.value||ge(e.value,i.el)}),v(async()=>{if(Pe(t.videoUrl)){if(!e.value)return;let n=Ie(t.videoUrl,e.value,{src:t.videoUrl,poster:t.poster,autoplay:t.autoplay,muted:t.muted??t.autoplay,nativeUi:t.nativeUi});if(!n){R.value=!0,l.value=!0,z.value=`This platform is not yet supported.`;return}B.value=!!t.nativeUi,i=n,o={src:t.videoUrl},a=qe(re),ae(i);return}let n=await Le(t.videoUrl).catch(()=>({src:t.videoUrl}));if(!e.value)return;o={src:n.src,type:n.type},i=Ge(e.value,{src:n.src,type:n.type,poster:n.poster||t.poster||``,autoplay:t.autoplay,muted:t.muted??t.autoplay,playbackRate:w.value});let r=F(t.adTagUrl||n.adTagUrl||``,t.adTagParams);J.attach(e.value,i,r,t.headerBidding),a=qe(re),ae(i)}),_(()=>{a?.(),J.dispose(),i?.dispose(),i=null}),{isPlaying:s,hasEnded:c,isReady:l,isAdPlaying:u,isAdPaused:d,isAdMuted:f,adRemainingTime:p,isLive:m,isBuffering:G.isBuffering,current:h,total:g,vol:b,isMuted:x,isLooping:C,playbackRate:w,hasStarted:L,isError:R,errorMessage:z,progress:V,bufferedDisplay:H,isFullscreen:W.isFullscreen,isFullscreenPending:W.isFullscreenPending,fmt:ee,fire:q,retry:ne,togglePlay:ie,seek:Y.seek,toggleMute:Y.toggleMute,setVolume:Y.setVolume,toggleFullscreen:W.toggleFullscreen,markFullscreenPending:W.markFullscreenPending,toggleLoop:le,toggleAdMute:J.toggleAdMute,setPlaybackRate:Y.setPlaybackRate,supportsPlaybackRate:T,supportsCaptions:E,captionTracks:D,activeCaptionIndex:k,setCaptionTrack:oe,supportsQuality:A,qualityLevels:j,currentQualityIndex:M,isAutoQuality:N,setQuality:se,supportsPip:P,isPipActive:I,togglePip:ce,nativeUi:B}}function dt(e){let t=S(!0),n=S(!1),r=null,i=0;function a(e=400){i=Date.now()+e}function o(e=3500){clearTimeout(r??void 0),r=setTimeout(()=>{t.value=!1,n.value=!1},e)}function s(){clearTimeout(r??void 0)}function c(){n.value=!0,t.value=!0,o()}function l(){n.value=!1,e.value&&o()}function u(){e.value&&o()}function d(){t.value=!0,e.value&&o()}function f(){t.value=!0,o()}function p(){Date.now()<i||e.value&&o(600)}return O(e,e=>{if(!e){clearTimeout(r??void 0),t.value=!0;return}o()}),_(()=>clearTimeout(r??void 0)),{showHUD:t,isOpen:n,scheduleHide:o,pauseHide:s,onVideoTap:d,onMouseMove:f,onMouseLeave:p,openControls:c,closeControls:l,keepOpen:u,suppressMouseLeave:a}}const X=Symbol(`player`),Z=Symbol(`hud`),ft=Symbol(`action`),pt=Symbol(`compact`),mt=Symbol(`playlist`);function Q(e){let t=d(e);if(t===void 0)throw Error(`[video-player] missing "${String(e.description)}" context — this component must be rendered inside <VideoPlayer>`);return t}function ht(e,t){return{hudVisible:n(()=>!e.isReady||e.isError?!1:t.showHUD),popupVisible:n(()=>!e.isReady||e.isError?!1:e.isFullscreen?t.showHUD:t.isOpen)}}function gt(e,t){return n(()=>!(!e?.value||t.isFullscreen))}function _t(e,t,r){let i=n(()=>e?.value??null),a=n(()=>!!i.value&&typeof i.value==`object`),o=n(()=>a.value?i.value:null),s=n(()=>i.value===`mute`?t.isMuted?`Unmute`:`Mute`:i.value===`loop`?t.isLooping?`Disable loop`:`Loop`:i.value===`autoplay`?r.autoAdvance?`Disable autoplay next`:`Autoplay next`:``),c=n(()=>i.value===`mute`?t.isMuted:i.value===`loop`?t.isLooping:i.value===`autoplay`&&r.autoAdvance);function l(){i.value===`mute`?t.toggleMute():i.value===`loop`?t.toggleLoop():i.value===`autoplay`&&r.toggleAutoAdvance()}return{currentAction:i,isCustom:a,customAction:o,builtinLabel:s,builtinActive:c,onBuiltinClick:l}}var $=(e,t)=>{let n=e.__vccOpts||e;for(let[e,r]of t)n[e]=r;return n};const vt={},yt={viewBox:`0 0 24 24`,fill:`currentColor`};function bt(e,t){return y(),a(`svg`,yt,[...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 xt=$(vt,[[`render`,bt]]);const St={},Ct={viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`2`,"stroke-linecap":`round`,"stroke-linejoin":`round`};function wt(e,t){return y(),a(`svg`,Ct,[...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 Tt=$(St,[[`render`,wt]]);const Et={},Dt={viewBox:`0 0 24 24`,fill:`currentColor`};function Ot(e,t){return y(),a(`svg`,Dt,[...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 kt=$(Et,[[`render`,Ot]]);const At={},jt={viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`2`,"stroke-linecap":`round`,"stroke-linejoin":`round`};function Mt(e,t){return y(),a(`svg`,jt,[...t[0]||=[s(`<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 Nt=$(At,[[`render`,Mt]]);const Pt={},Ft={viewBox:`0 0 24 24`,fill:`currentColor`};function It(e,t){return y(),a(`svg`,Ft,[...t[0]||=[o(`path`,{d:`M4 12l1.41 1.41L11 7.83V20h2V7.83l5.59 5.58L20 12l-8-8-8 8z`},null,-1)]])}var Lt=$(Pt,[[`render`,It]]);const Rt={},zt={viewBox:`0 0 24 24`,fill:`currentColor`};function Bt(e,t){return y(),a(`svg`,zt,[...t[0]||=[o(`path`,{d:`M7 14H5v5h5v-2H7v-3zm-2-4h2V7h3V5H5v5zm12 7h-3v2h5v-5h-2v3zM14 5v2h3v3h2V5h-5z`},null,-1)]])}var Vt=$(Rt,[[`render`,Bt]]);const Ht={},Ut={viewBox:`0 0 24 24`,fill:`currentColor`};function Wt(e,t){return y(),a(`svg`,Ut,[...t[0]||=[o(`path`,{d:`M5 16h3v3h2v-5H5v2zm3-8H5v2h5V5H8v3zm6 11h2v-3h3v-2h-5v5zm2-11V5h-2v5h5V8h-3z`},null,-1)]])}var Gt=$(Ht,[[`render`,Wt]]);const Kt={},qt={viewBox:`0 0 24 24`,fill:`currentColor`};function Jt(e,t){return y(),a(`svg`,qt,[...t[0]||=[o(`path`,{d:`M7 7h10v3l4-4-4-4v3H5v6h2V7zm10 10H7v-3l-4 4 4 4v-3h12v-6h-2v4z`},null,-1)]])}var Yt=$(Kt,[[`render`,Jt]]);const Xt={},Zt={viewBox:`0 0 24 24`,fill:`currentColor`};function Qt(e,t){return y(),a(`svg`,Zt,[...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 $t=$(Xt,[[`render`,Qt]]);const en={},tn={viewBox:`0 0 24 24`,fill:`currentColor`};function nn(e,t){return y(),a(`svg`,tn,[...t[0]||=[o(`path`,{d:`M6 19h4V5H6v14zm8-14v14h4V5h-4z`},null,-1)]])}var rn=$(en,[[`render`,nn]]);const an={},on={viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`2`,"stroke-linecap":`round`,"stroke-linejoin":`round`};function sn(e,t){return y(),a(`svg`,on,[...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 cn=$(an,[[`render`,sn]]);const ln={},un={viewBox:`0 0 24 24`,fill:`currentColor`};function dn(e,t){return y(),a(`svg`,un,[...t[0]||=[o(`path`,{d:`M8 5v14l11-7z`},null,-1)]])}var fn=$(ln,[[`render`,dn]]);const pn={},mn={viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`2`,"stroke-linecap":`round`,"stroke-linejoin":`round`};function hn(e,t){return y(),a(`svg`,mn,[...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 gn=$(pn,[[`render`,hn]]);const _n={},vn={viewBox:`0 0 24 24`,fill:`currentColor`};function yn(e,t){return y(),a(`svg`,vn,[...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 bn=$(_n,[[`render`,yn]]);const xn={},Sn={viewBox:`0 0 24 24`,fill:`currentColor`};function Cn(e,t){return y(),a(`svg`,Sn,[...t[0]||=[o(`path`,{d:`M6 18l8.5-6L6 6v12zM16 6v12h2V6h-2z`},null,-1)]])}var wn=$(xn,[[`render`,Cn]]);const Tn={},En={viewBox:`0 0 24 24`,fill:`currentColor`};function Dn(e,t){return y(),a(`svg`,En,[...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 On=$(Tn,[[`render`,Dn]]);const kn={},An={viewBox:`0 0 24 24`,fill:`currentColor`};function jn(e,t){return y(),a(`svg`,An,[...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 Mn=$(kn,[[`render`,jn]]);const Nn=[`aria-label`];var Pn=$(u({__name:`PlayPauseButton`,props:{isPlaying:{type:Boolean,required:!0},hasEnded:{type:Boolean,required:!1,default:!1},size:{type:String,required:!1,default:`sm`}},emits:[`toggle-play`],setup(e){let t=e,i=n(()=>t.isPlaying?`Pause`:t.hasEnded?`Replay`:`Play`);return(t,n)=>(y(),a(`button`,{class:m([`ppbtn`,`ppbtn--${e.size}`]),"aria-label":i.value,onClick:n[0]||=A(e=>t.$emit(`toggle-play`),[`stop`])},[e.isPlaying?(y(),r(D(rn),{key:0})):e.hasEnded?(y(),r(D(bn),{key:1})):(y(),r(D(fn),{key:2}))],10,Nn))}}),[[`__scopeId`,`data-v-85902525`]]),Fn=u({__name:`VolumeIcon`,setup(e){let t=Q(X),i=n(()=>!t.isMuted&&t.vol>0);return(e,t)=>i.value?(y(),r(D(Mn),{key:0})):(y(),r(D(On),{key:1}))}}),In=$(u({__name:`Spinner`,props:{size:{type:Number,required:!1,default:14},borderWidth:{type:Number,required:!1,default:2}},setup(e){return(t,n)=>(y(),a(`div`,{class:`spinner`,style:g({width:`${e.size}px`,height:`${e.size}px`,borderWidth:`${e.borderWidth}px`})},null,4))}}),[[`__scopeId`,`data-v-259be2b2`]]);const Ln={class:`hud`},Rn=[`aria-label`],zn=[`aria-label`],Bn=[`aria-label`],Vn=[`aria-label`,`innerHTML`],Hn={key:4,class:`hud__spacer`},Un={class:`hud__play-wrap`};var Wn=$(u({__name:`HudButtons`,setup(t){let n=Q(X),s=Q(Z),{currentAction:c,isCustom:u,customAction:f,builtinLabel:p,builtinActive:h,onBuiltinClick:g}=_t(d(ft),n,Q(mt));return(t,d)=>(y(),a(`div`,Ln,[!D(s).isOpen&&!D(n).isFullscreen?(y(),a(e,{key:0},[D(c)===`mute`?(y(),a(`button`,{key:0,class:m([`hud__btn`,{"hud__btn--active":D(h)}]),"aria-label":D(p),onClick:d[0]||=A((...e)=>D(g)&&D(g)(...e),[`stop`])},[l(Fn)],10,Rn)):D(c)===`loop`?(y(),a(`button`,{key:1,class:m([`hud__btn`,{"hud__btn--active":D(h)}]),"aria-label":D(p),onClick:d[1]||=A((...e)=>D(g)&&D(g)(...e),[`stop`])},[l(D(Yt))],10,zn)):D(c)===`autoplay`?(y(),a(`button`,{key:2,class:m([`hud__btn`,{"hud__btn--active":D(h)}]),"aria-label":D(p),onClick:d[2]||=A((...e)=>D(g)&&D(g)(...e),[`stop`])},[l(D(wn))],10,Bn)):D(u)&&D(f)?(y(),a(`button`,{key:3,class:`hud__btn`,"aria-label":D(f).label,onClick:d[3]||=A(e=>D(f).onClick(),[`stop`]),innerHTML:D(f).icon},null,8,Vn)):(y(),a(`div`,Hn))],64)):i(`v-if`,!0),o(`div`,Un,[l(Pn,{"is-playing":D(n).isPlaying,"has-ended":D(n).hasEnded,size:`lg`,onTogglePlay:D(n).togglePlay},null,8,[`is-playing`,`has-ended`,`onTogglePlay`]),D(n).isBuffering?(y(),r(In,{key:0,class:`hud__buf-spinner`})):i(`v-if`,!0)]),!D(s).isOpen&&!D(n).isFullscreen?(y(),a(`button`,{key:1,class:`hud__btn`,"aria-label":`Show controls`,onClick:d[4]||=A((...e)=>D(s).openControls&&D(s).openControls(...e),[`stop`])},[l(D(Nt))])):i(`v-if`,!0)]))}}),[[`__scopeId`,`data-v-a6d118e7`]]);function Gn(e){let t=S(null),r=n(()=>t.value??e.progress),i=null;function a(){i&&clearTimeout(i),i=null,t.value=null}function o(e){i&&clearTimeout(i),i=null,t.value=Number(e.target.value)}function s(n){let r=Number(n.target.value);t.value=r,e.seek(r),i&&clearTimeout(i),i=setTimeout(a,3e3)}return O(()=>e.current,()=>{if(t.value===null||!e.total)return;let n=t.value/100*e.total;Math.abs(e.current-n)<1&&a()}),_(a),{displaySeek:r,onSeekInput:o,onSeekChange:s}}function Kn(e,t,n){if(!document.startViewTransition||!e.value){n();return}e.value.style.viewTransitionName=t,document.startViewTransition(async()=>{n(),await p()}).finished.finally(()=>{e.value&&(e.value.style.viewTransitionName=``)})}const qn={class:`controls__vol-header`},Jn=[`aria-label`],Yn={class:`controls__vol-body`},Xn=[`value`],Zn={class:`controls__vol-pct`};var Qn=$(u({__name:`VolumePanel`,emits:[`back`],setup(t){let r=Q(X),i=Q(Z),s=n(()=>r.isMuted?0:Math.round(r.vol*100));function c(e){r.setVolume(Number(e.target.value)/100)}return(t,n)=>(y(),a(e,null,[o(`div`,qn,[o(`button`,{class:`controls__btn`,"aria-label":`Back`,onClick:n[0]||=e=>t.$emit(`back`)},[l(D(xt))]),n[6]||=o(`span`,{class:`controls__vol-label`},`Volume`,-1),o(`button`,{class:`controls__btn`,"aria-label":D(r).isMuted?`Unmute`:`Mute`,onClick:n[1]||=e=>D(r).toggleMute()},[l(Fn)],8,Jn)]),o(`div`,Yn,[o(`input`,{type:`range`,min:`0`,max:`100`,step:`1`,value:s.value,class:`controls__vol-slider`,style:g({"--v":s.value+`%`}),"aria-label":`Volume`,onInput:c,onMousedown:n[2]||=e=>D(i).pauseHide(),onMouseup:n[3]||=e=>D(i).scheduleHide(),onTouchstartPassive:n[4]||=e=>D(i).pauseHide(),onTouchend:n[5]||=e=>D(i).scheduleHide()},null,44,Xn),o(`span`,Zn,T(s.value)+`%`,1)])],64))}}),[[`__scopeId`,`data-v-10b0ae67`]]);function $n(e){function t(){let t=ne.indexOf(e.playbackRate);e.setPlaybackRate(ne[(t+1)%ne.length])}function n(e){return`${e}×`}return{cycleRate:t,fmtRate:n}}function er(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 tr(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`],rr={key:0,class:`controls__more-row-label`},ir=[`innerHTML`],ar={key:1},or={key:2,class:`controls__more-value`};var sr=$(u({__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)=>(y(),a(`button`,{class:m([`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?(y(),a(`span`,rr,[e.icon?(y(),r(w(e.icon),{key:0,class:`controls__more-row-icon`})):(y(),a(`span`,{key:1,class:`controls__more-row-icon`,innerHTML:e.iconHtml},null,8,ir)),c(` `+T(e.label),1)])):(y(),a(`span`,ar,T(e.label),1)),e.value===void 0?i(`v-if`,!0):(y(),a(`span`,or,T(e.value),1))],10,nr))}}),[[`__scopeId`,`data-v-47ca5bfc`]]);const cr={class:`controls__more-header`};var lr=$(u({__name:`MoreMenu`,props:{isCustom:{type:Boolean,required:!0},customAction:{type:[Object,null],required:!0}},emits:[`back`],setup(t){let n=Q(X),s=Q(Z),c=Q(mt),{cycleRate:u,fmtRate:d}=$n(n),{cycleCaptionTrack:f,currentCaptionLabel:p}=er(n),{cycleQuality:m,currentQualityLabel:h}=tr(n);return(g,_)=>(y(),a(e,null,[o(`div`,cr,[o(`button`,{class:`controls__btn`,"aria-label":`Back`,onClick:_[0]||=e=>g.$emit(`back`)},[l(D(xt))]),_[5]||=o(`span`,{class:`controls__more-label`},`More`,-1)]),o(`div`,{class:`controls__more-body`,onTouchstartPassive:_[4]||=e=>D(s).keepOpen()},[D(n).supportsPlaybackRate?(y(),r(sr,{key:0,label:`Playback speed`,value:D(d)(D(n).playbackRate),onClick:D(u)},null,8,[`value`,`onClick`])):i(`v-if`,!0),l(sr,{label:`Loop`,"aria-label":`Toggle loop`,icon:D(Yt),active:D(n).isLooping,value:D(n).isLooping?`On`:`Off`,onClick:_[1]||=e=>D(n).toggleLoop()},null,8,[`icon`,`active`,`value`]),D(n).supportsCaptions?(y(),r(sr,{key:1,label:`Captions`,icon:D(Tt),active:D(n).activeCaptionIndex!==null,value:D(p)(),onClick:D(f)},null,8,[`icon`,`active`,`value`,`onClick`])):i(`v-if`,!0),D(n).supportsQuality?(y(),r(sr,{key:2,label:`Quality`,icon:D(gn),active:!D(n).isAutoQuality,value:D(h)(),onClick:D(m)},null,8,[`icon`,`active`,`value`,`onClick`])):i(`v-if`,!0),D(c).hasPlaylist?(y(),r(sr,{key:3,label:`Autoplay next`,"aria-label":`Toggle autoplay next`,icon:D(wn),active:D(c).autoAdvance,value:D(c).autoAdvance?`On`:`Off`,onClick:_[2]||=e=>D(c).toggleAutoAdvance()},null,8,[`icon`,`active`,`value`])):i(`v-if`,!0),t.isCustom&&t.customAction?(y(),r(sr,{key:4,label:t.customAction.label,"icon-html":t.customAction.icon,onClick:_[3]||=e=>t.customAction.onClick()},null,8,[`label`,`icon-html`])):i(`v-if`,!0)],32)],64))}}),[[`__scopeId`,`data-v-e89a8208`]]);const ur=[`value`],dr={class:`controls__row`},fr={class:`controls__play-wrap`},pr={key:0,class:`controls__live`},mr={key:1,class:`controls__time`},hr=[`aria-label`],gr={class:`controls__fs-wrap`},_r=[`aria-label`];var vr=$(u({__name:`ControlsPopup`,setup(t){let n=Q(X),s=Q(Z),u=Q(mt),f=gt(d(pt),n),{isCustom:p,customAction:h}=_t(d(ft),n,u),b=S(!1),x=S(!1),C=S(null);function w(e){return!C.value||C.value.contains(e)?!1:(s.closeControls(),!0)}function E(e){w(e.target)}function O(e){w(e.target)&&e.preventDefault()}v(()=>{n.fire(`controlsopen`,{element:C.value}),document.addEventListener(`click`,E,!0),document.addEventListener(`touchend`,O,!0)}),_(()=>{b.value=!1,x.value=!1,n.fire(`controlsclose`,{element:C.value}),document.removeEventListener(`click`,E,!0),document.removeEventListener(`touchend`,O,!0)});function k(e){s.suppressMouseLeave(),Kn(C,`controls-popup`,e)}function M(){if(j()){n.toggleMute();return}k(()=>{b.value=!0})}function N(){k(()=>{x.value=!0})}let{displaySeek:P,onSeekInput:F,onSeekChange:ee}=Gn(n);function I(){n.isFullscreen||n.markFullscreenPending(),n.toggleFullscreen()}return(t,d)=>(y(),a(`div`,{ref_key:`popupEl`,ref:C,class:m([`controls`,{"controls--fs":D(n).isFullscreen,"controls--compact":D(f)}]),onMousemove:d[11]||=A((...e)=>D(s).keepOpen&&D(s).keepOpen(...e),[`stop`])},[b.value?(y(),r(Qn,{key:0,onBack:d[0]||=e=>k(()=>b.value=!1)})):x.value?(y(),r(lr,{key:1,"is-custom":D(p),"custom-action":D(h),onBack:d[1]||=e=>k(()=>x.value=!1)},null,8,[`is-custom`,`custom-action`])):(y(),a(e,{key:2},[D(n).isLive?i(`v-if`,!0):(y(),a(`input`,{key:0,type:`range`,min:`0`,max:`100`,value:D(P),class:`controls__seek`,style:g({"--p":D(P)+`%`,"--b":D(n).bufferedDisplay+`%`}),onInput:d[2]||=(...e)=>D(F)&&D(F)(...e),onChange:d[3]||=(...e)=>D(ee)&&D(ee)(...e),onMousedown:d[4]||=e=>D(s).pauseHide(),onMouseup:d[5]||=e=>D(s).scheduleHide(),onTouchstartPassive:d[6]||=e=>D(s).pauseHide(),onTouchend:d[7]||=e=>D(s).scheduleHide()},null,44,ur)),o(`div`,dr,[o(`div`,fr,[D(n).isBuffering?(y(),r(In,{key:0})):(y(),r(Pn,{key:1,"is-playing":D(n).isPlaying,"has-ended":D(n).hasEnded,size:`sm`,onTogglePlay:d[8]||=e=>D(n).togglePlay()},null,8,[`is-playing`,`has-ended`]))]),D(n).isLive?(y(),a(`span`,pr,[...d[12]||=[o(`span`,{class:`controls__live-dot`},null,-1),c(`Live`,-1)]])):(y(),a(`span`,mr,T(D(n).fmt(D(n).current))+` / `+T(D(n).fmt(D(n).total)),1)),D(u).hasNext?(y(),a(`button`,{key:2,class:`controls__btn`,"aria-label":`Play next`,onClick:d[9]||=e=>D(u).playNext()},[l(D(wn))])):i(`v-if`,!0),o(`button`,{class:`controls__btn`,"aria-label":`Volume`,onClick:M},[l(Fn)]),o(`button`,{class:m([`controls__btn controls__btn--more`,{"controls__btn--active":D(n).isLooping||D(n).playbackRate!==1||D(u).autoAdvance}]),"aria-label":`More`,onClick:N},[l(D($t))],2),D(n).supportsPip?(y(),a(`button`,{key:3,class:m([`controls__btn controls__btn--pip`,{"controls__btn--active":D(n).isPipActive}]),"aria-label":D(n).isPipActive?`Exit picture-in-picture`:`Picture-in-picture`,onClick:d[10]||=e=>D(n).togglePip()},[l(D(cn))],10,hr)):i(`v-if`,!0),o(`div`,gr,[D(n).isFullscreenPending?(y(),r(In,{key:0})):(y(),a(`button`,{key:1,class:`controls__btn`,"aria-label":D(n).isFullscreen?`Exit fullscreen`:`Fullscreen`,onClick:I},[D(n).isFullscreen?(y(),r(D(Gt),{key:0})):(y(),r(D(Vt),{key:1}))],8,_r))])])],64))],34))}}),[[`__scopeId`,`data-v-5712aad4`]]);const yr={class:`ad-overlay`},br={class:`ad-overlay__bar`},xr={class:`ad-overlay__badge`},Sr={key:0,class:`ad-overlay__countdown`},Cr=[`aria-label`],wr=[`aria-label`];var Tr=$(u({__name:`AdOverlay`,setup(e){let t=Q(X),s=n(()=>t.adRemainingTime>0?t.fmt(t.adRemainingTime):``);return(e,n)=>(y(),a(`div`,yr,[o(`div`,br,[o(`div`,xr,[n[2]||=o(`span`,null,`Ad`,-1),s.value?(y(),a(`span`,Sr,T(s.value),1)):i(`v-if`,!0)]),o(`button`,{class:`ad-overlay__btn`,"aria-label":D(t).isAdPaused?`Resume ad`:`Pause ad`,onClick:n[0]||=e=>D(t).togglePlay()},[D(t).isAdPaused?(y(),r(D(fn),{key:0})):(y(),r(D(rn),{key:1}))],8,Cr),o(`button`,{class:`ad-overlay__btn`,"aria-label":D(t).isAdMuted?`Unmute ad`:`Mute ad`,onClick:n[1]||=e=>D(t).toggleAdMute()},[D(t).isAdMuted?(y(),r(D(On),{key:0})):(y(),r(D(Mn),{key:1}))],8,wr)])]))}}),[[`__scopeId`,`data-v-23efcc8b`]]);const Er={key:0,class:`overlay__spinner`},Dr={key:0,class:`overlay__error`};var Or=$(u({__name:`PlayerOverlay`,props:{disableTapCapture:{type:Boolean,required:!1,default:!1}},setup(n){let s=Q(X),c=Q(Z),{hudVisible:u,popupVisible:d}=ht(s,c);function f(){c.onVideoTap()}return(c,p)=>(y(),a(e,null,[i(` Never rendered during any ad state (playing or paused) — pausing/resuming an ad goes
|
|
1
|
+
import{Fragment as e,Transition as t,computed as n,createBlock as r,createCommentVNode as i,createElementBlock as a,createElementVNode as o,createStaticVNode as s,createTextVNode as c,createVNode as l,defineComponent as u,inject as d,mergeProps as f,nextTick as p,normalizeClass as m,normalizeProps as h,normalizeStyle as g,onBeforeUnmount as _,onMounted as v,openBlock as y,provide as b,reactive as x,ref as S,renderList as C,resolveDynamicComponent as w,toDisplayString as T,toRef as E,unref as D,watch as O,withCtx as k,withModifiers as A}from"vue";function j(){return/iPad|iPhone|iPod/.test(navigator.userAgent)||/Mac/.test(navigator.userAgent)&&navigator.maxTouchPoints>1}function M(e){(e.requestFullscreen||e.webkitRequestFullscreen)?.call(e)}function N(){(document.exitFullscreen||document.webkitExitFullscreen)?.call(document)}function P(e){let[t,n]=e.split(`:`).map(Number);return{isPortrait:n>t,cssRatio:`${t}/${n}`}}function F(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 ee(e){return!e||isNaN(e)?`0:00`:`${Math.floor(e/60)}:${String(Math.floor(e%60)).padStart(2,`0`)}`}function I(e,t=(...e)=>String(e[0])){let n={};return async(...r)=>{let i=t(...r);if(n[i])return n[i];let a=await e(...r);return n[i]=a,a}}function L(e){return e.filter(e=>e.src&&(e.type===`application/x-mpegURL`||e.type===`video/mp4`)).sort((e,t)=>e.type===`application/x-mpegURL`?-1:1)}const R=`video-select`,z=`video-state`,B=`fullscreen-pending`,V=`fullscreen-pending-done`,H=`player:autoAdvance`,U=`mvp-youtube`,W=`mvp-vimeo`,G=`mvp-dailymotion`,K=`mvp-ad-playing`,q=`mvp-ad-paused`,te=`16:9`,ne=[.5,.75,1,1.25,1.5,2],re=[[.25,`firstQuartile`],[.5,`midpoint`],[.75,`thirdQuartile`]];function ie(e){return e.match(/cdn\.jwplayer\.com\/videos\/([^-]+)/)?.[1]??e.match(/cdn\.jwplayer\.com\/manifests\/([^.]+)/)?.[1]??e.match(/^jwplayer:\/\/([^/]+)$/)?.[1]??null}function J(e){let t=e?.advertising?.schedule;return Array.isArray(t)&&t.length?t[0].tag??null:e?.advertising?.tag??null}const Y=I(async e=>{let t=await fetch(`https://cdn.jwplayer.com/v2/media/${e}`);if(!t.ok)throw Error(`JW Platform API error: ${t.status}`);let n=(await t.json()).playlist?.[0];if(!n)throw Error(`JW Platform: empty playlist`);let r=L((n.sources??[]).map(e=>({src:e.file,type:e.type})));if(!r.length)throw Error(`JW Platform: no playable sources found`);return{src:r[0].src,type:r[0].type,poster:n.image??null,adTagUrl:J(n)}});async function ae(e){let t=ie(e);if(!t)throw Error(`JW Platform: unrecognised source URL: ${e}`);let n=await Y(t);if(e.startsWith(`jwplayer://`))return n;let r=/\.mp4(\?|#|$)/.test(e)?`video/mp4`:`application/x-mpegURL`;return{...n,src:e,type:r}}function oe(e){let t;try{t=new URL(e)}catch{return null}if(t.hostname!==`players.brightcove.net`)return null;let[,n,r]=t.pathname.split(`/`),i=t.searchParams.get(`videoId`),a=r?.indexOf(`_`)??-1;return!n||a===-1||!i?null:{accountId:n,playerId:r.slice(0,a),embed:r.slice(a+1),videoId:i}}function se(e){for(let t of e?.plugins??[]){let e=t.options?.serverUrl??t.options?.imaOptions?.serverUrl;if(e)return e}return null}const ce=I(async(e,t,n,r)=>{let i=await fetch(`https://players.brightcove.net/${e}/${t}_${n}/config.json`);if(!i.ok)throw Error(`Brightcove: could not load player config (${i.status})`);let a=await i.json(),o=r??a?.video_cloud?.policy_key;if(!o)throw Error(`Brightcove: policy_key not found in player config`);return{policyKey:o,adTagUrl:se(a)}},(e,t,n)=>`${e}/${t}_${n}`);async function le(e,t,n){let r=await fetch(`https://edge.api.brightcove.com/playback/v1/accounts/${e}/videos/${t}`,{headers:{Accept:`application/json;pk=${n}`}});if(!r.ok)throw Error(`Brightcove Playback API error: ${r.status}`);let i=await r.json(),a=L(i.sources||[]);if(!a.length)throw Error(`Brightcove: no playable sources found`);return{sources:a.map(e=>({src:e.src,type:e.type})),poster:i.poster??i.thumbnail??null}}async function ue(e,t){let n=oe(e);if(!n)throw Error(`Brightcove: invalid src — expected a Brightcove embed URL, e.g. "https://players.brightcove.net/{accountId}/{playerId}_{embed}/index.html?videoId={videoId}"`);let{accountId:r,playerId:i,embed:a,videoId:o}=n,{policyKey:s,adTagUrl:c}=await ce(r,i,a,t),{sources:l,poster:u}=await le(r,o,s);return{...l[0],poster:u,adTagUrl:c}}function de(){let e=new Map;function t(t,n){for(let r of Array.isArray(t)?t:[t])e.has(r)||e.set(r,new Set),e.get(r)?.add(n)}function n(t,n){e.get(t)?.delete(n)}function r(t,...n){e.get(t)?.forEach(e=>e(...n))}function i(){e.clear()}return{on:t,off:n,trigger:r,dispose:i}}const fe={};function pe(e,t=e){return fe[t]||(fe[t]=new Promise((t,n)=>{let r=document.createElement(`script`);r.src=e,r.onload=()=>t(),r.onerror=()=>n(Error(`Failed to load script: ${e}`)),document.head.appendChild(r)})),fe[t]}let me=0;function he(e,t){e.parentElement?.classList.add(t);let n=`${t}-${++me}`,r=document.createElement(`div`);r.id=n,r.className=`mvp-tech`,r.style.cssText=`width:100%;height:100%;top:0;left:0;position:absolute`;let i=document.createElement(`div`);return i.style.cssText=`width:100%;height:100%;position:absolute;inset:0;opacity:0;pointer-events:none;transition:opacity 0.2s`,i.appendChild(r),e.parentElement?.insertBefore(i,e),{techId:n,wrapper:i,innerDiv:r}}function ge(e,t){e.style.display=`none`,t.style.opacity=`1`,t.style.pointerEvents=``}function _e(e,t,n){t.remove(),e.parentElement?.classList.remove(n),e.style.display=``}function ve(e){return e.closest(`.player__shell`)}function ye(e){e.trigger(B);let t=document.createElement(`div`);t.style.cssText=`position:fixed;inset:0;z-index:99999;opacity:0;pointer-events:none`,document.body.appendChild(t);let n=!1;function r(){n||e.trigger(V)}function i(r){n||(n=!0,e.trigger(V),t.remove(),r?.())}return{overlay:t,reveal:r,finish:i}}function be(e,t){return t===e.PlayerState.PLAYING||t===e.PlayerState.BUFFERING}function xe(e){let t={videoId:null,listId:null},n=e.match(/^.*(youtu\.be\/|v\/|u\/\w\/|embed\/|watch\?v=|shorts\/|&v=)([^#&?]*).*/);n?.[2]?.length===11&&(t.videoId=n[2]);let r=e.match(/[?&]list=([^#&?]+)/);return r?.[1]&&(t.listId=r[1]),t}let Se=!1,Ce=!1;const we=[];function Te(){Ce||(Ce=!0,pe(`https://www.youtube.com/iframe_api`).then(()=>{window.YT?.ready(()=>{Se=!0,we.forEach(e=>e()),we.length=0})}))}function Ee(e,t){Te();let n=de(),{techId:r,wrapper:i}=he(e,U),a=xe(t.src),o=null,s=a.videoId,c=!1,l=!1,u=!1,d=null,f=!1,p=null,m=!1,h=new Set,g=null,_={active:!1,wasPaused:!1,timeBefore:0,catchUpInterval:null};function v(e,t=0){let n=setTimeout(()=>{h.delete(n),e()},t);h.add(n)}function y(){try{let e=o?.getPlayerResponse()?.adPlacements;return Array.isArray(e)&&e.length>0}catch{return!1}}function b(e){o?.loadVideoById({videoId:e})}function x(e){o?.cueVideoById({videoId:e})}function S(){a.videoId&&(_.wasPaused=!1,c?s===a.videoId?o?.playVideo():(b(a.videoId),s=a.videoId):(n.trigger(`waiting`),l=!0))}function C(){_.catchUpInterval&&clearInterval(_.catchUpInterval),_.active=!1,_.wasPaused&&o?.pauseVideo(),n.trigger(`seeked`)}function w(){m=(o?.getAvailablePlaybackRates()??[]).length>1,c=!0,t.muted&&o?.mute(),l?S():u&&a.videoId&&(x(a.videoId),s=a.videoId)}function T(e){if(e===d||p!==null)return;d=e;let t=y();t!==f&&(f=t,n.trigger(t?`adstart`:`adend`));let r=window.YT;if(r){switch(e){case-1:n.trigger(`loadstart`),n.trigger(`loadedmetadata`),n.trigger(`durationchange`),n.trigger(`ratechange`);break;case r.PlayerState.ENDED:n.trigger(`ended`);break;case r.PlayerState.PLAYING:n.trigger(`timeupdate`),n.trigger(`durationchange`),n.trigger(`playing`),n.trigger(`play`),_.active&&C();break;case r.PlayerState.PAUSED:n.trigger(`canplay`),_.active||n.trigger(`pause`);break;case r.PlayerState.BUFFERING:n.trigger(`waiting`);break;case r.PlayerState.CUED:n.trigger(`canplay`);break}g&&=(clearInterval(g),null),e===r.PlayerState.PLAYING&&(g=setInterval(()=>n.trigger(`timeupdate`),250))}}function E(){let e={controls:+!!t.nativeUi,modestbranding:1,rel:0,showinfo:0,mute:+!!t.muted,origin:window.location.origin,allowfullscreen:1,fullscreen:1,fs:1,playsinline:1,...t.customVars};s=a.videoId,o=new window.YT.Player(r,{videoId:s??void 0,playerVars:e,events:{onReady:w,onStateChange:e=>T(e.data),onPlaybackRateChange:()=>n.trigger(`ratechange`),onVolumeChange:()=>n.trigger(`volumechange`),onError:e=>{p=e.data,n.trigger(`error`),v(()=>{p=null})}}})}Se?E():we.push(E),t.autoplay?c?S():l=!0:a.videoId&&(u=!0);function D(){if(!o)return;let e=o.getCurrentTime(),{video_id:t}=o.getVideoData();o.pauseVideo();let{overlay:r,reveal:i,finish:a}=ye(n),s=document.createElement(`div`);s.id=`yt-fs-${Math.random().toString(36).slice(2)}`,r.appendChild(s);let c=null,l=()=>{document.removeEventListener(`pointerdown`,u,!0),a(()=>{let t=c?.getCurrentTime()??e;try{c?.destroy()}catch{}o?.seekTo(t,!0),n.trigger(`timeupdate`)})};function u(){l()}c=new window.YT.Player(s.id,{videoId:t,playerVars:{playsinline:0,autoplay:1,controls:1,modestbranding:1,rel:0,start:Math.floor(e)},events:{onReady:t=>{i(),t.target.seekTo(e,!0),t.target.playVideo()},onStateChange:e=>{let t=window.YT;t&&(e.data===t.PlayerState.ENDED?l():e.data===t.PlayerState.PAUSED?(document.removeEventListener(`pointerdown`,u,!0),document.addEventListener(`pointerdown`,u,{capture:!0,once:!0})):(document.removeEventListener(`pointerdown`,u,!0),i()))}}})}function O(){if(j()&&o){D();return}let t=ve(e);t&&M(t)}function k(){N()}return{el:i,play:S,pause:()=>o?.pauseVideo(),paused:()=>{if(!o)return!0;let e=window.YT;return!e||!be(e,d)},currentTime:()=>o?.getCurrentTime()??0,setCurrentTime:e=>{if(!o)return;let t=window.YT;t&&d===t.PlayerState.PAUSED&&(_.timeBefore=o.getCurrentTime()),_.active||(_.wasPaused=!t||!be(t,d)),o.seekTo(e,!0),n.trigger(`timeupdate`),n.trigger(`seeking`),_.active=!0,t&&d===t.PlayerState.PAUSED&&_.timeBefore!==e&&(_.catchUpInterval&&clearInterval(_.catchUpInterval),_.catchUpInterval=setInterval(()=>{d!==t.PlayerState.PAUSED||!_.active?_.catchUpInterval&&clearInterval(_.catchUpInterval):o&&o.getCurrentTime()!==_.timeBefore&&(n.trigger(`timeupdate`),C())},250))},duration:()=>o?.getDuration()??0,volume:()=>o?o.getVolume()/100:1,setVolume:e=>o?.setVolume(e*100),muted:()=>o?.isMuted()??!1,setMuted:e=>{o&&(e?o.mute():o.unMute(),v(()=>n.trigger(`volumechange`),50))},playbackRate:()=>o?.getPlaybackRate()??1,setPlaybackRate:e=>o?.setPlaybackRate(e),bufferedEnd:()=>o?.getVideoLoadedFraction?o.getVideoLoadedFraction()*o.getDuration():0,error:()=>p===null?null:{code:p,message:`This video could not be played.`},setSrc:e=>{let t=xe(e);a.videoId=t.videoId,a.listId=t.listId,a.videoId&&(c?(b(a.videoId),s=a.videoId):u=!0)},featuresPlaybackRate:()=>m,featuresCaptions:()=>!1,getCaptionTracks:()=>[],setCaptionTrack:()=>{},getActiveCaptionTrack:()=>null,featuresQuality:()=>!1,getQualityLevels:()=>[],getCurrentQuality:()=>null,isAutoQuality:()=>!0,setQuality:()=>{},featuresPip:()=>!1,isPipActive:()=>!1,togglePip:()=>{},enterFullscreen:O,exitFullscreen:k,on:n.on,off:n.off,dispose:()=>{if(h.forEach(clearTimeout),h.clear(),g&&clearInterval(g),_.catchUpInterval&&clearInterval(_.catchUpInterval),o)try{o.stopVideo(),o.destroy()}catch{}else{let e=we.indexOf(E);e!==-1&&we.splice(e,1)}o=null,_e(e,i,U),n.dispose()}}}function De(e){return e.match(/(?:vimeo\.com\/(?:video\/|channels\/[^/]+\/|groups\/[^/]+\/videos\/)?|player\.vimeo\.com\/video\/)(\d+)/)?.[1]??null}function Oe(e,t){let n=de(),{techId:r,wrapper:i}=he(e,W),a=De(t.src),o=null,s=0,c=0,l=1,u=!1,d=!0,f=1,p=!1,m=!1,h=!1,g=null,_=new Set;function v(e,t=0){let n=setTimeout(()=>{_.delete(n),e()},t);_.add(n)}function y(){if(!o){m=!0;return}o.play().catch(()=>{})}function b(){t.muted&&o?.setMuted(!0).catch(()=>{}),m&&y()}async function x(e){if(await pe(`https://player.vimeo.com/api/player.js`,`vimeo`),h||!window.Vimeo)return;let i={id:Number(e),byline:!1,portrait:!1,title:!1,transparent:!0,controls:!!t.nativeUi,autopause:!1,...t.autoplay!==void 0&&{autoplay:t.autoplay},...t.muted!==void 0&&{muted:t.muted}};o=new window.Vimeo.Player(r,i),t.autoplay&&(m=!0),o.ready().then(b).catch(e=>{g={code:4,message:e?.message||`This video is unavailable or cannot be embedded here.`},n.trigger(`error`)}),o.on(`play`,()=>{d=!1,n.trigger(`play`),n.trigger(`playing`)}),o.on(`pause`,()=>{d=!0,n.trigger(`pause`)}),o.on(`ended`,()=>{d=!0,n.trigger(`ended`)}),o.on(`timeupdate`,e=>{let{seconds:t,duration:r}=e;s=t,c=r,n.trigger(`timeupdate`),r&&!p&&(p=!0,n.trigger(`durationchange`))}),o.on(`loaded`,()=>{p=!1,n.trigger(`loadedmetadata`),n.trigger(`durationchange`)}),o.on(`seeking`,e=>{s=e.seconds,n.trigger(`seeking`)}),o.on(`seeked`,e=>{s=e.seconds,n.trigger(`seeked`),n.trigger(`timeupdate`)}),o.on(`bufferstart`,()=>n.trigger(`waiting`)),o.on(`bufferend`,()=>n.trigger(`canplay`)),o.on(`volumechange`,e=>{l=e.volume,n.trigger(`volumechange`)}),o.on(`error`,()=>n.trigger(`error`))}a&&x(a);function S(){if(!j()){let t=ve(e);t&&M(t);return}o?.requestFullscreen().catch(()=>{})}function C(){N()}return{el:i,play:y,pause:()=>o?.pause().catch(()=>{}),paused:()=>d,currentTime:()=>s,setCurrentTime:e=>{o?.setCurrentTime(e).catch(()=>{}),n.trigger(`timeupdate`),n.trigger(`seeking`)},duration:()=>c,volume:()=>l,setVolume:e=>{l=e,o?.setVolume(e).catch(()=>{})},muted:()=>u,setMuted:e=>{u=e,o?.setMuted(e).then(()=>v(()=>n.trigger(`volumechange`),50)).catch(()=>{})},playbackRate:()=>f,setPlaybackRate:e=>{f=e,o?.setPlaybackRate(e).catch(()=>{}),n.trigger(`ratechange`)},bufferedEnd:()=>s,error:()=>g,setSrc:()=>{},featuresPlaybackRate:()=>!1,featuresCaptions:()=>!1,getCaptionTracks:()=>[],setCaptionTrack:()=>{},getActiveCaptionTrack:()=>null,featuresQuality:()=>!1,getQualityLevels:()=>[],getCurrentQuality:()=>null,isAutoQuality:()=>!0,setQuality:()=>{},featuresPip:()=>!1,isPipActive:()=>!1,togglePip:()=>{},enterFullscreen:S,exitFullscreen:C,on:n.on,off:n.off,dispose:()=>{h=!0,_.forEach(clearTimeout),_.clear(),o?.destroy().catch(()=>{}),o=null,_e(e,i,W),n.dispose()}}}function ke(e){let t=e.match(/[?&]video=([a-zA-Z0-9]+)/);return t?t[1]:e.match(/(?:dailymotion\.com\/(?:embed\/)?video\/|dai\.ly\/)([a-zA-Z0-9]+)/)?.[1]??null}function Ae(e,t){let n=de(),{techId:r,wrapper:i}=he(e,G),a=ve(e),o=ke(t.src),s=typeof t.customVars?.playerId==`string`?t.customVars.playerId:void 0,c=null,l=0,u=0,d=1,f=!1,p=!0,m=!1,h=!1,g=null;async function _(){if(!o){g={code:4,message:`Could not parse video ID from source URL`},n.trigger(`error`);return}try{let e=await pe(s?`https://geo.dailymotion.com/libs/player/${s}.js`:`https://geo.dailymotion.com/libs/player.js`,s||`dailymotion-sdk`).then(()=>window.dailymotion);if(!e)return;let i=await e.createPlayer(r,{...s&&{player:s},video:o,params:{autoplay:!!t.autoplay,mute:!!t.muted}});c=i;let a=e.events;m&&i.play(),i.on(a.PLAYER_CRITICALPATHREADY,e=>{let t=e.videoThumbnails;if(!t)return;let r=Object.keys(t).map(Number).sort((e,t)=>t-e)[0],i=r===void 0?void 0:t[r];i&&n.trigger(`posterchange`,i)}),i.on(a.VIDEO_PLAY,()=>{p=!1,n.trigger(`play`),n.trigger(`playing`),!t.autoplay&&!h&&(h=!0,i.pause())}),i.on(a.VIDEO_PLAYING,()=>{p=!1,n.trigger(`play`),n.trigger(`playing`)}),i.on(a.VIDEO_PAUSE,()=>{p=!0,n.trigger(`pause`)}),a.VIDEO_BUFFERING&&i.on(a.VIDEO_BUFFERING,()=>n.trigger(`waiting`)),i.on(a.VIDEO_END,()=>{p=!0,n.trigger(`ended`)}),i.on(a.VIDEO_TIMECHANGE,e=>{l=e.videoTime??l,u=e.videoDuration??u,n.trigger(`timeupdate`)}),i.on(a.VIDEO_DURATIONCHANGE,e=>{u=e.videoDuration??u,n.trigger(`durationchange`)}),i.on(a.VIDEO_SEEKSTART,()=>n.trigger(`seeking`)),i.on(a.VIDEO_SEEKEND,e=>{l=e.videoTime??l,n.trigger(`seeked`)}),i.on(a.PLAYER_VOLUMECHANGE,e=>{d=e.playerVolume??d,f=e.playerIsMuted??f,n.trigger(`volumechange`)}),i.on(a.PLAYER_ERROR,()=>n.trigger(`error`)),a.AD_START&&i.on(a.AD_START,()=>{p=!1,n.trigger(`play`),n.trigger(`adstart`)}),a.AD_END&&i.on(a.AD_END,()=>n.trigger(`adend`))}catch(e){g={code:4,message:e instanceof Error?e.message:`This video could not be played.`},n.trigger(`error`)}}_();function v(){c?c.play():m=!0}function y(){if(j()){c?.setFullscreen(!0);return}a&&M(a)}function b(){if(j()){c?.setFullscreen(!1);return}N()}return{el:i,play:v,pause:()=>c?.pause(),paused:()=>p,currentTime:()=>l,setCurrentTime:e=>{l=e,c?.seek(e),n.trigger(`seeking`)},duration:()=>u,volume:()=>d,setVolume:e=>{d=e,c?.setVolume(e)},muted:()=>f,setMuted:e=>{f=e,c?.setMute(e)},playbackRate:()=>1,setPlaybackRate:()=>{},bufferedEnd:()=>l,error:()=>g,setSrc:()=>{},featuresPlaybackRate:()=>!1,featuresCaptions:()=>!1,getCaptionTracks:()=>[],setCaptionTrack:()=>{},getActiveCaptionTrack:()=>null,featuresQuality:()=>!1,getQualityLevels:()=>[],getCurrentQuality:()=>null,isAutoQuality:()=>!0,setQuality:()=>{},featuresPip:()=>!1,isPipActive:()=>!1,togglePip:()=>{},enterFullscreen:y,exitFullscreen:b,on:n.on,off:n.off,dispose:()=>{c?.destroy?.(),c=null,_e(e,i,G),n.dispose()}}}const je=[{test:e=>/youtu\.be|youtube\.com/.test(e),key:`youtube`,embed:!0},{test:e=>/vimeo\.com|player\.vimeo\.com/.test(e),key:`vimeo`,embed:!0},{test:e=>/dailymotion\.com|dai\.ly/.test(e),key:`dailymotion`,embed:!0},{test:e=>/cdn\.jwplayer\.com/.test(e)||e.startsWith(`jwplayer://`),key:`jwplayer`,embed:!1},{test:e=>/players\.brightcove\.net/.test(e),key:`brightcove`,embed:!1}];function Me(e){return je.find(t=>t.test(e))?.key??`html5`}function Ne(e){if(/\.m3u8(\?|#|$)/.test(e))return`application/x-mpegURL`;if(/\.mpd(\?|#|$)/.test(e))return`application/dash+xml`;if(/\.mp4(\?|#|$)/.test(e))return`video/mp4`}function Pe(e){return je.find(t=>t.test(e))?.embed??!1}const Fe={youtube:Ee,vimeo:Oe,dailymotion:Ae};function Ie(e,t,n){let r=Fe[Me(e)];return r?r(t,n):null}async function Le(e){let t=Me(e);return t===`jwplayer`?ae(e):t===`brightcove`?ue(e):{src:e,type:Ne(e)}}function Re(e){return e.kind===`captions`||e.kind===`subtitles`}function ze(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];Re(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];Re(r)&&(r.mode=n===t?`showing`:`hidden`)}}function i(){for(let t=0;t<e.textTracks.length;t++){let n=e.textTracks[t];if(Re(n)&&n.mode===`showing`)return t}return null}return{featuresCaptions:()=>n().length>0,getCaptionTracks:n,setCaptionTrack:r,getActiveCaptionTrack:i,dispose:()=>{e.textTracks.removeEventListener(`addtrack`,t),e.textTracks.removeEventListener(`removetrack`,t)}}}function Be(e){function t(){return 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{featuresQuality:()=>t().length>0,getQualityLevels:t,getCurrentQuality:r,isAutoQuality:n,setQuality:i}}function Ve(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=e.closest(`.player__shell`);n instanceof HTMLElement&&M(n)}function a(){let t=e;if(typeof t.webkitExitFullscreen==`function`){t.webkitExitFullscreen();return}N()}return{enterFullscreen:i,exitFullscreen:a,dispose:()=>{for(let[t,n]of r)e.removeEventListener(t,n)}}}function He(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{featuresPip:r,isPipActive:i,togglePip:a,dispose:()=>{for(let[t,r]of n)e.removeEventListener(t,r)}}}const Ue=`application/x-mpegURL`,We=[`play`,`pause`,`ended`,`error`,`timeupdate`,`durationchange`,`progress`,`volumechange`,`ratechange`,`seeking`,`seeked`,`waiting`,`playing`,`canplay`];function Ge(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.currentLevel,setIndex:t=>{e.currentLevel=t??-1}}}function Ke(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 qe(e,t){let n=de(),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`);break}})}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(Ue)!==``)}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===Ue&&!u()){o=n,c(n);return}e.src=n,t.autoplay&&e.play()}let f=e=>()=>n.trigger(e),p=We.map(e=>[e,f(e)]);for(let[t,n]of p)e.addEventListener(t,n);let m=ze(e,f(`captionschange`)),h=Be(()=>r?Ge(r):i?Ke(i):null),g=Ve(e,f(`nativefullscreenenter`),f(`nativefullscreenexit`)),_=He(e,f(`pipchange`));return e.poster=t.poster??``,e.muted=t.muted??t.autoplay??!1,e.playbackRate=t.playbackRate??1,e.playsInline=!0,d(t.src,t.type),{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,featuresPlaybackRate:()=>!0,featuresCaptions:m.featuresCaptions,getCaptionTracks:m.getCaptionTracks,setCaptionTrack:m.setCaptionTrack,getActiveCaptionTrack:m.getActiveCaptionTrack,featuresQuality:h.featuresQuality,getQualityLevels:h.getQualityLevels,getCurrentQuality:h.getCurrentQuality,isAutoQuality:h.isAutoQuality,setQuality:h.setQuality,featuresPip:_.featuresPip,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()}}}const Je=new Set;function Ye(e){return Je.add(e),()=>Je.delete(e)}function Xe(e){Je.forEach(t=>{if(t!==e)try{t()}catch{}})}function Ze(e){let t=S(!1),n=S(!1);function r(){let e=document;t.value=!!(document.fullscreenElement||e.webkitFullscreenElement),n.value=!1}function i(){let n=e();if(n){if(t.value){n.exitFullscreen();return}n.enterFullscreen()}}function a(){n.value=!0}function o(e){e.on(B,()=>{n.value=!0}),e.on(V,()=>{n.value=!1}),e.on(`nativefullscreenenter`,()=>{t.value=!0,n.value=!1}),e.on(`nativefullscreenexit`,()=>{t.value=!1,n.value=!1})}return v(()=>{document.addEventListener(`fullscreenchange`,r),document.addEventListener(`webkitfullscreenchange`,r)}),_(()=>{document.removeEventListener(`fullscreenchange`,r),document.removeEventListener(`webkitfullscreenchange`,r)}),{isFullscreen:t,isFullscreenPending:n,toggleFullscreen:i,markFullscreenPending:a,attachPlayerEvents:o}}function Qe(e){let t=S(!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 _(()=>clearTimeout(n??void 0)),{isBuffering:t,attachPlayerEvents:i,reset:r}}function $e(e,t,n){let r=new Set;function i(){if(!t.value)return;let i=e.value/t.value;for(let[e,t]of re)!r.has(e)&&i>=e&&(r.add(e),n(t))}function a(){r.clear()}return{checkQuartiles:i,reset:a}}function et(){try{return JSON.parse(localStorage.getItem(`player:positions`)??`[]`)}catch{return[]}}function tt(e){localStorage.setItem(`player:positions`,JSON.stringify(e))}function nt(e){return et().find(t=>t.url===e)?.time??null}function rt(e){tt(et().filter(t=>t.url!==e))}function it(e,t,n){let r=!1;function i(t){if(r)return;let n=nt(e);n&&t.setCurrentTime(n),r=!0}function a(e){!e||n.value}function o(){rt(e)}function s(){document.visibilityState===`hidden`&&a(t())}return v(()=>document.addEventListener(`visibilitychange`,s)),_(()=>{a(t()),document.removeEventListener(`visibilitychange`,s)}),{restoreOnce:i,save:a,clear:o}}function at(e,t,n,r){let i=null;v(()=>{let a=e.value?.closest(`.player__shell`);a&&(i=new IntersectionObserver(([e])=>{let i=t();!e.isIntersecting&&i&&!i.paused()&&!n.value&&!r.value&&i.pause()},{threshold:.1}),i.observe(a))}),_(()=>i?.disconnect())}function ot(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();t?.setMuted(!t.muted())}function l(t){let n=e();n&&(n.setVolume(t),n.setMuted(t===0))}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 st(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:x,supportsPip:S,isPipActive:C,hasStarted:w,isError:T,errorMessage:E}=e,{fire:D,pauseThisPlayer:O,positionMemory:k,quartiles:A,buffering:j,fullscreen:M}=t;function N(e){i.value=!0,m.value=e.featuresPlaybackRate();function t(){g.value=e.getCaptionTracks(),h.value=e.featuresCaptions();let t=e.getActiveCaptionTrack();t!==_.value&&(_.value=t,w.value&&D(`captionchange`,{captionIndex:t}))}t(),e.on(`captionschange`,t);function N(){y.value=e.getQualityLevels(),v.value=e.featuresQuality();let t=e.getCurrentQuality(),n=e.isAutoQuality(),r=t!==b.value||n!==x.value;b.value=t,x.value=n,r&&w.value&&D(`qualitychange`,{qualityIndex:n?null:t})}N(),e.on(`qualitychange`,N);function P(){S.value=e.featuresPip();let t=e.isPipActive();t!==C.value&&(C.value=t,w.value&&D(`pipchange`,{isPipActive:t}))}P(),e.on(`pipchange`,P);let F=()=>{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`,()=>{Xe(O),a.value=!0,D(`adstart`)}),e.on(`adend`,()=>{a.value=!1,D(`adend`)}),e.on(`play`,()=>{Xe(O),w.value=!0,n.value=!0,r.value=!1,o.value||k.restoreOnce(e),D(`play`)}),e.on(`pause`,()=>{n.value=!1,o.value||k.save(e),D(`pause`)}),e.on(`ended`,()=>{if(n.value=!1,A.reset(),j.reset(),f.value){e.setCurrentTime(0),e.play();return}c.value&&(s.value=c.value),r.value=!0,k.clear(),D(`ended`)}),e.on(`seeked`,()=>{D(`seeked`)}),e.on(`error`,()=>{let t=e.error();E.value=t?.message||`This video could not be played.`,T.value=!0,i.value=!0,D(`error`,{error:t})}),e.on(`timeupdate`,()=>{if(r.value)return;s.value=e.currentTime()??0,c.value||F(),m.value||=e.featuresPlaybackRate();let t=e.getActiveCaptionTrack();_.value!==t&&(_.value=t,w.value&&D(`captionchange`,{captionIndex:t})),o.value||A.checkQuartiles()}),e.on(`durationchange`,F),e.on(`progress`,()=>{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,w.value&&D(`volumechange`,{isMuted:t})}),e.on(`ratechange`,()=>{let t=e.playbackRate()??1;p.value=t,w.value&&D(`ratechange`,{playbackRate:t})}),j.attachPlayerEvents(e),M.attachPlayerEvents(e)}return{attachPlayerEvents:N}}function ct(){return window.google?.ima?Promise.resolve():new Promise((e,t)=>{let n=document.createElement(`script`);n.src=`https://imasdk.googleapis.com/js/sdkloader/ima3.js`,n.onload=()=>e(),n.onerror=()=>t(Error(`Failed to load Google IMA SDK`)),document.head.appendChild(n)})}function lt(e,t,n,r){let i=document.createElement(`div`);i.className=`ima-ad-container`,e.appendChild(i);let a=n,o=null,s=null,c=null,l=!1,u=!1,d=!1,f=!1,p=!1,m=!1,h=1,g=new ResizeObserver(([e])=>{let t=window.google?.ima;if(!c||!t)return;let{width:n,height:r}=e.contentRect;c.resize(n,r,t.ViewMode.NORMAL)});g.observe(t);function _(){s?.contentComplete()}function v(t){f=t,e.classList.toggle(K,t),t||(p=!1,e.classList.remove(q))}function y(){if(l||!u||!d||!o||!s||!a)return;l=!0;let e=window.google?.ima;if(!e)return;o.initialize();let t=new e.AdsRequest;t.adTagUrl=a,s.requestAds(t)}function b(e){a=e,y()}ct().then(()=>{if(m)return;let n=window.google?.ima;n&&(o=new n.AdDisplayContainer(i,t),s=new n.AdsLoader(o),u=!0,s.addEventListener(n.AdsManagerLoadedEvent.Type.ADS_MANAGER_LOADED,i=>{if(m)return;let a=new n.AdsRenderingSettings;a.restoreCustomPlaybackStateOnAdBreakComplete=!0,c=i.getAdsManager(t,a),t.addEventListener(`ended`,_),c.addEventListener(n.AdEvent.Type.CONTENT_PAUSE_REQUESTED,()=>{t.removeEventListener(`ended`,_),t.pause(),v(!0),r.onAdStart();let e=c?.getVolume()??1;e>0&&(h=e),r.onAdMuteChange(e===0)}),c.addEventListener(n.AdEvent.Type.CONTENT_RESUME_REQUESTED,()=>{t.addEventListener(`ended`,_),v(!1),r.onAdEnd(),t.ended||t.play()}),c.addEventListener(n.AdEvent.Type.PAUSED,()=>{p=!0,e.classList.add(q),r.onAdPauseChange(!0)}),c.addEventListener(n.AdEvent.Type.RESUMED,()=>{p=!1,e.classList.remove(q),r.onAdPauseChange(!1)}),c.addEventListener(n.AdEvent.Type.AD_PROGRESS,()=>{r.onAdProgress(c?.getRemainingTime()??0)}),c.addEventListener(n.AdErrorEvent.Type.AD_ERROR,e=>{v(!1),r.onError(e.getError().getMessage()),t.play()});try{c.init(t.clientWidth,t.clientHeight,n.ViewMode.NORMAL),c.start()}catch(e){r.onError(e instanceof Error?e.message:`Ad playback failed to start.`)}}),s.addEventListener(n.AdErrorEvent.Type.AD_ERROR,e=>{r.onError(e.getError().getMessage())}),y())}).catch(e=>r.onError(e.message));function x(){d=!0,y()}function S(){if(!c)return;let e=c.getVolume();e>0?(h=e,c.setVolume(0)):c.setVolume(h||1),r.onAdMuteChange(c.getVolume()===0)}return{isAdPlaying:()=>f,isAdPaused:()=>p,requestAdsOnFirstPlay:x,setAdTagUrl:b,pauseAd:()=>c?.pause(),resumeAd:()=>c?.resume(),toggleAdMute:S,dispose:()=>{m=!0,g.disconnect(),t.removeEventListener(`ended`,_),c?.destroy(),s?.destroy(),i.remove(),e.classList.remove(K,q)}}}function ut(e,t){let n=window.pbjs;if(!n)return Promise.resolve(t);let r=e.timeoutMs??1e3;return new Promise(i=>{let a=!1;function o(e){a||(a=!0,i(e||t))}let s=setTimeout(()=>o(t),r);n.que.push(()=>{try{n.addAdUnits(e.adUnit),n.requestBids({adUnitCodes:[e.adUnit.code],timeout:r,bidsBackHandler:()=>{clearTimeout(s);try{o(n.adServers?.gam?.buildVideoUrl({adUnit:e.adUnit,params:e.params}))}catch{o(t)}}})}catch{clearTimeout(s),o(t)}})})}function dt(e,t){let{isAdPlaying:n,isAdPaused:r,isAdMuted:i,adRemainingTime:a}=e,{fire:o,pauseThisPlayer:s}=t,c=null,l=null;function u(e,t,u,d){if(!(u||d)||!e.parentElement)return;d&&ut(d,u).catch(()=>u).then(e=>c?.setAdTagUrl(e));function f(){!j()&&t.isPipActive()&&document.exitPictureInPicture()}function p(){!j()&&(document.hidden||!document.hasFocus())&&c?.isAdPlaying()&&c.pauseAd()}document.addEventListener(`visibilitychange`,p),window.addEventListener(`blur`,p);let m=()=>{t.isPipActive()||p()};t.on(`pipchange`,m),l=()=>{document.removeEventListener(`visibilitychange`,p),window.removeEventListener(`blur`,p),t.off(`pipchange`,m)},c=lt(e.parentElement,e,u,{onAdStart:()=>{n.value=!0,r.value=!1,o(`adstart`),f(),p()},onAdEnd:()=>{n.value=!1,r.value=!1,a.value=0,o(`adend`)},onAdPauseChange:e=>{r.value=e,e||Xe(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)}}),t.on(`play`,()=>c?.requestAdsOnFirstPlay())}return{attach:u,isAdPlaying:()=>c?.isAdPlaying()??!1,isAdPaused:()=>c?.isAdPaused()??!1,pauseAd:()=>c?.pauseAd(),resumeAd:()=>c?.resumeAd(),toggleAdMute:()=>c?.toggleAdMute(),dispose:()=>{c?.dispose(),c=null,l?.(),l=null}}}function ft(e,t,r){let i=null,a=null,o=null,s=S(!1),c=S(!1),l=S(!1),u=S(!1),d=S(!1),f=S(!1),p=S(0),m=S(!1),h=S(0),g=S(0),y=S(0),b=S(1),x=S(t.muted??t.autoplay??!1),C=S(!1),w=S(t.playbackRate??1),T=S(!1),E=S(!1),D=S([]),k=S(null),A=S(!1),j=S([]),M=S(null),N=S(!0),P=S(!1),I=S(!1),L=S(!1),R=S(!1),z=S(``),B=S(!1),V=n(()=>g.value?h.value/g.value*100:0),H=n(()=>Math.max(y.value,V.value)),U=()=>i,W=Ze(U),G=Qe(q),K=it(t.videoUrl,U,c);function q(e,n={}){r(`state-change`,{type:e,currentTime:h.value,duration:g.value,src:t.videoUrl,...n,payload:t.payload})}let te=$e(h,g,q);function ne(){!i||!o||(R.value=!1,z.value=``,i.setSrc(o.src,o.type))}function re(){if(J.isAdPlaying()){J.pauseAd();return}i?.pause()}function ie(){if(J.isAdPlaying()){J.isAdPaused()?J.resumeAd():J.pauseAd();return}Y.togglePlay()}let J=dt({isAdPlaying:u,isAdPaused:d,isAdMuted:f,adRemainingTime:p},{fire:q,pauseThisPlayer:re}),Y=ot(U,l,g,C,w,s),{attachPlayerEvents:ae}=st({isPlaying:s,hasEnded:c,isReady:l,isAdPlaying:u,isLive:m,current:h,total:g,buffered:y,vol:b,isMuted:x,isLooping:C,playbackRate:w,supportsPlaybackRate:T,supportsCaptions:E,captionTracks:D,activeCaptionIndex:k,supportsQuality:A,qualityLevels:j,currentQualityIndex:M,isAutoQuality:N,supportsPip:P,isPipActive:I,hasStarted:L,isError:R,errorMessage:z},{fire:q,pauseThisPlayer:re,positionMemory:K,quartiles:te,buffering:G,fullscreen:W});function oe(e){i?.setCaptionTrack(e),k.value=e,L.value&&q(`captionchange`,{captionIndex:e})}function se(e){i?.setQuality(e),M.value=e,N.value=e===null,L.value&&q(`qualitychange`,{qualityIndex:e})}function ce(){i?.togglePip()}function le(){Y.toggleLoop(),L.value&&q(`loopchange`,{isLooping:C.value})}return O(()=>t.muted,e=>{!i||e===void 0||i.setMuted(e)}),O(()=>t.playbackRate,e=>{!i||e===void 0||i.setPlaybackRate(e)}),at(e,U,W.isFullscreen,W.isFullscreenPending),O(L,t=>{!t||!e.value||!i||i.el===e.value||ge(e.value,i.el)}),v(async()=>{if(Pe(t.videoUrl)){if(!e.value)return;let n=Ie(t.videoUrl,e.value,{src:t.videoUrl,poster:t.poster,autoplay:t.autoplay,muted:t.muted??t.autoplay,nativeUi:t.nativeUi});if(!n){R.value=!0,l.value=!0,z.value=`This platform is not yet supported.`;return}B.value=!!t.nativeUi,i=n,o={src:t.videoUrl},a=Ye(re),ae(i);return}let n=await Le(t.videoUrl).catch(()=>({src:t.videoUrl}));if(!e.value)return;o={src:n.src,type:n.type},i=qe(e.value,{src:n.src,type:n.type,poster:n.poster||t.poster||``,autoplay:t.autoplay,muted:t.muted??t.autoplay,playbackRate:w.value});let r=F(t.adTagUrl||n.adTagUrl||``,t.adTagParams);J.attach(e.value,i,r,t.headerBidding),a=Ye(re),ae(i)}),_(()=>{a?.(),J.dispose(),i?.dispose(),i=null}),{isPlaying:s,hasEnded:c,isReady:l,isAdPlaying:u,isAdPaused:d,isAdMuted:f,adRemainingTime:p,isLive:m,isBuffering:G.isBuffering,current:h,total:g,vol:b,isMuted:x,isLooping:C,playbackRate:w,hasStarted:L,isError:R,errorMessage:z,progress:V,bufferedDisplay:H,isFullscreen:W.isFullscreen,isFullscreenPending:W.isFullscreenPending,fmt:ee,fire:q,retry:ne,togglePlay:ie,seek:Y.seek,toggleMute:Y.toggleMute,setVolume:Y.setVolume,toggleFullscreen:W.toggleFullscreen,markFullscreenPending:W.markFullscreenPending,toggleLoop:le,toggleAdMute:J.toggleAdMute,setPlaybackRate:Y.setPlaybackRate,supportsPlaybackRate:T,supportsCaptions:E,captionTracks:D,activeCaptionIndex:k,setCaptionTrack:oe,supportsQuality:A,qualityLevels:j,currentQualityIndex:M,isAutoQuality:N,setQuality:se,supportsPip:P,isPipActive:I,togglePip:ce,nativeUi:B}}function pt(e){let t=S(!0),n=S(!1),r=null,i=0;function a(e=400){i=Date.now()+e}function o(e=3500){clearTimeout(r??void 0),r=setTimeout(()=>{t.value=!1,n.value=!1},e)}function s(){clearTimeout(r??void 0)}function c(){n.value=!0,t.value=!0,o()}function l(){n.value=!1,e.value&&o()}function u(){e.value&&o()}function d(){t.value=!0,e.value&&o()}function f(){t.value=!0,o()}function p(){Date.now()<i||e.value&&o(600)}return O(e,e=>{if(!e){clearTimeout(r??void 0),t.value=!0;return}o()}),_(()=>clearTimeout(r??void 0)),{showHUD:t,isOpen:n,scheduleHide:o,pauseHide:s,onVideoTap:d,onMouseMove:f,onMouseLeave:p,openControls:c,closeControls:l,keepOpen:u,suppressMouseLeave:a}}const X=Symbol(`player`),Z=Symbol(`hud`),mt=Symbol(`action`),ht=Symbol(`compact`),gt=Symbol(`playlist`);function Q(e){let t=d(e);if(t===void 0)throw Error(`[video-player] missing "${String(e.description)}" context — this component must be rendered inside <VideoPlayer>`);return t}function _t(e,t){return{hudVisible:n(()=>!e.isReady||e.isError?!1:t.showHUD),popupVisible:n(()=>!e.isReady||e.isError?!1:e.isFullscreen?t.showHUD:t.isOpen)}}function vt(e,t){return n(()=>!(!e?.value||t.isFullscreen))}function yt(e,t,r){let i=n(()=>e?.value??null),a=n(()=>!!i.value&&typeof i.value==`object`),o=n(()=>a.value?i.value:null),s=n(()=>i.value===`mute`?t.isMuted?`Unmute`:`Mute`:i.value===`loop`?t.isLooping?`Disable loop`:`Loop`:i.value===`autoplay`?r.autoAdvance?`Disable autoplay next`:`Autoplay next`:``),c=n(()=>i.value===`mute`?t.isMuted:i.value===`loop`?t.isLooping:i.value===`autoplay`&&r.autoAdvance);function l(){i.value===`mute`?t.toggleMute():i.value===`loop`?t.toggleLoop():i.value===`autoplay`&&r.toggleAutoAdvance()}return{currentAction:i,isCustom:a,customAction:o,builtinLabel:s,builtinActive:c,onBuiltinClick:l}}var $=(e,t)=>{let n=e.__vccOpts||e;for(let[e,r]of t)n[e]=r;return n};const bt={},xt={viewBox:`0 0 24 24`,fill:`currentColor`};function St(e,t){return y(),a(`svg`,xt,[...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 Ct=$(bt,[[`render`,St]]);const wt={},Tt={viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`2`,"stroke-linecap":`round`,"stroke-linejoin":`round`};function Et(e,t){return y(),a(`svg`,Tt,[...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 Dt=$(wt,[[`render`,Et]]);const Ot={},kt={viewBox:`0 0 24 24`,fill:`currentColor`};function At(e,t){return y(),a(`svg`,kt,[...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 jt=$(Ot,[[`render`,At]]);const Mt={},Nt={viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`2`,"stroke-linecap":`round`,"stroke-linejoin":`round`};function Pt(e,t){return y(),a(`svg`,Nt,[...t[0]||=[s(`<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 Ft=$(Mt,[[`render`,Pt]]);const It={},Lt={viewBox:`0 0 24 24`,fill:`currentColor`};function Rt(e,t){return y(),a(`svg`,Lt,[...t[0]||=[o(`path`,{d:`M4 12l1.41 1.41L11 7.83V20h2V7.83l5.59 5.58L20 12l-8-8-8 8z`},null,-1)]])}var zt=$(It,[[`render`,Rt]]);const Bt={},Vt={viewBox:`0 0 24 24`,fill:`currentColor`};function Ht(e,t){return y(),a(`svg`,Vt,[...t[0]||=[o(`path`,{d:`M7 14H5v5h5v-2H7v-3zm-2-4h2V7h3V5H5v5zm12 7h-3v2h5v-5h-2v3zM14 5v2h3v3h2V5h-5z`},null,-1)]])}var Ut=$(Bt,[[`render`,Ht]]);const Wt={},Gt={viewBox:`0 0 24 24`,fill:`currentColor`};function Kt(e,t){return y(),a(`svg`,Gt,[...t[0]||=[o(`path`,{d:`M5 16h3v3h2v-5H5v2zm3-8H5v2h5V5H8v3zm6 11h2v-3h3v-2h-5v5zm2-11V5h-2v5h5V8h-3z`},null,-1)]])}var qt=$(Wt,[[`render`,Kt]]);const Jt={},Yt={viewBox:`0 0 24 24`,fill:`currentColor`};function Xt(e,t){return y(),a(`svg`,Yt,[...t[0]||=[o(`path`,{d:`M7 7h10v3l4-4-4-4v3H5v6h2V7zm10 10H7v-3l-4 4 4 4v-3h12v-6h-2v4z`},null,-1)]])}var Zt=$(Jt,[[`render`,Xt]]);const Qt={},$t={viewBox:`0 0 24 24`,fill:`currentColor`};function en(e,t){return y(),a(`svg`,$t,[...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 tn=$(Qt,[[`render`,en]]);const nn={},rn={viewBox:`0 0 24 24`,fill:`currentColor`};function an(e,t){return y(),a(`svg`,rn,[...t[0]||=[o(`path`,{d:`M6 19h4V5H6v14zm8-14v14h4V5h-4z`},null,-1)]])}var on=$(nn,[[`render`,an]]);const sn={},cn={viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`2`,"stroke-linecap":`round`,"stroke-linejoin":`round`};function ln(e,t){return y(),a(`svg`,cn,[...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 un=$(sn,[[`render`,ln]]);const dn={},fn={viewBox:`0 0 24 24`,fill:`currentColor`};function pn(e,t){return y(),a(`svg`,fn,[...t[0]||=[o(`path`,{d:`M8 5v14l11-7z`},null,-1)]])}var mn=$(dn,[[`render`,pn]]);const hn={},gn={viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`2`,"stroke-linecap":`round`,"stroke-linejoin":`round`};function _n(e,t){return y(),a(`svg`,gn,[...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 vn=$(hn,[[`render`,_n]]);const yn={},bn={viewBox:`0 0 24 24`,fill:`currentColor`};function xn(e,t){return y(),a(`svg`,bn,[...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 Sn=$(yn,[[`render`,xn]]);const Cn={},wn={viewBox:`0 0 24 24`,fill:`currentColor`};function Tn(e,t){return y(),a(`svg`,wn,[...t[0]||=[o(`path`,{d:`M6 18l8.5-6L6 6v12zM16 6v12h2V6h-2z`},null,-1)]])}var En=$(Cn,[[`render`,Tn]]);const Dn={},On={viewBox:`0 0 24 24`,fill:`currentColor`};function kn(e,t){return y(),a(`svg`,On,[...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 An=$(Dn,[[`render`,kn]]);const jn={},Mn={viewBox:`0 0 24 24`,fill:`currentColor`};function Nn(e,t){return y(),a(`svg`,Mn,[...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 Pn=$(jn,[[`render`,Nn]]);const Fn=[`aria-label`];var In=$(u({__name:`PlayPauseButton`,props:{isPlaying:{type:Boolean,required:!0},hasEnded:{type:Boolean,required:!1,default:!1},size:{type:String,required:!1,default:`sm`}},emits:[`toggle-play`],setup(e){let t=e,i=n(()=>t.isPlaying?`Pause`:t.hasEnded?`Replay`:`Play`);return(t,n)=>(y(),a(`button`,{class:m([`ppbtn`,`ppbtn--${e.size}`]),"aria-label":i.value,onClick:n[0]||=A(e=>t.$emit(`toggle-play`),[`stop`])},[e.isPlaying?(y(),r(D(on),{key:0})):e.hasEnded?(y(),r(D(Sn),{key:1})):(y(),r(D(mn),{key:2}))],10,Fn))}}),[[`__scopeId`,`data-v-85902525`]]),Ln=u({__name:`VolumeIcon`,setup(e){let t=Q(X),i=n(()=>!t.isMuted&&t.vol>0);return(e,t)=>i.value?(y(),r(D(Pn),{key:0})):(y(),r(D(An),{key:1}))}}),Rn=$(u({__name:`Spinner`,props:{size:{type:Number,required:!1,default:14},borderWidth:{type:Number,required:!1,default:2}},setup(e){return(t,n)=>(y(),a(`div`,{class:`spinner`,style:g({width:`${e.size}px`,height:`${e.size}px`,borderWidth:`${e.borderWidth}px`})},null,4))}}),[[`__scopeId`,`data-v-259be2b2`]]);const zn={class:`hud`},Bn=[`aria-label`],Vn=[`aria-label`],Hn=[`aria-label`],Un=[`aria-label`,`innerHTML`],Wn={key:4,class:`hud__spacer`},Gn={class:`hud__play-wrap`};var Kn=$(u({__name:`HudButtons`,setup(t){let n=Q(X),s=Q(Z),{currentAction:c,isCustom:u,customAction:f,builtinLabel:p,builtinActive:h,onBuiltinClick:g}=yt(d(mt),n,Q(gt));return(t,d)=>(y(),a(`div`,zn,[!D(s).isOpen&&!D(n).isFullscreen?(y(),a(e,{key:0},[D(c)===`mute`?(y(),a(`button`,{key:0,class:m([`hud__btn`,{"hud__btn--active":D(h)}]),"aria-label":D(p),onClick:d[0]||=A((...e)=>D(g)&&D(g)(...e),[`stop`])},[l(Ln)],10,Bn)):D(c)===`loop`?(y(),a(`button`,{key:1,class:m([`hud__btn`,{"hud__btn--active":D(h)}]),"aria-label":D(p),onClick:d[1]||=A((...e)=>D(g)&&D(g)(...e),[`stop`])},[l(D(Zt))],10,Vn)):D(c)===`autoplay`?(y(),a(`button`,{key:2,class:m([`hud__btn`,{"hud__btn--active":D(h)}]),"aria-label":D(p),onClick:d[2]||=A((...e)=>D(g)&&D(g)(...e),[`stop`])},[l(D(En))],10,Hn)):D(u)&&D(f)?(y(),a(`button`,{key:3,class:`hud__btn`,"aria-label":D(f).label,onClick:d[3]||=A(e=>D(f).onClick(),[`stop`]),innerHTML:D(f).icon},null,8,Un)):(y(),a(`div`,Wn))],64)):i(`v-if`,!0),o(`div`,Gn,[l(In,{"is-playing":D(n).isPlaying,"has-ended":D(n).hasEnded,size:`lg`,onTogglePlay:D(n).togglePlay},null,8,[`is-playing`,`has-ended`,`onTogglePlay`]),D(n).isBuffering?(y(),r(Rn,{key:0,class:`hud__buf-spinner`})):i(`v-if`,!0)]),!D(s).isOpen&&!D(n).isFullscreen?(y(),a(`button`,{key:1,class:`hud__btn`,"aria-label":`Show controls`,onClick:d[4]||=A((...e)=>D(s).openControls&&D(s).openControls(...e),[`stop`])},[l(D(Ft))])):i(`v-if`,!0)]))}}),[[`__scopeId`,`data-v-a6d118e7`]]);function qn(e){let t=S(null),r=n(()=>t.value??e.progress),i=null;function a(){i&&clearTimeout(i),i=null,t.value=null}function o(e){i&&clearTimeout(i),i=null,t.value=Number(e.target.value)}function s(n){let r=Number(n.target.value);t.value=r,e.seek(r),i&&clearTimeout(i),i=setTimeout(a,3e3)}return O(()=>e.current,()=>{if(t.value===null||!e.total)return;let n=t.value/100*e.total;Math.abs(e.current-n)<1&&a()}),_(a),{displaySeek:r,onSeekInput:o,onSeekChange:s}}function Jn(e,t,n){if(!document.startViewTransition||!e.value){n();return}e.value.style.viewTransitionName=t,document.startViewTransition(async()=>{n(),await p()}).finished.finally(()=>{e.value&&(e.value.style.viewTransitionName=``)})}const Yn={class:`controls__vol-header`},Xn=[`aria-label`],Zn={class:`controls__vol-body`},Qn=[`value`],$n={class:`controls__vol-pct`};var er=$(u({__name:`VolumePanel`,emits:[`back`],setup(t){let r=Q(X),i=Q(Z),s=n(()=>r.isMuted?0:Math.round(r.vol*100));function c(e){r.setVolume(Number(e.target.value)/100)}return(t,n)=>(y(),a(e,null,[o(`div`,Yn,[o(`button`,{class:`controls__btn`,"aria-label":`Back`,onClick:n[0]||=e=>t.$emit(`back`)},[l(D(Ct))]),n[6]||=o(`span`,{class:`controls__vol-label`},`Volume`,-1),o(`button`,{class:`controls__btn`,"aria-label":D(r).isMuted?`Unmute`:`Mute`,onClick:n[1]||=e=>D(r).toggleMute()},[l(Ln)],8,Xn)]),o(`div`,Zn,[o(`input`,{type:`range`,min:`0`,max:`100`,step:`1`,value:s.value,class:`controls__vol-slider`,style:g({"--v":s.value+`%`}),"aria-label":`Volume`,onInput:c,onMousedown:n[2]||=e=>D(i).pauseHide(),onMouseup:n[3]||=e=>D(i).scheduleHide(),onTouchstartPassive:n[4]||=e=>D(i).pauseHide(),onTouchend:n[5]||=e=>D(i).scheduleHide()},null,44,Qn),o(`span`,$n,T(s.value)+`%`,1)])],64))}}),[[`__scopeId`,`data-v-10b0ae67`]]);function tr(e){function t(){let t=ne.indexOf(e.playbackRate);e.setPlaybackRate(ne[(t+1)%ne.length])}function n(e){return`${e}×`}return{cycleRate:t,fmtRate:n}}function nr(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 rr(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 ir=[`aria-label`],ar={key:0,class:`controls__more-row-label`},or=[`innerHTML`],sr={key:1},cr={key:2,class:`controls__more-value`};var lr=$(u({__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)=>(y(),a(`button`,{class:m([`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?(y(),a(`span`,ar,[e.icon?(y(),r(w(e.icon),{key:0,class:`controls__more-row-icon`})):(y(),a(`span`,{key:1,class:`controls__more-row-icon`,innerHTML:e.iconHtml},null,8,or)),c(` `+T(e.label),1)])):(y(),a(`span`,sr,T(e.label),1)),e.value===void 0?i(`v-if`,!0):(y(),a(`span`,cr,T(e.value),1))],10,ir))}}),[[`__scopeId`,`data-v-47ca5bfc`]]);const ur={class:`controls__more-header`};var dr=$(u({__name:`MoreMenu`,props:{isCustom:{type:Boolean,required:!0},customAction:{type:[Object,null],required:!0}},emits:[`back`],setup(t){let n=Q(X),s=Q(Z),c=Q(gt),{cycleRate:u,fmtRate:d}=tr(n),{cycleCaptionTrack:f,currentCaptionLabel:p}=nr(n),{cycleQuality:m,currentQualityLabel:h}=rr(n);return(g,_)=>(y(),a(e,null,[o(`div`,ur,[o(`button`,{class:`controls__btn`,"aria-label":`Back`,onClick:_[0]||=e=>g.$emit(`back`)},[l(D(Ct))]),_[5]||=o(`span`,{class:`controls__more-label`},`More`,-1)]),o(`div`,{class:`controls__more-body`,onTouchstartPassive:_[4]||=e=>D(s).keepOpen()},[D(n).supportsPlaybackRate?(y(),r(lr,{key:0,label:`Playback speed`,value:D(d)(D(n).playbackRate),onClick:D(u)},null,8,[`value`,`onClick`])):i(`v-if`,!0),l(lr,{label:`Loop`,"aria-label":`Toggle loop`,icon:D(Zt),active:D(n).isLooping,value:D(n).isLooping?`On`:`Off`,onClick:_[1]||=e=>D(n).toggleLoop()},null,8,[`icon`,`active`,`value`]),D(n).supportsCaptions?(y(),r(lr,{key:1,label:`Captions`,icon:D(Dt),active:D(n).activeCaptionIndex!==null,value:D(p)(),onClick:D(f)},null,8,[`icon`,`active`,`value`,`onClick`])):i(`v-if`,!0),D(n).supportsQuality?(y(),r(lr,{key:2,label:`Quality`,icon:D(vn),active:!D(n).isAutoQuality,value:D(h)(),onClick:D(m)},null,8,[`icon`,`active`,`value`,`onClick`])):i(`v-if`,!0),D(c).hasPlaylist?(y(),r(lr,{key:3,label:`Autoplay next`,"aria-label":`Toggle autoplay next`,icon:D(En),active:D(c).autoAdvance,value:D(c).autoAdvance?`On`:`Off`,onClick:_[2]||=e=>D(c).toggleAutoAdvance()},null,8,[`icon`,`active`,`value`])):i(`v-if`,!0),t.isCustom&&t.customAction?(y(),r(lr,{key:4,label:t.customAction.label,"icon-html":t.customAction.icon,onClick:_[3]||=e=>t.customAction.onClick()},null,8,[`label`,`icon-html`])):i(`v-if`,!0)],32)],64))}}),[[`__scopeId`,`data-v-e89a8208`]]);const fr=[`value`],pr={class:`controls__row`},mr={class:`controls__play-wrap`},hr={key:0,class:`controls__live`},gr={key:1,class:`controls__time`},_r=[`aria-label`],vr={class:`controls__fs-wrap`},yr=[`aria-label`];var br=$(u({__name:`ControlsPopup`,setup(t){let n=Q(X),s=Q(Z),u=Q(gt),f=vt(d(ht),n),{isCustom:p,customAction:h}=yt(d(mt),n,u),b=S(!1),x=S(!1),C=S(null);function w(e){return!C.value||C.value.contains(e)?!1:(s.closeControls(),!0)}function E(e){w(e.target)}function O(e){w(e.target)&&e.preventDefault()}v(()=>{n.fire(`controlsopen`,{element:C.value}),document.addEventListener(`click`,E,!0),document.addEventListener(`touchend`,O,!0)}),_(()=>{b.value=!1,x.value=!1,n.fire(`controlsclose`,{element:C.value}),document.removeEventListener(`click`,E,!0),document.removeEventListener(`touchend`,O,!0)});function k(e){s.suppressMouseLeave(),Jn(C,`controls-popup`,e)}function M(){if(j()){n.toggleMute();return}k(()=>{b.value=!0})}function N(){k(()=>{x.value=!0})}let{displaySeek:P,onSeekInput:F,onSeekChange:ee}=qn(n);function I(){n.isFullscreen||n.markFullscreenPending(),n.toggleFullscreen()}return(t,d)=>(y(),a(`div`,{ref_key:`popupEl`,ref:C,class:m([`controls`,{"controls--fs":D(n).isFullscreen,"controls--compact":D(f)}]),onMousemove:d[11]||=A((...e)=>D(s).keepOpen&&D(s).keepOpen(...e),[`stop`])},[b.value?(y(),r(er,{key:0,onBack:d[0]||=e=>k(()=>b.value=!1)})):x.value?(y(),r(dr,{key:1,"is-custom":D(p),"custom-action":D(h),onBack:d[1]||=e=>k(()=>x.value=!1)},null,8,[`is-custom`,`custom-action`])):(y(),a(e,{key:2},[D(n).isLive?i(`v-if`,!0):(y(),a(`input`,{key:0,type:`range`,min:`0`,max:`100`,value:D(P),class:`controls__seek`,style:g({"--p":D(P)+`%`,"--b":D(n).bufferedDisplay+`%`}),onInput:d[2]||=(...e)=>D(F)&&D(F)(...e),onChange:d[3]||=(...e)=>D(ee)&&D(ee)(...e),onMousedown:d[4]||=e=>D(s).pauseHide(),onMouseup:d[5]||=e=>D(s).scheduleHide(),onTouchstartPassive:d[6]||=e=>D(s).pauseHide(),onTouchend:d[7]||=e=>D(s).scheduleHide()},null,44,fr)),o(`div`,pr,[o(`div`,mr,[D(n).isBuffering?(y(),r(Rn,{key:0})):(y(),r(In,{key:1,"is-playing":D(n).isPlaying,"has-ended":D(n).hasEnded,size:`sm`,onTogglePlay:d[8]||=e=>D(n).togglePlay()},null,8,[`is-playing`,`has-ended`]))]),D(n).isLive?(y(),a(`span`,hr,[...d[12]||=[o(`span`,{class:`controls__live-dot`},null,-1),c(`Live`,-1)]])):(y(),a(`span`,gr,T(D(n).fmt(D(n).current))+` / `+T(D(n).fmt(D(n).total)),1)),D(u).hasNext?(y(),a(`button`,{key:2,class:`controls__btn`,"aria-label":`Play next`,onClick:d[9]||=e=>D(u).playNext()},[l(D(En))])):i(`v-if`,!0),o(`button`,{class:`controls__btn`,"aria-label":`Volume`,onClick:M},[l(Ln)]),o(`button`,{class:m([`controls__btn controls__btn--more`,{"controls__btn--active":D(n).isLooping||D(n).playbackRate!==1||D(u).autoAdvance}]),"aria-label":`More`,onClick:N},[l(D(tn))],2),D(n).supportsPip?(y(),a(`button`,{key:3,class:m([`controls__btn controls__btn--pip`,{"controls__btn--active":D(n).isPipActive}]),"aria-label":D(n).isPipActive?`Exit picture-in-picture`:`Picture-in-picture`,onClick:d[10]||=e=>D(n).togglePip()},[l(D(un))],10,_r)):i(`v-if`,!0),o(`div`,vr,[D(n).isFullscreenPending?(y(),r(Rn,{key:0})):(y(),a(`button`,{key:1,class:`controls__btn`,"aria-label":D(n).isFullscreen?`Exit fullscreen`:`Fullscreen`,onClick:I},[D(n).isFullscreen?(y(),r(D(qt),{key:0})):(y(),r(D(Ut),{key:1}))],8,yr))])])],64))],34))}}),[[`__scopeId`,`data-v-5712aad4`]]);const xr={class:`ad-overlay`},Sr={class:`ad-overlay__bar`},Cr={class:`ad-overlay__badge`},wr={key:0,class:`ad-overlay__countdown`},Tr=[`aria-label`],Er=[`aria-label`];var Dr=$(u({__name:`AdOverlay`,setup(e){let t=Q(X),s=n(()=>t.adRemainingTime>0?t.fmt(t.adRemainingTime):``);return(e,n)=>(y(),a(`div`,xr,[o(`div`,Sr,[o(`div`,Cr,[n[2]||=o(`span`,null,`Ad`,-1),s.value?(y(),a(`span`,wr,T(s.value),1)):i(`v-if`,!0)]),o(`button`,{class:`ad-overlay__btn`,"aria-label":D(t).isAdPaused?`Resume ad`:`Pause ad`,onClick:n[0]||=e=>D(t).togglePlay()},[D(t).isAdPaused?(y(),r(D(mn),{key:0})):(y(),r(D(on),{key:1}))],8,Tr),o(`button`,{class:`ad-overlay__btn`,"aria-label":D(t).isAdMuted?`Unmute ad`:`Mute ad`,onClick:n[1]||=e=>D(t).toggleAdMute()},[D(t).isAdMuted?(y(),r(D(An),{key:0})):(y(),r(D(Pn),{key:1}))],8,Er)])]))}}),[[`__scopeId`,`data-v-23efcc8b`]]);const Or={key:0,class:`overlay__spinner`},kr={key:0,class:`overlay__error`};var Ar=$(u({__name:`PlayerOverlay`,props:{disableTapCapture:{type:Boolean,required:!1,default:!1}},setup(n){let s=Q(X),c=Q(Z),{hudVisible:u,popupVisible:d}=_t(s,c);function f(){c.onVideoTap()}return(c,p)=>(y(),a(e,null,[i(` Never rendered during any ad state (playing or paused) — pausing/resuming an ad goes
|
|
2
2
|
through AdOverlay's own dedicated button now, not a tap-anywhere gesture over the whole ad
|
|
3
|
-
creative, so there's no reason for this layer to cover the ad break at all. `),!n.disableTapCapture&&D(s).hasStarted&&!D(s).isAdPlaying?(y(),a(`div`,{key:0,class:`overlay__tap-capture`,onClick:f,onTouchend:A(f,[`prevent`,`stop`])},null,32)):i(`v-if`,!0),D(s).isAdPlaying?(y(),r(Tr,{key:1})):i(`v-if`,!0),l(t,{name:`fade`},{default:k(()=>[!D(s).isReady&&!D(s).isError?(y(),a(`div`,Er,[l(In,{size:40,"border-width":3})])):i(`v-if`,!0)]),_:1}),l(t,{name:`fade`},{default:k(()=>[D(s).isError?(y(),a(`div`,Dr,[o(`p`,null,T(D(s).errorMessage||`This video could not be played.`),1),o(`button`,{class:`overlay__retry`,onClick:p[0]||=A((...e)=>D(s).retry&&D(s).retry(...e),[`stop`])},`Retry`)])):i(`v-if`,!0)]),_:1}),o(`div`,{class:m([`overlay__hud`,{"overlay__hud--visible":D(u)}])},[l(Wn)],2),l(t,{name:`popup`},{default:k(()=>[D(d)?(y(),a(`div`,{key:0,class:m([`overlay__popup`,{"overlay__popup--fs":D(s).isFullscreen}])},[l(vr)],2)):i(`v-if`,!0)]),_:1})],64))}}),[[`__scopeId`,`data-v-f3307b98`]]);const kr={class:`player`},Ar={"data-mvp-player":``},jr=[`poster`],Mr=[`src`,`kind`,`srclang`,`label`,`default`],Nr={key:1,class:`player__native-play`};var Pr=$(u({__name:`VideoPlayer`,props:{videoUrl:{type:String,required:!0},title:{type:String,required:!1,default:``},poster:{type:String,required:!1,default:``},aspectRatio:{type:String,required:!1,default:te},adTagUrl:{type:String,required:!1,default:``},adTagParams:{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},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,required:!1,default:()=>({})},action:{type:[String,Object,null],required:!1,default:null},disableTapCapture:{type:Boolean,required:!1,default:!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(t,{expose:s,emit:c}){let u=t,d=c,f=S(null),p=x(ut(f,u,d)),h=x(dt(E(p,`isPlaying`)));b(X,p),b(Z,h),b(ft,E(u,`action`)),b(mt,x({hasPlaylist:n(()=>u.hasPlaylist),hasNext:n(()=>u.hasNext),hasPrevious:n(()=>u.hasPrevious),autoAdvance:n(()=>u.autoAdvance),playNext:()=>d(`play-next`),playPrevious:()=>d(`play-previous`),toggleAutoAdvance:()=>d(`toggle-auto-advance`)}));let _=n(()=>P(u.aspectRatio)),v=n(()=>_.value.isPortrait),w=n(()=>_.value.cssRatio),T=n(()=>!u.poster&&!p.isReady);return s(p),(t,n)=>(y(),a(`div`,kr,[o(`div`,{class:m([`player__shell`,{"player__shell--portrait":v.value}]),style:g({aspectRatio:w.value}),onMousemove:n[0]||=e=>h.onMouseMove(),onContextmenuCapture:n[1]||=A(()=>{},[`prevent`]),onMouseleave:n[2]||=e=>h.onMouseLeave()},[o(`div`,Ar,[o(`video`,{ref_key:`videoEl`,ref:f,class:m([`mvp-video`,{"mvp-video--hidden":T.value}]),poster:u.poster,playsinline:``},[(y(!0),a(e,null,C(u.tracks,(e,t)=>(y(),a(`track`,{key:`${e.src}-${t}`,src:e.src,kind:e.kind??`captions`,srclang:e.srclang,label:e.label,default:e.default},null,8,Mr))),128))],10,jr),p.nativeUi?i(`v-if`,!0):(y(),r(Or,{key:0,"disable-tap-capture":u.disableTapCapture},null,8,[`disable-tap-capture`])),p.nativeUi&&!p.hasStarted?(y(),a(`div`,Nr,[l(Pn,{"is-playing":!1,size:`lg`,onTogglePlay:p.togglePlay},null,8,[`onTogglePlay`])])):i(`v-if`,!0)])],38)]))}}),[[`__scopeId`,`data-v-4ab3cf75`]]);const Fr=S(0),Ir=n(()=>Fr.value>0);function Lr(){Fr.value++}function Rr(){Fr.value--}function zr(e,t){window.dispatchEvent(new CustomEvent(e,{detail:t}))}function Br(e,t){let n=e=>t(e.detail);v(()=>window.addEventListener(e,n)),_(()=>window.removeEventListener(e,n))}function Vr(e,t){let r=n(()=>!e.value||!t.value?-1:e.value.findIndex(e=>e.videoUrl===t.value?.videoUrl)),i=n(()=>r.value===-1||!e.value?null:e.value[r.value+1]??null),a=n(()=>r.value<=0||!e.value?null:e.value[r.value-1]??null);return{hasNext:n(()=>i.value!==null),hasPrevious:n(()=>a.value!==null),nextEntry:i,previousEntry:a}}function Hr(){return localStorage.getItem(H)===`true`}function Ur(e){localStorage.setItem(H,String(e))}const Wr=[`src`],Gr={class:`stage__idle-body`},Kr={class:`stage__idle-btn`},qr={class:`stage__idle-title`},Jr={key:1,class:`stage__idle-empty`};var Yr=$(u({__name:`VideoStage`,props:{pinPosition:{type:String,required:!1,default:`bottom-right`},playlist:{type:Array,required:!1}},emits:[`state-change`],setup(t,{expose:s,emit:c}){let u=t,d=c,p=S(Hr());O(p,Ur);let h=n(()=>!!u.playlist?.length),x=S(null),C=S(null),w=S(!1),k=S(!1),j=S(null),M=S(null),N=S(!1);b(pt,N);let{hasNext:F,hasPrevious:ee,nextEntry:I,previousEntry:L}=Vr(E(u,`playlist`),C),B=n(()=>N.value&&!!C.value&&w.value),V=n(()=>P(C.value?.aspectRatio||`16:9`).cssRatio),H=S(null),U=S(null);O(B,e=>{H.value=e&&M.value?{height:M.value.offsetHeight,width:M.value.offsetWidth}:null});let W=n(()=>{if(!H.value)return{};let{height:e,width:t}=H.value,n=U.value&&t?U.value/t:1;return{height:`${Math.round(e*n)}px`}}),G=null,K=null;function q(){G?.disconnect(),K?.disconnect(),j.value&&(G=new IntersectionObserver(([e])=>{N.value=!e.isIntersecting},{threshold:1}),G.observe(j.value),K=new ResizeObserver(([e])=>{U.value=e.contentRect.width}),K.observe(j.value))}O(j,q);function te(){C.value&&(C.value={...C.value,autoplay:!0},w.value=!0)}function ne(){j.value?.scrollIntoView({behavior:`smooth`,block:`center`})}function re(){C.value=null,w.value=!1,k.value=!1,H.value=null,ie()}function ie(){zr(z,{currentVideoUrl:C.value?.videoUrl??null,isPlaying:k.value})}function J(e){if(C.value?.videoUrl===e.videoUrl&&w.value){x.value?.togglePlay();return}C.value=e,w.value=!1,k.value=!1,ie(),w.value=!0}function Y(e){if(!(!C.value||e.videoUrl!==C.value.videoUrl)){if(!w.value){C.value={...C.value,autoplay:!0},w.value=!0;return}x.value?.togglePlay()}}function ae(e){return{...e,muted:e.muted??x.value?.isMuted,autoplay:!0}}function oe(){I.value&&J(ae(I.value))}function se(){L.value&&J(ae(L.value))}function ce(e){e.type===`play`&&(k.value=!0),(e.type===`pause`||e.type===`ended`)&&(k.value=!1),e.type===`ended`&&p.value&&oe(),ie(),d(`state-change`,e)}return Br(R,J),Br(`video-toggle`,Y),v(Lr),_(()=>{Rr(),G?.disconnect(),K?.disconnect()}),s({playNext:oe,playPrevious:se,hasNext:F,hasPrevious:ee}),(n,s)=>(y(),a(`div`,{ref_key:`wrapperEl`,ref:j,class:`stage-wrapper`,style:g(W.value)},[o(`div`,{ref_key:`stageEl`,ref:M,class:m([`stage`,{"stage--minified":B.value,[`stage--pin-${t.pinPosition}`]:B.value}])},[B.value?(y(),a(`button`,{key:0,class:`stage__scroll-to`,"aria-label":`Scroll to player`,onClick:A(ne,[`stop`])},[l(D(Lt))])):i(`v-if`,!0),B.value?(y(),a(`button`,{key:1,class:`stage__dismiss`,"aria-label":`Close`,onClick:A(re,[`stop`])},[l(D(kt))])):i(`v-if`,!0),C.value&&w.value?(y(),r(Pr,f({ref_key:`playerRef`,ref:x,key:C.value.videoUrl},C.value,{"has-playlist":h.value,"has-next":D(F),"has-previous":D(ee),"auto-advance":p.value,onStateChange:ce,onPlayNext:oe,onPlayPrevious:se,onToggleAutoAdvance:s[0]||=e=>p.value=!p.value}),null,16,[`has-playlist`,`has-next`,`has-previous`,`auto-advance`])):(y(),a(`div`,{key:3,class:`stage__idle`,style:g({aspectRatio:V.value}),onClick:te},[C.value?.poster?(y(),a(`img`,{key:0,src:C.value.poster,class:`stage__idle-poster`},null,8,Wr)):i(`v-if`,!0),s[1]||=o(`div`,{class:`stage__idle-scrim`},null,-1),o(`div`,Gr,[C.value?(y(),a(e,{key:0},[o(`div`,Kr,[l(D(fn))]),o(`p`,qr,T(C.value.title),1)],64)):(y(),a(`p`,Jr,`Select a video to play`))])],4))],2)],4))}}),[[`__scopeId`,`data-v-fb8c86cf`]]);const Xr={class:`placeholder`},Zr=[`src`,`alt`],Qr={class:`placeholder__btn-wrap`},$r={key:1,class:`placeholder__footer`},ei={class:`placeholder__title`};var ti=$(u({__name:`VideoPlaceholder`,props:{videoUrl:{type:String,required:!0},title:{type:String,required:!1,default:``},poster:{type:String,required:!1,default:``},aspectRatio:{type:String,required:!1,default:te},adTagUrl:{type:String,required:!1,default:``},adTagParams:{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},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,required:!1,default:()=>({})},action:{type:[String,Object,null],required:!1,default:null},disableTapCapture:{type:Boolean,required:!1}},setup(e){let t=e,r=n(()=>P(t.aspectRatio)),s=n(()=>r.value.isPortrait),c=n(()=>r.value.cssRatio),u=S(!1),d=S(!1);Br(z,e=>{u.value=e.currentVideoUrl===t.videoUrl,d.value=u.value&&e.isPlaying});function f(e){zr(R,{...t,...e!==void 0&&{autoplay:e}})}function p(){f(!0)}return v(()=>{t.autoStage&&f()}),(t,n)=>(y(),a(`div`,Xr,[o(`div`,{class:m([`placeholder__shell`,{"placeholder__shell--portrait":s.value,"placeholder__shell--active":u.value}]),style:g({aspectRatio:c.value}),onClick:p},[e.poster?(y(),a(`img`,{key:0,class:`placeholder__poster`,src:e.poster,alt:e.title},null,8,Zr)):i(`v-if`,!0),n[0]||=o(`div`,{class:`placeholder__scrim`},null,-1),o(`div`,Qr,[l(Pn,{"is-playing":u.value&&d.value,size:`lg`,onTogglePlay:p},null,8,[`is-playing`])]),e.title?(y(),a(`div`,$r,[o(`p`,ei,T(e.title),1)])):i(`v-if`,!0)],6)]))}}),[[`__scopeId`,`data-v-dbcb4f82`]]),ni=u({__name:`VideoItem`,props:{videoUrl:{type:String,required:!0},title:{type:String,required:!1},poster:{type:String,required:!1},aspectRatio:{type:String,required:!1},adTagUrl:{type:String,required:!1},adTagParams:{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},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,required:!1},action:{type:[String,Object,null],required:!1,default:null},disableTapCapture:{type:Boolean,required:!1}},emits:[`state-change`],setup(t,{emit:n}){let i=t,o=n,s=S(!1);return(t,n)=>D(Ir)?(y(),r(ti,h(f({key:0},i)),null,16)):(y(),a(e,{key:1},[i.lazy&&!s.value&&!i.autoplay?(y(),r(ti,f({key:0},i,{onClickCapture:n[0]||=e=>s.value=!0}),null,16)):(y(),r(Pr,f({key:1},i,{autoplay:s.value||i.autoplay,onStateChange:n[1]||=e=>o(`state-change`,e)}),null,16,[`autoplay`]))],64))}});const ri={install(e){e.component(`VideoPlayer`,Pr),e.component(`VideoStage`,Yr),e.component(`VideoPlaceholder`,ti),e.component(`VideoItem`,ni)}};export{ft as ActionKey,pt as CompactKey,Z as HudKey,X as PlayerKey,mt as PlaylistKey,ni as VideoItem,ti as VideoPlaceholder,Pr as VideoPlayer,ri as VideoPlayerPlugin,ri as default,Yr as VideoStage,Me as getPlatform,Q as injectStrict};
|
|
3
|
+
creative, so there's no reason for this layer to cover the ad break at all. `),!n.disableTapCapture&&D(s).hasStarted&&!D(s).isAdPlaying?(y(),a(`div`,{key:0,class:`overlay__tap-capture`,onClick:f,onTouchend:A(f,[`prevent`,`stop`])},null,32)):i(`v-if`,!0),D(s).isAdPlaying?(y(),r(Dr,{key:1})):i(`v-if`,!0),l(t,{name:`fade`},{default:k(()=>[!D(s).isReady&&!D(s).isError?(y(),a(`div`,Or,[l(Rn,{size:40,"border-width":3})])):i(`v-if`,!0)]),_:1}),l(t,{name:`fade`},{default:k(()=>[D(s).isError?(y(),a(`div`,kr,[o(`p`,null,T(D(s).errorMessage||`This video could not be played.`),1),o(`button`,{class:`overlay__retry`,onClick:p[0]||=A((...e)=>D(s).retry&&D(s).retry(...e),[`stop`])},`Retry`)])):i(`v-if`,!0)]),_:1}),o(`div`,{class:m([`overlay__hud`,{"overlay__hud--visible":D(u)}])},[l(Kn)],2),l(t,{name:`popup`},{default:k(()=>[D(d)?(y(),a(`div`,{key:0,class:m([`overlay__popup`,{"overlay__popup--fs":D(s).isFullscreen}])},[l(br)],2)):i(`v-if`,!0)]),_:1})],64))}}),[[`__scopeId`,`data-v-f3307b98`]]);const jr={class:`player`},Mr={"data-mvp-player":``},Nr=[`poster`],Pr=[`src`,`kind`,`srclang`,`label`,`default`],Fr={key:1,class:`player__native-play`};var Ir=$(u({__name:`VideoPlayer`,props:{videoUrl:{type:String,required:!0},title:{type:String,required:!1,default:``},poster:{type:String,required:!1,default:``},aspectRatio:{type:String,required:!1,default:te},adTagUrl:{type:String,required:!1,default:``},adTagParams:{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},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,required:!1,default:()=>({})},action:{type:[String,Object,null],required:!1,default:null},disableTapCapture:{type:Boolean,required:!1,default:!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(t,{expose:s,emit:c}){let u=t,d=c,f=S(null),p=x(ft(f,u,d)),h=x(pt(E(p,`isPlaying`)));b(X,p),b(Z,h),b(mt,E(u,`action`)),b(gt,x({hasPlaylist:n(()=>u.hasPlaylist),hasNext:n(()=>u.hasNext),hasPrevious:n(()=>u.hasPrevious),autoAdvance:n(()=>u.autoAdvance),playNext:()=>d(`play-next`),playPrevious:()=>d(`play-previous`),toggleAutoAdvance:()=>d(`toggle-auto-advance`)}));let _=n(()=>P(u.aspectRatio)),v=n(()=>_.value.isPortrait),w=n(()=>_.value.cssRatio),T=n(()=>!u.poster&&!p.isReady);return s(p),(t,n)=>(y(),a(`div`,jr,[o(`div`,{class:m([`player__shell`,{"player__shell--portrait":v.value}]),style:g({aspectRatio:w.value}),onMousemove:n[0]||=e=>h.onMouseMove(),onContextmenuCapture:n[1]||=A(()=>{},[`prevent`]),onMouseleave:n[2]||=e=>h.onMouseLeave()},[o(`div`,Mr,[o(`video`,{ref_key:`videoEl`,ref:f,class:m([`mvp-video`,{"mvp-video--hidden":T.value}]),poster:u.poster,playsinline:``},[(y(!0),a(e,null,C(u.tracks,(e,t)=>(y(),a(`track`,{key:`${e.src}-${t}`,src:e.src,kind:e.kind??`captions`,srclang:e.srclang,label:e.label,default:e.default},null,8,Pr))),128))],10,Nr),p.nativeUi?i(`v-if`,!0):(y(),r(Ar,{key:0,"disable-tap-capture":u.disableTapCapture},null,8,[`disable-tap-capture`])),p.nativeUi&&!p.hasStarted?(y(),a(`div`,Fr,[l(In,{"is-playing":!1,size:`lg`,onTogglePlay:p.togglePlay},null,8,[`onTogglePlay`])])):i(`v-if`,!0)])],38)]))}}),[[`__scopeId`,`data-v-4ab3cf75`]]);const Lr=S(0),Rr=n(()=>Lr.value>0);function zr(){Lr.value++}function Br(){Lr.value--}function Vr(e,t){window.dispatchEvent(new CustomEvent(e,{detail:t}))}function Hr(e,t){let n=e=>t(e.detail);v(()=>window.addEventListener(e,n)),_(()=>window.removeEventListener(e,n))}function Ur(e,t){let r=n(()=>!e.value||!t.value?-1:e.value.findIndex(e=>e.videoUrl===t.value?.videoUrl)),i=n(()=>r.value===-1||!e.value?null:e.value[r.value+1]??null),a=n(()=>r.value<=0||!e.value?null:e.value[r.value-1]??null);return{hasNext:n(()=>i.value!==null),hasPrevious:n(()=>a.value!==null),nextEntry:i,previousEntry:a}}function Wr(){return localStorage.getItem(H)===`true`}function Gr(e){localStorage.setItem(H,String(e))}const Kr=[`src`],qr={class:`stage__idle-body`},Jr={class:`stage__idle-btn`},Yr={class:`stage__idle-title`},Xr={key:1,class:`stage__idle-empty`};var Zr=$(u({__name:`VideoStage`,props:{pinPosition:{type:String,required:!1,default:`bottom-right`},playlist:{type:Array,required:!1}},emits:[`state-change`],setup(t,{expose:s,emit:c}){let u=t,d=c,p=S(Wr());O(p,Gr);let h=n(()=>!!u.playlist?.length),x=S(null),C=S(null),w=S(!1),k=S(!1),j=S(null),M=S(null),N=S(!1);b(ht,N);let{hasNext:F,hasPrevious:ee,nextEntry:I,previousEntry:L}=Ur(E(u,`playlist`),C),B=n(()=>N.value&&!!C.value&&w.value),V=n(()=>P(C.value?.aspectRatio||`16:9`).cssRatio),H=S(null),U=S(null);O(B,e=>{H.value=e&&M.value?{height:M.value.offsetHeight,width:M.value.offsetWidth}:null});let W=n(()=>{if(!H.value)return{};let{height:e,width:t}=H.value,n=U.value&&t?U.value/t:1;return{height:`${Math.round(e*n)}px`}}),G=null,K=null;function q(){G?.disconnect(),K?.disconnect(),j.value&&(G=new IntersectionObserver(([e])=>{N.value=!e.isIntersecting},{threshold:1}),G.observe(j.value),K=new ResizeObserver(([e])=>{U.value=e.contentRect.width}),K.observe(j.value))}O(j,q);function te(){C.value&&(C.value={...C.value,autoplay:!0},w.value=!0)}function ne(){j.value?.scrollIntoView({behavior:`smooth`,block:`center`})}function re(){C.value=null,w.value=!1,k.value=!1,H.value=null,ie()}function ie(){Vr(z,{currentVideoUrl:C.value?.videoUrl??null,isPlaying:k.value})}function J(e){if(C.value?.videoUrl===e.videoUrl&&w.value){x.value?.togglePlay();return}C.value=e,w.value=!1,k.value=!1,ie(),w.value=!0}function Y(e){if(!(!C.value||e.videoUrl!==C.value.videoUrl)){if(!w.value){C.value={...C.value,autoplay:!0},w.value=!0;return}x.value?.togglePlay()}}function ae(e){return{...e,muted:e.muted??x.value?.isMuted,autoplay:!0}}function oe(){I.value&&J(ae(I.value))}function se(){L.value&&J(ae(L.value))}function ce(e){e.type===`play`&&(k.value=!0),(e.type===`pause`||e.type===`ended`)&&(k.value=!1),e.type===`ended`&&p.value&&oe(),ie(),d(`state-change`,e)}return Hr(R,J),Hr(`video-toggle`,Y),v(zr),_(()=>{Br(),G?.disconnect(),K?.disconnect()}),s({playNext:oe,playPrevious:se,hasNext:F,hasPrevious:ee}),(n,s)=>(y(),a(`div`,{ref_key:`wrapperEl`,ref:j,class:`stage-wrapper`,style:g(W.value)},[o(`div`,{ref_key:`stageEl`,ref:M,class:m([`stage`,{"stage--minified":B.value,[`stage--pin-${t.pinPosition}`]:B.value}])},[B.value?(y(),a(`button`,{key:0,class:`stage__scroll-to`,"aria-label":`Scroll to player`,onClick:A(ne,[`stop`])},[l(D(zt))])):i(`v-if`,!0),B.value?(y(),a(`button`,{key:1,class:`stage__dismiss`,"aria-label":`Close`,onClick:A(re,[`stop`])},[l(D(jt))])):i(`v-if`,!0),C.value&&w.value?(y(),r(Ir,f({ref_key:`playerRef`,ref:x,key:C.value.videoUrl},C.value,{"has-playlist":h.value,"has-next":D(F),"has-previous":D(ee),"auto-advance":p.value,onStateChange:ce,onPlayNext:oe,onPlayPrevious:se,onToggleAutoAdvance:s[0]||=e=>p.value=!p.value}),null,16,[`has-playlist`,`has-next`,`has-previous`,`auto-advance`])):(y(),a(`div`,{key:3,class:`stage__idle`,style:g({aspectRatio:V.value}),onClick:te},[C.value?.poster?(y(),a(`img`,{key:0,src:C.value.poster,class:`stage__idle-poster`},null,8,Kr)):i(`v-if`,!0),s[1]||=o(`div`,{class:`stage__idle-scrim`},null,-1),o(`div`,qr,[C.value?(y(),a(e,{key:0},[o(`div`,Jr,[l(D(mn))]),o(`p`,Yr,T(C.value.title),1)],64)):(y(),a(`p`,Xr,`Select a video to play`))])],4))],2)],4))}}),[[`__scopeId`,`data-v-fb8c86cf`]]);const Qr={class:`placeholder`},$r=[`src`,`alt`],ei={class:`placeholder__btn-wrap`},ti={key:1,class:`placeholder__footer`},ni={class:`placeholder__title`};var ri=$(u({__name:`VideoPlaceholder`,props:{videoUrl:{type:String,required:!0},title:{type:String,required:!1,default:``},poster:{type:String,required:!1,default:``},aspectRatio:{type:String,required:!1,default:te},adTagUrl:{type:String,required:!1,default:``},adTagParams:{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},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,required:!1,default:()=>({})},action:{type:[String,Object,null],required:!1,default:null},disableTapCapture:{type:Boolean,required:!1}},setup(e){let t=e,r=n(()=>P(t.aspectRatio)),s=n(()=>r.value.isPortrait),c=n(()=>r.value.cssRatio),u=S(!1),d=S(!1);Hr(z,e=>{u.value=e.currentVideoUrl===t.videoUrl,d.value=u.value&&e.isPlaying});function f(e){Vr(R,{...t,...e!==void 0&&{autoplay:e}})}function p(){f(!0)}return v(()=>{t.autoStage&&f()}),(t,n)=>(y(),a(`div`,Qr,[o(`div`,{class:m([`placeholder__shell`,{"placeholder__shell--portrait":s.value,"placeholder__shell--active":u.value}]),style:g({aspectRatio:c.value}),onClick:p},[e.poster?(y(),a(`img`,{key:0,class:`placeholder__poster`,src:e.poster,alt:e.title},null,8,$r)):i(`v-if`,!0),n[0]||=o(`div`,{class:`placeholder__scrim`},null,-1),o(`div`,ei,[l(In,{"is-playing":u.value&&d.value,size:`lg`,onTogglePlay:p},null,8,[`is-playing`])]),e.title?(y(),a(`div`,ti,[o(`p`,ni,T(e.title),1)])):i(`v-if`,!0)],6)]))}}),[[`__scopeId`,`data-v-dbcb4f82`]]),ii=u({__name:`VideoItem`,props:{videoUrl:{type:String,required:!0},title:{type:String,required:!1},poster:{type:String,required:!1},aspectRatio:{type:String,required:!1},adTagUrl:{type:String,required:!1},adTagParams:{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},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,required:!1},action:{type:[String,Object,null],required:!1,default:null},disableTapCapture:{type:Boolean,required:!1}},emits:[`state-change`],setup(t,{emit:n}){let i=t,o=n,s=S(!1);return(t,n)=>D(Rr)?(y(),r(ri,h(f({key:0},i)),null,16)):(y(),a(e,{key:1},[i.lazy&&!s.value&&!i.autoplay?(y(),r(ri,f({key:0},i,{onClickCapture:n[0]||=e=>s.value=!0}),null,16)):(y(),r(Ir,f({key:1},i,{autoplay:s.value||i.autoplay,onStateChange:n[1]||=e=>o(`state-change`,e)}),null,16,[`autoplay`]))],64))}});const ai={install(e){e.component(`VideoPlayer`,Ir),e.component(`VideoStage`,Zr),e.component(`VideoPlaceholder`,ri),e.component(`VideoItem`,ii)}};export{mt as ActionKey,ht as CompactKey,Z as HudKey,X as PlayerKey,gt as PlaylistKey,ii as VideoItem,ri as VideoPlaceholder,Ir as VideoPlayer,ai as VideoPlayerPlugin,ai as default,Zr as VideoStage,Me as getPlatform,Q as injectStrict};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@munsonlabs/video-player",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.4",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"files": [
|
|
6
6
|
"dist"
|
|
@@ -40,14 +40,19 @@
|
|
|
40
40
|
},
|
|
41
41
|
"devDependencies": {
|
|
42
42
|
"@pugpigbolt/shipkit": "*",
|
|
43
|
+
"dashjs": "^4.7.4",
|
|
43
44
|
"hls.js": "^1.6.16",
|
|
44
45
|
"vue": "^3.5.34"
|
|
45
46
|
},
|
|
46
47
|
"peerDependencies": {
|
|
48
|
+
"dashjs": "^4.7.4",
|
|
47
49
|
"hls.js": "^1.6.16",
|
|
48
50
|
"vue": ">=3"
|
|
49
51
|
},
|
|
50
52
|
"peerDependenciesMeta": {
|
|
53
|
+
"dashjs": {
|
|
54
|
+
"optional": true
|
|
55
|
+
},
|
|
51
56
|
"hls.js": {
|
|
52
57
|
"optional": true
|
|
53
58
|
}
|