@munsonlabs/video-player 0.0.2 → 0.0.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 CHANGED
@@ -49,35 +49,38 @@ import '@munsonlabs/video-player/style'
49
49
 
50
50
  ## VideoItem / VideoPlayer Props
51
51
 
52
- | Prop | Type | Default | Description |
53
- | -------------- | -------------- | -------- | ----------------------------------------------------------------------------------------- |
54
- | `videoUrl` | `string` | — | **Required.** The video URL or platform-specific URI |
55
- | `platform` | `string` | — | `youtube` · `vimeo` · `dailymotion` · `brightcove` · `jwplayer` · `html5` |
56
- | `title` | `string` | `''` | Video title |
57
- | `poster` | `string` | `''` | Poster image URL |
58
- | `aspectRatio` | `string` | `'16:9'` | e.g. `'16:9'`, `'9:16'`, `'4:3'` |
59
- | `autoplay` | `boolean` | `false` | Autoplay on mount (mutes automatically) |
60
- | `muted` | `boolean` | `false` | Start muted |
61
- | `lazy` | `boolean` | `true` | Show placeholder until clicked |
62
- | `nativeUi` | `boolean` | `false` | Use the platform's native controls (YouTube, Vimeo, Dailymotion only) |
63
- | `autoStage` | `boolean` | `false` | Immediately send this video to the stage on mount |
64
- | `playbackRate` | `number` | `1` | Initial playback rate |
65
- | `adTagUrl` | `string` | `''` | VAST or VMAP ad tag URL |
66
- | `imaOptions` | `object` | `{}` | Extra options passed to the IMA plugin (e.g. `{ customParameters: { section: 'news' } }`) |
67
- | `techOptions` | `object` | `{}` | Extra options passed directly to Video.js |
68
- | `payload` | `object` | `{}` | Arbitrary data attached to every `state-change` event |
69
- | `action` | `PlayerAction` | `null` | Button shown in the player HUD — see [Actions](#actions) |
52
+ | Prop | Type | Default | Description |
53
+ | -------------- | -------------- | -------- | ---------------------------------------------------------------------------------------------------------- |
54
+ | `videoUrl` | `string` | — | **Required.** The video URL or platform-specific URI |
55
+ | `platform` | `string` | — | `youtube` · `vimeo` · `dailymotion` · `brightcove` · `jwplayer` · `html5` |
56
+ | `title` | `string` | `''` | Video title |
57
+ | `poster` | `string` | `''` | Poster image URL |
58
+ | `aspectRatio` | `string` | `'16:9'` | e.g. `'16:9'`, `'9:16'`, `'4:3'` |
59
+ | `autoplay` | `boolean` | `false` | Autoplay on mount (mutes automatically) |
60
+ | `muted` | `boolean` | `false` | Start muted |
61
+ | `lazy` | `boolean` | `true`\* | Show placeholder until clicked |
62
+ | `nativeUi` | `boolean` | `false` | Use the platform's native controls (YouTube, Vimeo, Dailymotion only) |
63
+ | `autoStage` | `boolean` | `false` | Immediately send this video to the stage on mount |
64
+ | `playbackRate` | `number` | `1` | Initial playback rate |
65
+ | `adTagUrl` | `string` | `''` | VAST or VMAP ad tag URL |
66
+ | `imaOptions` | `object` | `{}` | Extra options passed to the IMA plugin (e.g. `{ customParameters: { section: 'news' } }`) |
67
+ | `techOptions` | `object` | `{}` | Extra options passed directly to Video.js |
68
+ | `payload` | `object` | `{}` | Arbitrary data attached to every `state-change` event |
69
+ | `action` | `PlayerAction` | `null` | Button shown in the player HUD — see [Actions](#actions) |
70
+ | `focusMode` | `boolean` | `false` | The "show controls" button centers the video and renders controls below it — see [Focus mode](#focus-mode) |
71
+
72
+ \* `lazy` only has an effect on `VideoItem` (default `true`), which is what actually implements the placeholder-until-clicked behavior. `VideoPlayer` accepts the prop for type compatibility but defaults to `false` and never reads it — using `<VideoPlayer>` directly always mounts the real player immediately, regardless of `lazy`.
70
73
 
71
74
  ### Platform URLs
72
75
 
73
- | Platform | URL format |
74
- | ------------- | -------------------------------------------------- |
75
- | `youtube` | `https://www.youtube.com/watch?v=VIDEO_ID` |
76
- | `vimeo` | `https://vimeo.com/VIDEO_ID` |
77
- | `dailymotion` | `https://www.dailymotion.com/video/VIDEO_ID` |
78
- | `brightcove` | `brightcove://ACCOUNT_ID/PLAYER_ID/embed/VIDEO_ID` |
79
- | `jwplayer` | `https://cdn.jwplayer.com/videos/...` |
80
- | `html5` | Any direct MP4 / HLS URL |
76
+ | Platform | URL format |
77
+ | ------------- | -------------------------------------------------------------------------------------------------------- |
78
+ | `youtube` | `https://www.youtube.com/watch?v=VIDEO_ID` |
79
+ | `vimeo` | `https://vimeo.com/VIDEO_ID` |
80
+ | `dailymotion` | `https://www.dailymotion.com/video/VIDEO_ID` |
81
+ | `brightcove` | `brightcove://ACCOUNT_ID/PLAYER_ID/embed/VIDEO_ID` |
82
+ | `jwplayer` | `https://cdn.jwplayer.com/videos/...` · `https://cdn.jwplayer.com/manifests/...` · `jwplayer://MEDIA_ID` |
83
+ | `html5` | Any direct MP4 / HLS URL |
81
84
 
82
85
  ---
83
86
 
@@ -102,6 +105,8 @@ interface StateChangeEvent {
102
105
  | 'firstQuartile'
103
106
  | 'midpoint'
104
107
  | 'thirdQuartile'
108
+ | 'focusstart'
109
+ | 'focusend'
105
110
  currentTime: number
106
111
  duration: number
107
112
  src: string
@@ -114,12 +119,43 @@ interface StateChangeEvent {
114
119
 
115
120
  `firstQuartile` / `midpoint` / `thirdQuartile` fire once each as playback crosses 25%, 50%, and 75% of the video's duration — useful for analytics integrations that expect IAB-style progress milestones. They reset and can fire again on loop restart.
116
121
 
122
+ `focusstart` / `focusend` fire when [focus mode](#focus-mode) is entered/exited (only relevant if `focusMode` is set).
123
+
124
+ 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()`, and `setPlaybackRate()`. Note this is on `VideoPlayer` specifically — `VideoItem` doesn't forward a ref to it, since it may be showing a lazy placeholder instead:
125
+
126
+ ```vue
127
+ <script setup>
128
+ import { ref } from 'vue'
129
+ const player = ref(null)
130
+ </script>
131
+
132
+ <template>
133
+ <VideoPlayer ref="player" video-url="..." platform="html5" />
134
+ <button @click="player.retry()">Retry</button>
135
+ </template>
136
+ ```
137
+
117
138
  ```vue
118
139
  <VideoItem video-url="..." platform="html5" @state-change="onStateChange" />
119
140
  ```
120
141
 
121
142
  ---
122
143
 
144
+ ## Focus mode
145
+
146
+ Set `focusMode` to change what the "show controls" button (in the HUD row) does: instead of overlaying the expanded controls on top of the video, the video centers itself on the page and the controls bar renders below it, dimming the rest of the page behind a backdrop.
147
+
148
+ ```vue
149
+ <VideoItem video-url="..." platform="youtube" focus-mode />
150
+ ```
151
+
152
+ - The video's original spot in the page keeps its size (an empty placeholder box) so surrounding layout doesn't jump while it's centered.
153
+ - Clicking the backdrop, pressing `Escape`, or the close button in the controls bar all return it to its original position.
154
+ - The move is animated via the [View Transitions API](https://developer.mozilla.org/en-US/docs/Web/API/View_Transitions_API) where supported, falling back to an instant toggle otherwise.
155
+ - The video element itself is never moved in the DOM (no `Teleport`) — it's purely a CSS `position: fixed` toggle — so YouTube/Vimeo/Dailymotion iframes are never reloaded by entering or exiting focus mode.
156
+
157
+ ---
158
+
123
159
  ## Actions
124
160
 
125
161
  The `action` prop adds a button to the player HUD. Pass a built-in string or a custom action object.
@@ -0,0 +1 @@
1
+ import{a as e,t}from"./video.cjs-gZWrkL0e.mjs";import{s as n,t as r}from"./tech-DQUZqNr6.mjs";var i=e(t(),1);function a(e){let t=e.match(/^brightcove:\/\/([^/]+)\/([^/]+)\/([^/]+)\/([^/]+)$/);return t?{accountId:t[1],playerId:t[2],embed:t[3],videoId:t[4]}:null}function o(e){return(e?.plugins??[]).find(e=>e.name===`ima3`)?.options?.serverUrl??null}const s=r(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(),s=r??a?.video_cloud?.policy_key;if(!s)throw Error(`Brightcove: policy_key not found in player config`);return{policyKey:s,adTagUrl:o(a)}},(e,t,n)=>`${e}/${t}_${n}`);async function c(e,t){let n=a(e);if(!n)return null;let{accountId:r,playerId:i,embed:o}=n;return s(r,i,o,t)}async function l(e,t,r){let i=await fetch(`https://edge.api.brightcove.com/playback/v1/accounts/${e}/videos/${t}`,{headers:{Accept:`application/json;pk=${r}`}});if(!i.ok)throw Error(`Brightcove Playback API error: ${i.status}`);let a=await i.json(),o=n(a.sources||[]);if(!o.length)throw Error(`Brightcove: no playable sources found`);return{sources:o.map(e=>({src:e.src,type:e.type})),poster:a.poster??a.thumbnail??null}}i.default.use(`video/brightcove`,e=>({setSource(t,n){let r=a(t.src);if(!r){n(Error(`Brightcove: invalid src — expected "brightcove://accountId/playerId/embed/videoId"`),t);return}let{accountId:o,playerId:c,embed:u,videoId:d}=r,f=e.options_?.brightcove?.policyKey;(async()=>{try{let{policyKey:t}=await s(o,c,u,f);i.default.log(`Brightcove: resolved policy key, fetching sources…`);let{sources:r,poster:a}=await l(o,d,t);i.default.log(`Brightcove: sources resolved`,r),a&&!e.poster()&&e.poster(a),n(null,r[0])}catch(e){i.default.log.error(`Brightcove error:`,e.message),n(e,t)}})()}}));export{c as prefetchConfig};
@@ -0,0 +1 @@
1
+ import{s as e,t}from"./tech-BOi4jf1S.mjs";import n from"video.js";function r(e){let t=e.match(/^brightcove:\/\/([^/]+)\/([^/]+)\/([^/]+)\/([^/]+)$/);return t?{accountId:t[1],playerId:t[2],embed:t[3],videoId:t[4]}:null}function i(e){return(e?.plugins??[]).find(e=>e.name===`ima3`)?.options?.serverUrl??null}const a=t(async(e,t,n,r)=>{let a=await fetch(`https://players.brightcove.net/${e}/${t}_${n}/config.json`);if(!a.ok)throw Error(`Brightcove: could not load player config (${a.status})`);let o=await a.json(),s=r??o?.video_cloud?.policy_key;if(!s)throw Error(`Brightcove: policy_key not found in player config`);return{policyKey:s,adTagUrl:i(o)}},(e,t,n)=>`${e}/${t}_${n}`);async function o(e,t){let n=r(e);if(!n)return null;let{accountId:i,playerId:o,embed:s}=n;return a(i,o,s,t)}async function s(t,n,r){let i=await fetch(`https://edge.api.brightcove.com/playback/v1/accounts/${t}/videos/${n}`,{headers:{Accept:`application/json;pk=${r}`}});if(!i.ok)throw Error(`Brightcove Playback API error: ${i.status}`);let a=await i.json(),o=e(a.sources||[]);if(!o.length)throw Error(`Brightcove: no playable sources found`);return{sources:o.map(e=>({src:e.src,type:e.type})),poster:a.poster??a.thumbnail??null}}n.use(`video/brightcove`,e=>({setSource(t,i){let o=r(t.src);if(!o){i(Error(`Brightcove: invalid src — expected "brightcove://accountId/playerId/embed/videoId"`),t);return}let{accountId:c,playerId:l,embed:u,videoId:d}=o,f=e.options_?.brightcove?.policyKey;(async()=>{try{let{policyKey:t}=await a(c,l,u,f);n.log(`Brightcove: resolved policy key, fetching sources…`);let{sources:r,poster:o}=await s(c,d,t);n.log(`Brightcove: sources resolved`,r),o&&!e.poster()&&e.poster(o),i(null,r[0])}catch(e){n.log.error(`Brightcove error:`,e.message),i(e,t)}})()}}));export{o as prefetchConfig};
@@ -0,0 +1 @@
1
+ import{a as e,c as t,l as n,n as r,u as i}from"./tech-BOi4jf1S.mjs";import{t as a}from"./loadScript-Du6JsTc2.mjs";import o from"video.js";const s=o.getTech(`Tech`);var c=class t extends s{constructor(e,t){super(e,t),this._currentTime=0,this._duration=0,this._volume=1,this._muted=!1,this._paused=!0,this._seeking=!1,this._dm=null,this.setSrc(this.options_.source),this.setTimeout(()=>{this.el_&&(this.el_.parentNode.classList.add(`vjs-dailymotion`),this.initPlayer())})}createEl(){let e=document.createElement(`div`);return e.setAttribute(`id`,this.options_.techId),e.setAttribute(`class`,`vjs-tech`),e.setAttribute(`style`,`position:absolute;top:0;left:0;right:0;bottom:0;overflow:hidden`),e}async initPlayer(){let e=this.options_,t=e.source?.dailymotion?.playerId;if(!this.videoId){o.log.error(`Dailymotion Tech: could not parse video ID from source URL`);return}this._playerId=t;let n=this.el_?.parentNode;for(;n&&!n.classList?.contains(`player__shell`);)n=n.parentNode;this._shell=n;try{let n=await a(t?`https://geo.dailymotion.com/libs/player/${t}.js`:`https://geo.dailymotion.com/libs/player.js`,t||`dailymotion-sdk`).then(()=>window.dailymotion);if(!this.el_)return;this._dm_sdk=n;let r=await n.createPlayer(this.options_.techId,{...t?{player:t}:{},video:this.videoId,params:{autoplay:!!e.autoplay,mute:!!e.muted}});if(!this.el_)return;this._dm=r;let{events:i}=this._dm_sdk;this.triggerReady(),this.playOnReady&&this.play(),r.on(i.PLAYER_CRITICALPATHREADY,e=>{let t=e.videoThumbnails;if(t){let e=t[Object.keys(t).map(Number).sort((e,t)=>t-e)[0]];e&&this.trigger({type:`posterchange`,src:e})}}),r.on(i.VIDEO_PLAY,()=>{this._paused=!1,this.trigger(`play`),this.trigger(`playing`),!e.autoplay&&!this.initialAutoplayHandled&&(this.initialAutoplayHandled=!0,r.pause())}),r.on(i.VIDEO_PLAYING,()=>{this._paused=!1,this.trigger(`play`),this.trigger(`playing`)}),r.on(i.VIDEO_PAUSE,()=>{this._paused=!0,this.trigger(`pause`)}),i.VIDEO_BUFFERING&&r.on(i.VIDEO_BUFFERING,()=>this.trigger(`waiting`)),r.on(i.VIDEO_END,()=>{this._paused=!0,this.trigger(`ended`)}),r.on(i.VIDEO_TIMECHANGE,e=>{this._currentTime=e.videoTime??this._currentTime,this._duration=e.videoDuration??this._duration,this.trigger(`timeupdate`)}),r.on(i.VIDEO_DURATIONCHANGE,e=>{this._duration=e.videoDuration??this._duration,this.trigger(`durationchange`)}),r.on(i.VIDEO_SEEKSTART,()=>{this._seeking=!0,this.trigger(`seeking`)}),r.on(i.VIDEO_SEEKEND,e=>{this._seeking=!1,this._currentTime=e.videoTime??this._currentTime,this.trigger(`seeked`)}),r.on(i.PLAYER_VOLUMECHANGE,e=>{this._volume=e.playerVolume??this._volume,this._muted=e.playerIsMuted??this._muted,this.trigger(`volumechange`)}),r.on(i.PLAYER_ERROR,()=>this.trigger(`error`)),i.AD_START&&r.on(i.AD_START,()=>this.trigger(`adstart`)),i.AD_END&&r.on(i.AD_END,()=>this.trigger(`adend`))}catch(e){o.log.error(`Dailymotion:`,e.message)}}play(){this._dm?this._dm.play():this.playOnReady=!0}pause(){this._dm?.pause()}paused(){return this._paused}seeking(){return this._seeking}currentTime(){return this._currentTime}setCurrentTime(e){this._currentTime=e,this._dm?.seek(e),this._seeking=!0,this.trigger(`seeking`)}duration(){return this._duration}volume(){return this._volume}setVolume(e){this._volume=e,this._dm?.setVolume(e)}muted(){return this._muted}setMuted(e){this._muted=e,this._dm?.setMute(e)}playbackRate(){return 1}setPlaybackRate(){}buffered(){return o.createTimeRange(0,this._currentTime)}seekable(){return o.createTimeRange(0,this._duration)}currentSrc(){return this.source?.src??``}ended(){return!1}preload(){}load(){}reset(){}networkState(){return+!!this._dm}readyState(){return this._dm?4:0}supportsFullScreen(){return i()}enterFullscreen(){if(e()){this._dm?.setFullscreen(!0);return}n(this._shell)}exitFullscreen(){if(e()){this._dm?.setFullscreen(!1);return}r()}setSrc(e){e?.src&&(this.source=e,this.videoId=t.parseVideoId(e.src),this.options_.autoplay&&(this.playOnReady=!0))}dispose(){this._dm?.destroy?.(),this._dm=null,this.el_?.parentNode?.classList.remove(`vjs-dailymotion`),s.prototype.dispose.call(this)}};c.isSupported=()=>!0,c.canPlayType=e=>e===`video/dailymotion`?`probably`:``,c.canPlaySource=({type:e,src:t})=>e===`video/dailymotion`?`probably`:/dailymotion\.com|dai\.ly/.test(t)?`maybe`:``,c.parseVideoId=e=>{let t=e.match(/[?&]video=([a-zA-Z0-9]+)/);if(t)return t[1];let n=e.match(/(?:dailymotion\.com\/(?:embed\/)?video\/|dai\.ly\/)([a-zA-Z0-9]+)/);return n?n[1]:null},t(`Dailymotion`,c);export{c as default};
@@ -0,0 +1 @@
1
+ import{a as e,t}from"./video.cjs-gZWrkL0e.mjs";import{a as n,c as r,l as i,n as a,u as o}from"./tech-DQUZqNr6.mjs";import{t as s}from"./loadScript-Du6JsTc2.mjs";var c=e(t(),1);const l=c.default.getTech(`Tech`);var u=class e extends l{constructor(e,t){super(e,t),this._currentTime=0,this._duration=0,this._volume=1,this._muted=!1,this._paused=!0,this._seeking=!1,this._dm=null,this.setSrc(this.options_.source),this.setTimeout(()=>{this.el_&&(this.el_.parentNode.classList.add(`vjs-dailymotion`),this.initPlayer())})}createEl(){let e=document.createElement(`div`);return e.setAttribute(`id`,this.options_.techId),e.setAttribute(`class`,`vjs-tech`),e.setAttribute(`style`,`position:absolute;top:0;left:0;right:0;bottom:0;overflow:hidden`),e}async initPlayer(){let e=this.options_,t=e.source?.dailymotion?.playerId;if(!this.videoId){c.default.log.error(`Dailymotion Tech: could not parse video ID from source URL`);return}this._playerId=t;let n=this.el_?.parentNode;for(;n&&!n.classList?.contains(`player__shell`);)n=n.parentNode;this._shell=n;try{let n=await s(t?`https://geo.dailymotion.com/libs/player/${t}.js`:`https://geo.dailymotion.com/libs/player.js`,t||`dailymotion-sdk`).then(()=>window.dailymotion);if(!this.el_)return;this._dm_sdk=n;let r=await n.createPlayer(this.options_.techId,{...t?{player:t}:{},video:this.videoId,params:{autoplay:!!e.autoplay,mute:!!e.muted}});if(!this.el_)return;this._dm=r;let{events:i}=this._dm_sdk;this.triggerReady(),this.playOnReady&&this.play(),r.on(i.PLAYER_CRITICALPATHREADY,e=>{let t=e.videoThumbnails;if(t){let e=t[Object.keys(t).map(Number).sort((e,t)=>t-e)[0]];e&&this.trigger({type:`posterchange`,src:e})}}),r.on(i.VIDEO_PLAY,()=>{this._paused=!1,this.trigger(`play`),this.trigger(`playing`),!e.autoplay&&!this.initialAutoplayHandled&&(this.initialAutoplayHandled=!0,r.pause())}),r.on(i.VIDEO_PLAYING,()=>{this._paused=!1,this.trigger(`play`),this.trigger(`playing`)}),r.on(i.VIDEO_PAUSE,()=>{this._paused=!0,this.trigger(`pause`)}),i.VIDEO_BUFFERING&&r.on(i.VIDEO_BUFFERING,()=>this.trigger(`waiting`)),r.on(i.VIDEO_END,()=>{this._paused=!0,this.trigger(`ended`)}),r.on(i.VIDEO_TIMECHANGE,e=>{this._currentTime=e.videoTime??this._currentTime,this._duration=e.videoDuration??this._duration,this.trigger(`timeupdate`)}),r.on(i.VIDEO_DURATIONCHANGE,e=>{this._duration=e.videoDuration??this._duration,this.trigger(`durationchange`)}),r.on(i.VIDEO_SEEKSTART,()=>{this._seeking=!0,this.trigger(`seeking`)}),r.on(i.VIDEO_SEEKEND,e=>{this._seeking=!1,this._currentTime=e.videoTime??this._currentTime,this.trigger(`seeked`)}),r.on(i.PLAYER_VOLUMECHANGE,e=>{this._volume=e.playerVolume??this._volume,this._muted=e.playerIsMuted??this._muted,this.trigger(`volumechange`)}),r.on(i.PLAYER_ERROR,()=>this.trigger(`error`)),i.AD_START&&r.on(i.AD_START,()=>this.trigger(`adstart`)),i.AD_END&&r.on(i.AD_END,()=>this.trigger(`adend`))}catch(e){c.default.log.error(`Dailymotion:`,e.message)}}play(){this._dm?this._dm.play():this.playOnReady=!0}pause(){this._dm?.pause()}paused(){return this._paused}seeking(){return this._seeking}currentTime(){return this._currentTime}setCurrentTime(e){this._currentTime=e,this._dm?.seek(e),this._seeking=!0,this.trigger(`seeking`)}duration(){return this._duration}volume(){return this._volume}setVolume(e){this._volume=e,this._dm?.setVolume(e)}muted(){return this._muted}setMuted(e){this._muted=e,this._dm?.setMute(e)}playbackRate(){return 1}setPlaybackRate(){}buffered(){return c.default.createTimeRange(0,this._currentTime)}seekable(){return c.default.createTimeRange(0,this._duration)}currentSrc(){return this.source?.src??``}ended(){return!1}preload(){}load(){}reset(){}networkState(){return+!!this._dm}readyState(){return this._dm?4:0}supportsFullScreen(){return o()}enterFullscreen(){if(n()){this._dm?.setFullscreen(!0);return}i(this._shell)}exitFullscreen(){if(n()){this._dm?.setFullscreen(!1);return}a()}setSrc(t){t?.src&&(this.source=t,this.videoId=e.parseVideoId(t.src),this.options_.autoplay&&(this.playOnReady=!0))}dispose(){this._dm?.destroy?.(),this._dm=null,this.el_?.parentNode?.classList.remove(`vjs-dailymotion`),l.prototype.dispose.call(this)}};u.isSupported=()=>!0,u.canPlayType=e=>e===`video/dailymotion`?`probably`:``,u.canPlaySource=({type:e,src:t})=>e===`video/dailymotion`?`probably`:/dailymotion\.com|dai\.ly/.test(t)?`maybe`:``,u.parseVideoId=e=>{let t=e.match(/[?&]video=([a-zA-Z0-9]+)/);if(t)return t[1];let n=e.match(/(?:dailymotion\.com\/(?:embed\/)?video\/|dai\.ly\/)([a-zA-Z0-9]+)/);return n?n[1]:null},r(`Dailymotion`,u);export{u as default};
@@ -0,0 +1 @@
1
+ import{a as e,t}from"./video.cjs-gZWrkL0e.mjs";import{s as n,t as r}from"./tech-DQUZqNr6.mjs";var i=e(t(),1);function a(e){return e.match(/cdn\.jwplayer\.com\/videos\/([^-]+)/)?.[1]??e.match(/cdn\.jwplayer\.com\/manifests\/([^.]+)/)?.[1]??e.match(/^jwplayer:\/\/([^/]+)$/)?.[1]??null}function o(e){let t=e?.advertising?.schedule;return Array.isArray(t)&&t.length?t[0].tag??null:e?.advertising?.tag??null}const s=r(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 r=(await t.json()).playlist?.[0];if(!r)throw Error(`JW Platform: empty playlist`);let i=n((r.sources??[]).map(e=>({src:e.file,type:e.type})));if(!i.length)throw Error(`JW Platform: no playable sources found`);return{src:i[0].src,type:i[0].type,poster:r.image??null,adTagUrl:o(r)}});async function c(e){let t=a(e);if(!t)throw Error(`JW Platform: unrecognised source URL: ${e}`);let n=await s(t);if(e.startsWith(`jwplayer://`))return n;let r=/\.mp4(\?|$)/.test(e)?`video/mp4`:`application/x-mpegURL`;return{...n,src:e,type:r}}async function l(e){let t=a(e);return t?s(t).catch(()=>null):null}i.default.use(`video/jwplayer`,e=>({setSource(t,n){(async()=>{try{let{src:r,type:a,poster:o}=await c(t.src);i.default.log(`JW Platform: resolved source`,r),o&&!e.poster()&&e.poster(o),n(null,{src:r,type:a})}catch(e){i.default.log.error(`JW Platform error:`,e.message),n(e,t)}})()}}));export{l as prefetchConfig};
@@ -0,0 +1 @@
1
+ import{s as e,t}from"./tech-BOi4jf1S.mjs";import n from"video.js";function r(e){return e.match(/cdn\.jwplayer\.com\/videos\/([^-]+)/)?.[1]??e.match(/cdn\.jwplayer\.com\/manifests\/([^.]+)/)?.[1]??e.match(/^jwplayer:\/\/([^/]+)$/)?.[1]??null}function i(e){let t=e?.advertising?.schedule;return Array.isArray(t)&&t.length?t[0].tag??null:e?.advertising?.tag??null}const a=t(async t=>{let n=await fetch(`https://cdn.jwplayer.com/v2/media/${t}`);if(!n.ok)throw Error(`JW Platform API error: ${n.status}`);let r=(await n.json()).playlist?.[0];if(!r)throw Error(`JW Platform: empty playlist`);let a=e((r.sources??[]).map(e=>({src:e.file,type:e.type})));if(!a.length)throw Error(`JW Platform: no playable sources found`);return{src:a[0].src,type:a[0].type,poster:r.image??null,adTagUrl:i(r)}});async function o(e){let t=r(e);if(!t)throw Error(`JW Platform: unrecognised source URL: ${e}`);let n=await a(t);if(e.startsWith(`jwplayer://`))return n;let i=/\.mp4(\?|$)/.test(e)?`video/mp4`:`application/x-mpegURL`;return{...n,src:e,type:i}}async function s(e){let t=r(e);return t?a(t).catch(()=>null):null}n.use(`video/jwplayer`,e=>({setSource(t,r){(async()=>{try{let{src:i,type:a,poster:s}=await o(t.src);n.log(`JW Platform: resolved source`,i),s&&!e.poster()&&e.poster(s),r(null,{src:i,type:a})}catch(e){n.log.error(`JW Platform error:`,e.message),r(e,t)}})()}}));export{s as prefetchConfig};
@@ -0,0 +1 @@
1
+ import e from"video.js";const t=`video-select`,n=`video-toggle`,r=`video-state`,i=`fullscreen-pending`,a=`fullscreen-pending-done`,o=`ads-pod-started`,s=`ads-pod-ended`,c=`player:positions`,l=new Set([`Youtube`,`Vimeo`,`Dailymotion`]);function u(e){return l.has(e)}function d(){return/iPad|iPhone|iPod/.test(navigator.userAgent)||/Mac/.test(navigator.userAgent)&&navigator.maxTouchPoints>1}function f(){return!!(document.fullscreenEnabled||document.webkitFullscreenEnabled||document.mozFullScreenEnabled)}function p(e){(e.requestFullscreen||e.webkitRequestFullscreen)?.call(e)}function m(){(document.exitFullscreen||document.webkitExitFullscreen)?.call(document)}function h(t,n){e.registerTech(t,n)}function g(e){let[t,n]=e.split(`:`).map(Number);return{isPortrait:n>t,cssRatio:`${t}/${n}`}}function _(e){return!e||isNaN(e)?`0:00`:`${Math.floor(e/60)}:${String(Math.floor(e%60)).padStart(2,`0`)}`}function v(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 y(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)}export{r as _,d as a,h as c,c as d,s as f,t as g,a as h,u as i,p as l,i as m,m as n,g as o,o as p,_ as r,y as s,v as t,f as u,n as v};
@@ -0,0 +1 @@
1
+ import{a as e,t}from"./video.cjs-gZWrkL0e.mjs";var n=e(t(),1);const r=`video-select`,i=`video-toggle`,a=`video-state`,o=`fullscreen-pending`,s=`fullscreen-pending-done`,c=`ads-pod-started`,l=`ads-pod-ended`,u=`player:positions`,d=new Set([`Youtube`,`Vimeo`,`Dailymotion`]);function f(e){return d.has(e)}function p(){return/iPad|iPhone|iPod/.test(navigator.userAgent)||/Mac/.test(navigator.userAgent)&&navigator.maxTouchPoints>1}function m(){return!!(document.fullscreenEnabled||document.webkitFullscreenEnabled||document.mozFullScreenEnabled)}function h(e){(e.requestFullscreen||e.webkitRequestFullscreen)?.call(e)}function g(){(document.exitFullscreen||document.webkitExitFullscreen)?.call(document)}function _(e,t){n.default.registerTech(e,t)}function v(e){let[t,n]=e.split(`:`).map(Number);return{isPortrait:n>t,cssRatio:`${t}/${n}`}}function y(e){return!e||isNaN(e)?`0:00`:`${Math.floor(e/60)}:${String(Math.floor(e%60)).padStart(2,`0`)}`}function b(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 x(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)}export{a as _,p as a,_ as c,u as d,l as f,r as g,s as h,f as i,h as l,o as m,g as n,v as o,c as p,y as r,x as s,b as t,m as u,i as v};
@@ -0,0 +1 @@
1
+ import{a as e,c as t,l as n,n as r,u as i}from"./tech-BOi4jf1S.mjs";import a from"video.js";import o from"@vimeo/player";const s=a.getTech(`Tech`);var c=class t extends s{constructor(e,t){super(e,t),this._currentTime=0,this._duration=0,this._volume=1,this._muted=!1,this._paused=!0,this._seeking=!1,this.setSrc(this.options_.source,!0),this.setTimeout(()=>{this.el_&&(this.el_.parentNode.classList.add(`vjs-vimeo`),this.initVimeoPlayer())})}createEl(){let e=document.createElement(`div`);e.setAttribute(`id`,this.options_.techId),e.setAttribute(`style`,`width:100%;height:100%;top:0;left:0;position:absolute`),e.setAttribute(`class`,`vjs-tech`);let t=document.createElement(`div`);return t.appendChild(e),t}initVimeoPlayer(){if(!this.url||!this.url.videoId)return;let e={id:this.url.videoId,byline:!1,portrait:!1,title:!1,transparent:!0,controls:!!this.options_.nativeUi,autopause:!1,width:`100%`,height:`100%`};this.options_.autoplay!==void 0&&(e.autoplay=this.options_.autoplay),this.options_.loop!==void 0&&(e.loop=this.options_.loop),this.options_.muted!==void 0&&(e.muted=this.options_.muted),this.vimeoPlayer=new o(this.options_.techId,e),this.vimeoPlayer.ready().then(()=>this.onPlayerReady()).catch(e=>{this.player_.error({code:4,message:e?.message||`This video is unavailable or cannot be embedded here.`})}),this.vimeoPlayer.on(`play`,()=>{this._paused=!1,this.trigger(`play`),this.trigger(`playing`)}),this.vimeoPlayer.on(`pause`,()=>{this._paused=!0,this.trigger(`pause`)}),this.vimeoPlayer.on(`ended`,()=>{this._paused=!0,this.trigger(`ended`)}),this.vimeoPlayer.on(`timeupdate`,({seconds:e,duration:t})=>{this._currentTime=e,this._duration=t,this.trigger(`timeupdate`),t&&!this._durationSet&&(this._durationSet=!0,this.trigger(`durationchange`))}),this.vimeoPlayer.on(`loaded`,()=>{this._durationSet=!1,this.trigger(`loadedmetadata`),this.trigger(`durationchange`)}),this.vimeoPlayer.on(`seeking`,({seconds:e})=>{this._currentTime=e,this._seeking=!0,this.trigger(`seeking`)}),this.vimeoPlayer.on(`seeked`,({seconds:e})=>{this._currentTime=e,this._seeking=!1,this.trigger(`seeked`),this.trigger(`timeupdate`)}),this.vimeoPlayer.on(`bufferstart`,()=>this.trigger(`waiting`)),this.vimeoPlayer.on(`bufferend`,()=>this.trigger(`canplay`)),this.vimeoPlayer.on(`volumechange`,({volume:e})=>{this._volume=e,this.trigger(`volumechange`)}),this.vimeoPlayer.on(`error`,e=>this.trigger(`error`,e)),this.vimeoPlayer.on(`fullscreenchange`,({fullscreen:e})=>{this.trigger(`fullscreenchange`,{isFullscreen:e})})}enterFullscreen(){if(!e())return n(this.player_.el().parentElement);this.vimeoPlayer?.requestFullscreen().catch(()=>{})}exitFullscreen(){r()}onPlayerReady(){this.triggerReady(),this.options_.muted&&this.vimeoPlayer.setMuted(!0),this.playOnReady&&this.play()}setSrc(e){!e||!e.src||(this.source=e,this.url=t.parseUrl(e.src),this.options_.autoplay&&(this.playOnReady=!0))}play(){if(!this.vimeoPlayer){this.playOnReady=!0;return}this.vimeoPlayer.play().catch(()=>{})}pause(){this.vimeoPlayer?.pause().catch(()=>{})}paused(){return this._paused}seeking(){return this._seeking}currentTime(){return this._currentTime}setCurrentTime(e){this.vimeoPlayer?.setCurrentTime(e).catch(()=>{}),this.trigger(`timeupdate`),this.trigger(`seeking`)}duration(){return this._duration}volume(){return this._volume}setVolume(e){this._volume=e,this.vimeoPlayer?.setVolume(e).catch(()=>{})}muted(){return this._muted}setMuted(e){this._muted=e,this.vimeoPlayer?.setMuted(e).then(()=>{this.setTimeout(()=>this.trigger(`volumechange`),50)}).catch(()=>{})}buffered(){return a.createTimeRange(0,this._currentTime)}seekable(){return a.createTimeRange(0,this._duration)}playbackRate(){return this._playbackRate||1}setPlaybackRate(e){this._playbackRate=e,this.vimeoPlayer?.setPlaybackRate(e).catch(()=>{}),this.trigger(`ratechange`)}preload(){}load(){}reset(){}currentSrc(){return this.source?.src||``}ended(){return!1}networkState(){return+!!this.vimeoPlayer}readyState(){return this.vimeoPlayer?4:0}supportsFullScreen(){return i()}dispose(){this.vimeoPlayer?.destroy().catch(()=>{}),this.vimeoPlayer=null,this.el_?.parentNode?.classList.remove(`vjs-vimeo`),s.prototype.dispose.call(this)}};c.isSupported=()=>!0,c.canPlayType=e=>e===`video/vimeo`?`probably`:``,c.canPlaySource=({type:e,src:t})=>e===`video/vimeo`?`probably`:/vimeo\.com|player\.vimeo\.com/.test(t)?`maybe`:``,c.parseUrl=e=>{let t={videoId:null},n=e.match(/(?:vimeo\.com\/(?:video\/|channels\/[^/]+\/|groups\/[^/]+\/videos\/)?|player\.vimeo\.com\/video\/)(\d+)/);return n&&(t.videoId=n[1]),t},t(`Vimeo`,c);export{c as default};
@@ -1,4 +1,4 @@
1
- import{a as e,i as t,t as n}from"./video.cjs-gZWrkL0e.mjs";import{c as r,o as i,s as a,t as o}from"./tech-hIKMwrTq.mjs";var s=t(((e,t)=>{
1
+ import{a as e,i as t,t as n}from"./video.cjs-gZWrkL0e.mjs";import{a as r,c as i,l as a,n as o,u as s}from"./tech-DQUZqNr6.mjs";var c=t(((e,t)=>{
2
2
  /*! @vimeo/player v2.30.4 | (c) 2026 Vimeo | MIT License | https://github.com/vimeo/player.js */
3
3
  (function(n,r){typeof e==`object`&&t!==void 0?t.exports=r():typeof define==`function`&&define.amd?define(r):(n=typeof globalThis<`u`?globalThis:n||self,n.Vimeo=n.Vimeo||{},n.Vimeo.Player=r())})(e,(function(){let e=typeof global<`u`&&{}.toString.call(global)===`[object global]`,t=typeof Bun<`u`,n=typeof Deno<`u`,r=typeof WebSocketPair==`function`&&caches?.default!==void 0,i=e||t||n||r;function a(e,t){return e.indexOf(t.toLowerCase())===0?e:`${t.toLowerCase()}${e.substr(0,1).toUpperCase()}${e.substr(1)}`}function o(e){return!!(e&&e.nodeType===1&&`nodeName`in e&&e.ownerDocument&&e.ownerDocument.defaultView)}function s(e){return!isNaN(parseFloat(e))&&isFinite(e)&&Math.floor(e)==e}function c(e){return/^(https?:)?\/\/((((player|www)\.)?vimeo\.com)|((player\.)?[a-zA-Z0-9-]+\.(videoji\.(hk|cn)|vimeo\.work)))(?=$|\/)/.test(e)}function l(e){return/^https:\/\/player\.((vimeo\.com)|([a-zA-Z0-9-]+\.(videoji\.(hk|cn)|vimeo\.work)))\/video\/\d+/.test(e)}function u(e){let t=(e||``).match(/^(?:https?:)?(?:\/\/)?([^/?]+)/),n=(t&&t[1]||``).replace(`player.`,``);for(let e of[`.videoji.hk`,`.vimeo.work`,`.videoji.cn`])if(n.endsWith(e))return n;return`vimeo.com`}function d(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},t=e.id,n=e.url,r=t||n;if(!r)throw Error(`An id or url must be passed, either in an options object or as a data-vimeo-id or data-vimeo-url attribute.`);if(s(r))return`https://vimeo.com/${r}`;if(c(r))return r.replace(`http:`,`https:`);throw TypeError(t?`“${t}” is not a valid video id.`:`“${r}” is not a vimeo.com url.`)}let f=function(e,t,n){let r=arguments.length>3&&arguments[3]!==void 0?arguments[3]:`addEventListener`,i=arguments.length>4&&arguments[4]!==void 0?arguments[4]:`removeEventListener`,a=typeof t==`string`?[t]:t;return a.forEach(t=>{e[r](t,n)}),{cancel:()=>a.forEach(t=>e[i](t,n))}};function p(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:document;if(!e||!t||typeof t.querySelectorAll!=`function`)return null;let n=t.querySelectorAll(`iframe`);for(let t=0;t<n.length;t++)if(n[t]&&n[t].contentWindow===e)return n[t];return null}let m=Array.prototype.indexOf!==void 0,h=typeof window<`u`&&window.postMessage!==void 0;if(!i&&(!m||!h))throw Error(`Sorry, the Vimeo Player API is not available in this browser.`);var g=typeof globalThis<`u`?globalThis:typeof window<`u`?window:typeof global<`u`?global:typeof self<`u`?self:{};function _(e,t){return t={exports:{}},e(t,t.exports),t.exports}
4
4
  /*!
@@ -12,4 +12,4 @@ import{a as e,i as t,t as n}from"./video.cjs-gZWrkL0e.mjs";import{c as r,o as i,
12
12
  v0.8.1 (c) Kyle Simpson
13
13
  MIT License: http://getify.mit-license.org
14
14
  */
15
- (function(t,n,r){n[t]=n[t]||r(),e.exports&&=n[t]})(`Promise`,g,function(){var e,t,n,r=Object.prototype.toString,i=typeof setImmediate<`u`?function(e){return setImmediate(e)}:setTimeout;try{Object.defineProperty({},"x",{}),e=function(e,t,n,r){return Object.defineProperty(e,t,{value:n,writable:!0,configurable:r!==!1})}}catch{e=function(e,t,n){return e[t]=n,e}}n=function(){var e,n,r;function i(e,t){this.fn=e,this.self=t,this.next=void 0}return{add:function(t,a){r=new i(t,a),n?n.next=r:e=r,n=r,r=void 0},drain:function(){var r=e;for(e=n=t=void 0;r;)r.fn.call(r.self),r=r.next}}}();function a(e,r){n.add(e,r),t||=i(n.drain)}function o(e){var t,n=typeof e;return e!=null&&(n==`object`||n==`function`)&&(t=e.then),typeof t==`function`?t:!1}function s(){for(var e=0;e<this.chain.length;e++)c(this,this.state===1?this.chain[e].success:this.chain[e].failure,this.chain[e]);this.chain.length=0}function c(e,t,n){var r,i;try{t===!1?n.reject(e.msg):(r=t===!0?e.msg:t.call(void 0,e.msg),r===n.promise?n.reject(TypeError(`Promise-chain cycle`)):(i=o(r))?i.call(r,n.resolve,n.reject):n.resolve(r))}catch(e){n.reject(e)}}function l(e){var t,n=this;if(!n.triggered){n.triggered=!0,n.def&&(n=n.def);try{(t=o(e))?a(function(){var r=new f(n);try{t.call(e,function(){l.apply(r,arguments)},function(){u.apply(r,arguments)})}catch(e){u.call(r,e)}}):(n.msg=e,n.state=1,n.chain.length>0&&a(s,n))}catch(e){u.call(new f(n),e)}}}function u(e){var t=this;t.triggered||(t.triggered=!0,t.def&&(t=t.def),t.msg=e,t.state=2,t.chain.length>0&&a(s,t))}function d(e,t,n,r){for(var i=0;i<t.length;i++)(function(i){e.resolve(t[i]).then(function(e){n(i,e)},r)})(i)}function f(e){this.def=e,this.triggered=!1}function p(e){this.promise=e,this.state=0,this.triggered=!1,this.chain=[],this.msg=void 0}function m(e){if(typeof e!=`function`)throw TypeError(`Not a function`);if(this.__NPO__!==0)throw TypeError(`Not a promise`);this.__NPO__=1;var t=new p(this);this.then=function(e,n){var r={success:typeof e==`function`?e:!0,failure:typeof n==`function`?n:!1};return r.promise=new this.constructor(function(e,t){if(typeof e!=`function`||typeof t!=`function`)throw TypeError(`Not a function`);r.resolve=e,r.reject=t}),t.chain.push(r),t.state!==0&&a(s,t),r.promise},this.catch=function(e){return this.then(void 0,e)};try{e.call(void 0,function(e){l.call(t,e)},function(e){u.call(t,e)})}catch(e){u.call(t,e)}}var h=e({},`constructor`,m,!1);return m.prototype=h,e(h,`__NPO__`,0,!1),e(m,`resolve`,function(e){var t=this;return e&&typeof e==`object`&&e.__NPO__===1?e:new t(function(t,n){if(typeof t!=`function`||typeof n!=`function`)throw TypeError(`Not a function`);t(e)})}),e(m,`reject`,function(e){return new this(function(t,n){if(typeof t!=`function`||typeof n!=`function`)throw TypeError(`Not a function`);n(e)})}),e(m,`all`,function(e){var t=this;return r.call(e)==`[object Array]`?e.length===0?t.resolve([]):new t(function(n,r){if(typeof n!=`function`||typeof r!=`function`)throw TypeError(`Not a function`);var i=e.length,a=Array(i),o=0;d(t,e,function(e,t){a[e]=t,++o===i&&n(a)},r)}):t.reject(TypeError(`Not an array`))}),e(m,`race`,function(e){var t=this;return r.call(e)==`[object Array]`?new t(function(n,r){if(typeof n!=`function`||typeof r!=`function`)throw TypeError(`Not a function`);d(t,e,function(e,t){n(t)},r)}):t.reject(TypeError(`Not an array`))}),m})});let y=new WeakMap;function b(e,t,n){let r=y.get(e.element)||{};t in r||(r[t]=[]),r[t].push(n),y.set(e.element,r)}function x(e,t){return(y.get(e.element)||{})[t]||[]}function S(e,t,n){let r=y.get(e.element)||{};if(!r[t])return!0;if(!n)return r[t]=[],y.set(e.element,r),!0;let i=r[t].indexOf(n);return i!==-1&&r[t].splice(i,1),y.set(e.element,r),r[t]&&r[t].length===0}function C(e,t){let n=x(e,t);if(n.length<1)return!1;let r=n.shift();return S(e,t,r),r}function w(e,t){let n=y.get(e);y.set(t,n),y.delete(e)}function T(e){if(typeof e==`string`)try{e=JSON.parse(e)}catch(e){return console.warn(e),{}}return e}function E(e,t,n){if(!e.element.contentWindow||!e.element.contentWindow.postMessage)return;let r={method:t};n!==void 0&&(r.value=n);let i=parseFloat(navigator.userAgent.toLowerCase().replace(/^.*msie (\d+).*$/,`$1`));i>=8&&i<10&&(r=JSON.stringify(r)),e.element.contentWindow.postMessage(r,e.origin)}function D(e,t){t=T(t);let n=[],r;if(t.event)t.event===`error`&&x(e,t.data.method).forEach(n=>{let r=Error(t.data.message);r.name=t.data.name,n.reject(r),S(e,t.data.method,n)}),n=x(e,`event:${t.event}`),r=t.data;else if(t.method){let i=C(e,t.method);i&&(n.push(i),r=t.value)}n.forEach(t=>{try{if(typeof t==`function`){t.call(e,r);return}t.resolve(r)}catch{}})}let O=`airplay.audio_tracks.audiotrack.autopause.autoplay.background.byline.cc.chapter_id.chapters.chromecast.color.colors.controls.disable_context_menu.dnt.end_time.fullscreen.height.id.initial_quality.interactive_params.keyboard.loop.maxheight.max_quality.maxwidth.min_quality.muted.play_button_position.playsinline.portrait.preload.progress_bar.quality.quality_selector.responsive.skipping_forward.speed.start_time.texttrack.thumbnail_id.title.transcript.transparent.unmute_button.url.vimeo_logo.volume.watch_full_video.width`.split(`.`);function k(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};return O.reduce((t,n)=>{let r=e.getAttribute(`data-vimeo-${n}`);return(r||r===``)&&(t[n]=r===``?1:r),t},t)}function A(e,t){let{html:n}=e;if(!t)throw TypeError(`An element must be provided`);if(t.getAttribute(`data-vimeo-initialized`)!==null)return t.querySelector(`iframe`);let r=document.createElement(`div`);return r.innerHTML=n,t.appendChild(r.firstChild),t.setAttribute(`data-vimeo-initialized`,`true`),t.querySelector(`iframe`)}function j(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},n=arguments.length>2?arguments[2]:void 0;return new Promise((r,i)=>{if(!c(e))throw TypeError(`“${e}” is not a vimeo.com url.`);let a=`https://${u(e)}/api/oembed.json?url=${encodeURIComponent(e)}`;for(let e in t)t.hasOwnProperty(e)&&(a+=`&${e}=${encodeURIComponent(t[e])}`);let o=`XDomainRequest`in window?new XDomainRequest:new XMLHttpRequest;o.open(`GET`,a,!0),o.onload=function(){if(o.status===404){i(Error(`“${e}” was not found.`));return}if(o.status===403){i(Error(`“${e}” is not embeddable.`));return}try{let t=JSON.parse(o.responseText);if(t.domain_status_code===403){A(t,n),i(Error(`“${e}” is not embeddable.`));return}r(t)}catch(e){i(e)}},o.onerror=function(){let e=o.status?` (${o.status})`:``;i(Error(`There was an error fetching the embed code from Vimeo${e}.`))},o.send()})}function M(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:document,t=[].slice.call(e.querySelectorAll(`[data-vimeo-id], [data-vimeo-url]`)),n=e=>{`console`in window&&console.error&&console.error(`There was an error creating an embed: ${e}`)};t.forEach(e=>{try{if(e.getAttribute(`data-vimeo-defer`)!==null)return;let t=k(e);j(d(t),t,e).then(t=>A(t,e)).catch(n)}catch(e){n(e)}})}function N(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:document;window.VimeoPlayerResizeEmbeds_||(window.VimeoPlayerResizeEmbeds_=!0,window.addEventListener(`message`,t=>{if(!c(t.origin)||!t.data||t.data.event!==`spacechange`)return;let n=t.source?p(t.source,e):null;if(n){let e=n.parentElement;e.style.paddingBottom=`${t.data.data[0].bottom}px`}}))}function P(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:document;window.VimeoSeoMetadataAppended||(window.VimeoSeoMetadataAppended=!0,window.addEventListener(`message`,t=>{if(!c(t.origin))return;let n=T(t.data);if(!n||n.event!==`ready`)return;let r=t.source?p(t.source,e):null;r&&l(r.src)&&new U(r).callMethod(`appendVideoMetadata`,window.location.href)}))}function F(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:document;if(window.VimeoCheckedUrlTimeParam)return;window.VimeoCheckedUrlTimeParam=!0;let t=e=>{`console`in window&&console.error&&console.error(`There was an error getting video Id: ${e}`)};window.addEventListener(`message`,n=>{if(!c(n.origin))return;let r=T(n.data);if(!r||r.event!==`ready`)return;let i=n.source?p(n.source,e):null;if(i&&l(i.src)){let e=new U(i);e.getVideoId().then(t=>{let n=RegExp(`[?&]vimeo_t_${t}=([^&#]*)`).exec(window.location.href);if(n&&n[1]){let t=decodeURI(n[1]);e.setCurrentTime(t)}}).catch(t)}})}function I(){window.VimeoDRMEmbedsUpdated||(window.VimeoDRMEmbedsUpdated=!0,window.addEventListener(`message`,e=>{if(!c(e.origin))return;let t=T(e.data);if(!t||t.event!==`drminitfailed`)return;let n=e.source?p(e.source):null;if(!n)return;let r=n.getAttribute(`allow`)||``;if(!r.includes(`encrypted-media`)){n.setAttribute(`allow`,`${r}; encrypted-media`);let e=new URL(n.getAttribute(`src`));e.searchParams.set(`forcereload`,`drm`),n.setAttribute(`src`,e.toString());return}}))}function L(){let e=function(){let e,t=[[`requestFullscreen`,`exitFullscreen`,`fullscreenElement`,`fullscreenEnabled`,`fullscreenchange`,`fullscreenerror`],[`webkitRequestFullscreen`,`webkitExitFullscreen`,`webkitFullscreenElement`,`webkitFullscreenEnabled`,`webkitfullscreenchange`,`webkitfullscreenerror`],[`webkitRequestFullScreen`,`webkitCancelFullScreen`,`webkitCurrentFullScreenElement`,`webkitCancelFullScreen`,`webkitfullscreenchange`,`webkitfullscreenerror`],[`mozRequestFullScreen`,`mozCancelFullScreen`,`mozFullScreenElement`,`mozFullScreenEnabled`,`mozfullscreenchange`,`mozfullscreenerror`],[`msRequestFullscreen`,`msExitFullscreen`,`msFullscreenElement`,`msFullscreenEnabled`,`MSFullscreenChange`,`MSFullscreenError`]],n=0,r=t.length,i={};for(;n<r;n++)if(e=t[n],e&&e[1]in document){for(n=0;n<e.length;n++)i[t[0][n]]=e[n];return i}return!1}(),t={fullscreenchange:e.fullscreenchange,fullscreenerror:e.fullscreenerror},n={request(t){return new Promise((r,i)=>{let a=function(){n.off(`fullscreenchange`,a),r()};n.on(`fullscreenchange`,a),t||=document.documentElement;let o=t[e.requestFullscreen]();o instanceof Promise&&o.then(a).catch(i)})},exit(){return new Promise((t,r)=>{if(!n.isFullscreen){t();return}let i=function(){n.off(`fullscreenchange`,i),t()};n.on(`fullscreenchange`,i);let a=document[e.exitFullscreen]();a instanceof Promise&&a.then(i).catch(r)})},on(e,n){let r=t[e];r&&document.addEventListener(r,n)},off(e,n){let r=t[e];r&&document.removeEventListener(r,n)}};return Object.defineProperties(n,{isFullscreen:{get(){return!!document[e.fullscreenElement]}},element:{enumerable:!0,get(){return document[e.fullscreenElement]}},isEnabled:{enumerable:!0,get(){return!!document[e.fullscreenEnabled]}}}),n}let R={role:`viewer`,autoPlayMuted:!0,allowedDrift:.3,maxAllowedDrift:1,minCheckInterval:.1,maxRateAdjustment:.2,maxTimeToCatchUp:1};class z extends EventTarget{logger;constructor(e,t){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},r=arguments.length>3?arguments[3]:void 0;super(),this.logger=r,this.init(t,e,{...R,...n})}disconnect(){this.dispatchEvent(new Event(`disconnect`))}async init(e,t,n){if(await this.waitForTOReadyState(e,`open`),n.role===`viewer`){await this.updatePlayer(e,t,n);let r=f(e,`change`,()=>this.updatePlayer(e,t,n)),i=this.maintainPlaybackPosition(e,t,n);this.addEventListener(`disconnect`,()=>{i.cancel(),r.cancel()})}else{await this.updateTimingObject(e,t);let n=f(t,[`seeked`,`play`,`pause`,`ratechange`],()=>this.updateTimingObject(e,t),`on`,`off`);this.addEventListener(`disconnect`,()=>n.cancel())}}async updateTimingObject(e,t){let[n,r,i]=await Promise.all([t.getCurrentTime(),t.getPaused(),t.getPlaybackRate()]);e.update({position:n,velocity:r?0:i})}async updatePlayer(e,t,n){let{position:r,velocity:i}=e.query();typeof r==`number`&&t.setCurrentTime(r),typeof i==`number`&&(i===0?await t.getPaused()===!1&&t.pause():i>0&&(await t.getPaused()===!0&&(await t.play().catch(async e=>{e.name===`NotAllowedError`&&n.autoPlayMuted&&(await t.setMuted(!0),await t.play().catch(e=>console.error(`Couldn't play the video from TimingSrcConnector. Error:`,e)))}),this.updatePlayer(e,t,n)),await t.getPlaybackRate()!==i&&t.setPlaybackRate(i)))}maintainPlaybackPosition(e,t,n){let{allowedDrift:r,maxAllowedDrift:i,minCheckInterval:a,maxRateAdjustment:o,maxTimeToCatchUp:s}=n,c=Math.min(s,Math.max(a,i))*1e3,l=async()=>{if(e.query().velocity===0||await t.getPaused()===!0)return;let n=e.query().position-await t.getCurrentTime(),a=Math.abs(n);if(this.log(`Drift: ${n}`),a>i)await this.adjustSpeed(t,0),t.setCurrentTime(e.query().position),this.log(`Resync by currentTime`);else if(a>r){let e=a/s,r=o,i=e<r?(r-e)/2:r;await this.adjustSpeed(t,i*Math.sign(n)),this.log(`Resync by playbackRate`)}},u=setInterval(()=>l(),c);return{cancel:()=>clearInterval(u)}}log(e){this.logger?.(`TimingSrcConnector: ${e}`)}speedAdjustment=0;adjustSpeed=async(e,t)=>{if(this.speedAdjustment===t)return;let n=await e.getPlaybackRate()-this.speedAdjustment+t;this.log(`New playbackRate: ${n}`),await e.setPlaybackRate(n),this.speedAdjustment=t};waitForTOReadyState(e,t){return new Promise(n=>{let r=()=>{e.readyState===t?n():e.addEventListener(`readystatechange`,r,{once:!0})};r()})}}let B=new WeakMap,V=new WeakMap,H={};class U{constructor(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};if(window.jQuery&&e instanceof jQuery&&(e.length>1&&window.console&&console.warn&&console.warn(`A jQuery object with multiple elements was passed, using the first element.`),e=e[0]),typeof document<`u`&&typeof e==`string`&&(e=document.getElementById(e)),!o(e))throw TypeError(`You must pass either a valid element or a valid id.`);if(e.nodeName!==`IFRAME`){let t=e.querySelector(`iframe`);t&&(e=t)}if(e.nodeName===`IFRAME`&&!c(e.getAttribute(`src`)||``))throw Error(`The player element passed isn’t a Vimeo embed.`);if(B.has(e))return B.get(e);this._window=e.ownerDocument.defaultView,this.element=e,this.origin=`*`;let n=new v((n,r)=>{if(this._onMessage=e=>{if(!c(e.origin)||this.element.contentWindow!==e.source)return;this.origin===`*`&&(this.origin=e.origin);let t=T(e.data);if(t&&t.event===`error`&&t.data&&t.data.method===`ready`){let e=Error(t.data.message);e.name=t.data.name,r(e);return}let i=t&&t.event===`ready`,a=t&&t.method===`ping`;if(i||a){this.element.setAttribute(`data-ready`,`true`),n();return}D(this,t)},this._window.addEventListener(`message`,this._onMessage),this.element.nodeName!==`IFRAME`){let n=k(e,t);j(d(n),n,e).then(t=>{let n=A(t,e);return this.element=n,this._originalElement=e,w(e,n),B.set(this.element,this),t}).catch(r)}});if(V.set(this,n),B.set(this.element,this),this.element.nodeName===`IFRAME`&&E(this,`ping`),H.isEnabled){let e=()=>H.exit();this.fullscreenchangeHandler=()=>{H.isFullscreen?b(this,`event:exitFullscreen`,e):S(this,`event:exitFullscreen`,e),this.ready().then(()=>{E(this,`fullscreenchange`,H.isFullscreen)})},H.on(`fullscreenchange`,this.fullscreenchangeHandler)}return this}static isVimeoUrl(e){return c(e)}callMethod(e){var t=[...arguments].slice(1);if(e==null)throw TypeError(`You must pass a method name.`);return new v((n,r)=>this.ready().then(()=>{b(this,e,{resolve:n,reject:r}),t.length===0?t={}:t.length===1&&(t=t[0]),E(this,e,t)}).catch(r))}get(e){return new v((t,n)=>(e=a(e,`get`),this.ready().then(()=>{b(this,e,{resolve:t,reject:n}),E(this,e)}).catch(n)))}set(e,t){return new v((n,r)=>{if(e=a(e,`set`),t==null)throw TypeError(`There must be a value to set.`);return this.ready().then(()=>{b(this,e,{resolve:n,reject:r}),E(this,e,t)}).catch(r)})}on(e,t){if(!e)throw TypeError(`You must pass an event name.`);if(!t)throw TypeError(`You must pass a callback function.`);if(typeof t!=`function`)throw TypeError(`The callback must be a function.`);x(this,`event:${e}`).length===0&&this.callMethod(`addEventListener`,e).catch(()=>{}),b(this,`event:${e}`,t)}off(e,t){if(!e)throw TypeError(`You must pass an event name.`);if(t&&typeof t!=`function`)throw TypeError(`The callback must be a function.`);S(this,`event:${e}`,t)&&this.callMethod(`removeEventListener`,e).catch(e=>{})}loadVideo(e){return this.callMethod(`loadVideo`,e)}ready(){let e=V.get(this)||new v((e,t)=>{t(Error(`Unknown player. Probably unloaded.`))});return v.resolve(e)}addCuePoint(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};return this.callMethod(`addCuePoint`,{time:e,data:t})}removeCuePoint(e){return this.callMethod(`removeCuePoint`,e)}enableTextTrack(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:null,n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0;if(!e)throw TypeError(`You must pass a language.`);return this.callMethod(`enableTextTrack`,{language:e,kind:t,showing:n})}disableTextTrack(){return this.callMethod(`disableTextTrack`)}selectAudioTrack(e,t){if(!e)throw TypeError(`You must pass a language.`);return this.callMethod(`selectAudioTrack`,{language:e,kind:t})}selectDefaultAudioTrack(){return this.callMethod(`selectDefaultAudioTrack`)}pause(){return this.callMethod(`pause`)}play(){return this.callMethod(`play`)}requestFullscreen(){return H.isEnabled?H.request(this.element):this.callMethod(`requestFullscreen`)}exitFullscreen(){return H.isEnabled?H.exit():this.callMethod(`exitFullscreen`)}getFullscreen(){return H.isEnabled?v.resolve(H.isFullscreen):this.get(`fullscreen`)}requestPictureInPicture(){return this.callMethod(`requestPictureInPicture`)}exitPictureInPicture(){return this.callMethod(`exitPictureInPicture`)}getPictureInPicture(){return this.get(`pictureInPicture`)}remotePlaybackPrompt(){return this.callMethod(`remotePlaybackPrompt`)}unload(){return this.callMethod(`unload`)}destroy(){return new v(e=>{if(V.delete(this),B.delete(this.element),this._originalElement&&(B.delete(this._originalElement),this._originalElement.removeAttribute(`data-vimeo-initialized`)),this.element&&this.element.nodeName===`IFRAME`&&this.element.parentNode&&(this.element.parentNode.parentNode&&this._originalElement&&this._originalElement!==this.element.parentNode?this.element.parentNode.parentNode.removeChild(this.element.parentNode):this.element.parentNode.removeChild(this.element)),this.element&&this.element.nodeName===`DIV`&&this.element.parentNode){this.element.removeAttribute(`data-vimeo-initialized`);let e=this.element.querySelector(`iframe`);e&&e.parentNode&&(e.parentNode.parentNode&&this._originalElement&&this._originalElement!==e.parentNode?e.parentNode.parentNode.removeChild(e.parentNode):e.parentNode.removeChild(e))}this._window.removeEventListener(`message`,this._onMessage),H.isEnabled&&H.off(`fullscreenchange`,this.fullscreenchangeHandler),e()})}getAutopause(){return this.get(`autopause`)}setAutopause(e){return this.set(`autopause`,e)}getBuffered(){return this.get(`buffered`)}getCameraProps(){return this.get(`cameraProps`)}setCameraProps(e){return this.set(`cameraProps`,e)}getChapters(){return this.get(`chapters`)}getCurrentChapter(){return this.get(`currentChapter`)}getColor(){return this.get(`color`)}getColors(){return v.all([this.get(`colorOne`),this.get(`colorTwo`),this.get(`colorThree`),this.get(`colorFour`)])}setColor(e){return this.set(`color`,e)}setColors(e){if(!Array.isArray(e))return new v((e,t)=>t(TypeError(`Argument must be an array.`)));let t=new v(e=>e(null)),n=[e[0]?this.set(`colorOne`,e[0]):t,e[1]?this.set(`colorTwo`,e[1]):t,e[2]?this.set(`colorThree`,e[2]):t,e[3]?this.set(`colorFour`,e[3]):t];return v.all(n)}getCuePoints(){return this.get(`cuePoints`)}getCurrentTime(){return this.get(`currentTime`)}setCurrentTime(e){return this.set(`currentTime`,e)}getDuration(){return this.get(`duration`)}getEnded(){return this.get(`ended`)}getLoop(){return this.get(`loop`)}setLoop(e){return this.set(`loop`,e)}setMuted(e){return this.set(`muted`,e)}getMuted(){return this.get(`muted`)}getPaused(){return this.get(`paused`)}getPlaybackRate(){return this.get(`playbackRate`)}setPlaybackRate(e){return this.set(`playbackRate`,e)}getPlayed(){return this.get(`played`)}getQualities(){return this.get(`qualities`)}getQuality(){return this.get(`quality`)}setQuality(e){return this.set(`quality`,e)}getRemotePlaybackAvailability(){return this.get(`remotePlaybackAvailability`)}getRemotePlaybackState(){return this.get(`remotePlaybackState`)}getSeekable(){return this.get(`seekable`)}getSeeking(){return this.get(`seeking`)}getTextTracks(){return this.get(`textTracks`)}getAudioTracks(){return this.get(`audioTracks`)}getEnabledAudioTrack(){return this.get(`enabledAudioTrack`)}getDefaultAudioTrack(){return this.get(`defaultAudioTrack`)}getVideoEmbedCode(){return this.get(`videoEmbedCode`)}getVideoId(){return this.get(`videoId`)}getVideoTitle(){return this.get(`videoTitle`)}getVideoWidth(){return this.get(`videoWidth`)}getVideoHeight(){return this.get(`videoHeight`)}getVideoUrl(){return this.get(`videoUrl`)}getVolume(){return this.get(`volume`)}setVolume(e){return this.set(`volume`,e)}async setTimingSrc(e,t){if(!e)throw TypeError(`A Timing Object must be provided.`);await this.ready();let n=new z(this,e,t);return E(this,`notifyTimingObjectConnect`),n.addEventListener(`disconnect`,()=>E(this,`notifyTimingObjectDisconnect`)),n}}return i||(H=L(),M(),N(),P(),F(),I()),U}))})),c=e(n(),1),l=e(s(),1);const u=c.default.getTech(`Tech`);var d=class e extends u{constructor(e,t){super(e,t),this._currentTime=0,this._duration=0,this._volume=1,this._muted=!1,this._paused=!0,this._seeking=!1,this.setSrc(this.options_.source,!0),this.setTimeout(()=>{this.el_&&(this.el_.parentNode.classList.add(`vjs-vimeo`),this.initVimeoPlayer())})}createEl(){let e=document.createElement(`div`);e.setAttribute(`id`,this.options_.techId),e.setAttribute(`style`,`width:100%;height:100%;top:0;left:0;position:absolute`),e.setAttribute(`class`,`vjs-tech`);let t=document.createElement(`div`);return t.appendChild(e),t}initVimeoPlayer(){if(!this.url||!this.url.videoId)return;let e={id:this.url.videoId,byline:!1,portrait:!1,title:!1,transparent:!0,controls:!!this.options_.nativeUi,autopause:!1,width:`100%`,height:`100%`};this.options_.autoplay!==void 0&&(e.autoplay=this.options_.autoplay),this.options_.loop!==void 0&&(e.loop=this.options_.loop),this.options_.muted!==void 0&&(e.muted=this.options_.muted),this.vimeoPlayer=new l.default(this.options_.techId,e),this.vimeoPlayer.ready().then(()=>this.onPlayerReady()).catch(e=>{this.player_.error({code:4,message:e?.message||`This video is unavailable or cannot be embedded here.`})}),this.vimeoPlayer.on(`play`,()=>{this._paused=!1,this.trigger(`play`),this.trigger(`playing`)}),this.vimeoPlayer.on(`pause`,()=>{this._paused=!0,this.trigger(`pause`)}),this.vimeoPlayer.on(`ended`,()=>{this._paused=!0,this.trigger(`ended`)}),this.vimeoPlayer.on(`timeupdate`,({seconds:e,duration:t})=>{this._currentTime=e,this._duration=t,this.trigger(`timeupdate`),t&&!this._durationSet&&(this._durationSet=!0,this.trigger(`durationchange`))}),this.vimeoPlayer.on(`loaded`,()=>{this._durationSet=!1,this.trigger(`loadedmetadata`),this.trigger(`durationchange`)}),this.vimeoPlayer.on(`seeking`,({seconds:e})=>{this._currentTime=e,this._seeking=!0,this.trigger(`seeking`)}),this.vimeoPlayer.on(`seeked`,({seconds:e})=>{this._currentTime=e,this._seeking=!1,this.trigger(`seeked`),this.trigger(`timeupdate`)}),this.vimeoPlayer.on(`bufferstart`,()=>this.trigger(`waiting`)),this.vimeoPlayer.on(`bufferend`,()=>this.trigger(`canplay`)),this.vimeoPlayer.on(`volumechange`,({volume:e})=>{this._volume=e,this.trigger(`volumechange`)}),this.vimeoPlayer.on(`error`,e=>this.trigger(`error`,e)),this.vimeoPlayer.on(`fullscreenchange`,({fullscreen:e})=>{this.trigger(`fullscreenchange`,{isFullscreen:e})})}enterFullscreen(){a(this.player_.el().parentElement)}exitFullscreen(){o()}onPlayerReady(){this.triggerReady(),this.options_.muted&&this.vimeoPlayer.setMuted(!0),this.playOnReady&&this.play()}setSrc(t){!t||!t.src||(this.source=t,this.url=e.parseUrl(t.src),this.options_.autoplay&&(this.playOnReady=!0))}play(){if(!this.vimeoPlayer){this.playOnReady=!0;return}this.vimeoPlayer.play().catch(()=>{})}pause(){this.vimeoPlayer?.pause().catch(()=>{})}paused(){return this._paused}seeking(){return this._seeking}currentTime(){return this._currentTime}setCurrentTime(e){this.vimeoPlayer?.setCurrentTime(e).catch(()=>{}),this.trigger(`timeupdate`),this.trigger(`seeking`)}duration(){return this._duration}volume(){return this._volume}setVolume(e){this._volume=e,this.vimeoPlayer?.setVolume(e).catch(()=>{})}muted(){return this._muted}setMuted(e){this._muted=e,this.vimeoPlayer?.setMuted(e).then(()=>{this.setTimeout(()=>this.trigger(`volumechange`),50)}).catch(()=>{})}buffered(){return c.default.createTimeRange(0,this._currentTime)}seekable(){return c.default.createTimeRange(0,this._duration)}playbackRate(){return this._playbackRate||1}setPlaybackRate(e){this._playbackRate=e,this.vimeoPlayer?.setPlaybackRate(e).catch(()=>{}),this.trigger(`ratechange`)}preload(){}load(){}reset(){}currentSrc(){return this.source?.src||``}ended(){return!1}networkState(){return+!!this.vimeoPlayer}readyState(){return this.vimeoPlayer?4:0}supportsFullScreen(){return r()}dispose(){this.vimeoPlayer?.destroy().catch(()=>{}),this.vimeoPlayer=null,this.el_?.parentNode?.classList.remove(`vjs-vimeo`),u.prototype.dispose.call(this)}};d.isSupported=()=>!0,d.canPlayType=e=>e===`video/vimeo`?`probably`:``,d.canPlaySource=({type:e,src:t})=>e===`video/vimeo`?`probably`:/vimeo\.com|player\.vimeo\.com/.test(t)?`maybe`:``,d.parseUrl=e=>{let t={videoId:null},n=e.match(/(?:vimeo\.com\/(?:video\/|channels\/[^/]+\/|groups\/[^/]+\/videos\/)?|player\.vimeo\.com\/video\/)(\d+)/);return n&&(t.videoId=n[1]),t},i(`Vimeo`,d);export{d as default};
15
+ (function(t,n,r){n[t]=n[t]||r(),e.exports&&=n[t]})(`Promise`,g,function(){var e,t,n,r=Object.prototype.toString,i=typeof setImmediate<`u`?function(e){return setImmediate(e)}:setTimeout;try{Object.defineProperty({},"x",{}),e=function(e,t,n,r){return Object.defineProperty(e,t,{value:n,writable:!0,configurable:r!==!1})}}catch{e=function(e,t,n){return e[t]=n,e}}n=function(){var e,n,r;function i(e,t){this.fn=e,this.self=t,this.next=void 0}return{add:function(t,a){r=new i(t,a),n?n.next=r:e=r,n=r,r=void 0},drain:function(){var r=e;for(e=n=t=void 0;r;)r.fn.call(r.self),r=r.next}}}();function a(e,r){n.add(e,r),t||=i(n.drain)}function o(e){var t,n=typeof e;return e!=null&&(n==`object`||n==`function`)&&(t=e.then),typeof t==`function`?t:!1}function s(){for(var e=0;e<this.chain.length;e++)c(this,this.state===1?this.chain[e].success:this.chain[e].failure,this.chain[e]);this.chain.length=0}function c(e,t,n){var r,i;try{t===!1?n.reject(e.msg):(r=t===!0?e.msg:t.call(void 0,e.msg),r===n.promise?n.reject(TypeError(`Promise-chain cycle`)):(i=o(r))?i.call(r,n.resolve,n.reject):n.resolve(r))}catch(e){n.reject(e)}}function l(e){var t,n=this;if(!n.triggered){n.triggered=!0,n.def&&(n=n.def);try{(t=o(e))?a(function(){var r=new f(n);try{t.call(e,function(){l.apply(r,arguments)},function(){u.apply(r,arguments)})}catch(e){u.call(r,e)}}):(n.msg=e,n.state=1,n.chain.length>0&&a(s,n))}catch(e){u.call(new f(n),e)}}}function u(e){var t=this;t.triggered||(t.triggered=!0,t.def&&(t=t.def),t.msg=e,t.state=2,t.chain.length>0&&a(s,t))}function d(e,t,n,r){for(var i=0;i<t.length;i++)(function(i){e.resolve(t[i]).then(function(e){n(i,e)},r)})(i)}function f(e){this.def=e,this.triggered=!1}function p(e){this.promise=e,this.state=0,this.triggered=!1,this.chain=[],this.msg=void 0}function m(e){if(typeof e!=`function`)throw TypeError(`Not a function`);if(this.__NPO__!==0)throw TypeError(`Not a promise`);this.__NPO__=1;var t=new p(this);this.then=function(e,n){var r={success:typeof e==`function`?e:!0,failure:typeof n==`function`?n:!1};return r.promise=new this.constructor(function(e,t){if(typeof e!=`function`||typeof t!=`function`)throw TypeError(`Not a function`);r.resolve=e,r.reject=t}),t.chain.push(r),t.state!==0&&a(s,t),r.promise},this.catch=function(e){return this.then(void 0,e)};try{e.call(void 0,function(e){l.call(t,e)},function(e){u.call(t,e)})}catch(e){u.call(t,e)}}var h=e({},`constructor`,m,!1);return m.prototype=h,e(h,`__NPO__`,0,!1),e(m,`resolve`,function(e){var t=this;return e&&typeof e==`object`&&e.__NPO__===1?e:new t(function(t,n){if(typeof t!=`function`||typeof n!=`function`)throw TypeError(`Not a function`);t(e)})}),e(m,`reject`,function(e){return new this(function(t,n){if(typeof t!=`function`||typeof n!=`function`)throw TypeError(`Not a function`);n(e)})}),e(m,`all`,function(e){var t=this;return r.call(e)==`[object Array]`?e.length===0?t.resolve([]):new t(function(n,r){if(typeof n!=`function`||typeof r!=`function`)throw TypeError(`Not a function`);var i=e.length,a=Array(i),o=0;d(t,e,function(e,t){a[e]=t,++o===i&&n(a)},r)}):t.reject(TypeError(`Not an array`))}),e(m,`race`,function(e){var t=this;return r.call(e)==`[object Array]`?new t(function(n,r){if(typeof n!=`function`||typeof r!=`function`)throw TypeError(`Not a function`);d(t,e,function(e,t){n(t)},r)}):t.reject(TypeError(`Not an array`))}),m})});let y=new WeakMap;function b(e,t,n){let r=y.get(e.element)||{};t in r||(r[t]=[]),r[t].push(n),y.set(e.element,r)}function x(e,t){return(y.get(e.element)||{})[t]||[]}function S(e,t,n){let r=y.get(e.element)||{};if(!r[t])return!0;if(!n)return r[t]=[],y.set(e.element,r),!0;let i=r[t].indexOf(n);return i!==-1&&r[t].splice(i,1),y.set(e.element,r),r[t]&&r[t].length===0}function C(e,t){let n=x(e,t);if(n.length<1)return!1;let r=n.shift();return S(e,t,r),r}function w(e,t){let n=y.get(e);y.set(t,n),y.delete(e)}function T(e){if(typeof e==`string`)try{e=JSON.parse(e)}catch(e){return console.warn(e),{}}return e}function E(e,t,n){if(!e.element.contentWindow||!e.element.contentWindow.postMessage)return;let r={method:t};n!==void 0&&(r.value=n);let i=parseFloat(navigator.userAgent.toLowerCase().replace(/^.*msie (\d+).*$/,`$1`));i>=8&&i<10&&(r=JSON.stringify(r)),e.element.contentWindow.postMessage(r,e.origin)}function D(e,t){t=T(t);let n=[],r;if(t.event)t.event===`error`&&x(e,t.data.method).forEach(n=>{let r=Error(t.data.message);r.name=t.data.name,n.reject(r),S(e,t.data.method,n)}),n=x(e,`event:${t.event}`),r=t.data;else if(t.method){let i=C(e,t.method);i&&(n.push(i),r=t.value)}n.forEach(t=>{try{if(typeof t==`function`){t.call(e,r);return}t.resolve(r)}catch{}})}let O=`airplay.audio_tracks.audiotrack.autopause.autoplay.background.byline.cc.chapter_id.chapters.chromecast.color.colors.controls.disable_context_menu.dnt.end_time.fullscreen.height.id.initial_quality.interactive_params.keyboard.loop.maxheight.max_quality.maxwidth.min_quality.muted.play_button_position.playsinline.portrait.preload.progress_bar.quality.quality_selector.responsive.skipping_forward.speed.start_time.texttrack.thumbnail_id.title.transcript.transparent.unmute_button.url.vimeo_logo.volume.watch_full_video.width`.split(`.`);function k(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};return O.reduce((t,n)=>{let r=e.getAttribute(`data-vimeo-${n}`);return(r||r===``)&&(t[n]=r===``?1:r),t},t)}function A(e,t){let{html:n}=e;if(!t)throw TypeError(`An element must be provided`);if(t.getAttribute(`data-vimeo-initialized`)!==null)return t.querySelector(`iframe`);let r=document.createElement(`div`);return r.innerHTML=n,t.appendChild(r.firstChild),t.setAttribute(`data-vimeo-initialized`,`true`),t.querySelector(`iframe`)}function j(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},n=arguments.length>2?arguments[2]:void 0;return new Promise((r,i)=>{if(!c(e))throw TypeError(`“${e}” is not a vimeo.com url.`);let a=`https://${u(e)}/api/oembed.json?url=${encodeURIComponent(e)}`;for(let e in t)t.hasOwnProperty(e)&&(a+=`&${e}=${encodeURIComponent(t[e])}`);let o=`XDomainRequest`in window?new XDomainRequest:new XMLHttpRequest;o.open(`GET`,a,!0),o.onload=function(){if(o.status===404){i(Error(`“${e}” was not found.`));return}if(o.status===403){i(Error(`“${e}” is not embeddable.`));return}try{let t=JSON.parse(o.responseText);if(t.domain_status_code===403){A(t,n),i(Error(`“${e}” is not embeddable.`));return}r(t)}catch(e){i(e)}},o.onerror=function(){let e=o.status?` (${o.status})`:``;i(Error(`There was an error fetching the embed code from Vimeo${e}.`))},o.send()})}function M(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:document,t=[].slice.call(e.querySelectorAll(`[data-vimeo-id], [data-vimeo-url]`)),n=e=>{`console`in window&&console.error&&console.error(`There was an error creating an embed: ${e}`)};t.forEach(e=>{try{if(e.getAttribute(`data-vimeo-defer`)!==null)return;let t=k(e);j(d(t),t,e).then(t=>A(t,e)).catch(n)}catch(e){n(e)}})}function N(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:document;window.VimeoPlayerResizeEmbeds_||(window.VimeoPlayerResizeEmbeds_=!0,window.addEventListener(`message`,t=>{if(!c(t.origin)||!t.data||t.data.event!==`spacechange`)return;let n=t.source?p(t.source,e):null;if(n){let e=n.parentElement;e.style.paddingBottom=`${t.data.data[0].bottom}px`}}))}function P(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:document;window.VimeoSeoMetadataAppended||(window.VimeoSeoMetadataAppended=!0,window.addEventListener(`message`,t=>{if(!c(t.origin))return;let n=T(t.data);if(!n||n.event!==`ready`)return;let r=t.source?p(t.source,e):null;r&&l(r.src)&&new U(r).callMethod(`appendVideoMetadata`,window.location.href)}))}function F(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:document;if(window.VimeoCheckedUrlTimeParam)return;window.VimeoCheckedUrlTimeParam=!0;let t=e=>{`console`in window&&console.error&&console.error(`There was an error getting video Id: ${e}`)};window.addEventListener(`message`,n=>{if(!c(n.origin))return;let r=T(n.data);if(!r||r.event!==`ready`)return;let i=n.source?p(n.source,e):null;if(i&&l(i.src)){let e=new U(i);e.getVideoId().then(t=>{let n=RegExp(`[?&]vimeo_t_${t}=([^&#]*)`).exec(window.location.href);if(n&&n[1]){let t=decodeURI(n[1]);e.setCurrentTime(t)}}).catch(t)}})}function I(){window.VimeoDRMEmbedsUpdated||(window.VimeoDRMEmbedsUpdated=!0,window.addEventListener(`message`,e=>{if(!c(e.origin))return;let t=T(e.data);if(!t||t.event!==`drminitfailed`)return;let n=e.source?p(e.source):null;if(!n)return;let r=n.getAttribute(`allow`)||``;if(!r.includes(`encrypted-media`)){n.setAttribute(`allow`,`${r}; encrypted-media`);let e=new URL(n.getAttribute(`src`));e.searchParams.set(`forcereload`,`drm`),n.setAttribute(`src`,e.toString());return}}))}function L(){let e=function(){let e,t=[[`requestFullscreen`,`exitFullscreen`,`fullscreenElement`,`fullscreenEnabled`,`fullscreenchange`,`fullscreenerror`],[`webkitRequestFullscreen`,`webkitExitFullscreen`,`webkitFullscreenElement`,`webkitFullscreenEnabled`,`webkitfullscreenchange`,`webkitfullscreenerror`],[`webkitRequestFullScreen`,`webkitCancelFullScreen`,`webkitCurrentFullScreenElement`,`webkitCancelFullScreen`,`webkitfullscreenchange`,`webkitfullscreenerror`],[`mozRequestFullScreen`,`mozCancelFullScreen`,`mozFullScreenElement`,`mozFullScreenEnabled`,`mozfullscreenchange`,`mozfullscreenerror`],[`msRequestFullscreen`,`msExitFullscreen`,`msFullscreenElement`,`msFullscreenEnabled`,`MSFullscreenChange`,`MSFullscreenError`]],n=0,r=t.length,i={};for(;n<r;n++)if(e=t[n],e&&e[1]in document){for(n=0;n<e.length;n++)i[t[0][n]]=e[n];return i}return!1}(),t={fullscreenchange:e.fullscreenchange,fullscreenerror:e.fullscreenerror},n={request(t){return new Promise((r,i)=>{let a=function(){n.off(`fullscreenchange`,a),r()};n.on(`fullscreenchange`,a),t||=document.documentElement;let o=t[e.requestFullscreen]();o instanceof Promise&&o.then(a).catch(i)})},exit(){return new Promise((t,r)=>{if(!n.isFullscreen){t();return}let i=function(){n.off(`fullscreenchange`,i),t()};n.on(`fullscreenchange`,i);let a=document[e.exitFullscreen]();a instanceof Promise&&a.then(i).catch(r)})},on(e,n){let r=t[e];r&&document.addEventListener(r,n)},off(e,n){let r=t[e];r&&document.removeEventListener(r,n)}};return Object.defineProperties(n,{isFullscreen:{get(){return!!document[e.fullscreenElement]}},element:{enumerable:!0,get(){return document[e.fullscreenElement]}},isEnabled:{enumerable:!0,get(){return!!document[e.fullscreenEnabled]}}}),n}let R={role:`viewer`,autoPlayMuted:!0,allowedDrift:.3,maxAllowedDrift:1,minCheckInterval:.1,maxRateAdjustment:.2,maxTimeToCatchUp:1};class z extends EventTarget{logger;constructor(e,t){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},r=arguments.length>3?arguments[3]:void 0;super(),this.logger=r,this.init(t,e,{...R,...n})}disconnect(){this.dispatchEvent(new Event(`disconnect`))}async init(e,t,n){if(await this.waitForTOReadyState(e,`open`),n.role===`viewer`){await this.updatePlayer(e,t,n);let r=f(e,`change`,()=>this.updatePlayer(e,t,n)),i=this.maintainPlaybackPosition(e,t,n);this.addEventListener(`disconnect`,()=>{i.cancel(),r.cancel()})}else{await this.updateTimingObject(e,t);let n=f(t,[`seeked`,`play`,`pause`,`ratechange`],()=>this.updateTimingObject(e,t),`on`,`off`);this.addEventListener(`disconnect`,()=>n.cancel())}}async updateTimingObject(e,t){let[n,r,i]=await Promise.all([t.getCurrentTime(),t.getPaused(),t.getPlaybackRate()]);e.update({position:n,velocity:r?0:i})}async updatePlayer(e,t,n){let{position:r,velocity:i}=e.query();typeof r==`number`&&t.setCurrentTime(r),typeof i==`number`&&(i===0?await t.getPaused()===!1&&t.pause():i>0&&(await t.getPaused()===!0&&(await t.play().catch(async e=>{e.name===`NotAllowedError`&&n.autoPlayMuted&&(await t.setMuted(!0),await t.play().catch(e=>console.error(`Couldn't play the video from TimingSrcConnector. Error:`,e)))}),this.updatePlayer(e,t,n)),await t.getPlaybackRate()!==i&&t.setPlaybackRate(i)))}maintainPlaybackPosition(e,t,n){let{allowedDrift:r,maxAllowedDrift:i,minCheckInterval:a,maxRateAdjustment:o,maxTimeToCatchUp:s}=n,c=Math.min(s,Math.max(a,i))*1e3,l=async()=>{if(e.query().velocity===0||await t.getPaused()===!0)return;let n=e.query().position-await t.getCurrentTime(),a=Math.abs(n);if(this.log(`Drift: ${n}`),a>i)await this.adjustSpeed(t,0),t.setCurrentTime(e.query().position),this.log(`Resync by currentTime`);else if(a>r){let e=a/s,r=o,i=e<r?(r-e)/2:r;await this.adjustSpeed(t,i*Math.sign(n)),this.log(`Resync by playbackRate`)}},u=setInterval(()=>l(),c);return{cancel:()=>clearInterval(u)}}log(e){this.logger?.(`TimingSrcConnector: ${e}`)}speedAdjustment=0;adjustSpeed=async(e,t)=>{if(this.speedAdjustment===t)return;let n=await e.getPlaybackRate()-this.speedAdjustment+t;this.log(`New playbackRate: ${n}`),await e.setPlaybackRate(n),this.speedAdjustment=t};waitForTOReadyState(e,t){return new Promise(n=>{let r=()=>{e.readyState===t?n():e.addEventListener(`readystatechange`,r,{once:!0})};r()})}}let B=new WeakMap,V=new WeakMap,H={};class U{constructor(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};if(window.jQuery&&e instanceof jQuery&&(e.length>1&&window.console&&console.warn&&console.warn(`A jQuery object with multiple elements was passed, using the first element.`),e=e[0]),typeof document<`u`&&typeof e==`string`&&(e=document.getElementById(e)),!o(e))throw TypeError(`You must pass either a valid element or a valid id.`);if(e.nodeName!==`IFRAME`){let t=e.querySelector(`iframe`);t&&(e=t)}if(e.nodeName===`IFRAME`&&!c(e.getAttribute(`src`)||``))throw Error(`The player element passed isn’t a Vimeo embed.`);if(B.has(e))return B.get(e);this._window=e.ownerDocument.defaultView,this.element=e,this.origin=`*`;let n=new v((n,r)=>{if(this._onMessage=e=>{if(!c(e.origin)||this.element.contentWindow!==e.source)return;this.origin===`*`&&(this.origin=e.origin);let t=T(e.data);if(t&&t.event===`error`&&t.data&&t.data.method===`ready`){let e=Error(t.data.message);e.name=t.data.name,r(e);return}let i=t&&t.event===`ready`,a=t&&t.method===`ping`;if(i||a){this.element.setAttribute(`data-ready`,`true`),n();return}D(this,t)},this._window.addEventListener(`message`,this._onMessage),this.element.nodeName!==`IFRAME`){let n=k(e,t);j(d(n),n,e).then(t=>{let n=A(t,e);return this.element=n,this._originalElement=e,w(e,n),B.set(this.element,this),t}).catch(r)}});if(V.set(this,n),B.set(this.element,this),this.element.nodeName===`IFRAME`&&E(this,`ping`),H.isEnabled){let e=()=>H.exit();this.fullscreenchangeHandler=()=>{H.isFullscreen?b(this,`event:exitFullscreen`,e):S(this,`event:exitFullscreen`,e),this.ready().then(()=>{E(this,`fullscreenchange`,H.isFullscreen)})},H.on(`fullscreenchange`,this.fullscreenchangeHandler)}return this}static isVimeoUrl(e){return c(e)}callMethod(e){var t=[...arguments].slice(1);if(e==null)throw TypeError(`You must pass a method name.`);return new v((n,r)=>this.ready().then(()=>{b(this,e,{resolve:n,reject:r}),t.length===0?t={}:t.length===1&&(t=t[0]),E(this,e,t)}).catch(r))}get(e){return new v((t,n)=>(e=a(e,`get`),this.ready().then(()=>{b(this,e,{resolve:t,reject:n}),E(this,e)}).catch(n)))}set(e,t){return new v((n,r)=>{if(e=a(e,`set`),t==null)throw TypeError(`There must be a value to set.`);return this.ready().then(()=>{b(this,e,{resolve:n,reject:r}),E(this,e,t)}).catch(r)})}on(e,t){if(!e)throw TypeError(`You must pass an event name.`);if(!t)throw TypeError(`You must pass a callback function.`);if(typeof t!=`function`)throw TypeError(`The callback must be a function.`);x(this,`event:${e}`).length===0&&this.callMethod(`addEventListener`,e).catch(()=>{}),b(this,`event:${e}`,t)}off(e,t){if(!e)throw TypeError(`You must pass an event name.`);if(t&&typeof t!=`function`)throw TypeError(`The callback must be a function.`);S(this,`event:${e}`,t)&&this.callMethod(`removeEventListener`,e).catch(e=>{})}loadVideo(e){return this.callMethod(`loadVideo`,e)}ready(){let e=V.get(this)||new v((e,t)=>{t(Error(`Unknown player. Probably unloaded.`))});return v.resolve(e)}addCuePoint(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};return this.callMethod(`addCuePoint`,{time:e,data:t})}removeCuePoint(e){return this.callMethod(`removeCuePoint`,e)}enableTextTrack(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:null,n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0;if(!e)throw TypeError(`You must pass a language.`);return this.callMethod(`enableTextTrack`,{language:e,kind:t,showing:n})}disableTextTrack(){return this.callMethod(`disableTextTrack`)}selectAudioTrack(e,t){if(!e)throw TypeError(`You must pass a language.`);return this.callMethod(`selectAudioTrack`,{language:e,kind:t})}selectDefaultAudioTrack(){return this.callMethod(`selectDefaultAudioTrack`)}pause(){return this.callMethod(`pause`)}play(){return this.callMethod(`play`)}requestFullscreen(){return H.isEnabled?H.request(this.element):this.callMethod(`requestFullscreen`)}exitFullscreen(){return H.isEnabled?H.exit():this.callMethod(`exitFullscreen`)}getFullscreen(){return H.isEnabled?v.resolve(H.isFullscreen):this.get(`fullscreen`)}requestPictureInPicture(){return this.callMethod(`requestPictureInPicture`)}exitPictureInPicture(){return this.callMethod(`exitPictureInPicture`)}getPictureInPicture(){return this.get(`pictureInPicture`)}remotePlaybackPrompt(){return this.callMethod(`remotePlaybackPrompt`)}unload(){return this.callMethod(`unload`)}destroy(){return new v(e=>{if(V.delete(this),B.delete(this.element),this._originalElement&&(B.delete(this._originalElement),this._originalElement.removeAttribute(`data-vimeo-initialized`)),this.element&&this.element.nodeName===`IFRAME`&&this.element.parentNode&&(this.element.parentNode.parentNode&&this._originalElement&&this._originalElement!==this.element.parentNode?this.element.parentNode.parentNode.removeChild(this.element.parentNode):this.element.parentNode.removeChild(this.element)),this.element&&this.element.nodeName===`DIV`&&this.element.parentNode){this.element.removeAttribute(`data-vimeo-initialized`);let e=this.element.querySelector(`iframe`);e&&e.parentNode&&(e.parentNode.parentNode&&this._originalElement&&this._originalElement!==e.parentNode?e.parentNode.parentNode.removeChild(e.parentNode):e.parentNode.removeChild(e))}this._window.removeEventListener(`message`,this._onMessage),H.isEnabled&&H.off(`fullscreenchange`,this.fullscreenchangeHandler),e()})}getAutopause(){return this.get(`autopause`)}setAutopause(e){return this.set(`autopause`,e)}getBuffered(){return this.get(`buffered`)}getCameraProps(){return this.get(`cameraProps`)}setCameraProps(e){return this.set(`cameraProps`,e)}getChapters(){return this.get(`chapters`)}getCurrentChapter(){return this.get(`currentChapter`)}getColor(){return this.get(`color`)}getColors(){return v.all([this.get(`colorOne`),this.get(`colorTwo`),this.get(`colorThree`),this.get(`colorFour`)])}setColor(e){return this.set(`color`,e)}setColors(e){if(!Array.isArray(e))return new v((e,t)=>t(TypeError(`Argument must be an array.`)));let t=new v(e=>e(null)),n=[e[0]?this.set(`colorOne`,e[0]):t,e[1]?this.set(`colorTwo`,e[1]):t,e[2]?this.set(`colorThree`,e[2]):t,e[3]?this.set(`colorFour`,e[3]):t];return v.all(n)}getCuePoints(){return this.get(`cuePoints`)}getCurrentTime(){return this.get(`currentTime`)}setCurrentTime(e){return this.set(`currentTime`,e)}getDuration(){return this.get(`duration`)}getEnded(){return this.get(`ended`)}getLoop(){return this.get(`loop`)}setLoop(e){return this.set(`loop`,e)}setMuted(e){return this.set(`muted`,e)}getMuted(){return this.get(`muted`)}getPaused(){return this.get(`paused`)}getPlaybackRate(){return this.get(`playbackRate`)}setPlaybackRate(e){return this.set(`playbackRate`,e)}getPlayed(){return this.get(`played`)}getQualities(){return this.get(`qualities`)}getQuality(){return this.get(`quality`)}setQuality(e){return this.set(`quality`,e)}getRemotePlaybackAvailability(){return this.get(`remotePlaybackAvailability`)}getRemotePlaybackState(){return this.get(`remotePlaybackState`)}getSeekable(){return this.get(`seekable`)}getSeeking(){return this.get(`seeking`)}getTextTracks(){return this.get(`textTracks`)}getAudioTracks(){return this.get(`audioTracks`)}getEnabledAudioTrack(){return this.get(`enabledAudioTrack`)}getDefaultAudioTrack(){return this.get(`defaultAudioTrack`)}getVideoEmbedCode(){return this.get(`videoEmbedCode`)}getVideoId(){return this.get(`videoId`)}getVideoTitle(){return this.get(`videoTitle`)}getVideoWidth(){return this.get(`videoWidth`)}getVideoHeight(){return this.get(`videoHeight`)}getVideoUrl(){return this.get(`videoUrl`)}getVolume(){return this.get(`volume`)}setVolume(e){return this.set(`volume`,e)}async setTimingSrc(e,t){if(!e)throw TypeError(`A Timing Object must be provided.`);await this.ready();let n=new z(this,e,t);return E(this,`notifyTimingObjectConnect`),n.addEventListener(`disconnect`,()=>E(this,`notifyTimingObjectDisconnect`)),n}}return i||(H=L(),M(),N(),P(),F(),I()),U}))})),l=e(n(),1),u=e(c(),1);const d=l.default.getTech(`Tech`);var f=class e extends d{constructor(e,t){super(e,t),this._currentTime=0,this._duration=0,this._volume=1,this._muted=!1,this._paused=!0,this._seeking=!1,this.setSrc(this.options_.source,!0),this.setTimeout(()=>{this.el_&&(this.el_.parentNode.classList.add(`vjs-vimeo`),this.initVimeoPlayer())})}createEl(){let e=document.createElement(`div`);e.setAttribute(`id`,this.options_.techId),e.setAttribute(`style`,`width:100%;height:100%;top:0;left:0;position:absolute`),e.setAttribute(`class`,`vjs-tech`);let t=document.createElement(`div`);return t.appendChild(e),t}initVimeoPlayer(){if(!this.url||!this.url.videoId)return;let e={id:this.url.videoId,byline:!1,portrait:!1,title:!1,transparent:!0,controls:!!this.options_.nativeUi,autopause:!1,width:`100%`,height:`100%`};this.options_.autoplay!==void 0&&(e.autoplay=this.options_.autoplay),this.options_.loop!==void 0&&(e.loop=this.options_.loop),this.options_.muted!==void 0&&(e.muted=this.options_.muted),this.vimeoPlayer=new u.default(this.options_.techId,e),this.vimeoPlayer.ready().then(()=>this.onPlayerReady()).catch(e=>{this.player_.error({code:4,message:e?.message||`This video is unavailable or cannot be embedded here.`})}),this.vimeoPlayer.on(`play`,()=>{this._paused=!1,this.trigger(`play`),this.trigger(`playing`)}),this.vimeoPlayer.on(`pause`,()=>{this._paused=!0,this.trigger(`pause`)}),this.vimeoPlayer.on(`ended`,()=>{this._paused=!0,this.trigger(`ended`)}),this.vimeoPlayer.on(`timeupdate`,({seconds:e,duration:t})=>{this._currentTime=e,this._duration=t,this.trigger(`timeupdate`),t&&!this._durationSet&&(this._durationSet=!0,this.trigger(`durationchange`))}),this.vimeoPlayer.on(`loaded`,()=>{this._durationSet=!1,this.trigger(`loadedmetadata`),this.trigger(`durationchange`)}),this.vimeoPlayer.on(`seeking`,({seconds:e})=>{this._currentTime=e,this._seeking=!0,this.trigger(`seeking`)}),this.vimeoPlayer.on(`seeked`,({seconds:e})=>{this._currentTime=e,this._seeking=!1,this.trigger(`seeked`),this.trigger(`timeupdate`)}),this.vimeoPlayer.on(`bufferstart`,()=>this.trigger(`waiting`)),this.vimeoPlayer.on(`bufferend`,()=>this.trigger(`canplay`)),this.vimeoPlayer.on(`volumechange`,({volume:e})=>{this._volume=e,this.trigger(`volumechange`)}),this.vimeoPlayer.on(`error`,e=>this.trigger(`error`,e)),this.vimeoPlayer.on(`fullscreenchange`,({fullscreen:e})=>{this.trigger(`fullscreenchange`,{isFullscreen:e})})}enterFullscreen(){if(!r())return a(this.player_.el().parentElement);this.vimeoPlayer?.requestFullscreen().catch(()=>{})}exitFullscreen(){o()}onPlayerReady(){this.triggerReady(),this.options_.muted&&this.vimeoPlayer.setMuted(!0),this.playOnReady&&this.play()}setSrc(t){!t||!t.src||(this.source=t,this.url=e.parseUrl(t.src),this.options_.autoplay&&(this.playOnReady=!0))}play(){if(!this.vimeoPlayer){this.playOnReady=!0;return}this.vimeoPlayer.play().catch(()=>{})}pause(){this.vimeoPlayer?.pause().catch(()=>{})}paused(){return this._paused}seeking(){return this._seeking}currentTime(){return this._currentTime}setCurrentTime(e){this.vimeoPlayer?.setCurrentTime(e).catch(()=>{}),this.trigger(`timeupdate`),this.trigger(`seeking`)}duration(){return this._duration}volume(){return this._volume}setVolume(e){this._volume=e,this.vimeoPlayer?.setVolume(e).catch(()=>{})}muted(){return this._muted}setMuted(e){this._muted=e,this.vimeoPlayer?.setMuted(e).then(()=>{this.setTimeout(()=>this.trigger(`volumechange`),50)}).catch(()=>{})}buffered(){return l.default.createTimeRange(0,this._currentTime)}seekable(){return l.default.createTimeRange(0,this._duration)}playbackRate(){return this._playbackRate||1}setPlaybackRate(e){this._playbackRate=e,this.vimeoPlayer?.setPlaybackRate(e).catch(()=>{}),this.trigger(`ratechange`)}preload(){}load(){}reset(){}currentSrc(){return this.source?.src||``}ended(){return!1}networkState(){return+!!this.vimeoPlayer}readyState(){return this.vimeoPlayer?4:0}supportsFullScreen(){return s()}dispose(){this.vimeoPlayer?.destroy().catch(()=>{}),this.vimeoPlayer=null,this.el_?.parentNode?.classList.remove(`vjs-vimeo`),d.prototype.dispose.call(this)}};f.isSupported=()=>!0,f.canPlayType=e=>e===`video/vimeo`?`probably`:``,f.canPlaySource=({type:e,src:t})=>e===`video/vimeo`?`probably`:/vimeo\.com|player\.vimeo\.com/.test(t)?`maybe`:``,f.parseUrl=e=>{let t={videoId:null},n=e.match(/(?:vimeo\.com\/(?:video\/|channels\/[^/]+\/|groups\/[^/]+\/videos\/)?|player\.vimeo\.com\/video\/)(\d+)/);return n&&(t.videoId=n[1]),t},i(`Vimeo`,f);export{f as default};
@@ -0,0 +1 @@
1
+ import{a as e,c as t,h as n,l as r,m as i,n as a,u as o}from"./tech-BOi4jf1S.mjs";import{t as s}from"./loadScript-Du6JsTc2.mjs";import c from"video.js";const l=c.getTech(`Tech`),u=c.browser.IS_IOS||c.browser.IS_NATIVE_ANDROID;var d=class t extends l{constructor(e,n){super(e,n),this.setPoster(e.poster),this.setSrc(this.options_.source),this.setTimeout(()=>{this.el_&&(this.el_.parentNode.classList.add(`vjs-youtube`),u&&this.el_.parentNode.classList.add(`vjs-youtube-mobile`),t.isApiReady?this.initYTPlayer():t.apiReadyQueue.push(this))})}createEl(){let e=document.createElement(`div`);e.setAttribute(`id`,this.options_.techId),e.setAttribute(`style`,`width:100%;height:100%;top:0;left:0;position:absolute`),e.setAttribute(`class`,`vjs-tech`);let t=document.createElement(`div`);return t.appendChild(e),t}initYTPlayer(){let e=this.options_,t={controls:+!!e.nativeUi,modestbranding:1,rel:0,showinfo:0,mute:+!!e.muted,loop:+!!e.loop,origin:window.location.origin,allowfullscreen:1,fullscreen:1,fs:1,...e.iv_load_policy!==void 0&&{iv_load_policy:e.iv_load_policy},...e.cc_load_policy!==void 0&&{cc_load_policy:e.cc_load_policy},...e.color!==void 0&&{color:e.color},...e.hl!==void 0&&{hl:e.hl},...e.playsinline!==void 0&&{playsinline:e.playsinline},...e.rel!==void 0&&{rel:e.rel},...e.start!==void 0&&{start:e.start},...e.end!==void 0&&{end:e.end},...e.ytControls!==void 0&&{controls:e.ytControls},...e.customVars};e.youtube&&Object.assign(t,e.youtube),this.activeVideoId=this.url?.videoId??null,this.ytPlayer=new window.YT.Player(this.options_.techId,{videoId:this.activeVideoId,playerVars:t,...e.enablePrivacyEnhancedMode&&{host:`https://www.youtube-nocookie.com`},events:{onReady:this.onPlayerReady.bind(this),onStateChange:this.onPlayerStateChange.bind(this),onPlaybackRateChange:this.onPlayerPlaybackRateChange.bind(this),onVolumeChange:this.onPlayerVolumeChange.bind(this),onError:this.onPlayerError.bind(this)}}),window.yt=this.ytPlayer}onPlayerReady(){this.ytPlayer.getAvailablePlaybackRates().length>1&&(this.featuresPlaybackRate=!0),this.playerReady_=!0,this.triggerReady(),this.playOnReady?this.play():this.cueOnReady&&(this.cueVideoById_(this.url.videoId),this.activeVideoId=this.url.videoId)}_isAdPlaying(){try{let e=this.ytPlayer?.getPlayerResponse()?.adPlacements;return Array.isArray(e)&&e.length>0}catch{return!1}}onPlayerStateChange(e){let t=e.data;if(t===this.lastState||this.errorNumber)return;this.lastState=t;let n=this._isAdPlaying();switch(n!==this._adWasPlaying&&(this._adWasPlaying=n,this.trigger(n?`adstart`:`adend`)),t){case-1:this.trigger(`loadstart`),this.trigger(`loadedmetadata`),this.trigger(`durationchange`),this.trigger(`ratechange`);break;case YT.PlayerState.ENDED:this.trigger(`ended`);break;case YT.PlayerState.PLAYING:this.trigger(`timeupdate`),this.trigger(`durationchange`),this.trigger(`playing`),this.trigger(`play`),this.isSeeking&&this.onSeeked();break;case YT.PlayerState.PAUSED:this.trigger(`canplay`),this.isSeeking||this.trigger(`pause`);break;case YT.PlayerState.BUFFERING:this.player_.trigger(`waiting`);break;case YT.PlayerState.CUED:this.trigger(`canplay`);break}this.startInterval&&=(clearInterval(this.startInterval),null),t===YT.PlayerState.PLAYING&&(this.startInterval=setInterval(()=>this.trigger(`timeupdate`),250))}onPlayerPlaybackRateChange(){this.trigger(`ratechange`)}onPlayerVolumeChange(){this.trigger(`volumechange`)}onPlayerError(e){this.errorNumber=e.data,this.trigger(`error`),this.setTimeout(()=>{this.errorNumber=null},0)}play(){this.url?.videoId&&(this.wasPausedBeforeSeek=!1,this.isReady_?this.activeVideoId===this.url.videoId?this.ytPlayer.playVideo():(this.loadVideoById_(this.url.videoId),this.activeVideoId=this.url.videoId):(this.trigger(`waiting`),this.playOnReady=!0))}pause(){this.ytPlayer?.pauseVideo()}paused(){return this.ytPlayer?this.lastState!==YT.PlayerState.PLAYING&&this.lastState!==YT.PlayerState.BUFFERING:!0}loadVideoById_(e){this.ytPlayer.loadVideoById({videoId:e})}cueVideoById_(e){this.ytPlayer.cueVideoById({videoId:e})}currentTime(){return this.ytPlayer?.getCurrentTime()??0}setCurrentTime(e){this.lastState===YT.PlayerState.PAUSED&&(this.timeBeforeSeek=this.currentTime()),this.isSeeking||(this.wasPausedBeforeSeek=this.paused()),this.ytPlayer.seekTo(e,!0),this.trigger(`timeupdate`),this.trigger(`seeking`),this.isSeeking=!0,this.lastState===YT.PlayerState.PAUSED&&this.timeBeforeSeek!==e&&(clearInterval(this.checkSeekedInPauseInterval),this.checkSeekedInPauseInterval=setInterval(()=>{this.lastState!==YT.PlayerState.PAUSED||!this.isSeeking?clearInterval(this.checkSeekedInPauseInterval):this.currentTime()!==this.timeBeforeSeek&&(this.trigger(`timeupdate`),this.onSeeked())},250))}onSeeked(){clearInterval(this.checkSeekedInPauseInterval),this.isSeeking=!1,this.wasPausedBeforeSeek&&this.pause(),this.trigger(`seeked`)}seeking(){return this.isSeeking}seekable(){return c.createTimeRange(0,this.ytPlayer?.getDuration()??0)}duration(){return this.ytPlayer?.getDuration()??0}ended(){return this.ytPlayer?this.lastState===YT.PlayerState.ENDED:!1}volume(){return this.ytPlayer?this.ytPlayer.getVolume()/100:1}setVolume(e){this.ytPlayer?.setVolume(e*100)}muted(){return this.ytPlayer?.isMuted()??!1}setMuted(e){this.ytPlayer&&(e?this.ytPlayer.mute():this.ytPlayer.unMute(),this.setTimeout(()=>this.trigger(`volumechange`),50))}buffered(){return this.ytPlayer?.getVideoLoadedFraction?c.createTimeRange(0,this.ytPlayer.getVideoLoadedFraction()*this.ytPlayer.getDuration()):c.createTimeRange()}playbackRate(){return this.ytPlayer?.getPlaybackRate()??1}setPlaybackRate(e){this.ytPlayer?.setPlaybackRate(e)}currentSrc(){return this.source?.src??``}preload(){}load(){}reset(){}networkState(){if(!this.ytPlayer)return 0;switch(this.ytPlayer.getPlayerState()){case-1:return 0;case 3:return 2;default:return 1}}readyState(){if(!this.ytPlayer)return 0;switch(this.ytPlayer.getPlayerState()){case-1:return 0;case 5:return 1;case 3:return 2;default:return 4}}supportsFullScreen(){return o()}setSrc(e){e?.src&&(this.source=e,this.url=t.parseUrl(e.src),!this.options_.poster&&this.url.videoId&&(this.poster_=`https://img.youtube.com/vi/${this.url.videoId}/0.jpg`,this.setTimeout(()=>{this.trigger(`posterchange`),this.checkHighResPoster()},0)),this.options_.autoplay?this.isReady_?this.play():this.playOnReady=!0:this.activeVideoId!==this.url.videoId&&(this.isReady_?(this.cueVideoById_(this.url.videoId),this.activeVideoId=this.url.videoId):this.cueOnReady=!0))}poster(){return u?null:this.poster_}setPoster(e){this.poster_=e}autoplay(){return this.options_.autoplay}setAutoplay(e){this.options_.autoplay=e}loop(){return this.options_.loop}setLoop(e){this.options_.loop=e}checkHighResPoster(){let e=`https://img.youtube.com/vi/${this.url.videoId}/maxresdefault.jpg`,t=new Image;t.onload=()=>{(t.naturalHeight||t.height)<=90||(this.poster_=e,this.trigger(`posterchange`))},t.src=e}enterFullscreen(){if(e()&&this.ytPlayer){this._spawnIosFullscreen();return}r(this.player_.el().parentElement)}exitFullscreen(){a()}_spawnIosFullscreen(){let e=this.ytPlayer,t=e.getCurrentTime(),{video_id:r}=e.getVideoData();e.pauseVideo(),this.player_.trigger(i);let a=document.createElement(`div`);a.style.cssText=`position:fixed;inset:0;z-index:99999;opacity:0;pointer-events:none`,document.body.appendChild(a);let o=document.createElement(`div`);o.id=`yt-fs-${Date.now()}`,a.appendChild(o);let s=null,c=!1,l=()=>{if(c)return;c=!0,this.player_.trigger(n);let r=s?s.getCurrentTime():t;try{s?.destroy()}catch{}a.remove(),e.seekTo(r,!0),this.trigger(`timeupdate`)};s=new window.YT.Player(o.id,{videoId:r,playerVars:{playsinline:0,autoplay:1,controls:1,modestbranding:1,rel:0,start:Math.floor(t)},events:{onReady:e=>{this.player_.trigger(n),e.target.seekTo(t,!0),e.target.playVideo()},onStateChange:e=>{(e.data===window.YT.PlayerState.PAUSED||e.data===window.YT.PlayerState.ENDED)&&l()}}})}dispose(){clearInterval(this.startInterval),this.ytPlayer?(this.ytPlayer.stopVideo?.(),this.ytPlayer.destroy?.()):t.apiReadyQueue=t.apiReadyQueue.filter(e=>e!==this),this.ytPlayer=null,this.el_?.parentNode?.classList.remove(`vjs-youtube`,`vjs-youtube-mobile`),l.prototype.dispose.call(this)}};d.isApiReady=!1,d.apiReadyQueue=[],d.isSupported=()=>!0,d.canPlayType=e=>e===`video/youtube`?`probably`:``,d.canPlaySource=({type:e,src:t})=>e===`video/youtube`?`probably`:/youtu\.be|youtube\.com/.test(t)?`maybe`:``,d.parseUrl=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},typeof document<`u`&&s(`https://www.youtube.com/iframe_api`).then(()=>{window.YT.ready(()=>{d.isApiReady=!0,d.apiReadyQueue.forEach(e=>e.initYTPlayer()),d.apiReadyQueue=[]})}),t(`Youtube`,d);export{d as default};
@@ -0,0 +1 @@
1
+ import{a as e,t}from"./video.cjs-gZWrkL0e.mjs";import{a as n,c as r,h as i,l as a,m as o,n as s,u as c}from"./tech-DQUZqNr6.mjs";import{t as l}from"./loadScript-Du6JsTc2.mjs";var u=e(t(),1);const d=u.default.getTech(`Tech`),f=u.default.browser.IS_IOS||u.default.browser.IS_NATIVE_ANDROID;var p=class e extends d{constructor(t,n){super(t,n),this.setPoster(t.poster),this.setSrc(this.options_.source),this.setTimeout(()=>{this.el_&&(this.el_.parentNode.classList.add(`vjs-youtube`),f&&this.el_.parentNode.classList.add(`vjs-youtube-mobile`),e.isApiReady?this.initYTPlayer():e.apiReadyQueue.push(this))})}createEl(){let e=document.createElement(`div`);e.setAttribute(`id`,this.options_.techId),e.setAttribute(`style`,`width:100%;height:100%;top:0;left:0;position:absolute`),e.setAttribute(`class`,`vjs-tech`);let t=document.createElement(`div`);return t.appendChild(e),t}initYTPlayer(){let e=this.options_,t={controls:+!!e.nativeUi,modestbranding:1,rel:0,showinfo:0,mute:+!!e.muted,loop:+!!e.loop,origin:window.location.origin,allowfullscreen:1,fullscreen:1,fs:1,...e.iv_load_policy!==void 0&&{iv_load_policy:e.iv_load_policy},...e.cc_load_policy!==void 0&&{cc_load_policy:e.cc_load_policy},...e.color!==void 0&&{color:e.color},...e.hl!==void 0&&{hl:e.hl},...e.playsinline!==void 0&&{playsinline:e.playsinline},...e.rel!==void 0&&{rel:e.rel},...e.start!==void 0&&{start:e.start},...e.end!==void 0&&{end:e.end},...e.ytControls!==void 0&&{controls:e.ytControls},...e.customVars};e.youtube&&Object.assign(t,e.youtube),this.activeVideoId=this.url?.videoId??null,this.ytPlayer=new window.YT.Player(this.options_.techId,{videoId:this.activeVideoId,playerVars:t,...e.enablePrivacyEnhancedMode&&{host:`https://www.youtube-nocookie.com`},events:{onReady:this.onPlayerReady.bind(this),onStateChange:this.onPlayerStateChange.bind(this),onPlaybackRateChange:this.onPlayerPlaybackRateChange.bind(this),onVolumeChange:this.onPlayerVolumeChange.bind(this),onError:this.onPlayerError.bind(this)}}),window.yt=this.ytPlayer}onPlayerReady(){this.ytPlayer.getAvailablePlaybackRates().length>1&&(this.featuresPlaybackRate=!0),this.playerReady_=!0,this.triggerReady(),this.playOnReady?this.play():this.cueOnReady&&(this.cueVideoById_(this.url.videoId),this.activeVideoId=this.url.videoId)}_isAdPlaying(){try{let e=this.ytPlayer?.getPlayerResponse()?.adPlacements;return Array.isArray(e)&&e.length>0}catch{return!1}}onPlayerStateChange(e){let t=e.data;if(t===this.lastState||this.errorNumber)return;this.lastState=t;let n=this._isAdPlaying();switch(n!==this._adWasPlaying&&(this._adWasPlaying=n,this.trigger(n?`adstart`:`adend`)),t){case-1:this.trigger(`loadstart`),this.trigger(`loadedmetadata`),this.trigger(`durationchange`),this.trigger(`ratechange`);break;case YT.PlayerState.ENDED:this.trigger(`ended`);break;case YT.PlayerState.PLAYING:this.trigger(`timeupdate`),this.trigger(`durationchange`),this.trigger(`playing`),this.trigger(`play`),this.isSeeking&&this.onSeeked();break;case YT.PlayerState.PAUSED:this.trigger(`canplay`),this.isSeeking||this.trigger(`pause`);break;case YT.PlayerState.BUFFERING:this.player_.trigger(`waiting`);break;case YT.PlayerState.CUED:this.trigger(`canplay`);break}this.startInterval&&=(clearInterval(this.startInterval),null),t===YT.PlayerState.PLAYING&&(this.startInterval=setInterval(()=>this.trigger(`timeupdate`),250))}onPlayerPlaybackRateChange(){this.trigger(`ratechange`)}onPlayerVolumeChange(){this.trigger(`volumechange`)}onPlayerError(e){this.errorNumber=e.data,this.trigger(`error`),this.setTimeout(()=>{this.errorNumber=null},0)}play(){this.url?.videoId&&(this.wasPausedBeforeSeek=!1,this.isReady_?this.activeVideoId===this.url.videoId?this.ytPlayer.playVideo():(this.loadVideoById_(this.url.videoId),this.activeVideoId=this.url.videoId):(this.trigger(`waiting`),this.playOnReady=!0))}pause(){this.ytPlayer?.pauseVideo()}paused(){return this.ytPlayer?this.lastState!==YT.PlayerState.PLAYING&&this.lastState!==YT.PlayerState.BUFFERING:!0}loadVideoById_(e){this.ytPlayer.loadVideoById({videoId:e})}cueVideoById_(e){this.ytPlayer.cueVideoById({videoId:e})}currentTime(){return this.ytPlayer?.getCurrentTime()??0}setCurrentTime(e){this.lastState===YT.PlayerState.PAUSED&&(this.timeBeforeSeek=this.currentTime()),this.isSeeking||(this.wasPausedBeforeSeek=this.paused()),this.ytPlayer.seekTo(e,!0),this.trigger(`timeupdate`),this.trigger(`seeking`),this.isSeeking=!0,this.lastState===YT.PlayerState.PAUSED&&this.timeBeforeSeek!==e&&(clearInterval(this.checkSeekedInPauseInterval),this.checkSeekedInPauseInterval=setInterval(()=>{this.lastState!==YT.PlayerState.PAUSED||!this.isSeeking?clearInterval(this.checkSeekedInPauseInterval):this.currentTime()!==this.timeBeforeSeek&&(this.trigger(`timeupdate`),this.onSeeked())},250))}onSeeked(){clearInterval(this.checkSeekedInPauseInterval),this.isSeeking=!1,this.wasPausedBeforeSeek&&this.pause(),this.trigger(`seeked`)}seeking(){return this.isSeeking}seekable(){return u.default.createTimeRange(0,this.ytPlayer?.getDuration()??0)}duration(){return this.ytPlayer?.getDuration()??0}ended(){return this.ytPlayer?this.lastState===YT.PlayerState.ENDED:!1}volume(){return this.ytPlayer?this.ytPlayer.getVolume()/100:1}setVolume(e){this.ytPlayer?.setVolume(e*100)}muted(){return this.ytPlayer?.isMuted()??!1}setMuted(e){this.ytPlayer&&(e?this.ytPlayer.mute():this.ytPlayer.unMute(),this.setTimeout(()=>this.trigger(`volumechange`),50))}buffered(){return this.ytPlayer?.getVideoLoadedFraction?u.default.createTimeRange(0,this.ytPlayer.getVideoLoadedFraction()*this.ytPlayer.getDuration()):u.default.createTimeRange()}playbackRate(){return this.ytPlayer?.getPlaybackRate()??1}setPlaybackRate(e){this.ytPlayer?.setPlaybackRate(e)}currentSrc(){return this.source?.src??``}preload(){}load(){}reset(){}networkState(){if(!this.ytPlayer)return 0;switch(this.ytPlayer.getPlayerState()){case-1:return 0;case 3:return 2;default:return 1}}readyState(){if(!this.ytPlayer)return 0;switch(this.ytPlayer.getPlayerState()){case-1:return 0;case 5:return 1;case 3:return 2;default:return 4}}supportsFullScreen(){return c()}setSrc(t){t?.src&&(this.source=t,this.url=e.parseUrl(t.src),!this.options_.poster&&this.url.videoId&&(this.poster_=`https://img.youtube.com/vi/${this.url.videoId}/0.jpg`,this.setTimeout(()=>{this.trigger(`posterchange`),this.checkHighResPoster()},0)),this.options_.autoplay?this.isReady_?this.play():this.playOnReady=!0:this.activeVideoId!==this.url.videoId&&(this.isReady_?(this.cueVideoById_(this.url.videoId),this.activeVideoId=this.url.videoId):this.cueOnReady=!0))}poster(){return f?null:this.poster_}setPoster(e){this.poster_=e}autoplay(){return this.options_.autoplay}setAutoplay(e){this.options_.autoplay=e}loop(){return this.options_.loop}setLoop(e){this.options_.loop=e}checkHighResPoster(){let e=`https://img.youtube.com/vi/${this.url.videoId}/maxresdefault.jpg`,t=new Image;t.onload=()=>{(t.naturalHeight||t.height)<=90||(this.poster_=e,this.trigger(`posterchange`))},t.src=e}enterFullscreen(){if(n()&&this.ytPlayer){this._spawnIosFullscreen();return}a(this.player_.el().parentElement)}exitFullscreen(){s()}_spawnIosFullscreen(){let e=this.ytPlayer,t=e.getCurrentTime(),{video_id:n}=e.getVideoData();e.pauseVideo(),this.player_.trigger(o);let r=document.createElement(`div`);r.style.cssText=`position:fixed;inset:0;z-index:99999;opacity:0;pointer-events:none`,document.body.appendChild(r);let a=document.createElement(`div`);a.id=`yt-fs-${Date.now()}`,r.appendChild(a);let s=null,c=!1,l=()=>{if(c)return;c=!0,this.player_.trigger(i);let n=s?s.getCurrentTime():t;try{s?.destroy()}catch{}r.remove(),e.seekTo(n,!0),this.trigger(`timeupdate`)};s=new window.YT.Player(a.id,{videoId:n,playerVars:{playsinline:0,autoplay:1,controls:1,modestbranding:1,rel:0,start:Math.floor(t)},events:{onReady:e=>{this.player_.trigger(i),e.target.seekTo(t,!0),e.target.playVideo()},onStateChange:e=>{(e.data===window.YT.PlayerState.PAUSED||e.data===window.YT.PlayerState.ENDED)&&l()}}})}dispose(){clearInterval(this.startInterval),this.ytPlayer?(this.ytPlayer.stopVideo?.(),this.ytPlayer.destroy?.()):e.apiReadyQueue=e.apiReadyQueue.filter(e=>e!==this),this.ytPlayer=null,this.el_?.parentNode?.classList.remove(`vjs-youtube`,`vjs-youtube-mobile`),d.prototype.dispose.call(this)}};p.isApiReady=!1,p.apiReadyQueue=[],p.isSupported=()=>!0,p.canPlayType=e=>e===`video/youtube`?`probably`:``,p.canPlaySource=({type:e,src:t})=>e===`video/youtube`?`probably`:/youtu\.be|youtube\.com/.test(t)?`maybe`:``,p.parseUrl=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},typeof document<`u`&&l(`https://www.youtube.com/iframe_api`).then(()=>{window.YT.ready(()=>{p.isApiReady=!0,p.apiReadyQueue.forEach(e=>e.initYTPlayer()),p.apiReadyQueue=[]})}),r(`Youtube`,p);export{p as default};
@@ -23,6 +23,8 @@ interface PlayerProps {
23
23
  lazy?: boolean;
24
24
  payload?: Record<string, unknown>;
25
25
  action?: PlayerAction | null;
26
+ focusMode?: boolean;
27
+ disableTapCapture?: boolean;
26
28
  }
27
29
  //#endregion
28
30
  //#region src/element/index.d.ts
package/dist/element.mjs CHANGED
@@ -1 +1 @@
1
- import{a as e,t}from"./chunks/video.cjs-gZWrkL0e.mjs";import{i as n,n as r}from"./chunks/tech-hIKMwrTq.mjs";import{a as i,c as a,i as o,n as s,o as c,r as l,s as u,t as d}from"./chunks/constants-DZGeSme4.mjs";import{Fragment as f,Transition as p,computed as m,createBlock as h,createCommentVNode as g,createElementBlock as _,createElementVNode as v,createStaticVNode as y,createVNode as b,defineComponent as x,defineCustomElement as S,inject as C,mergeProps as w,nextTick as T,normalizeClass as E,normalizeProps as D,normalizeStyle as O,onBeforeUnmount as k,onMounted as A,openBlock as j,provide as M,reactive as N,ref as P,toDisplayString as F,toRef as I,unref as L,watch as R,withCtx as z,withModifiers as B}from"vue";import ee from"video.js/dist/video-js.css?inline";var te=e(t(),1);const V={},ne=[{test:e=>/youtu\.be|youtube\.com/.test(e),key:`youtube`,tech:`Youtube`,type:`video/youtube`,load:()=>import(`./chunks/youtube-VA8teDMJ.mjs`)},{test:e=>/vimeo\.com|player\.vimeo\.com/.test(e),key:`vimeo`,tech:`Vimeo`,type:`video/vimeo`,load:()=>import(`./chunks/vimeo-D1LvZaNd.mjs`)},{test:e=>/dailymotion\.com|dai\.ly/.test(e),key:`dailymotion`,tech:`Dailymotion`,type:`video/dailymotion`,load:()=>import(`./chunks/dailymotion-BhvOCSDo.mjs`)},{test:e=>/cdn\.jwplayer\.com/.test(e)||e.startsWith(`jwplayer://`),key:`jwplayer`,tech:null,type:`video/jwplayer`,load:()=>import(`./chunks/jwplayer-eDjA1f7V.mjs`)},{test:e=>e.startsWith(`brightcove://`),key:`brightcove`,tech:null,type:`video/brightcove`,load:()=>import(`./chunks/brightcove-mjKXQYMp.mjs`)}];async function re(e){let t=ne.find(t=>t.test(e));if(!t)return{tech:null,type:null,adTagUrl:null};V[t.key]||(V[t.key]=t.load());let n=null,{prefetchConfig:r}=await V[t.key];return r&&(n=(await r(e).catch(()=>null))?.adTagUrl??null),{tech:t.tech,type:t.type,adTagUrl:n}}const H=new Set([`Youtube`,`Vimeo`,`Dailymotion`]);function ie(e){return!H.has(e)}function U(){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)})}async function ae(t,n){return!n||!ie(t)?!1:(await U(),await import(`./chunks/videojs.ads-jA_s2l9Y.mjs`).then(t=>e(t.default,1)),await import(`./chunks/videojs.ima-Ccon1y6f.mjs`).then(t=>e(t.default,1)),!0)}function oe(e,t,n={}){e.ima({adTagUrl:t,showControlsForJSAds:!1,...n})}const W=new Set;function se(e){return W.add(e),()=>W.delete(e)}function ce(e){W.forEach(t=>{if(t!==e)try{t()}catch{}})}function G(){try{return JSON.parse(localStorage.getItem(`player:positions`)??`[]`)}catch{return[]}}function K(e){localStorage.setItem(d,JSON.stringify(e))}function q(e,t){if(t<5)return;let n=G().filter(t=>t.url!==e);n.unshift({url:e,time:t}),K(n.slice(0,5))}function le(e){return G().find(t=>t.url===e)?.time??null}function ue(e){K(G().filter(t=>t.url!==e))}function de(e,t,n){let a=null,c=!1,u=null,d=null,f=null,p=new Set,h=[[.25,`firstQuartile`],[.5,`midpoint`],[.75,`thirdQuartile`]],g=P(!1),_=P(!1),v=P(!1),y=P(!1),b=P(0),x=P(0),S=P(0),C=P(1),w=P(t.muted??t.autoplay??!1),T=P(!1),E=P(t.playbackRate??1),D=P(!1),O=P(!1),j=P(!1),M=P(``),N=P(!1),F=P(!1),I=P(!1),L=m(()=>x.value?b.value/x.value*100:0),z=m(()=>Math.max(S.value,L.value)),B=()=>a.tech({IWillNotUseThisInPlugins:!0});function ee(){let e=B();if(typeof e?.enterFullscreen==`function`){e.enterFullscreen();return}let t=e?.el();if(typeof t?.webkitEnterFullscreen==`function`){t.webkitEnterFullscreen();return}a.requestFullscreen()}function V(){let e=B();typeof e?.exitFullscreen==`function`?e.exitFullscreen():a.exitFullscreen()}function ne(){a&&(F.value?V():ee())}function H(){let e=document;F.value=!!(document.fullscreenElement||e.webkitFullscreenElement)}function U(e,r={}){n(`state-change`,{type:e,currentTime:b.value,duration:x.value,src:t.videoUrl,...r,payload:t.payload})}function W(){if(!x.value)return;let e=b.value/x.value;for(let[t,n]of h)!p.has(t)&&e>=t&&(p.add(t),U(n))}function G(){!a||!f||(j.value=!1,M.value=``,a.src(f))}function K(){!a||!_.value||(a.paused()?a.play():a.pause())}function de(e){a?.currentTime(x.value*(e/100))}function fe(){a?.muted(!a.muted())}function J(e){a&&(a.volume(e),a.muted(e===0))}function Y(){T.value=!T.value}function X(e){a&&(a.playbackRate(e),E.value=e)}function Z(){a.ready(()=>{_.value=!0,D.value=!!B()?.featuresPlaybackRate});let e=()=>{let e=a.duration();e>0&&isFinite(e)&&(x.value=e)};a.on([`adstart`,l],()=>{ce(Q),v.value=!0,U(`adstart`)}),a.on([`adend`,s],()=>{v.value=!1,U(`adend`)}),a.on(`play`,()=>{if(ce(Q),O.value=!0,g.value=!0,!c){let e=le(t.videoUrl);e&&a.currentTime(e),c=!0}U(`play`)}),a.on(`pause`,()=>{g.value=!1,q(t.videoUrl,a.currentTime()),U(`pause`)}),a.on(`ended`,()=>{g.value=!1,p.clear(),T.value?(a.currentTime(0),a.play()):(ue(t.videoUrl),U(`ended`))}),a.on(`seeked`,()=>{U(`seeked`)}),a.on(`error`,()=>{let e=a.error();M.value=e?.message||`This video could not be played.`,j.value=!0,_.value=!0,U(`error`,{error:e})}),a.on(`waiting`,()=>{y.value=!0}),a.on(`playing`,()=>{y.value=!1}),a.on(`canplay`,()=>{y.value=!1}),a.on(`timeupdate`,()=>{b.value=a.currentTime(),x.value||e(),W()}),a.on(`durationchange`,e),a.on(`progress`,()=>{let e=a.duration();S.value=e?a.bufferedEnd()/e*100:0}),a.on(`volumechange`,()=>{let e=a.muted();C.value=a.volume(),w.value=e,O.value&&U(`volumechange`,{isMuted:e})}),a.on(`ratechange`,()=>{let e=a.playbackRate();E.value=e,O.value&&U(`ratechange`,{playbackRate:e})}),a.on(`fullscreenchange`,()=>{F.value=a.isFullscreen()}),a.on(o,()=>{I.value=!0}),a.on(i,()=>{I.value=!1})}function Q(){a?.pause()}R(()=>t.muted,e=>{!a||e===void 0||a.muted(e)}),R(()=>t.playbackRate,e=>{!a||e===void 0||a.playbackRate(e)}),A(async()=>{document.addEventListener(`fullscreenchange`,H),document.addEventListener(`webkitfullscreenchange`,H),document.addEventListener(`visibilitychange`,pe);let{tech:n,type:r,adTagUrl:i}=await re(t.videoUrl),o=n?[n,`Html5`]:[`Html5`],s=t.adTagUrl||i||``,c=await ae(n??`Html5`,s);if(!e.value)return;let l={src:t.videoUrl,...r&&{type:r}};f=l,N.value=!!(t.nativeUi&&!ie(n??``)),a=(0,te.default)(e.value,{techOrder:o,controls:!1,fluid:!0,aspectRatio:t.aspectRatio??`16:9`,poster:t.poster||``,playsinline:!0,autoplay:t.autoplay,muted:t.muted??t.autoplay,playbackRate:E.value,adTagUrl:s,youtube:{nativeUi:N.value},vimeo:{nativeUi:N.value},dailymotion:{nativeUi:N.value},...!c&&{sources:[l]},...t.techOptions}),c&&(oe(a,s,t.imaOptions??{}),a.src(l)),u=se(Q),Z(),d=new IntersectionObserver(([e])=>{!e.isIntersecting&&a&&!a.paused()&&!F.value&&a.pause()},{threshold:.1}),e.value&&d.observe(e.value)});function pe(){document.visibilityState===`hidden`&&a&&q(t.videoUrl,a.currentTime())}return k(()=>{a&&q(t.videoUrl,a.currentTime()),u?.(),d?.disconnect(),document.removeEventListener(`visibilitychange`,pe),document.removeEventListener(`fullscreenchange`,H),document.removeEventListener(`webkitfullscreenchange`,H),a?.dispose(),a=null}),{isPlaying:g,isReady:_,isAdPlaying:v,isBuffering:y,current:b,total:x,vol:C,isMuted:w,isLooping:T,playbackRate:E,hasStarted:O,isError:j,errorMessage:M,progress:L,bufferedDisplay:z,isFullscreen:F,isFullscreenPending:I,fmt:r,retry:G,togglePlay:K,seek:de,toggleMute:fe,setVolume:J,toggleFullscreen:ne,toggleLoop:Y,setPlaybackRate:X,supportsPlaybackRate:D,nativeUi:N}}function fe(e){let t=P(!0),n=P(!1),r=null;function i(e=3500){clearTimeout(r??void 0),r=setTimeout(()=>{t.value=!1,n.value=!1},e)}function a(){clearTimeout(r??void 0)}function o(){n.value=!0,t.value=!0,i()}function s(){n.value=!1,e.value&&i()}function c(){e.value&&i()}function l(){t.value=!0,e.value&&i()}function u(){t.value=!0,i()}function d(){e.value&&i(600)}return R(e,e=>{e?i():(clearTimeout(r??void 0),t.value=!0)}),k(()=>clearTimeout(r??void 0)),{showHUD:t,isOpen:n,scheduleHide:i,pauseHide:a,onVideoTap:l,onMouseMove:u,onMouseLeave:d,openControls:o,closeControls:s,keepOpen:c}}const J=Symbol(`player`),Y=Symbol(`hud`),X=Symbol(`action`);var Z=(e,t)=>{let n=e.__vccOpts||e;for(let[e,r]of t)n[e]=r;return n};const Q={},pe={viewBox:`0 0 24 24`,fill:`currentColor`};function me(e,t){return j(),_(`svg`,pe,[...t[0]||=[v(`path`,{d:`M8 5v14l11-7z`},null,-1)]])}var he=Z(Q,[[`render`,me]]);const ge={},_e={viewBox:`0 0 24 24`,fill:`currentColor`};function ve(e,t){return j(),_(`svg`,_e,[...t[0]||=[v(`path`,{d:`M6 19h4V5H6v14zm8-14v14h4V5h-4z`},null,-1)]])}var ye=Z(ge,[[`render`,ve]]);const be=[`aria-label`];var $=Z(x({__name:`PlayPauseButton`,props:{isPlaying:{type:Boolean,required:!0},size:{type:String,default:`sm`}},emits:[`toggle-play`],setup(e){return(t,n)=>(j(),_(`button`,{class:E([`ppbtn`,`ppbtn--${e.size}`]),"aria-label":e.isPlaying?`Pause`:`Play`,onClick:n[0]||=B(e=>t.$emit(`toggle-play`),[`stop`])},[e.isPlaying?(j(),h(ye,{key:0})):(j(),h(he,{key:1}))],10,be))}}),[[`__scopeId`,`data-v-85902525`]]);const xe={},Se={viewBox:`0 0 24 24`,fill:`currentColor`};function Ce(e,t){return j(),_(`svg`,Se,[...t[0]||=[v(`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 we=Z(xe,[[`render`,Ce]]);const Te={},Ee={viewBox:`0 0 24 24`,fill:`currentColor`};function De(e,t){return j(),_(`svg`,Ee,[...t[0]||=[v(`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 Oe=Z(Te,[[`render`,De]]);const ke={},Ae={viewBox:`0 0 24 24`,fill:`currentColor`};function je(e,t){return j(),_(`svg`,Ae,[...t[0]||=[v(`path`,{d:`M7 7h10v3l4-4-4-4v3H5v6h2V7zm10 10H7v-3l-4 4 4 4v-3h12v-6h-2v4z`},null,-1)]])}var Me=Z(ke,[[`render`,je]]);const Ne={},Pe={viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`2`,"stroke-linecap":`round`,"stroke-linejoin":`round`};function Fe(e,t){return j(),_(`svg`,Pe,[...t[0]||=[y(`<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 Ie=Z(Ne,[[`render`,Fe]]);const Le={class:`hud`},Re=[`aria-label`],ze=[`aria-label`],Be=[`aria-label`,`innerHTML`];var Ve=Z(x({__name:`HudButtons`,setup(e){let t=C(J),n=C(Y),r=C(X),i=m(()=>r?.value??null),a=m(()=>!!i.value&&typeof i.value==`object`),o=m(()=>a.value?i.value:null),s=m(()=>i.value===`mute`?t.isMuted?`Unmute`:`Mute`:i.value===`loop`?t.isLooping?`Disable loop`:`Loop`:``);function c(){i.value===`mute`?t.toggleMute():i.value===`loop`&&t.toggleLoop()}return(e,r)=>(j(),_(`div`,Le,[g(` Built-in: mute `),i.value===`mute`?(j(),_(`button`,{key:0,class:E([`hud__btn`,{"hud__btn--active":L(t).isMuted}]),"aria-label":s.value,onClick:B(c,[`stop`])},[!L(t).isMuted&&L(t).vol>0?(j(),h(we,{key:0})):(j(),h(Oe,{key:1}))],10,Re)):i.value===`loop`?(j(),_(f,{key:1},[g(` Built-in: loop `),v(`button`,{class:E([`hud__btn`,{"hud__btn--active":L(t).isLooping}]),"aria-label":s.value,onClick:B(c,[`stop`])},[b(Me)],10,ze)],2112)):a.value&&o.value?(j(),_(f,{key:2},[g(` Custom action `),v(`button`,{class:`hud__btn`,"aria-label":o.value.label,onClick:r[0]||=B(e=>o.value.onClick(),[`stop`]),innerHTML:o.value.icon},null,8,Be)],2112)):(j(),_(f,{key:3},[g(` No action — spacer keeps layout balanced `),r[2]||=v(`div`,{class:`hud__spacer`},null,-1)],2112)),b($,{"is-playing":L(t).isPlaying,size:`lg`,onTogglePlay:L(t).togglePlay},null,8,[`is-playing`,`onTogglePlay`]),v(`button`,{class:`hud__btn`,"aria-label":`Show controls`,onClick:r[1]||=B((...e)=>L(n).openControls&&L(n).openControls(...e),[`stop`])},[b(Ie)])]))}}),[[`__scopeId`,`data-v-a6d118e7`]]);const He={},Ue={viewBox:`0 0 24 24`,fill:`currentColor`};function We(e,t){return j(),_(`svg`,Ue,[...t[0]||=[v(`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 Ge=Z(He,[[`render`,We]]);const Ke={},qe={viewBox:`0 0 24 24`,fill:`currentColor`};function Je(e,t){return j(),_(`svg`,qe,[...t[0]||=[v(`path`,{d:`M20 11H7.83l5.59-5.59L12 4l-8 8 8 8 1.41-1.41L7.83 13H20v-2z`},null,-1)]])}var Ye=Z(Ke,[[`render`,Je]]);const Xe={},Ze={viewBox:`0 0 24 24`,fill:`currentColor`};function Qe(e,t){return j(),_(`svg`,Ze,[...t[0]||=[v(`path`,{d:`M7 14H5v5h5v-2H7v-3zm-2-4h2V7h3V5H5v5zm12 7h-3v2h5v-5h-2v3zM14 5v2h3v3h2V5h-5z`},null,-1)]])}var $e=Z(Xe,[[`render`,Qe]]);const et={},tt={viewBox:`0 0 24 24`,fill:`currentColor`};function nt(e,t){return j(),_(`svg`,tt,[...t[0]||=[v(`path`,{d:`M5 16h3v3h2v-5H5v2zm3-8H5v2h5V5H8v3zm6 11h2v-3h3v-2h-5v5zm2-11V5h-2v5h5V8h-3z`},null,-1)]])}var rt=Z(et,[[`render`,nt]]);const it={class:`controls__vol-header`},at=[`aria-label`],ot={class:`controls__vol-body`},st=[`value`],ct={class:`controls__vol-pct`},lt=[`value`],ut={class:`controls__row`},dt={class:`controls__play-wrap`},ft={key:0,class:`controls__buf-spinner`},pt={class:`controls__time`},mt={key:2,class:`controls__fs-wrap`},ht={key:0,class:`controls__fs-spinner`},gt=[`aria-label`];var _t=Z(x({__name:`ControlsPopup`,setup(e){let t=C(J),n=C(Y),r=C(`compact`),i=P(!1),a=P(null);k(()=>{i.value=!1});function o(e){if(!document.startViewTransition||!a.value){e();return}a.value.style.viewTransitionName=`controls-popup`,document.startViewTransition(async()=>{e(),await T()}).finished.finally(()=>{a.value&&(a.value.style.viewTransitionName=``)})}let s=m(()=>t.isMuted?0:Math.round(t.vol*100)),c=null;function l(){c=setTimeout(()=>{c=null,o(()=>{i.value=!0})},350)}function u(){c&&(clearTimeout(c),c=null,t.toggleMute())}function d(){clearTimeout(c),c=null}function p(e){t.seek(Number(e.target.value))}function y(e){t.setVolume(Number(e.target.value)/100)}let x=[.5,.75,1,1.25,1.5,2];function S(){let e=x[(x.indexOf(t.playbackRate)+1)%x.length];t.setPlaybackRate(e)}function w(e){return e===1?`1×`:`${e}×`}return(e,c)=>(j(),_(`div`,{ref_key:`popupEl`,ref:a,class:E([`controls`,{"controls--fs":L(t).isFullscreen}]),onMousemove:c[14]||=B((...e)=>L(n).keepOpen&&L(n).keepOpen(...e),[`stop`])},[i.value?(j(),_(f,{key:0},[v(`div`,it,[v(`button`,{class:`controls__btn`,"aria-label":`Back`,onClick:c[0]||=e=>o(()=>i.value=!1)},[b(Ye)]),c[15]||=v(`span`,{class:`controls__vol-label`},`Volume`,-1),v(`button`,{class:`controls__btn`,"aria-label":L(t).isMuted?`Unmute`:`Mute`,onClick:c[1]||=e=>L(t).toggleMute()},[!L(t).isMuted&&L(t).vol>0?(j(),h(we,{key:0})):(j(),h(Oe,{key:1}))],8,at)]),v(`div`,ot,[v(`input`,{type:`range`,min:`0`,max:`100`,step:`1`,value:s.value,class:`controls__vol-slider`,style:O({"--v":s.value+`%`}),"aria-label":`Volume`,onInput:y,onMousedown:c[2]||=e=>L(n).pauseHide(),onMouseup:c[3]||=e=>L(n).scheduleHide(),onTouchstartPassive:c[4]||=e=>L(n).pauseHide(),onTouchend:c[5]||=e=>L(n).scheduleHide()},null,44,st),v(`span`,ct,F(s.value)+`%`,1)])],64)):(j(),_(f,{key:1},[L(r)?g(`v-if`,!0):(j(),_(`input`,{key:0,type:`range`,min:`0`,max:`100`,value:L(t).progress,class:`controls__seek`,style:O({"--p":L(t).progress+`%`,"--b":L(t).bufferedDisplay+`%`}),onInput:p,onMousedown:c[6]||=e=>L(n).pauseHide(),onMouseup:c[7]||=e=>L(n).scheduleHide(),onTouchstartPassive:c[8]||=e=>L(n).pauseHide(),onTouchend:c[9]||=e=>L(n).scheduleHide()},null,44,lt)),v(`div`,ut,[v(`div`,dt,[L(t).isBuffering?(j(),_(`div`,ft)):(j(),h($,{key:1,"is-playing":L(t).isPlaying,size:`sm`,onTogglePlay:c[10]||=e=>L(t).togglePlay()},null,8,[`is-playing`]))]),v(`span`,pt,F(L(t).fmt(L(t).current))+` / `+F(L(t).fmt(L(t).total)),1),!L(r)&&L(t).supportsPlaybackRate?(j(),_(`button`,{key:0,class:E([`controls__btn controls__btn--rate`,{"controls__btn--active":L(t).playbackRate!==1}]),"aria-label":`Playback rate`,onClick:S},F(w(L(t).playbackRate)),3)):g(`v-if`,!0),L(r)?g(`v-if`,!0):(j(),_(`button`,{key:1,class:E([`controls__btn`,{"controls__btn--active":L(t).isLooping}]),"aria-label":`Toggle loop`,onClick:c[11]||=e=>L(t).toggleLoop()},[b(Me)],2)),v(`button`,{class:`controls__btn`,"aria-label":`Volume`,onMousedown:l,onMouseup:u,onMouseleave:d,onTouchstartPassive:l,onTouchend:B(u,[`prevent`]),onTouchcancel:d},[!L(t).isMuted&&L(t).vol>0?(j(),h(we,{key:0})):(j(),h(Oe,{key:1}))],32),L(r)?g(`v-if`,!0):(j(),_(`div`,mt,[L(t).isFullscreenPending?(j(),_(`div`,ht)):(j(),_(`button`,{key:1,class:`controls__btn`,"aria-label":L(t).isFullscreen?`Exit fullscreen`:`Fullscreen`,onClick:c[12]||=e=>L(t).toggleFullscreen()},[L(t).isFullscreen?(j(),h(rt,{key:0})):(j(),h($e,{key:1}))],8,gt))])),v(`button`,{class:`controls__btn controls__btn--close`,"aria-label":`Close`,onClick:c[13]||=e=>L(n).closeControls()},[b(Ge)])])],64))],34))}}),[[`__scopeId`,`data-v-5712aad4`]]);const vt={key:0,class:`overlay__spinner`},yt={key:0,class:`overlay__error`};var bt=Z(x({__name:`PlayerOverlay`,setup(e){let t=C(J),n=C(Y);return(e,r)=>(j(),_(f,null,[g(` Inactive until content has started so platform ad UIs (skip buttons etc.) remain reachable `),v(`div`,{class:`overlay__tap-capture`,style:O({pointerEvents:!L(t).hasStarted||L(t).isAdPlaying?`none`:void 0}),onClick:r[0]||=(...e)=>L(n).onVideoTap&&L(n).onVideoTap(...e),onTouchend:r[1]||=B((...e)=>L(n).onVideoTap&&L(n).onVideoTap(...e),[`prevent`,`stop`])},null,36),b(p,{name:`fade`},{default:z(()=>[!L(t).isReady&&!L(t).isError?(j(),_(`div`,vt,[...r[4]||=[v(`div`,{class:`overlay__spinner-ring`},null,-1)]])):g(`v-if`,!0)]),_:1}),b(p,{name:`fade`},{default:z(()=>[L(t).isError?(j(),_(`div`,yt,[v(`p`,null,F(L(t).errorMessage||`This video could not be played.`),1),v(`button`,{class:`overlay__retry`,onClick:r[2]||=B((...e)=>L(t).retry&&L(t).retry(...e),[`stop`])},`Retry`)])):g(`v-if`,!0)]),_:1}),g(` Hidden in fullscreen while the controls popup is open `),v(`div`,{class:E([`overlay__hud`,{"overlay__hud--visible":L(n).showHUD&&L(t).isReady&&!L(t).isError&&!(L(n).isOpen&&L(t).isFullscreen)}])},[b(Ve)],2),b(p,{name:`popup`},{default:z(()=>[L(n).isOpen&&L(t).isReady&&!L(t).isError?(j(),_(`div`,{key:0,class:E([`overlay__popup`,{"overlay__popup--fs":L(t).isFullscreen}]),onClick:r[3]||=B(()=>{},[`stop`])},[b(_t)],2)):g(`v-if`,!0)]),_:1})],64))}}),[[`__scopeId`,`data-v-f3307b98`]]);const xt={class:`player`},St={"data-vjs-player":``},Ct={key:1,class:`player__native-play`};var wt=Z(x({__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:`16:9`},platform:{type:String,required:!1,default:``},techOptions:{type:Object,required:!1,default:()=>({})},adTagUrl:{type:String,required:!1,default:``},imaOptions:{type:Object,required:!1},autoplay:{type:Boolean,required:!1,default:!1},muted:{type:Boolean,required:!1},playbackRate:{type:Number,required:!1},nativeUi:{type:Boolean,required:!1,default:!1},autoStage:{type:Boolean,required:!1,default:!1},lazy:{type:Boolean,required:!1,default:!1},payload:{type:Object,required:!1,default:()=>({})},action:{type:[String,Object,null],required:!1,default:null}},emits:[`state-change`],setup(e,{expose:t,emit:r}){let i=e,a=r,o=P(null),s=N(de(o,i,a)),c=N(fe(I(s,`isPlaying`)));M(J,s),M(Y,c),M(X,I(i,`action`));let{isPortrait:l,cssRatio:u}=n(i.aspectRatio);return t(s),(e,t)=>(j(),_(`div`,xt,[v(`div`,{class:E([`player__shell`,{"player__shell--portrait":L(l)}]),style:O({aspectRatio:L(u)}),onMousemove:t[0]||=e=>c.onMouseMove(),onContextmenuCapture:t[1]||=B(()=>{},[`prevent`]),onMouseleave:t[2]||=e=>c.onMouseLeave()},[v(`div`,St,[v(`video`,{ref_key:`videoEl`,ref:o,class:`video-js`,playsinline:``},null,512),s.nativeUi?g(`v-if`,!0):(j(),h(bt,{key:0})),s.nativeUi&&!s.hasStarted?(j(),_(`div`,Ct,[b($,{"is-playing":!1,size:`lg`,onTogglePlay:s.togglePlay},null,8,[`onTogglePlay`])])):g(`v-if`,!0)])],38)]))}}),[[`__scopeId`,`data-v-4ab3cf75`]]);const Tt=P(0),Et=m(()=>Tt.value>0);function Dt(){Tt.value++}function Ot(){Tt.value--}const kt=[`src`],At={class:`stage__idle-body`},jt={class:`stage__idle-btn`},Mt={class:`stage__idle-title`},Nt={key:1,class:`stage__idle-empty`};var Pt=Z(x({__name:`VideoStage`,emits:[`state-change`],setup(e,{emit:t}){let n=t,r=P(null),i=P(null),o=P(!1),s=P(!1),l=P(null),d=P(null),p=P(!1),m=P(null);M(`compact`,p);let y=null;R(p,e=>{m.value=e&&d.value?d.value.offsetHeight:null});function x(){y?.disconnect(),l.value&&(y=new IntersectionObserver(([e])=>{p.value=!e.isIntersecting},{threshold:1}),y.observe(l.value))}R(l,x);function S(){i.value&&(i.value={...i.value,autoplay:!0},o.value=!0)}function C(){i.value=null,o.value=!1,s.value=!1,p.value=!1,m.value=null,T()}function T(){window.dispatchEvent(new CustomEvent(u,{detail:{currentVideoUrl:i.value?.videoUrl??null,isPlaying:s.value}}))}function D(e){let t=e.detail;if(i.value?.videoUrl===t.videoUrl&&o.value){r.value?.togglePlay();return}i.value=t,o.value=!1,s.value=!1,T(),o.value=!0}function N(e){let t=e.detail;!i.value||t.videoUrl!==i.value.videoUrl||(o.value?r.value?.togglePlay():(i.value={...i.value,autoplay:!0},o.value=!0))}function I(e){e.type===`play`&&(s.value=!0),(e.type===`pause`||e.type===`ended`)&&(s.value=!1),T(),n(`state-change`,e)}return A(()=>{Dt(),window.addEventListener(c,D),window.addEventListener(a,N)}),k(()=>{Ot(),window.removeEventListener(c,D),window.removeEventListener(a,N),y?.disconnect()}),(e,t)=>(j(),_(`div`,{ref_key:`wrapperEl`,ref:l,class:`stage-wrapper`,style:O(m.value?{height:m.value+`px`}:{})},[v(`div`,{ref_key:`stageEl`,ref:d,class:E([`stage`,{"stage--minified":p.value&&i.value&&o.value}])},[p.value&&i.value&&o.value?(j(),_(`button`,{key:0,class:`stage__dismiss`,"aria-label":`Close`,onClick:B(C,[`stop`])},[b(Ge)])):g(`v-if`,!0),i.value&&o.value?(j(),h(wt,w({ref_key:`playerRef`,ref:r,key:i.value.videoUrl},i.value,{onStateChange:I}),null,16)):(j(),_(`div`,{key:2,class:`stage__idle`,style:O({aspectRatio:i.value?.aspectRatio||`16:9`}),onClick:S},[i.value?.poster?(j(),_(`img`,{key:0,src:i.value.poster,class:`stage__idle-poster`},null,8,kt)):g(`v-if`,!0),t[0]||=v(`div`,{class:`stage__idle-scrim`},null,-1),v(`div`,At,[i.value?(j(),_(f,{key:0},[v(`div`,jt,[b(he)]),v(`p`,Mt,F(i.value.title),1)],64)):(j(),_(`p`,Nt,`Select a video to play`))])],4))],2)],4))}}),[[`__scopeId`,`data-v-fb8c86cf`]]);const Ft={class:`placeholder`},It=[`src`,`alt`],Lt={class:`placeholder__btn-wrap`},Rt={key:2,class:`placeholder__footer`},zt={class:`placeholder__title`};var Bt=Z(x({__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:`16:9`},platform:{type:String,required:!1,default:``},techOptions:{type:Object,required:!1,default:()=>({})},adTagUrl:{type:String,required:!1,default:``},imaOptions:{type:Object,required:!1},autoplay:{type:Boolean,required:!1,default:!1},muted:{type:Boolean,required:!1},playbackRate:{type:Number,required:!1},nativeUi:{type:Boolean,required:!1,default:!1},autoStage:{type:Boolean,required:!1,default:!1},lazy:{type:Boolean,required:!1},payload:{type:Object,required:!1,default:()=>({})},action:{type:[String,Object,null],required:!1,default:null}},setup(e){let t=e,{isPortrait:r,cssRatio:i}=n(t.aspectRatio),a=P(!1),o=P(!1);function s(e){let n=e.detail;a.value=n.currentVideoUrl===t.videoUrl,o.value=a.value&&n.isPlaying}function l(e){window.dispatchEvent(new CustomEvent(c,{detail:{...t,...e!==void 0&&{autoplay:e}}}))}function d(){l(!0)}return A(()=>{window.addEventListener(u,s),t.autoStage&&l()}),k(()=>window.removeEventListener(u,s)),(t,n)=>(j(),_(`div`,Ft,[v(`div`,{class:E([`placeholder__shell`,{"placeholder__shell--portrait":L(r),"placeholder__shell--active":a.value}]),style:O({aspectRatio:L(i)}),onClick:d},[e.poster?(j(),_(`img`,{key:0,class:`placeholder__poster`,src:e.poster,alt:e.title},null,8,It)):g(`v-if`,!0),n[0]||=v(`div`,{class:`placeholder__scrim`},null,-1),e.platform?(j(),_(`span`,{key:1,class:E([`placeholder__badge`,`badge--${e.platform}`])},F(e.platform),3)):g(`v-if`,!0),v(`div`,Lt,[b($,{"is-playing":a.value&&o.value,size:`lg`,onTogglePlay:d},null,8,[`is-playing`])]),e.title?(j(),_(`div`,Rt,[v(`p`,zt,F(e.title),1)])):g(`v-if`,!0)],6)]))}}),[[`__scopeId`,`data-v-dbcb4f82`]]),Vt=x({__name:`VideoItem`,props:{videoUrl:{type:String,required:!0},title:{type:String,required:!1},poster:{type:String,required:!1},aspectRatio:{type:String,required:!1},platform:{type:String,required:!1},techOptions:{type:Object,required:!1},adTagUrl:{type:String,required:!1},imaOptions:{type:Object,required:!1},autoplay:{type:Boolean,required:!1},muted:{type:Boolean,required:!1},playbackRate:{type:Number,required:!1},nativeUi:{type:Boolean,required:!1},autoStage:{type:Boolean,required:!1},lazy:{type:Boolean,required:!1,default:!0},payload:{type:Object,required:!1},action:{type:[String,Object,null],required:!1,default:null}},emits:[`state-change`],setup(e,{emit:t}){let n=e,r=t,i=P(!1);return(e,t)=>L(Et)?(j(),h(Bt,D(w({key:0},e.$props)),null,16)):(j(),_(f,{key:1},[n.lazy&&!i.value&&!n.autoplay?(j(),h(Bt,w({key:0},e.$props,{onClickCapture:t[0]||=e=>i.value=!0}),null,16)):(j(),h(wt,w({key:1},n,{autoplay:i.value||n.autoplay,onStateChange:t[1]||=e=>r(`state-change`,e)}),null,16,[`autoplay`]))],64))}});const Ht=S(wt,{shadowRoot:!1,styles:[ee]}),Ut=S(Pt,{shadowRoot:!1}),Wt=S(Bt,{shadowRoot:!1}),Gt=S(Vt,{shadowRoot:!1});customElements.define(`video-player`,Ht),customElements.define(`video-stage`,Ut),customElements.define(`video-placeholder`,Wt),customElements.define(`video-item`,Gt);export{Gt as VideoItemElement,Wt as VideoPlaceholderElement,Ht as VideoPlayerElement,Ut as VideoStageElement};
1
+ import{a as e,t}from"./chunks/video.cjs-gZWrkL0e.mjs";import{_ as n,d as r,f as i,g as a,h as o,i as s,m as c,o as l,p as u,r as d,v as f}from"./chunks/tech-DQUZqNr6.mjs";import{Fragment as p,Transition as m,computed as h,createBlock as g,createCommentVNode as _,createElementBlock as v,createElementVNode as y,createStaticVNode as b,createVNode as x,defineComponent as S,defineCustomElement as C,inject as w,mergeProps as T,nextTick as E,normalizeClass as D,normalizeProps as O,normalizeStyle as k,onBeforeUnmount as A,onMounted as j,openBlock as M,provide as N,reactive as P,ref as F,toDisplayString as I,toRef as L,unref as R,watch as z,withCtx as B,withModifiers as V}from"vue";import ee from"video.js/dist/video-js.css?inline";var te=e(t(),1);const H={},ne=[{test:e=>/youtu\.be|youtube\.com/.test(e),key:`youtube`,tech:`Youtube`,type:`video/youtube`,load:()=>import(`./chunks/youtube-PyDUsbQd.mjs`)},{test:e=>/vimeo\.com|player\.vimeo\.com/.test(e),key:`vimeo`,tech:`Vimeo`,type:`video/vimeo`,load:()=>import(`./chunks/vimeo-CPN3CLZM.mjs`)},{test:e=>/dailymotion\.com|dai\.ly/.test(e),key:`dailymotion`,tech:`Dailymotion`,type:`video/dailymotion`,load:()=>import(`./chunks/dailymotion-CxgmFCdN.mjs`)},{test:e=>/cdn\.jwplayer\.com/.test(e)||e.startsWith(`jwplayer://`),key:`jwplayer`,tech:null,type:`video/jwplayer`,load:()=>import(`./chunks/jwplayer-Bk8f_cfb.mjs`)},{test:e=>e.startsWith(`brightcove://`),key:`brightcove`,tech:null,type:`video/brightcove`,load:()=>import(`./chunks/brightcove-DXok9R0m.mjs`)}];async function re(e){let t=ne.find(t=>t.test(e));if(!t)return{tech:null,type:null,adTagUrl:null};H[t.key]||(H[t.key]=t.load());let n=null,{prefetchConfig:r}=await H[t.key];return r&&(n=(await r(e).catch(()=>null))?.adTagUrl??null),{tech:t.tech,type:t.type,adTagUrl:n}}function ie(e){return!s(e)}function ae(){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)})}async function oe(t,n){return!n||!ie(t)?!1:(await ae(),await import(`./chunks/videojs.ads-jA_s2l9Y.mjs`).then(t=>e(t.default,1)),await import(`./chunks/videojs.ima-Ccon1y6f.mjs`).then(t=>e(t.default,1)),!0)}function se(e,t,n={}){e.ima({adTagUrl:t,showControlsForJSAds:!1,...n})}const U=new Set;function ce(e){return U.add(e),()=>U.delete(e)}function le(e){U.forEach(t=>{if(t!==e)try{t()}catch{}})}function ue(e,t){let n=F(!1),r=F(!1);function i(){let e=document;n.value=!!(document.fullscreenElement||e.webkitFullscreenElement)}function a(){let n=t();if(typeof n?.enterFullscreen==`function`){n.enterFullscreen();return}let r=n?.el();if(typeof r?.webkitEnterFullscreen==`function`){r.webkitEnterFullscreen();return}e()?.requestFullscreen()}function s(){let n=t();if(typeof n?.exitFullscreen==`function`){n.exitFullscreen();return}e()?.exitFullscreen()}function l(){if(e()){if(n.value){s();return}a()}}function u(e){e.on(`fullscreenchange`,()=>{n.value=e.isFullscreen()??!1}),e.on(c,()=>{r.value=!0}),e.on(o,()=>{r.value=!1})}return j(()=>{document.addEventListener(`fullscreenchange`,i),document.addEventListener(`webkitfullscreenchange`,i)}),A(()=>{document.removeEventListener(`fullscreenchange`,i),document.removeEventListener(`webkitfullscreenchange`,i)}),{isFullscreen:n,isFullscreenPending:r,toggleFullscreen:l,attachPlayerEvents:u}}function de(){let e=F(!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 A(()=>clearTimeout(t??void 0)),{isBuffering:e,attachPlayerEvents:r,reset:n}}const fe=[[.25,`firstQuartile`],[.5,`midpoint`],[.75,`thirdQuartile`]];function pe(e,t,n){let r=new Set;function i(){if(!t.value)return;let i=e.value/t.value;for(let[e,t]of fe)!r.has(e)&&i>=e&&(r.add(e),n(t))}function a(){r.clear()}return{checkQuartiles:i,reset:a}}function W(){try{return JSON.parse(localStorage.getItem(`player:positions`)??`[]`)}catch{return[]}}function me(e){localStorage.setItem(r,JSON.stringify(e))}function he(e,t){if(t<5)return;let n=W().filter(t=>t.url!==e);n.unshift({url:e,time:t}),me(n.slice(0,5))}function ge(e){return W().find(t=>t.url===e)?.time??null}function _e(e){me(W().filter(t=>t.url!==e))}function ve(e,t){let n=!1;function r(t){if(n)return;let r=ge(e);r&&t.currentTime(r),n=!0}function i(t){t&&he(e,t.currentTime()??0)}function a(){_e(e)}function o(){document.visibilityState===`hidden`&&i(t())}return j(()=>document.addEventListener(`visibilitychange`,o)),A(()=>{i(t()),document.removeEventListener(`visibilitychange`,o)}),{restoreOnce:r,save:i,clear:a}}function ye(e,t,n){let r=null;j(()=>{let i=e.value?.closest(`.player__shell`);i&&(r=new IntersectionObserver(([e])=>{let r=t();!e.isIntersecting&&r&&!r.paused()&&!n.value&&r.pause()},{threshold:.1}),r.observe(i))}),A(()=>r?.disconnect())}function be(e,t,n,r,i){function a(){let n=e();if(!(!n||!t.value)){if(n.paused()){n.play();return}n.pause()}}function o(t){e()?.currentTime(n.value*(t/100))}function s(){let t=e();t?.muted(!t.muted())}function c(t){let n=e();n&&(n.volume(t),n.muted(t===0))}function l(){r.value=!r.value}function u(t){let n=e();n&&(n.playbackRate(t),i.value=t)}return{togglePlay:a,seek:o,toggleMute:s,setVolume:c,toggleLoop:l,setPlaybackRate:u}}function xe(e,t){let{isPlaying:n,hasEnded:r,isReady:a,isAdPlaying:o,current:s,total:c,buffered:l,vol:d,isMuted:f,isLooping:p,playbackRate:m,supportsPlaybackRate:h,hasStarted:g,isError:_,errorMessage:v}=e,{getTech:y,fire:b,pauseThisPlayer:x,positionMemory:S,quartiles:C,buffering:w,fullscreen:T}=t;function E(e){e.ready(()=>{a.value=!0,h.value=!!y()?.featuresPlaybackRate});let t=()=>{let t=e.duration();t&&t>0&&isFinite(t)&&(c.value=t)};e.on([`adstart`,u],()=>{le(x),o.value=!0,b(`adstart`)}),e.on([`adend`,i],()=>{o.value=!1,b(`adend`)}),e.on(`play`,()=>{le(x),g.value=!0,n.value=!0,r.value=!1,S.restoreOnce(e),b(`play`)}),e.on(`pause`,()=>{n.value=!1,S.save(e),b(`pause`)}),e.on(`ended`,()=>{if(n.value=!1,C.reset(),w.reset(),p.value){e.currentTime(0),e.play();return}c.value&&(s.value=c.value),r.value=!0,S.clear(),b(`ended`)}),e.on(`seeked`,()=>{b(`seeked`)}),e.on(`error`,()=>{let t=e.error();v.value=t?.message||`This video could not be played.`,_.value=!0,a.value=!0,b(`error`,{error:t})}),e.on(`timeupdate`,()=>{r.value||(s.value=e.currentTime()??0,c.value||t(),C.checkQuartiles())}),e.on(`durationchange`,t),e.on(`progress`,()=>{let t=e.duration();l.value=t?e.bufferedEnd()/t*100:0}),e.on(`volumechange`,()=>{let t=e.muted();d.value=e.volume()??1,f.value=t??!1,g.value&&b(`volumechange`,{isMuted:t})}),e.on(`ratechange`,()=>{let t=e.playbackRate()??1;m.value=t,g.value&&b(`ratechange`,{playbackRate:t})}),w.attachPlayerEvents(e),T.attachPlayerEvents(e)}return{attachPlayerEvents:E}}function Se(e,t,n){let r=null,i=null,a=null,o=F(!1),s=F(!1),c=F(!1),l=F(!1),u=F(0),f=F(0),p=F(0),m=F(1),g=F(t.muted??t.autoplay??!1),_=F(!1),v=F(t.playbackRate??1),y=F(!1),b=F(!1),x=F(!1),S=F(``),C=F(!1),w=h(()=>f.value?u.value/f.value*100:0),T=h(()=>Math.max(p.value,w.value)),E=()=>r,D=()=>r?.tech({IWillNotUseThisInPlugins:!0}),O=ue(E,D),k=de(),M=ve(t.videoUrl,E);function N(e,r={}){n(`state-change`,{type:e,currentTime:u.value,duration:f.value,src:t.videoUrl,...r,payload:t.payload})}let P=pe(u,f,N);function I(){!r||!a||(x.value=!1,S.value=``,r.src(a))}function L(){r?.pause()}let R=be(E,c,f,_,v),{attachPlayerEvents:B}=xe({isPlaying:o,hasEnded:s,isReady:c,isAdPlaying:l,current:u,total:f,buffered:p,vol:m,isMuted:g,isLooping:_,playbackRate:v,supportsPlaybackRate:y,hasStarted:b,isError:x,errorMessage:S},{getTech:D,fire:N,pauseThisPlayer:L,positionMemory:M,quartiles:P,buffering:k,fullscreen:O});return z(()=>t.muted,e=>{!r||e===void 0||r.muted(e)}),z(()=>t.playbackRate,e=>{!r||e===void 0||r.playbackRate(e)}),ye(e,E,O.isFullscreen),j(async()=>{let{tech:n,type:o,adTagUrl:s}=await re(t.videoUrl),c=n?[n,`Html5`]:[`Html5`],l=t.adTagUrl||s||``,u=await oe(n??`Html5`,l);if(!e.value)return;let d={src:t.videoUrl,...o&&{type:o}};a=d,C.value=!!(t.nativeUi&&!ie(n??``)),r=(0,te.default)(e.value,{techOrder:c,controls:!1,fluid:!0,aspectRatio:t.aspectRatio??`16:9`,poster:t.poster||``,playsinline:!0,autoplay:t.autoplay,muted:t.muted??t.autoplay,playbackRate:v.value,adTagUrl:l,youtube:{nativeUi:C.value},vimeo:{nativeUi:C.value},dailymotion:{nativeUi:C.value},...!u&&{sources:[d]},...t.techOptions}),u&&(se(r,l,t.imaOptions??{}),r.src(d)),i=ce(L),B(r)}),A(()=>{i?.(),r?.dispose(),r=null}),{isPlaying:o,hasEnded:s,isReady:c,isAdPlaying:l,isBuffering:k.isBuffering,current:u,total:f,vol:m,isMuted:g,isLooping:_,playbackRate:v,hasStarted:b,isError:x,errorMessage:S,progress:w,bufferedDisplay:T,isFullscreen:O.isFullscreen,isFullscreenPending:O.isFullscreenPending,fmt:d,fire:N,retry:I,togglePlay:R.togglePlay,seek:R.seek,toggleMute:R.toggleMute,setVolume:R.setVolume,toggleFullscreen:O.toggleFullscreen,toggleLoop:R.toggleLoop,setPlaybackRate:R.setPlaybackRate,supportsPlaybackRate:y,nativeUi:C}}function Ce(e,t){let n=F(!0),r=F(!1),i=null,a=0;function o(e=400){a=Date.now()+e}function s(e=3500){clearTimeout(i??void 0),i=setTimeout(()=>{n.value=!1,t?.value||(r.value=!1)},e)}function c(){clearTimeout(i??void 0)}function l(){r.value=!0,n.value=!0,s()}function u(){r.value=!1,e.value&&s()}function d(){e.value&&s()}function f(){n.value=!0,e.value&&s()}function p(){n.value=!0,s()}function m(){Date.now()<a||e.value&&s(600)}return z(e,e=>{if(!e){clearTimeout(i??void 0),n.value=!0;return}s()}),A(()=>clearTimeout(i??void 0)),{showHUD:n,isOpen:r,scheduleHide:s,pauseHide:c,onVideoTap:f,onMouseMove:p,onMouseLeave:m,openControls:l,closeControls:u,keepOpen:d,suppressMouseLeave:o}}function we(e,t,n,r,i){let a=typeof document<`u`&&!!document.startViewTransition,o=h(()=>t.value&&a);z(()=>o.value&&!n.isFullscreen?r.isOpen:!1,t=>{let r=()=>{e.value=t,n.fire(t?`focusstart`:`focusend`)};if(!i.value||n.isFullscreen){r();return}i.value.style.viewTransitionName=`player-focus`,document.startViewTransition(async()=>{r(),await E()}).finished.finally(()=>{i.value&&(i.value.style.viewTransitionName=``)})}),z(()=>n.isFullscreen,()=>{r.isOpen&&r.closeControls()});function s(t){t.key===`Escape`&&e.value&&r.closeControls()}return j(()=>document.addEventListener(`keydown`,s)),A(()=>document.removeEventListener(`keydown`,s)),{focusModeEnabled:o}}function Te(e,t){let n=F({width:0,height:0});function r(){n.value={width:window.innerWidth,height:window.innerHeight}}return j(()=>{r(),window.addEventListener(`resize`,r)}),A(()=>window.removeEventListener(`resize`,r)),h(()=>{if(!e.value)return{};let[r,i]=t.value.split(`:`).map(Number),a=Math.min(720,n.value.width-32),o=Math.min(n.value.height*.6,n.value.height-32-140),s=a,c=s*i/r;return c>o&&(c=o,s=c*r/i),{width:`${s}px`,height:`${c}px`}})}const G=Symbol(`player`),K=Symbol(`hud`),q=Symbol(`action`);function Ee(e,t){let n=h(()=>e?.value??null),r=h(()=>!!n.value&&typeof n.value==`object`),i=h(()=>r.value?n.value:null),a=h(()=>n.value===`mute`?t.isMuted?`Unmute`:`Mute`:n.value===`loop`?t.isLooping?`Disable loop`:`Loop`:``);function o(){n.value===`mute`?t.toggleMute():n.value===`loop`&&t.toggleLoop()}return{currentAction:n,isCustom:r,customAction:i,builtinLabel:a,onBuiltinClick:o}}var J=(e,t)=>{let n=e.__vccOpts||e;for(let[e,r]of t)n[e]=r;return n};const De={},Oe={viewBox:`0 0 24 24`,fill:`currentColor`};function ke(e,t){return M(),v(`svg`,Oe,[...t[0]||=[y(`path`,{d:`M8 5v14l11-7z`},null,-1)]])}var Ae=J(De,[[`render`,ke]]);const je={},Me={viewBox:`0 0 24 24`,fill:`currentColor`};function Ne(e,t){return M(),v(`svg`,Me,[...t[0]||=[y(`path`,{d:`M6 19h4V5H6v14zm8-14v14h4V5h-4z`},null,-1)]])}var Pe=J(je,[[`render`,Ne]]);const Fe={},Ie={viewBox:`0 0 24 24`,fill:`currentColor`};function Le(e,t){return M(),v(`svg`,Ie,[...t[0]||=[y(`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 Re=J(Fe,[[`render`,Le]]);const ze=[`aria-label`];var Y=J(S({__name:`PlayPauseButton`,props:{isPlaying:{type:Boolean,required:!0},hasEnded:{type:Boolean,default:!1},size:{type:String,default:`sm`}},emits:[`toggle-play`],setup(e){let t=e,n=h(()=>t.isPlaying?`Pause`:t.hasEnded?`Replay`:`Play`);return(t,r)=>(M(),v(`button`,{class:D([`ppbtn`,`ppbtn--${e.size}`]),"aria-label":n.value,onClick:r[0]||=V(e=>t.$emit(`toggle-play`),[`stop`])},[e.isPlaying?(M(),g(Pe,{key:0})):e.hasEnded?(M(),g(Re,{key:1})):(M(),g(Ae,{key:2}))],10,ze))}}),[[`__scopeId`,`data-v-85902525`]]),X=J(S({__name:`Spinner`,props:{size:{type:Number,default:14},borderWidth:{type:Number,default:2}},setup(e){return(t,n)=>(M(),v(`div`,{class:`spinner`,style:k({width:`${e.size}px`,height:`${e.size}px`,borderWidth:`${e.borderWidth}px`})},null,4))}}),[[`__scopeId`,`data-v-259be2b2`]]);const Be={},Ve={viewBox:`0 0 24 24`,fill:`currentColor`};function He(e,t){return M(),v(`svg`,Ve,[...t[0]||=[y(`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 Z=J(Be,[[`render`,He]]);const Ue={},We={viewBox:`0 0 24 24`,fill:`currentColor`};function Ge(e,t){return M(),v(`svg`,We,[...t[0]||=[y(`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 Q=J(Ue,[[`render`,Ge]]);const Ke={},qe={viewBox:`0 0 24 24`,fill:`currentColor`};function Je(e,t){return M(),v(`svg`,qe,[...t[0]||=[y(`path`,{d:`M7 7h10v3l4-4-4-4v3H5v6h2V7zm10 10H7v-3l-4 4 4 4v-3h12v-6h-2v4z`},null,-1)]])}var Ye=J(Ke,[[`render`,Je]]);const Xe={},Ze={viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`2`,"stroke-linecap":`round`,"stroke-linejoin":`round`};function Qe(e,t){return M(),v(`svg`,Ze,[...t[0]||=[b(`<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 $e=J(Xe,[[`render`,Qe]]);const et={class:`hud`},tt=[`aria-label`],nt=[`aria-label`],rt=[`aria-label`,`innerHTML`],it={key:3,class:`hud__spacer`},at={class:`hud__play-wrap`},ot={key:5,class:`hud__spacer`};var st=J(S({__name:`HudButtons`,props:{isFocused:{type:Boolean,default:!1}},setup(e){let t=w(G),n=w(K),{currentAction:r,isCustom:i,customAction:a,builtinLabel:o,onBuiltinClick:s}=Ee(w(q),t);return(c,l)=>(M(),v(`div`,et,[!e.isFocused&&R(r)===`mute`?(M(),v(`button`,{key:0,class:D([`hud__btn`,{"hud__btn--active":R(t).isMuted}]),"aria-label":R(o),onClick:l[0]||=V((...e)=>R(s)&&R(s)(...e),[`stop`])},[!R(t).isMuted&&R(t).vol>0?(M(),g(Z,{key:0})):(M(),g(Q,{key:1}))],10,tt)):!e.isFocused&&R(r)===`loop`?(M(),v(`button`,{key:1,class:D([`hud__btn`,{"hud__btn--active":R(t).isLooping}]),"aria-label":R(o),onClick:l[1]||=V((...e)=>R(s)&&R(s)(...e),[`stop`])},[x(Ye)],10,nt)):!e.isFocused&&R(i)&&R(a)?(M(),v(`button`,{key:2,class:`hud__btn`,"aria-label":R(a).label,onClick:l[2]||=V(e=>R(a).onClick(),[`stop`]),innerHTML:R(a).icon},null,8,rt)):(M(),v(`div`,it)),y(`div`,at,[x(Y,{"is-playing":R(t).isPlaying,"has-ended":R(t).hasEnded,size:`lg`,onTogglePlay:R(t).togglePlay},null,8,[`is-playing`,`has-ended`,`onTogglePlay`]),R(t).isBuffering?(M(),g(X,{key:0,class:`hud__buf-spinner`})):_(`v-if`,!0)]),e.isFocused?(M(),v(`div`,ot)):(M(),v(`button`,{key:4,class:`hud__btn`,"aria-label":`Show controls`,onClick:l[3]||=V((...e)=>R(n).openControls&&R(n).openControls(...e),[`stop`])},[x($e)]))]))}}),[[`__scopeId`,`data-v-a6d118e7`]]);const ct={},lt={viewBox:`0 0 24 24`,fill:`currentColor`};function ut(e,t){return M(),v(`svg`,lt,[...t[0]||=[y(`path`,{d:`M20 11H7.83l5.59-5.59L12 4l-8 8 8 8 1.41-1.41L7.83 13H20v-2z`},null,-1)]])}var dt=J(ct,[[`render`,ut]]);const ft={class:`controls__vol-header`},pt=[`aria-label`],mt={class:`controls__vol-body`},ht=[`value`],gt={class:`controls__vol-pct`};var _t=J(S({__name:`VolumePanel`,emits:[`back`],setup(e){let t=w(G),n=w(K),r=h(()=>t.isMuted?0:Math.round(t.vol*100));function i(e){t.setVolume(Number(e.target.value)/100)}return(e,a)=>(M(),v(p,null,[y(`div`,ft,[y(`button`,{class:`controls__btn`,"aria-label":`Back`,onClick:a[0]||=t=>e.$emit(`back`)},[x(dt)]),a[6]||=y(`span`,{class:`controls__vol-label`},`Volume`,-1),y(`button`,{class:`controls__btn`,"aria-label":R(t).isMuted?`Unmute`:`Mute`,onClick:a[1]||=e=>R(t).toggleMute()},[!R(t).isMuted&&R(t).vol>0?(M(),g(Z,{key:0})):(M(),g(Q,{key:1}))],8,pt)]),y(`div`,mt,[y(`input`,{type:`range`,min:`0`,max:`100`,step:`1`,value:r.value,class:`controls__vol-slider`,style:k({"--v":r.value+`%`}),"aria-label":`Volume`,onInput:i,onMousedown:a[2]||=e=>R(n).pauseHide(),onMouseup:a[3]||=e=>R(n).scheduleHide(),onTouchstartPassive:a[4]||=e=>R(n).pauseHide(),onTouchend:a[5]||=e=>R(n).scheduleHide()},null,44,ht),y(`span`,gt,I(r.value)+`%`,1)])],64))}}),[[`__scopeId`,`data-v-10b0ae67`]]);const vt={},yt={viewBox:`0 0 24 24`,fill:`currentColor`};function bt(e,t){return M(),v(`svg`,yt,[...t[0]||=[y(`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 xt=J(vt,[[`render`,bt]]);const St={},Ct={viewBox:`0 0 24 24`,fill:`currentColor`};function wt(e,t){return M(),v(`svg`,Ct,[...t[0]||=[y(`path`,{d:`M7 14H5v5h5v-2H7v-3zm-2-4h2V7h3V5H5v5zm12 7h-3v2h5v-5h-2v3zM14 5v2h3v3h2V5h-5z`},null,-1)]])}var Tt=J(St,[[`render`,wt]]);const Et={},Dt={viewBox:`0 0 24 24`,fill:`currentColor`};function Ot(e,t){return M(),v(`svg`,Dt,[...t[0]||=[y(`path`,{d:`M5 16h3v3h2v-5H5v2zm3-8H5v2h5V5H8v3zm6 11h2v-3h3v-2h-5v5zm2-11V5h-2v5h5V8h-3z`},null,-1)]])}var kt=J(Et,[[`render`,Ot]]);const At=[`value`],jt={class:`controls__row`},Mt={class:`controls__play-wrap`},Nt={class:`controls__time`},Pt=[`aria-label`,`innerHTML`],Ft={key:3,class:`controls__fs-wrap`},It=[`aria-label`];var Lt=J(S({__name:`ControlsPopup`,props:{focusMode:{type:Boolean,default:!1}},setup(e){let t=e,n=w(G),r=w(K),i=w(`compact`),a=h(()=>!!i?.value&&!t.focusMode),{isCustom:o,customAction:s}=Ee(w(q),n),c=F(!1),l=F(null);A(()=>{c.value=!1});function u(e){if(!document.startViewTransition||!l.value){e();return}r.suppressMouseLeave(),l.value.style.viewTransitionName=`controls-popup`,document.startViewTransition(async()=>{e(),await E()}).finished.finally(()=>{l.value&&(l.value.style.viewTransitionName=``)})}function d(){u(()=>{c.value=!0})}let f=F(null),m=h(()=>f.value??n.progress);function b(e){f.value=Number(e.target.value)}function S(e){let t=Number(e.target.value);f.value=t,n.seek(t)}z(()=>n.current,()=>{if(f.value===null||!n.total)return;let e=f.value/100*n.total;Math.abs(n.current-e)<1&&(f.value=null)});let C=[.5,.75,1,1.25,1.5,2];function T(){let e=C[(C.indexOf(n.playbackRate)+1)%C.length];n.setPlaybackRate(e)}function O(e){return e===1?`1×`:`${e}×`}return(t,i)=>(M(),v(`div`,{ref_key:`popupEl`,ref:l,class:D([`controls`,{"controls--fs":R(n).isFullscreen||e.focusMode}]),onMousemove:i[10]||=V((...e)=>R(r).keepOpen&&R(r).keepOpen(...e),[`stop`])},[c.value?(M(),g(_t,{key:0,onBack:i[0]||=e=>u(()=>c.value=!1)})):(M(),v(p,{key:1},[a.value?_(`v-if`,!0):(M(),v(`input`,{key:0,type:`range`,min:`0`,max:`100`,value:m.value,class:`controls__seek`,style:k({"--p":m.value+`%`,"--b":R(n).bufferedDisplay+`%`}),onInput:b,onChange:S,onMousedown:i[1]||=e=>R(r).pauseHide(),onMouseup:i[2]||=e=>R(r).scheduleHide(),onTouchstartPassive:i[3]||=e=>R(r).pauseHide(),onTouchend:i[4]||=e=>R(r).scheduleHide()},null,44,At)),y(`div`,jt,[y(`div`,Mt,[R(n).isBuffering?(M(),g(X,{key:0})):(M(),g(Y,{key:1,"is-playing":R(n).isPlaying,"has-ended":R(n).hasEnded,size:`sm`,onTogglePlay:i[5]||=e=>R(n).togglePlay()},null,8,[`is-playing`,`has-ended`]))]),y(`span`,Nt,I(R(n).fmt(R(n).current))+` / `+I(R(n).fmt(R(n).total)),1),!a.value&&R(n).supportsPlaybackRate?(M(),v(`button`,{key:0,class:D([`controls__btn controls__btn--rate`,{"controls__btn--active":R(n).playbackRate!==1}]),"aria-label":`Playback rate`,onClick:T},I(O(R(n).playbackRate)),3)):_(`v-if`,!0),a.value?_(`v-if`,!0):(M(),v(`button`,{key:1,class:D([`controls__btn`,{"controls__btn--active":R(n).isLooping}]),"aria-label":`Toggle loop`,onClick:i[6]||=e=>R(n).toggleLoop()},[x(Ye)],2)),y(`button`,{class:`controls__btn`,"aria-label":`Volume`,onClick:d},[!R(n).isMuted&&R(n).vol>0?(M(),g(Z,{key:0})):(M(),g(Q,{key:1}))]),R(o)&&R(s)?(M(),v(`button`,{key:2,class:`controls__btn`,"aria-label":R(s).label,onClick:i[7]||=e=>R(s).onClick(),innerHTML:R(s).icon},null,8,Pt)):_(`v-if`,!0),a.value?_(`v-if`,!0):(M(),v(`div`,Ft,[R(n).isFullscreenPending?(M(),g(X,{key:0})):(M(),v(`button`,{key:1,class:`controls__btn`,"aria-label":R(n).isFullscreen?`Exit fullscreen`:`Fullscreen`,onClick:i[8]||=e=>R(n).toggleFullscreen()},[R(n).isFullscreen?(M(),g(kt,{key:0})):(M(),g(Tt,{key:1}))],8,It))])),y(`button`,{class:`controls__btn controls__btn--close`,"aria-label":`Close`,onClick:i[9]||=e=>R(r).closeControls()},[x(xt)])])],64))],34))}}),[[`__scopeId`,`data-v-5712aad4`]]);const Rt={key:0,class:`overlay__spinner`},zt={key:0,class:`overlay__error`};var Bt=J(S({__name:`PlayerOverlay`,props:{focusMode:{type:Boolean,default:!1},isFocused:{type:Boolean,default:!1},disableTapCapture:{type:Boolean,default:!1}},setup(e){let t=w(G),n=w(K);return(r,i)=>(M(),v(p,null,[e.disableTapCapture?_(`v-if`,!0):(M(),v(`div`,{key:0,class:`overlay__tap-capture`,style:k({pointerEvents:!R(t).hasStarted||R(t).isAdPlaying?`none`:void 0}),onClick:i[0]||=(...e)=>R(n).onVideoTap&&R(n).onVideoTap(...e),onTouchend:i[1]||=V((...e)=>R(n).onVideoTap&&R(n).onVideoTap(...e),[`prevent`,`stop`])},null,36)),x(m,{name:`fade`},{default:B(()=>[!R(t).isReady&&!R(t).isError?(M(),v(`div`,Rt,[x(X,{size:40,"border-width":3})])):_(`v-if`,!0)]),_:1}),x(m,{name:`fade`},{default:B(()=>[R(t).isError?(M(),v(`div`,zt,[y(`p`,null,I(R(t).errorMessage||`This video could not be played.`),1),y(`button`,{class:`overlay__retry`,onClick:i[2]||=V((...e)=>R(t).retry&&R(t).retry(...e),[`stop`])},`Retry`)])):_(`v-if`,!0)]),_:1}),y(`div`,{class:D([`overlay__hud`,{"overlay__hud--visible":R(n).showHUD&&R(t).isReady&&!R(t).isError&&!(R(n).isOpen&&R(t).isFullscreen)}])},[x(st,{"is-focused":e.isFocused},null,8,[`is-focused`])],2),x(m,{name:`popup`},{default:B(()=>[R(n).isOpen&&R(t).isReady&&!R(t).isError&&!(e.focusMode&&!R(t).isFullscreen)?(M(),v(`div`,{key:0,class:D([`overlay__popup`,{"overlay__popup--fs":R(t).isFullscreen}]),onClick:i[3]||=V(()=>{},[`stop`])},[x(Lt)],2)):_(`v-if`,!0)]),_:1})],64))}}),[[`__scopeId`,`data-v-f3307b98`]]);const Vt=[`data-focused`],Ht={"data-vjs-player":``},Ut={key:1,class:`player__native-play`};var $=J(S({__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:`16:9`},platform:{type:String,required:!1,default:``},techOptions:{type:Object,required:!1,default:()=>({})},adTagUrl:{type:String,required:!1,default:``},imaOptions:{type:Object,required:!1},autoplay:{type:Boolean,required:!1,default:!1},muted:{type:Boolean,required:!1},playbackRate:{type:Number,required:!1},nativeUi:{type:Boolean,required:!1,default:!1},autoStage:{type:Boolean,required:!1,default:!1},lazy:{type:Boolean,required:!1,default:!1},payload:{type:Object,required:!1,default:()=>({})},action:{type:[String,Object,null],required:!1,default:null},focusMode:{type:Boolean,required:!1,default:!1},disableTapCapture:{type:Boolean,required:!1,default:!1}},emits:[`state-change`],setup(e,{expose:t,emit:n}){let r=e,i=n,a=F(null),o=P(Se(a,r,i)),s=F(!1),c=P(Ce(L(o,`isPlaying`),s));N(G,o),N(K,c),N(q,L(r,`action`));let{isPortrait:u,cssRatio:d}=l(r.aspectRatio),f=F(null),{focusModeEnabled:p}=we(s,L(r,`focusMode`),o,c,f),m=Te(s,L(r,`aspectRatio`));return t(o),(e,t)=>(M(),v(`div`,{class:`player`,"data-focused":s.value?``:null},[s.value?(M(),v(`div`,{key:0,class:D([`player__placeholder`,{"player__shell--portrait":R(u)}]),style:k({aspectRatio:R(d)})},null,6)):_(`v-if`,!0),s.value?(M(),v(`div`,{key:1,class:`player__backdrop`,onClick:t[0]||=e=>c.closeControls()})):_(`v-if`,!0),y(`div`,{ref_key:`focusFrameEl`,ref:f,class:D([`player__focus-frame`,{"player__focus-frame--active":s.value}])},[y(`div`,{class:D([`player__shell`,{"player__shell--portrait":R(u)}]),style:k([{aspectRatio:R(d)},R(m)]),onMousemove:t[1]||=e=>c.onMouseMove(),onContextmenuCapture:t[2]||=V(()=>{},[`prevent`]),onMouseleave:t[3]||=e=>c.onMouseLeave()},[y(`div`,Ht,[y(`video`,{ref_key:`videoEl`,ref:a,class:`video-js`,playsinline:``},null,512),o.nativeUi?_(`v-if`,!0):(M(),g(Bt,{key:0,"focus-mode":R(p),"is-focused":s.value,"disable-tap-capture":r.disableTapCapture},null,8,[`focus-mode`,`is-focused`,`disable-tap-capture`])),o.nativeUi&&!o.hasStarted?(M(),v(`div`,Ut,[x(Y,{"is-playing":!1,size:`lg`,onTogglePlay:o.togglePlay},null,8,[`onTogglePlay`])])):_(`v-if`,!0)])],38),s.value?(M(),v(`div`,{key:0,class:`player__focus-controls`,onClick:t[4]||=V(()=>{},[`stop`])},[x(Lt,{"focus-mode":``})])):_(`v-if`,!0)],2)],8,Vt))}}),[[`__scopeId`,`data-v-4ab3cf75`]]);const Wt=F(0),Gt=h(()=>Wt.value>0);function Kt(){Wt.value++}function qt(){Wt.value--}const Jt=[`src`],Yt={class:`stage__idle-body`},Xt={class:`stage__idle-btn`},Zt={class:`stage__idle-title`},Qt={key:1,class:`stage__idle-empty`};var $t=J(S({__name:`VideoStage`,emits:[`state-change`],setup(e,{emit:t}){let r=t,i=F(null),o=F(null),s=F(!1),c=F(!1),l=F(null),u=F(null),d=F(!1),m=F(null);N(`compact`,d);let h=null;z(d,e=>{m.value=e&&u.value?u.value.offsetHeight:null});function b(){h?.disconnect(),l.value&&(h=new IntersectionObserver(([e])=>{d.value=!e.isIntersecting},{threshold:1}),h.observe(l.value))}z(l,b);function S(){o.value&&(o.value={...o.value,autoplay:!0},s.value=!0)}function C(){o.value=null,s.value=!1,c.value=!1,d.value=!1,m.value=null,w()}function w(){window.dispatchEvent(new CustomEvent(n,{detail:{currentVideoUrl:o.value?.videoUrl??null,isPlaying:c.value}}))}function E(e){let t=e.detail;if(o.value?.videoUrl===t.videoUrl&&s.value){i.value?.togglePlay();return}o.value=t,s.value=!1,c.value=!1,w(),s.value=!0}function O(e){let t=e.detail;!o.value||t.videoUrl!==o.value.videoUrl||(s.value?i.value?.togglePlay():(o.value={...o.value,autoplay:!0},s.value=!0))}function P(e){e.type===`play`&&(c.value=!0),(e.type===`pause`||e.type===`ended`)&&(c.value=!1),w(),r(`state-change`,e)}return j(()=>{Kt(),window.addEventListener(a,E),window.addEventListener(f,O)}),A(()=>{qt(),window.removeEventListener(a,E),window.removeEventListener(f,O),h?.disconnect()}),(e,t)=>(M(),v(`div`,{ref_key:`wrapperEl`,ref:l,class:`stage-wrapper`,style:k(m.value?{height:m.value+`px`}:{})},[y(`div`,{ref_key:`stageEl`,ref:u,class:D([`stage`,{"stage--minified":d.value&&o.value&&s.value}])},[d.value&&o.value&&s.value?(M(),v(`button`,{key:0,class:`stage__dismiss`,"aria-label":`Close`,onClick:V(C,[`stop`])},[x(xt)])):_(`v-if`,!0),o.value&&s.value?(M(),g($,T({ref_key:`playerRef`,ref:i,key:o.value.videoUrl},o.value,{onStateChange:P}),null,16)):(M(),v(`div`,{key:2,class:`stage__idle`,style:k({aspectRatio:o.value?.aspectRatio||`16:9`}),onClick:S},[o.value?.poster?(M(),v(`img`,{key:0,src:o.value.poster,class:`stage__idle-poster`},null,8,Jt)):_(`v-if`,!0),t[0]||=y(`div`,{class:`stage__idle-scrim`},null,-1),y(`div`,Yt,[o.value?(M(),v(p,{key:0},[y(`div`,Xt,[x(Ae)]),y(`p`,Zt,I(o.value.title),1)],64)):(M(),v(`p`,Qt,`Select a video to play`))])],4))],2)],4))}}),[[`__scopeId`,`data-v-fb8c86cf`]]);const en={class:`placeholder`},tn=[`src`,`alt`],nn={class:`placeholder__btn-wrap`},rn={key:2,class:`placeholder__footer`},an={class:`placeholder__title`};var on=J(S({__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:`16:9`},platform:{type:String,required:!1,default:``},techOptions:{type:Object,required:!1,default:()=>({})},adTagUrl:{type:String,required:!1,default:``},imaOptions:{type:Object,required:!1},autoplay:{type:Boolean,required:!1,default:!1},muted:{type:Boolean,required:!1},playbackRate:{type:Number,required:!1},nativeUi:{type:Boolean,required:!1,default:!1},autoStage:{type:Boolean,required:!1,default:!1},lazy:{type:Boolean,required:!1},payload:{type:Object,required:!1,default:()=>({})},action:{type:[String,Object,null],required:!1,default:null},focusMode:{type:Boolean,required:!1},disableTapCapture:{type:Boolean,required:!1}},setup(e){let t=e,{isPortrait:r,cssRatio:i}=l(t.aspectRatio),o=F(!1),s=F(!1);function c(e){let n=e.detail;o.value=n.currentVideoUrl===t.videoUrl,s.value=o.value&&n.isPlaying}function u(e){window.dispatchEvent(new CustomEvent(a,{detail:{...t,...e!==void 0&&{autoplay:e}}}))}function d(){u(!0)}return j(()=>{window.addEventListener(n,c),t.autoStage&&u()}),A(()=>window.removeEventListener(n,c)),(t,n)=>(M(),v(`div`,en,[y(`div`,{class:D([`placeholder__shell`,{"placeholder__shell--portrait":R(r),"placeholder__shell--active":o.value}]),style:k({aspectRatio:R(i)}),onClick:d},[e.poster?(M(),v(`img`,{key:0,class:`placeholder__poster`,src:e.poster,alt:e.title},null,8,tn)):_(`v-if`,!0),n[0]||=y(`div`,{class:`placeholder__scrim`},null,-1),e.platform?(M(),v(`span`,{key:1,class:D([`placeholder__badge`,`badge--${e.platform}`])},I(e.platform),3)):_(`v-if`,!0),y(`div`,nn,[x(Y,{"is-playing":o.value&&s.value,size:`lg`,onTogglePlay:d},null,8,[`is-playing`])]),e.title?(M(),v(`div`,rn,[y(`p`,an,I(e.title),1)])):_(`v-if`,!0)],6)]))}}),[[`__scopeId`,`data-v-dbcb4f82`]]),sn=S({__name:`VideoItem`,props:{videoUrl:{type:String,required:!0},title:{type:String,required:!1},poster:{type:String,required:!1},aspectRatio:{type:String,required:!1},platform:{type:String,required:!1},techOptions:{type:Object,required:!1},adTagUrl:{type:String,required:!1},imaOptions:{type:Object,required:!1},autoplay:{type:Boolean,required:!1},muted:{type:Boolean,required:!1},playbackRate:{type:Number,required:!1},nativeUi:{type:Boolean,required:!1},autoStage:{type:Boolean,required:!1},lazy:{type:Boolean,required:!1,default:!0},payload:{type:Object,required:!1},action:{type:[String,Object,null],required:!1,default:null},focusMode:{type:Boolean,required:!1},disableTapCapture:{type:Boolean,required:!1}},emits:[`state-change`],setup(e,{emit:t}){let n=e,r=t,i=F(!1);return(e,t)=>R(Gt)?(M(),g(on,O(T({key:0},e.$props)),null,16)):(M(),v(p,{key:1},[n.lazy&&!i.value&&!n.autoplay?(M(),g(on,T({key:0},e.$props,{onClickCapture:t[0]||=e=>i.value=!0}),null,16)):(M(),g($,T({key:1},n,{autoplay:i.value||n.autoplay,onStateChange:t[1]||=e=>r(`state-change`,e)}),null,16,[`autoplay`]))],64))}});const cn=C($,{shadowRoot:!1,styles:[ee]}),ln=C($t,{shadowRoot:!1}),un=C(on,{shadowRoot:!1}),dn=C(sn,{shadowRoot:!1});customElements.define(`video-player`,cn),customElements.define(`video-stage`,ln),customElements.define(`video-placeholder`,un),customElements.define(`video-item`,dn);export{dn as VideoItemElement,un as VideoPlaceholderElement,cn as VideoPlayerElement,ln as VideoStageElement};