@munsonlabs/video-player 0.1.4 → 0.1.5

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.
@@ -0,0 +1,5 @@
1
+ import{Fragment as e,Transition as t,computed as n,createBlock as r,createCommentVNode as i,createElementBlock as a,createElementVNode as o,createStaticVNode as s,createTextVNode as c,createVNode as l,defineComponent as u,defineCustomElement as d,inject as f,mergeProps as p,nextTick as m,normalizeClass as h,normalizeProps as g,normalizeStyle as _,onBeforeUnmount as v,onMounted as y,openBlock as b,provide as x,reactive as S,ref as C,renderList as w,renderSlot as T,resolveDynamicComponent as E,shallowRef as D,toDisplayString as O,toRef as k,unref as A,watch as j,withCtx as M,withModifiers as N}from"vue";function P(){return/iPad|iPhone|iPod/.test(navigator.userAgent)||/Mac/.test(navigator.userAgent)&&navigator.maxTouchPoints>1}function F(e){(e.requestFullscreen||e.webkitRequestFullscreen)?.call(e)}function I(){(document.exitFullscreen||document.webkitExitFullscreen)?.call(document)}function L(e){let[t,n]=e.split(`:`).map(Number);return{isPortrait:n>t,cssRatio:`${t}/${n}`}}function ee(e,t){if(!t||!Object.keys(t).length)return e;let n=e;for(let[e,r]of Object.entries(t))r!=null&&r!==``&&(n=n.split(`{${e}}`).join(encodeURIComponent(r)));return n}function R(e,t=!1){if(!e||isNaN(e))return`0:00`;let n=t?Math.round(e):Math.floor(e);return`${Math.floor(n/60)}:${String(n%60).padStart(2,`0`)}`}function z(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 te(e){return e.filter(e=>e.src&&(e.type===`application/x-mpegURL`||e.type===`video/mp4`)).sort((e,t)=>e.type===`application/x-mpegURL`?-1:1)}const ne=`video-select`,re=`video-state`,B=`fullscreen-pending`,V=`fullscreen-pending-done`,H=`player:autoAdvance`,U=`mvp-youtube`,W=`mvp-vimeo`,G=`mvp-dailymotion`,ie=`mvp-ad-playing`,ae=`mvp-ad-paused`,K=`16:9`,q=[.5,.75,1,1.25,1.5,2],J=[[.25,`firstQuartile`],[.5,`midpoint`],[.75,`thirdQuartile`]];function Y(e){return e.match(/cdn\.jwplayer\.com\/videos\/([^-]+)/)?.[1]??e.match(/cdn\.jwplayer\.com\/manifests\/([^.]+)/)?.[1]??e.match(/^jwplayer:\/\/([^/]+)$/)?.[1]??null}function oe(e){let t=e?.advertising?.schedule;return Array.isArray(t)&&t.length?t[0].tag??null:e?.advertising?.tag??null}const se=z(async e=>{let t=await fetch(`https://cdn.jwplayer.com/v2/media/${e}`);if(!t.ok)throw Error(`JW Platform API error: ${t.status}`);let n=(await t.json()).playlist?.[0];if(!n)throw Error(`JW Platform: empty playlist`);let r=te((n.sources??[]).map(e=>({src:e.file,type:e.type})));if(!r.length)throw Error(`JW Platform: no playable sources found`);return{src:r[0].src,type:r[0].type,poster:n.image??null,adTagUrl:oe(n)}});async function ce(e){let t=Y(e);if(!t)throw Error(`JW Platform: unrecognised source URL: ${e}`);let n=await se(t);if(e.startsWith(`jwplayer://`))return n;let r=/\.mp4(\?|#|$)/.test(e)?`video/mp4`:`application/x-mpegURL`;return{...n,src:e,type:r}}function le(e){let t;try{t=new URL(e)}catch{return null}if(t.hostname!==`players.brightcove.net`)return null;let[,n,r]=t.pathname.split(`/`),i=t.searchParams.get(`videoId`),a=r?.indexOf(`_`)??-1;return!n||a===-1||!i?null:{accountId:n,playerId:r.slice(0,a),embed:r.slice(a+1),videoId:i}}function ue(e){for(let t of e?.plugins??[]){let e=t.options?.serverUrl??t.options?.imaOptions?.serverUrl;if(e)return e}return null}const de=z(async(e,t,n,r)=>{let i=await fetch(`https://players.brightcove.net/${e}/${t}_${n}/config.json`);if(!i.ok)throw Error(`Brightcove: could not load player config (${i.status})`);let a=await i.json(),o=r??a?.video_cloud?.policy_key;if(!o)throw Error(`Brightcove: policy_key not found in player config`);return{policyKey:o,adTagUrl:ue(a)}},(e,t,n)=>`${e}/${t}_${n}`);async function fe(e,t,n){let r=await fetch(`https://edge.api.brightcove.com/playback/v1/accounts/${e}/videos/${t}`,{headers:{Accept:`application/json;pk=${n}`}});if(!r.ok)throw Error(`Brightcove Playback API error: ${r.status}`);let i=await r.json(),a=te(i.sources||[]);if(!a.length)throw Error(`Brightcove: no playable sources found`);return{sources:a.map(e=>({src:e.src,type:e.type})),poster:i.poster??i.thumbnail??null}}async function pe(e,t){let n=le(e);if(!n)throw Error(`Brightcove: invalid src — expected a Brightcove embed URL, e.g. "https://players.brightcove.net/{accountId}/{playerId}_{embed}/index.html?videoId={videoId}"`);let{accountId:r,playerId:i,embed:a,videoId:o}=n,{policyKey:s,adTagUrl:c}=await de(r,i,a,t),{sources:l,poster:u}=await fe(r,o,s);return{...l[0],poster:u,adTagUrl:c}}function me(){let e=new Map;function t(t,n){for(let r of Array.isArray(t)?t:[t])e.has(r)||e.set(r,new Set),e.get(r)?.add(n)}function n(t,n){e.get(t)?.delete(n)}function r(t,...n){e.get(t)?.forEach(e=>e(...n))}function i(){e.clear()}return{on:t,off:n,trigger:r,dispose:i}}const he={};function ge(e,t=e){return he[t]||(he[t]=new Promise((t,n)=>{let r=document.createElement(`script`);r.src=e,r.onload=()=>t(),r.onerror=()=>n(Error(`Failed to load script: ${e}`)),document.head.appendChild(r)})),he[t]}let _e=0;function ve(e,t){e.parentElement?.classList.add(t);let n=`${t}-${++_e}`,r=document.createElement(`div`);r.id=n,r.className=`mvp-tech`,r.style.cssText=`width:100%;height:100%;top:0;left:0;position:absolute`;let i=document.createElement(`div`);return i.style.cssText=`width:100%;height:100%;position:absolute;inset:0;opacity:0;pointer-events:none;transition:opacity 0.2s`,i.appendChild(r),e.parentElement?.insertBefore(i,e),{techId:n,wrapper:i,innerDiv:r}}function ye(e,t){e.style.display=`none`,t.style.opacity=`1`,t.style.pointerEvents=``}function be(e,t,n){t.remove(),e.parentElement?.classList.remove(n),e.style.display=``}function xe(e){return e.closest(`.player__shell`)}function Se(){let e=new Set;return{schedule(t,n=0){let r=setTimeout(()=>{e.delete(r),t()},n);e.add(r)},clearAll(){e.forEach(clearTimeout),e.clear()}}}function Ce(e){e.trigger(B);let t=document.createElement(`div`);t.style.cssText=`position:fixed;inset:0;z-index:99999;opacity:0;pointer-events:none`,document.body.appendChild(t);let n=!1;function r(){n||e.trigger(V)}function i(r){n||(n=!0,e.trigger(V),t.remove(),r?.())}return{overlay:t,reveal:r,finish:i}}function we(e,t){return t===e.PlayerState.PLAYING||t===e.PlayerState.BUFFERING}function Te(e){let t={videoId:null,listId:null},n=e.match(/^.*(youtu\.be\/|v\/|u\/\w\/|embed\/|watch\?v=|shorts\/|&v=)([^#&?]*).*/);n?.[2]?.length===11&&(t.videoId=n[2]);let r=e.match(/[?&]list=([^#&?]+)/);return r?.[1]&&(t.listId=r[1]),t}let Ee=!1,De=!1;const Oe=[];function ke(){De||(De=!0,ge(`https://www.youtube.com/iframe_api`).then(()=>{window.YT?.ready(()=>{Ee=!0,Oe.forEach(e=>e()),Oe.length=0})}))}function Ae(e,t){ke();let n=me(),{techId:r,wrapper:i}=ve(e,U),a=Te(t.src),o=null,s=a.videoId,c=!1,l=!1,u=!1,d=null,f=!1,p=null,m=!1,{schedule:h,clearAll:g}=Se(),_=null,v={active:!1,wasPaused:!1,timeBefore:0,catchUpInterval:null};function y(){try{let e=o?.getPlayerResponse()?.adPlacements;return Array.isArray(e)&&e.length>0}catch{return!1}}function b(e){o?.loadVideoById({videoId:e})}function x(e){o?.cueVideoById({videoId:e})}function S(){a.videoId&&(v.wasPaused=!1,c?s===a.videoId?o?.playVideo():(b(a.videoId),s=a.videoId):(n.trigger(`waiting`),l=!0))}function C(){v.catchUpInterval&&clearInterval(v.catchUpInterval),v.active=!1,v.wasPaused&&o?.pauseVideo(),n.trigger(`seeked`)}function w(){m=(o?.getAvailablePlaybackRates()??[]).length>1,c=!0,t.muted&&o?.mute(),l?S():u&&a.videoId&&(x(a.videoId),s=a.videoId)}function T(e){if(e===d||p!==null)return;d=e;let t=y();t!==f&&(f=t,n.trigger(t?`adstart`:`adend`));let r=window.YT;if(r){switch(e){case-1:n.trigger(`loadstart`),n.trigger(`loadedmetadata`),n.trigger(`durationchange`),n.trigger(`ratechange`);break;case r.PlayerState.ENDED:n.trigger(`ended`);break;case r.PlayerState.PLAYING:n.trigger(`timeupdate`),n.trigger(`durationchange`),n.trigger(`playing`),n.trigger(`play`),v.active&&C();break;case r.PlayerState.PAUSED:n.trigger(`canplay`),v.active||n.trigger(`pause`);break;case r.PlayerState.BUFFERING:n.trigger(`waiting`);break;case r.PlayerState.CUED:n.trigger(`canplay`);break}_&&=(clearInterval(_),null),e===r.PlayerState.PLAYING&&(_=setInterval(()=>n.trigger(`timeupdate`),250))}}function E(){let e={controls:+!!t.nativeUi,modestbranding:1,rel:0,showinfo:0,mute:+!!t.muted,origin:window.location.origin,allowfullscreen:1,fullscreen:1,fs:1,playsinline:1,...t.customVars};s=a.videoId,o=new window.YT.Player(r,{videoId:s??void 0,playerVars:e,events:{onReady:w,onStateChange:e=>T(e.data),onPlaybackRateChange:()=>n.trigger(`ratechange`),onVolumeChange:()=>n.trigger(`volumechange`),onError:e=>{p=e.data,n.trigger(`error`),h(()=>{p=null})}}})}Ee?E():Oe.push(E),t.autoplay?c?S():l=!0:a.videoId&&(u=!0);function D(){if(!o)return;let e=o.getCurrentTime(),{video_id:t}=o.getVideoData();o.pauseVideo();let{overlay:r,reveal:i,finish:a}=Ce(n),s=document.createElement(`div`);s.id=`yt-fs-${Math.random().toString(36).slice(2)}`,r.appendChild(s);let c=null,l=()=>{document.removeEventListener(`pointerdown`,u,!0),a(()=>{let t=c?.getCurrentTime()??e;try{c?.destroy()}catch{}o?.seekTo(t,!0),n.trigger(`timeupdate`)})};function u(){l()}c=new window.YT.Player(s.id,{videoId:t,playerVars:{playsinline:0,autoplay:1,controls:1,modestbranding:1,rel:0,start:Math.floor(e)},events:{onReady:t=>{i(),t.target.seekTo(e,!0),t.target.playVideo()},onStateChange:e=>{let t=window.YT;t&&(e.data===t.PlayerState.ENDED?l():e.data===t.PlayerState.PAUSED?(document.removeEventListener(`pointerdown`,u,!0),document.addEventListener(`pointerdown`,u,{capture:!0,once:!0})):(document.removeEventListener(`pointerdown`,u,!0),i()))}}})}function O(){if(P()&&o){D();return}let t=xe(e);t&&F(t)}function k(){I()}return{el:i,play:S,pause:()=>o?.pauseVideo(),paused:()=>{if(!o)return!0;let e=window.YT;return!e||!we(e,d)},currentTime:()=>o?.getCurrentTime()??0,setCurrentTime:e=>{if(!o)return;let t=window.YT;t&&d===t.PlayerState.PAUSED&&(v.timeBefore=o.getCurrentTime()),v.active||(v.wasPaused=!t||!we(t,d)),o.seekTo(e,!0),n.trigger(`timeupdate`),n.trigger(`seeking`),v.active=!0,t&&d===t.PlayerState.PAUSED&&v.timeBefore!==e&&(v.catchUpInterval&&clearInterval(v.catchUpInterval),v.catchUpInterval=setInterval(()=>{d!==t.PlayerState.PAUSED||!v.active?v.catchUpInterval&&clearInterval(v.catchUpInterval):o&&o.getCurrentTime()!==v.timeBefore&&(n.trigger(`timeupdate`),C())},250))},duration:()=>o?.getDuration()??0,volume:()=>o?o.getVolume()/100:1,setVolume:e=>o?.setVolume(e*100),muted:()=>o?.isMuted()??!1,setMuted:e=>{o&&(e?o.mute():o.unMute(),h(()=>n.trigger(`volumechange`),50))},playbackRate:()=>o?.getPlaybackRate()??1,setPlaybackRate:e=>o?.setPlaybackRate(e),bufferedEnd:()=>o?.getVideoLoadedFraction?o.getVideoLoadedFraction()*o.getDuration():0,error:()=>p===null?null:{code:p,message:`This video could not be played.`},setSrc:e=>{let t=Te(e);a.videoId=t.videoId,a.listId=t.listId,a.videoId&&(c?(b(a.videoId),s=a.videoId):u=!0)},featuresPlaybackRate:()=>m,featuresCaptions:()=>!1,getCaptionTracks:()=>[],setCaptionTrack:()=>{},getActiveCaptionTrack:()=>null,featuresQuality:()=>!1,getQualityLevels:()=>[],getCurrentQuality:()=>null,isAutoQuality:()=>!0,setQuality:()=>{},featuresPip:()=>!1,isPipActive:()=>!1,togglePip:()=>{},enterFullscreen:O,exitFullscreen:k,on:n.on,off:n.off,dispose:()=>{if(g(),_&&clearInterval(_),v.catchUpInterval&&clearInterval(v.catchUpInterval),o)try{o.stopVideo(),o.destroy()}catch{}else{let e=Oe.indexOf(E);e!==-1&&Oe.splice(e,1)}o=null,be(e,i,U),n.dispose()}}}function je(e){return e.match(/(?:vimeo\.com\/(?:video\/|channels\/[^/]+\/|groups\/[^/]+\/videos\/)?|player\.vimeo\.com\/video\/)(\d+)/)?.[1]??null}function Me(e,t){let n=me(),{techId:r,wrapper:i}=ve(e,W),a=je(t.src),o=null,s=0,c=0,l=1,u=!1,d=!0,f=1,p=!1,m=!1,h=!1,g=null,{schedule:_,clearAll:v}=Se();function y(){if(!o){m=!0;return}o.play().catch(()=>{})}function b(){t.muted&&o?.setMuted(!0).catch(()=>{}),m&&y()}async function x(e){if(await ge(`https://player.vimeo.com/api/player.js`,`vimeo`),h||!window.Vimeo)return;let i={id:Number(e),byline:!1,portrait:!1,title:!1,transparent:!0,controls:!!t.nativeUi,autopause:!1,...t.autoplay!==void 0&&{autoplay:t.autoplay},...t.muted!==void 0&&{muted:t.muted}};o=new window.Vimeo.Player(r,i),t.autoplay&&(m=!0),o.ready().then(b).catch(e=>{g={code:4,message:e?.message||`This video is unavailable or cannot be embedded here.`},n.trigger(`error`)}),o.on(`play`,()=>{d=!1,n.trigger(`play`),n.trigger(`playing`)}),o.on(`pause`,()=>{d=!0,n.trigger(`pause`)}),o.on(`ended`,()=>{d=!0,n.trigger(`ended`)}),o.on(`timeupdate`,e=>{let{seconds:t,duration:r}=e;s=t,c=r,n.trigger(`timeupdate`),r&&!p&&(p=!0,n.trigger(`durationchange`))}),o.on(`loaded`,()=>{p=!1,n.trigger(`loadedmetadata`),n.trigger(`durationchange`)}),o.on(`seeking`,e=>{s=e.seconds,n.trigger(`seeking`)}),o.on(`seeked`,e=>{s=e.seconds,n.trigger(`seeked`),n.trigger(`timeupdate`)}),o.on(`bufferstart`,()=>n.trigger(`waiting`)),o.on(`bufferend`,()=>n.trigger(`canplay`)),o.on(`volumechange`,e=>{l=e.volume,n.trigger(`volumechange`)}),o.on(`error`,()=>n.trigger(`error`))}a&&x(a);function S(){if(!P()){let t=xe(e);t&&F(t);return}o?.requestFullscreen().catch(()=>{})}function C(){I()}return{el:i,play:y,pause:()=>o?.pause().catch(()=>{}),paused:()=>d,currentTime:()=>s,setCurrentTime:e=>{o?.setCurrentTime(e).catch(()=>{}),n.trigger(`timeupdate`),n.trigger(`seeking`)},duration:()=>c,volume:()=>l,setVolume:e=>{l=e,o?.setVolume(e).catch(()=>{})},muted:()=>u,setMuted:e=>{u=e,o?.setMuted(e).then(()=>_(()=>n.trigger(`volumechange`),50)).catch(()=>{})},playbackRate:()=>f,setPlaybackRate:e=>{f=e,o?.setPlaybackRate(e).catch(()=>{}),n.trigger(`ratechange`)},bufferedEnd:()=>s,error:()=>g,setSrc:()=>{},featuresPlaybackRate:()=>!1,featuresCaptions:()=>!1,getCaptionTracks:()=>[],setCaptionTrack:()=>{},getActiveCaptionTrack:()=>null,featuresQuality:()=>!1,getQualityLevels:()=>[],getCurrentQuality:()=>null,isAutoQuality:()=>!0,setQuality:()=>{},featuresPip:()=>!1,isPipActive:()=>!1,togglePip:()=>{},enterFullscreen:S,exitFullscreen:C,on:n.on,off:n.off,dispose:()=>{h=!0,v(),o?.destroy().catch(()=>{}),o=null,be(e,i,W),n.dispose()}}}function Ne(e){let t=e.match(/[?&]video=([a-zA-Z0-9]+)/);return t?t[1]:e.match(/(?:dailymotion\.com\/(?:embed\/)?video\/|dai\.ly\/)([a-zA-Z0-9]+)/)?.[1]??null}function Pe(e,t){let n=me(),{techId:r,wrapper:i}=ve(e,G),a=xe(e),o=Ne(t.src),s=typeof t.customVars?.playerId==`string`?t.customVars.playerId:void 0,c=null,l=0,u=0,d=1,f=!1,p=!0,m=!1,h=!1,g=null;async function _(){if(!o){g={code:4,message:`Could not parse video ID from source URL`},n.trigger(`error`);return}try{let e=await ge(s?`https://geo.dailymotion.com/libs/player/${s}.js`:`https://geo.dailymotion.com/libs/player.js`,s||`dailymotion-sdk`).then(()=>window.dailymotion);if(!e)return;let i=await e.createPlayer(r,{...s&&{player:s},video:o,params:{autoplay:!!t.autoplay,mute:!!t.muted}});c=i;let a=e.events;m&&i.play(),i.on(a.PLAYER_CRITICALPATHREADY,e=>{let t=e.videoThumbnails;if(!t)return;let r=Object.keys(t).map(Number).sort((e,t)=>t-e)[0],i=r===void 0?void 0:t[r];i&&n.trigger(`posterchange`,i)}),i.on(a.VIDEO_PLAY,()=>{p=!1,n.trigger(`play`),n.trigger(`playing`),!t.autoplay&&!h&&(h=!0,i.pause())}),i.on(a.VIDEO_PLAYING,()=>{p=!1,n.trigger(`play`),n.trigger(`playing`)}),i.on(a.VIDEO_PAUSE,()=>{p=!0,n.trigger(`pause`)}),a.VIDEO_BUFFERING&&i.on(a.VIDEO_BUFFERING,()=>n.trigger(`waiting`)),i.on(a.VIDEO_END,()=>{p=!0,n.trigger(`ended`)}),i.on(a.VIDEO_TIMECHANGE,e=>{l=e.videoTime??l,u=e.videoDuration??u,n.trigger(`timeupdate`)}),i.on(a.VIDEO_DURATIONCHANGE,e=>{u=e.videoDuration??u,n.trigger(`durationchange`)}),i.on(a.VIDEO_SEEKSTART,()=>n.trigger(`seeking`)),i.on(a.VIDEO_SEEKEND,e=>{l=e.videoTime??l,n.trigger(`seeked`)}),i.on(a.PLAYER_VOLUMECHANGE,e=>{d=e.playerVolume??d,f=e.playerIsMuted??f,n.trigger(`volumechange`)}),i.on(a.PLAYER_ERROR,()=>n.trigger(`error`)),a.AD_START&&i.on(a.AD_START,()=>{p=!1,n.trigger(`play`),n.trigger(`adstart`)}),a.AD_END&&i.on(a.AD_END,()=>n.trigger(`adend`))}catch(e){g={code:4,message:e instanceof Error?e.message:`This video could not be played.`},n.trigger(`error`)}}_();function v(){c?c.play():m=!0}function y(){if(P()){c?.setFullscreen(!0);return}a&&F(a)}function b(){if(P()){c?.setFullscreen(!1);return}I()}return{el:i,play:v,pause:()=>c?.pause(),paused:()=>p,currentTime:()=>l,setCurrentTime:e=>{l=e,c?.seek(e),n.trigger(`seeking`)},duration:()=>u,volume:()=>d,setVolume:e=>{d=e,c?.setVolume(e)},muted:()=>f,setMuted:e=>{f=e,c?.setMute(e)},playbackRate:()=>1,setPlaybackRate:()=>{},bufferedEnd:()=>l,error:()=>g,setSrc:()=>{},featuresPlaybackRate:()=>!1,featuresCaptions:()=>!1,getCaptionTracks:()=>[],setCaptionTrack:()=>{},getActiveCaptionTrack:()=>null,featuresQuality:()=>!1,getQualityLevels:()=>[],getCurrentQuality:()=>null,isAutoQuality:()=>!0,setQuality:()=>{},featuresPip:()=>!1,isPipActive:()=>!1,togglePip:()=>{},enterFullscreen:y,exitFullscreen:b,on:n.on,off:n.off,dispose:()=>{c?.destroy?.(),c=null,be(e,i,G),n.dispose()}}}const Fe=[{test:e=>/youtu\.be|youtube\.com/.test(e),key:`youtube`,embed:!0},{test:e=>/vimeo\.com|player\.vimeo\.com/.test(e),key:`vimeo`,embed:!0},{test:e=>/dailymotion\.com|dai\.ly/.test(e),key:`dailymotion`,embed:!0},{test:e=>/cdn\.jwplayer\.com/.test(e)||e.startsWith(`jwplayer://`),key:`jwplayer`,embed:!1},{test:e=>/players\.brightcove\.net/.test(e),key:`brightcove`,embed:!1}];function Ie(e){let t=Fe.find(t=>t.test(e));return{key:t?.key??`html5`,embed:t?.embed??!1}}function Le(e){if(/\.m3u8(\?|#|$)/.test(e))return`application/x-mpegURL`;if(/\.mpd(\?|#|$)/.test(e))return`application/dash+xml`;if(/\.mp4(\?|#|$)/.test(e))return`video/mp4`}const Re={youtube:Ae,vimeo:Me,dailymotion:Pe};function ze(e,t,n){let r=Re[e];return r?r(t,n):null}async function Be(e,t){return e===`jwplayer`?ce(t):e===`brightcove`?pe(t):{src:t,type:Le(t)}}function Ve(e){return e.kind===`captions`||e.kind===`subtitles`}function He(e,t){e.textTracks.addEventListener(`addtrack`,t),e.textTracks.addEventListener(`removetrack`,t);function n(){let t=[];for(let n=0;n<e.textTracks.length;n++){let r=e.textTracks[n];Ve(r)&&t.push({index:n,label:r.label||r.language||`Track ${n+1}`,language:r.language})}return t}function r(t){for(let n=0;n<e.textTracks.length;n++){let r=e.textTracks[n];Ve(r)&&(r.mode=n===t?`showing`:`hidden`)}}function i(){for(let t=0;t<e.textTracks.length;t++){let n=e.textTracks[t];if(Ve(n)&&n.mode===`showing`)return t}return null}return{featuresCaptions:()=>n().length>0,getCaptionTracks:n,setCaptionTrack:r,getActiveCaptionTrack:i,dispose:()=>{e.textTracks.removeEventListener(`addtrack`,t),e.textTracks.removeEventListener(`removetrack`,t)}}}function Ue(e){function t(){return e()?.levels()??[]}function n(){return e()?.isAuto()??!0}function r(){let t=e();return t?n()?null:t.currentIndex():null}function i(t){e()?.setIndex(t)}return{featuresQuality:()=>t().length>0,getQualityLevels:t,getCurrentQuality:r,isAutoQuality:n,setQuality:i}}function We(e,t,n){let r=[[`webkitbeginfullscreen`,t],[`webkitendfullscreen`,n]];for(let[t,n]of r)e.addEventListener(t,n);function i(){let t=e;if(typeof t.webkitEnterFullscreen==`function`){t.webkitEnterFullscreen();return}let n=e.closest(`.player__shell`);n instanceof HTMLElement&&F(n)}function a(){let t=e;if(typeof t.webkitExitFullscreen==`function`){t.webkitExitFullscreen();return}I()}return{enterFullscreen:i,exitFullscreen:a,dispose:()=>{for(let[t,n]of r)e.removeEventListener(t,n)}}}function Ge(e,t){let n=[[`enterpictureinpicture`,t],[`leavepictureinpicture`,t]];for(let[t,r]of n)e.addEventListener(t,r);function r(){return typeof document<`u`&&!!document.pictureInPictureEnabled&&!e.disablePictureInPicture}function i(){return document.pictureInPictureElement===e}function a(){i()?document.exitPictureInPicture():r()&&e.requestPictureInPicture()}return{featuresPip:r,isPipActive:i,togglePip:a,dispose:()=>{for(let[t,r]of n)e.removeEventListener(t,r)}}}const Ke=`application/x-mpegURL`,qe=[`play`,`pause`,`ended`,`error`,`timeupdate`,`durationchange`,`progress`,`volumechange`,`ratechange`,`seeking`,`seeked`,`waiting`,`playing`,`canplay`];function Je(e){return{levels:()=>e.levels.map((e,t)=>({index:t,height:e.height,bitrate:e.bitrate,label:`${e.height}p`})),isAuto:()=>e.autoLevelEnabled,currentIndex:()=>e.currentLevel,setIndex:t=>{e.currentLevel=t??-1}}}function Ye(e){return{levels:()=>e.getBitrateInfoListFor(`video`).map(e=>({index:e.qualityIndex,height:e.height,bitrate:e.bitrate,label:`${e.height}p`})),isAuto:()=>e.getSettings().streaming?.abr?.autoSwitchBitrate?.video??!0,currentIndex:()=>e.getQualityFor(`video`),setIndex:t=>{if(t===null){e.updateSettings({streaming:{abr:{autoSwitchBitrate:{video:!0}}}});return}e.updateSettings({streaming:{abr:{autoSwitchBitrate:{video:!1}}}}),e.setQualityFor(`video`,t,!0)}}}function Xe(e,t){let n=me(),r=null,i=null,a=!1,o=null,s=null;async function c(i){let{default:s}=await import(`hls.js`);if(a||o!==i)return;if(typeof s?.isSupported!=`function`||!s.isSupported()){e.src=i,t.autoplay&&e.play();return}r=new s({liveDurationInfinity:!0}),r.loadSource(i),r.attachMedia(e),t.autoplay&&e.play();let c=s.Events,l=s.ErrorTypes;r.on(c.MANIFEST_PARSED,f(`qualitychange`)),r.on(c.LEVEL_SWITCHED,f(`qualitychange`)),r.on(c.ERROR,(e,t)=>{if(!(!t.fatal||a||o!==i))switch(t.type){case l.NETWORK_ERROR:r?.startLoad();break;case l.MEDIA_ERROR:r?.recoverMediaError();break;default:r?.destroy(),r=null,n.trigger(`error`);break}})}async function l(r){let o=await import(`dashjs`);if(a||s!==r)return;let c=o.MediaPlayer().create();i=c,c.initialize(e,r,t.autoplay??!1);let l=o.MediaPlayer.events;c.on(l.QUALITY_CHANGE_RENDERED,f(`qualitychange`)),c.on(l.STREAM_INITIALIZED,f(`qualitychange`)),c.on(l.ERROR,()=>{a||s!==r||(c.destroy(),i=null,n.trigger(`error`))})}function u(){return/Apple/.test(navigator.vendor)&&!/CriOS|FxiOS|OPiOS|EdgiOS|Chrome|Chromium|Android/.test(navigator.userAgent)&&(e.canPlayType(`application/vnd.apple.mpegurl`)!==``||e.canPlayType(Ke)!==``)}function d(n,a){if(r?.destroy(),r=null,o=null,i?.destroy(),i=null,s=null,a===`application/dash+xml`){s=n,l(n);return}if(a===Ke&&!u()){o=n,c(n);return}e.src=n,t.autoplay&&e.play()}let f=e=>()=>n.trigger(e),p=qe.map(e=>[e,f(e)]);for(let[t,n]of p)e.addEventListener(t,n);let m=He(e,f(`captionschange`)),h=Ue(()=>r?Je(r):i?Ye(i):null),g=We(e,f(`nativefullscreenenter`),f(`nativefullscreenexit`)),_=Ge(e,f(`pipchange`));return e.poster=t.poster??``,e.muted=t.muted??t.autoplay??!1,e.playbackRate=t.playbackRate??1,e.playsInline=!0,d(t.src,t.type),{el:e,play:()=>e.play(),pause:()=>e.pause(),paused:()=>e.paused,currentTime:()=>e.currentTime,setCurrentTime:t=>{e.currentTime=t},duration:()=>e.duration,volume:()=>e.volume,setVolume:t=>{e.volume=t},muted:()=>e.muted,setMuted:t=>{e.muted=t},playbackRate:()=>e.playbackRate,setPlaybackRate:t=>{e.playbackRate=t},bufferedEnd:()=>{let{buffered:t,duration:n}=e;if(!t.length)return 0;let r=t.end(t.length-1);return n&&r>n?n:r},error:()=>{let t=e.error;return t?{code:t.code,message:t.message||`This video could not be played.`}:null},setSrc:d,featuresPlaybackRate:()=>!0,featuresCaptions:m.featuresCaptions,getCaptionTracks:m.getCaptionTracks,setCaptionTrack:m.setCaptionTrack,getActiveCaptionTrack:m.getActiveCaptionTrack,featuresQuality:h.featuresQuality,getQualityLevels:h.getQualityLevels,getCurrentQuality:h.getCurrentQuality,isAutoQuality:h.isAutoQuality,setQuality:h.setQuality,featuresPip:_.featuresPip,isPipActive:_.isPipActive,togglePip:_.togglePip,enterFullscreen:g.enterFullscreen,exitFullscreen:g.exitFullscreen,on:n.on,off:n.off,dispose:()=>{a=!0,r?.destroy(),i?.destroy();for(let[t,n]of p)e.removeEventListener(t,n);m.dispose(),g.dispose(),_.dispose(),n.dispose()}}}const Ze=new Set;function Qe(e){return Ze.add(e),()=>Ze.delete(e)}function $e(e){Ze.forEach(t=>{if(t!==e)try{t()}catch{}})}function et(e){let t=new Set,n=null;function r(){t.forEach(e=>e())}return i=>(n||=e(r),t.add(i),()=>{t.delete(i),t.size===0&&(n?.(),n=null)})}const tt=et(e=>(document.addEventListener(`fullscreenchange`,e),document.addEventListener(`webkitfullscreenchange`,e),()=>{document.removeEventListener(`fullscreenchange`,e),document.removeEventListener(`webkitfullscreenchange`,e)})),nt=et(e=>(document.addEventListener(`visibilitychange`,e),window.addEventListener(`blur`,e),()=>{document.removeEventListener(`visibilitychange`,e),window.removeEventListener(`blur`,e)}));function rt(e){let t=C(!1),n=C(!1),r=null;function i(){let e=document;t.value=!!(document.fullscreenElement||e.webkitFullscreenElement),n.value=!1}function a(){let r=e();if(r){if(t.value){r.exitFullscreen();return}n.value=!0,r.enterFullscreen()}}function o(){n.value=!0}function s(e){e.on(B,()=>{n.value=!0}),e.on(V,()=>{n.value=!1}),e.on(`nativefullscreenenter`,()=>{t.value=!0,n.value=!1}),e.on(`nativefullscreenexit`,()=>{t.value=!1,n.value=!1})}return y(()=>{r=tt(i)}),v(()=>{r?.()}),{isFullscreen:t,isFullscreenPending:n,toggleFullscreen:a,markFullscreenPending:o,attachPlayerEvents:s}}function it(e){let t=C(!1),n=null;function r(){clearTimeout(n??void 0),t.value&&e(`bufferend`),t.value=!1}function i(i){i.on(`waiting`,()=>{clearTimeout(n??void 0),n=setTimeout(()=>{t.value=!0,e(`bufferstart`)},500)}),i.on(`playing`,r),i.on(`canplay`,r)}return v(()=>clearTimeout(n??void 0)),{isBuffering:t,attachPlayerEvents:i,reset:r}}function at(e,t,n){let r=new Set;function i(){if(!t.value)return;let i=e.value/t.value;for(let[e,t]of J)!r.has(e)&&i>=e&&(r.add(e),n(t))}function a(){r.clear()}return{checkQuartiles:i,reset:a}}function ot(){try{return JSON.parse(localStorage.getItem(`player:positions`)??`[]`)}catch{return[]}}function st(e){localStorage.setItem(`player:positions`,JSON.stringify(e))}function ct(e,t){if(t<5)return;let n=ot().filter(t=>t.url!==e);n.unshift({url:e,time:t}),st(n.slice(0,5))}function lt(e){return ot().find(t=>t.url===e)?.time??null}function ut(e){st(ot().filter(t=>t.url!==e))}function dt(e,t,n){let r=!1;function i(t){if(r)return;let n=lt(e);n&&t.setCurrentTime(n),r=!0}function a(t){!t||n.value||ct(e,t.currentTime()??0)}function o(){ut(e)}function s(){document.visibilityState===`hidden`&&a(t())}return y(()=>document.addEventListener(`visibilitychange`,s)),v(()=>{a(t()),document.removeEventListener(`visibilitychange`,s)}),{restoreOnce:i,save:a,clear:o}}const ft=new WeakMap,pt=[.1,.5];function mt(e){let t=ft.get(e);if(t)return t;let n=new Set,r=new IntersectionObserver(([e])=>n.forEach(t=>t(e)),{threshold:pt});r.observe(e);let i={observer:r,callbacks:n};return ft.set(e,i),i}function ht(e,t){let n=mt(e);return n.callbacks.add(t),()=>{n.callbacks.delete(t),n.callbacks.size===0&&(n.observer.disconnect(),ft.delete(e))}}let gt=null,X=null;function _t(e,t){let n=ht(e,n=>{n.intersectionRatio<.5||(X&&clearTimeout(X),gt=e,X=setTimeout(()=>{gt=null,X=null,t()},150))});return()=>{gt===e&&X&&(clearTimeout(X),gt=null,X=null),n()}}function vt(e,t,n,r){let i=null;y(()=>{let a=e.value?.closest(`.player__shell`);a&&(i=ht(a,e=>{let i=t();e.intersectionRatio<.1&&i&&!i.paused()&&!n.value&&!r.value&&i.pause()}))}),v(()=>i?.())}function yt(e,t,n,r){let i=null;y(()=>{let a=e.value?.closest(`.player__shell`);a&&(i=_t(a,()=>{let e=t();e&&e.paused()&&!n.value&&!r.value&&e.play()}))}),v(()=>i?.())}function bt(e,t,n,r,i,a){function o(){let n=e();if(!(!n||!t.value)){if(!a.value){n.play();return}n.pause()}}function s(t){e()?.setCurrentTime(n.value*(t/100))}function c(){let t=e();t?.setMuted(!t.muted())}function l(t){let n=e();n&&(n.setVolume(t),n.setMuted(t===0))}function u(){r.value=!r.value}function d(t){let n=e();n&&(n.setPlaybackRate(t),i.value=t)}return{togglePlay:o,seek:s,toggleMute:c,setVolume:l,toggleLoop:u,setPlaybackRate:d}}function xt(e,t){let{isPlaying:n,hasEnded:r,isReady:i,isAdPlaying:a,isLive:o,current:s,total:c,buffered:l,vol:u,isMuted:d,isLooping:f,playbackRate:p,supportsPlaybackRate:m,supportsCaptions:h,captionTracks:g,activeCaptionIndex:_,supportsQuality:v,qualityLevels:y,currentQualityIndex:b,isAutoQuality:x,supportsPip:S,isPipActive:C,hasStarted:w,isError:T,errorMessage:E}=e,{fire:D,pauseThisPlayer:O,positionMemory:k,quartiles:A,buffering:j,fullscreen:M}=t;function N(e){i.value=!0,m.value=e.featuresPlaybackRate();function t(){g.value=e.getCaptionTracks(),h.value=e.featuresCaptions();let t=e.getActiveCaptionTrack();t!==_.value&&(_.value=t,w.value&&D(`captionchange`,{captionIndex:t}))}t(),e.on(`captionschange`,t);function N(){y.value=e.getQualityLevels(),v.value=e.featuresQuality();let t=e.getCurrentQuality(),n=e.isAutoQuality(),r=t!==b.value||n!==x.value;b.value=t,x.value=n,r&&w.value&&D(`qualitychange`,{qualityIndex:n?null:t})}N(),e.on(`qualitychange`,N);function P(){S.value=e.featuresPip();let t=e.isPipActive();t!==C.value&&(C.value=t,w.value&&D(`pipchange`,{isPipActive:t}))}P(),e.on(`pipchange`,P);let F=()=>{let t=e.duration();if(t===1/0){o.value=!0;return}o.value=!1,t&&t>0&&isFinite(t)&&(c.value=t)};e.on(`adstart`,()=>{$e(O),a.value=!0,D(`adstart`)}),e.on(`adend`,()=>{a.value=!1,D(`adend`)}),e.on(`play`,()=>{$e(O),w.value=!0,n.value=!0,r.value=!1,o.value||k.restoreOnce(e),D(`play`)}),e.on(`pause`,()=>{n.value=!1,o.value||k.save(e),D(`pause`)}),e.on(`ended`,()=>{if(n.value=!1,A.reset(),j.reset(),f.value){e.setCurrentTime(0),e.play();return}c.value&&(s.value=c.value),r.value=!0,k.clear(),D(`ended`)}),e.on(`seeked`,()=>{D(`seeked`)}),e.on(`error`,()=>{let t=e.error();E.value=t?.message||`This video could not be played.`,T.value=!0,i.value=!0,D(`error`,{error:t})});let I=0;e.on(`timeupdate`,()=>{if(r.value)return;s.value=e.currentTime()??0,c.value||F(),m.value||=e.featuresPlaybackRate();let t=e.getActiveCaptionTrack();_.value!==t&&(_.value=t,w.value&&D(`captionchange`,{captionIndex:t})),o.value||A.checkQuartiles();let n=Date.now();w.value&&n-I>=250&&(I=n,D(`timeupdate`))}),e.on(`durationchange`,F),e.on(`progress`,()=>{let t=e.duration();l.value=t?e.bufferedEnd()/t*100:0}),e.on(`volumechange`,()=>{let t=e.muted();u.value=e.volume()??1,d.value=t??!1,w.value&&D(`volumechange`,{isMuted:t})}),e.on(`ratechange`,()=>{let t=e.playbackRate()??1;p.value=t,w.value&&D(`ratechange`,{playbackRate:t})}),j.attachPlayerEvents(e),M.attachPlayerEvents(e)}return{attachPlayerEvents:N}}function St(){return window.google?.ima?Promise.resolve():ge(`https://imasdk.googleapis.com/js/sdkloader/ima3.js`,`ima`)}function Ct(e,t,n,r){let i=document.createElement(`div`);i.className=`ima-ad-container`,e.appendChild(i);let a=n,o=null,s=null,c=null,l=!1,u=!1,d=!1,f=!1,p=!1,m=!1,h=1,g=new ResizeObserver(([e])=>{let t=window.google?.ima;if(!c||!t)return;let{width:n,height:r}=e.contentRect;c.resize(n,r,t.ViewMode.NORMAL)});g.observe(t);function _(){s?.contentComplete()}function v(t){f=t,e.classList.toggle(ie,t),t||(p=!1,e.classList.remove(ae))}function y(){if(l||!u||!d||!o||!s||!a)return;l=!0;let e=window.google?.ima;if(!e)return;o.initialize();let t=new e.AdsRequest;t.adTagUrl=a,s.requestAds(t)}function b(e){a=e,y()}St().then(()=>{if(m)return;let n=window.google?.ima;n&&(o=new n.AdDisplayContainer(i,t),s=new n.AdsLoader(o),u=!0,s.addEventListener(n.AdsManagerLoadedEvent.Type.ADS_MANAGER_LOADED,i=>{if(m)return;let a=new n.AdsRenderingSettings;a.restoreCustomPlaybackStateOnAdBreakComplete=!0,c=i.getAdsManager(t,a),t.addEventListener(`ended`,_),c.addEventListener(n.AdEvent.Type.CONTENT_PAUSE_REQUESTED,()=>{t.removeEventListener(`ended`,_),t.pause(),v(!0),r.onAdStart();let e=c?.getVolume()??1;e>0&&(h=e),r.onAdMuteChange(e===0)}),c.addEventListener(n.AdEvent.Type.CONTENT_RESUME_REQUESTED,()=>{t.addEventListener(`ended`,_),v(!1),r.onAdEnd(),t.ended||t.play()}),c.addEventListener(n.AdEvent.Type.PAUSED,()=>{p=!0,e.classList.add(ae),r.onAdPauseChange(!0)}),c.addEventListener(n.AdEvent.Type.RESUMED,()=>{p=!1,e.classList.remove(ae),r.onAdPauseChange(!1)}),c.addEventListener(n.AdEvent.Type.AD_PROGRESS,()=>{r.onAdProgress(c?.getRemainingTime()??0)}),c.addEventListener(n.AdErrorEvent.Type.AD_ERROR,e=>{v(!1),r.onError(e.getError().getMessage()),t.play()});try{c.init(t.clientWidth,t.clientHeight,n.ViewMode.NORMAL),c.start()}catch(e){r.onError(e instanceof Error?e.message:`Ad playback failed to start.`)}}),s.addEventListener(n.AdErrorEvent.Type.AD_ERROR,e=>{r.onError(e.getError().getMessage())}),y())}).catch(e=>r.onError(e.message));function x(){d=!0,y()}function S(){if(!c)return;let e=c.getVolume();e>0?(h=e,c.setVolume(0)):c.setVolume(h||1),r.onAdMuteChange(c.getVolume()===0)}return{isAdPlaying:()=>f,isAdPaused:()=>p,requestAdsOnFirstPlay:x,setAdTagUrl:b,pauseAd:()=>c?.pause(),resumeAd:()=>c?.resume(),toggleAdMute:S,dispose:()=>{m=!0,g.disconnect(),t.removeEventListener(`ended`,_),c?.destroy(),s?.destroy(),i.remove(),e.classList.remove(ie,ae)}}}function wt(e,t){let n=window.pbjs;if(!n)return Promise.resolve(t);let r=e.timeoutMs??1e3;return new Promise(i=>{let a=!1;function o(e){a||(a=!0,i(e||t))}let s=setTimeout(()=>o(t),r);n.que.push(()=>{try{n.addAdUnits(e.adUnit),n.requestBids({adUnitCodes:[e.adUnit.code],timeout:r,bidsBackHandler:()=>{clearTimeout(s);try{o(n.adServers?.gam?.buildVideoUrl({adUnit:e.adUnit,params:e.params}))}catch{o(t)}}})}catch{clearTimeout(s),o(t)}})})}function Tt(e,t){let{isAdPlaying:n,isAdPaused:r,isAdMuted:i,adRemainingTime:a}=e,{fire:o,pauseThisPlayer:s}=t,c=null,l=null;function u(e,t,u,d){if(!(u||d)||!e.parentElement)return;d&&wt(d,u).catch(()=>u).then(e=>c?.setAdTagUrl(e));function f(){!P()&&t.isPipActive()&&document.exitPictureInPicture()}function p(){!P()&&(document.hidden||!document.hasFocus())&&c?.isAdPlaying()&&c.pauseAd()}let m=nt(p),h=()=>{t.isPipActive()||p()};t.on(`pipchange`,h),l=()=>{m(),t.off(`pipchange`,h)},c=Ct(e.parentElement,e,u,{onAdStart:()=>{n.value=!0,r.value=!1,o(`adstart`),f(),p()},onAdEnd:()=>{n.value=!1,r.value=!1,a.value=0,o(`adend`)},onAdPauseChange:e=>{r.value=e,e||$e(s)},onAdMuteChange:e=>{i.value=e},onAdProgress:e=>{a.value=e},onError:e=>{n.value=!1,r.value=!1,a.value=0,console.error(`Ad playback error:`,e)}}),t.on(`play`,()=>c?.requestAdsOnFirstPlay())}return{attach:u,isAdPlaying:()=>c?.isAdPlaying()??!1,isAdPaused:()=>c?.isAdPaused()??!1,pauseAd:()=>c?.pauseAd(),resumeAd:()=>c?.resumeAd(),toggleAdMute:()=>c?.toggleAdMute(),dispose:()=>{c?.dispose(),c=null,l?.(),l=null}}}function Et(e,t,r){let i=null,a=null,o=null,s=C(!1),c=C(!1),l=C(!1),u=C(!1),d=C(!1),f=C(!1),p=C(0),m=C(!1),h=C(0),g=C(0),_=C(0),b=C(1),x=C(t.muted??t.autoplay??t.playWhenInView??!1),S=C(!1),w=C(t.playbackRate??1),T=C(!1),E=C(!1),D=C([]),O=C(null),k=C(!1),A=C([]),M=C(null),N=C(!0),P=C(!1),F=C(!1),I=C(!1),L=C(!1),z=C(``),te=C(!1),ne=n(()=>g.value?h.value/g.value*100:0),re=n(()=>Math.max(_.value,ne.value)),B=n(()=>!x.value&&b.value>0),V=()=>i,H=rt(V),U=it(G),W=dt(t.videoUrl,V,c);function G(e,n={}){r(`state-change`,{type:e,currentTime:h.value,duration:g.value,src:t.videoUrl,...n,payload:t.payload})}let ie=at(h,g,G);function ae(){!i||!o||(L.value=!1,z.value=``,i.setSrc(o.src,o.type))}function K(){if(J.isAdPlaying()){J.pauseAd();return}i?.pause()}function q(){if(J.isAdPlaying()){J.isAdPaused()?J.resumeAd():J.pauseAd();return}Y.togglePlay()}let J=Tt({isAdPlaying:u,isAdPaused:d,isAdMuted:f,adRemainingTime:p},{fire:G,pauseThisPlayer:K}),Y=bt(V,l,g,S,w,s),{attachPlayerEvents:oe}=xt({isPlaying:s,hasEnded:c,isReady:l,isAdPlaying:u,isLive:m,current:h,total:g,buffered:_,vol:b,isMuted:x,isLooping:S,playbackRate:w,supportsPlaybackRate:T,supportsCaptions:E,captionTracks:D,activeCaptionIndex:O,supportsQuality:k,qualityLevels:A,currentQualityIndex:M,isAutoQuality:N,supportsPip:P,isPipActive:F,hasStarted:I,isError:L,errorMessage:z},{fire:G,pauseThisPlayer:K,positionMemory:W,quartiles:ie,buffering:U,fullscreen:H});function se(e){i?.setCaptionTrack(e),O.value=e,I.value&&G(`captionchange`,{captionIndex:e})}function ce(e){i?.setQuality(e),M.value=e,N.value=e===null,I.value&&G(`qualitychange`,{qualityIndex:e})}function le(){i?.togglePip()}function ue(){Y.toggleLoop(),I.value&&G(`loopchange`,{isLooping:S.value})}return j(()=>t.muted,e=>{!i||e===void 0||i.setMuted(e)}),j(()=>t.playbackRate,e=>{!i||e===void 0||i.setPlaybackRate(e)}),vt(e,V,H.isFullscreen,H.isFullscreenPending),t.playWhenInView&&yt(e,V,H.isFullscreen,H.isFullscreenPending),j(I,t=>{!t||!e.value||!i||i.el===e.value||ye(e.value,i.el)}),y(async()=>{let n=Ie(t.videoUrl);if(n.embed){if(!e.value)return;let r=ze(n.key,e.value,{src:t.videoUrl,poster:t.poster,autoplay:t.autoplay,muted:t.muted??t.autoplay??t.playWhenInView,nativeUi:t.nativeUi});if(!r){L.value=!0,l.value=!0,z.value=`This platform is not yet supported.`;return}te.value=!!t.nativeUi,i=r,o={src:t.videoUrl},a=Qe(K),oe(i);return}let r=await Be(n.key,t.videoUrl).catch(()=>({src:t.videoUrl}));if(!e.value)return;o={src:r.src,type:r.type},i=Xe(e.value,{src:r.src,type:r.type,poster:r.poster||t.poster||``,autoplay:t.autoplay,muted:t.muted??t.autoplay,playbackRate:w.value});let s=ee(t.adTagUrl||r.adTagUrl||``,t.adTagParams);J.attach(e.value,i,s,t.headerBidding),a=Qe(K),oe(i)}),v(()=>{a?.(),J.dispose(),i?.dispose(),i=null}),{isPlaying:s,hasEnded:c,isReady:l,isAdPlaying:u,isAdPaused:d,isAdMuted:f,adRemainingTime:p,isLive:m,isBuffering:U.isBuffering,current:h,total:g,vol:b,isMuted:x,isAudible:B,isLooping:S,playbackRate:w,hasStarted:I,isError:L,errorMessage:z,progress:ne,bufferedDisplay:re,isFullscreen:H.isFullscreen,isFullscreenPending:H.isFullscreenPending,fmt:R,fire:G,retry:ae,togglePlay:q,seek:Y.seek,toggleMute:Y.toggleMute,setVolume:Y.setVolume,toggleFullscreen:H.toggleFullscreen,markFullscreenPending:H.markFullscreenPending,toggleLoop:ue,toggleAdMute:J.toggleAdMute,setPlaybackRate:Y.setPlaybackRate,supportsPlaybackRate:T,supportsCaptions:E,captionTracks:D,activeCaptionIndex:O,setCaptionTrack:se,supportsQuality:k,qualityLevels:A,currentQualityIndex:M,isAutoQuality:N,setQuality:ce,supportsPip:P,isPipActive:F,togglePip:le,nativeUi:te}}function Dt(e){let t=C(!0),n=C(!1),r=null,i=0;function a(e=400){i=Date.now()+e}function o(e=3500){clearTimeout(r??void 0),r=setTimeout(()=>{t.value=!1,n.value=!1},e)}function s(){clearTimeout(r??void 0)}function c(){n.value=!0,t.value=!0,o()}function l(){n.value=!1,e.value&&o()}function u(){e.value&&o()}function d(){t.value=!0,e.value&&o()}function f(){t.value=!0,o()}function p(){Date.now()<i||e.value&&o(600)}return j(e,e=>{if(!e){clearTimeout(r??void 0),t.value=!0;return}o()}),v(()=>clearTimeout(r??void 0)),{showHUD:t,isOpen:n,scheduleHide:o,pauseHide:s,onVideoTap:d,onMouseMove:f,onMouseLeave:p,openControls:c,closeControls:l,keepOpen:u,suppressMouseLeave:a}}const Z=Symbol(`player`),Ot=Symbol(`hud`),kt=Symbol(`action`),At=Symbol(`compact`),jt=Symbol(`playlist`);function Q(e){let t=f(e);if(t===void 0)throw Error(`[video-player] missing "${String(e.description)}" context — this component must be rendered inside <VideoPlayer>`);return t}function Mt(e,t){return{hudVisible:n(()=>!e.isReady||e.isError?!1:t.showHUD),popupVisible:n(()=>!e.isReady||e.isError?!1:e.isFullscreen?t.showHUD:t.isOpen)}}function Nt(e,t){return n(()=>!(!e?.value||t.isFullscreen))}function Pt(e,t,r){let i=n(()=>e?.value??null),a=n(()=>!!i.value&&typeof i.value==`object`),o=n(()=>a.value?i.value:null),s=n(()=>i.value===`mute`?t.isMuted?`Unmute`:`Mute`:i.value===`loop`?t.isLooping?`Disable loop`:`Loop`:i.value===`autoplay`?r.autoAdvance?`Disable autoplay next`:`Autoplay next`:``),c=n(()=>i.value===`mute`?t.isMuted:i.value===`loop`?t.isLooping:i.value===`autoplay`&&r.autoAdvance);function l(){i.value===`mute`?t.toggleMute():i.value===`loop`?t.toggleLoop():i.value===`autoplay`&&r.toggleAutoAdvance()}return{currentAction:i,isCustom:a,customAction:o,builtinLabel:s,builtinActive:c,onBuiltinClick:l}}var $=(e,t)=>{let n=e.__vccOpts||e;for(let[e,r]of t)n[e]=r;return n};const Ft={},It={viewBox:`0 0 24 24`,fill:`currentColor`};function Lt(e,t){return b(),a(`svg`,It,[...t[0]||=[o(`path`,{d:`M20 11H7.83l5.59-5.59L12 4l-8 8 8 8 1.41-1.41L7.83 13H20v-2z`},null,-1)]])}var Rt=$(Ft,[[`render`,Lt]]);const zt={},Bt={viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`2`,"stroke-linecap":`round`,"stroke-linejoin":`round`};function Vt(e,t){return b(),a(`svg`,Bt,[...t[0]||=[o(`rect`,{x:`2`,y:`5`,width:`20`,height:`14`,rx:`2`},null,-1),o(`path`,{d:`M9.5 10.5a2 2 0 0 0-3.5 1.3v.4a2 2 0 0 0 3.5 1.3`},null,-1),o(`path`,{d:`M17.5 10.5a2 2 0 0 0-3.5 1.3v.4a2 2 0 0 0 3.5 1.3`},null,-1)]])}var Ht=$(zt,[[`render`,Vt]]);const Ut={},Wt={viewBox:`0 0 24 24`,fill:`currentColor`};function Gt(e,t){return b(),a(`svg`,Wt,[...t[0]||=[o(`path`,{d:`M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z`},null,-1)]])}var Kt=$(Ut,[[`render`,Gt]]);const qt={},Jt={viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`2`,"stroke-linecap":`round`,"stroke-linejoin":`round`};function Yt(e,t){return b(),a(`svg`,Jt,[...t[0]||=[s(`<line x1="4" y1="6" x2="20" y2="6"></line><line x1="4" y1="12" x2="20" y2="12"></line><line x1="4" y1="18" x2="20" y2="18"></line><circle cx="9" cy="6" r="2.5" fill="currentColor" stroke="none"></circle><circle cx="15" cy="12" r="2.5" fill="currentColor" stroke="none"></circle><circle cx="9" cy="18" r="2.5" fill="currentColor" stroke="none"></circle>`,6)]])}var Xt=$(qt,[[`render`,Yt]]);const Zt={},Qt={viewBox:`0 0 24 24`,fill:`currentColor`};function $t(e,t){return b(),a(`svg`,Qt,[...t[0]||=[o(`path`,{d:`M4 12l1.41 1.41L11 7.83V20h2V7.83l5.59 5.58L20 12l-8-8-8 8z`},null,-1)]])}var en=$(Zt,[[`render`,$t]]);const tn={},nn={viewBox:`0 0 24 24`,fill:`currentColor`};function rn(e,t){return b(),a(`svg`,nn,[...t[0]||=[o(`path`,{d:`M7 14H5v5h5v-2H7v-3zm-2-4h2V7h3V5H5v5zm12 7h-3v2h5v-5h-2v3zM14 5v2h3v3h2V5h-5z`},null,-1)]])}var an=$(tn,[[`render`,rn]]);const on={},sn={viewBox:`0 0 24 24`,fill:`currentColor`};function cn(e,t){return b(),a(`svg`,sn,[...t[0]||=[o(`path`,{d:`M5 16h3v3h2v-5H5v2zm3-8H5v2h5V5H8v3zm6 11h2v-3h3v-2h-5v5zm2-11V5h-2v5h5V8h-3z`},null,-1)]])}var ln=$(on,[[`render`,cn]]);const un={},dn={viewBox:`0 0 24 24`,fill:`currentColor`};function fn(e,t){return b(),a(`svg`,dn,[...t[0]||=[o(`path`,{d:`M7 7h10v3l4-4-4-4v3H5v6h2V7zm10 10H7v-3l-4 4 4 4v-3h12v-6h-2v4z`},null,-1)]])}var pn=$(un,[[`render`,fn]]);const mn={},hn={viewBox:`0 0 24 24`,fill:`currentColor`};function gn(e,t){return b(),a(`svg`,hn,[...t[0]||=[o(`circle`,{cx:`5`,cy:`12`,r:`2`},null,-1),o(`circle`,{cx:`12`,cy:`12`,r:`2`},null,-1),o(`circle`,{cx:`19`,cy:`12`,r:`2`},null,-1)]])}var _n=$(mn,[[`render`,gn]]);const vn={},yn={viewBox:`0 0 24 24`,fill:`currentColor`};function bn(e,t){return b(),a(`svg`,yn,[...t[0]||=[o(`path`,{d:`M6 19h4V5H6v14zm8-14v14h4V5h-4z`},null,-1)]])}var xn=$(vn,[[`render`,bn]]);const Sn={},Cn={viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`2`,"stroke-linecap":`round`,"stroke-linejoin":`round`};function wn(e,t){return b(),a(`svg`,Cn,[...t[0]||=[o(`rect`,{x:`2`,y:`4`,width:`20`,height:`16`,rx:`2`},null,-1),o(`rect`,{x:`12`,y:`11`,width:`8`,height:`6`,rx:`1`,fill:`currentColor`,stroke:`none`},null,-1)]])}var Tn=$(Sn,[[`render`,wn]]);const En={},Dn={viewBox:`0 0 24 24`,fill:`currentColor`};function On(e,t){return b(),a(`svg`,Dn,[...t[0]||=[o(`path`,{d:`M8 5v14l11-7z`},null,-1)]])}var kn=$(En,[[`render`,On]]);const An={},jn={viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`2`,"stroke-linecap":`round`,"stroke-linejoin":`round`};function Mn(e,t){return b(),a(`svg`,jn,[...t[0]||=[o(`rect`,{x:`2`,y:`6`,width:`20`,height:`12`,rx:`2`},null,-1),o(`path`,{d:`M7 14v-4M12 14V8M17 14v-2`},null,-1)]])}var Nn=$(An,[[`render`,Mn]]);const Pn={},Fn={viewBox:`0 0 24 24`,fill:`currentColor`};function In(e,t){return b(),a(`svg`,Fn,[...t[0]||=[o(`path`,{d:`M12 5V1L7 6l5 5V7c3.31 0 6 2.69 6 6s-2.69 6-6 6-6-2.69-6-6H4c0 4.42 3.58 8 8 8s8-3.58 8-8-3.58-8-8-8z`},null,-1)]])}var Ln=$(Pn,[[`render`,In]]);const Rn={},zn={viewBox:`0 0 24 24`,fill:`currentColor`};function Bn(e,t){return b(),a(`svg`,zn,[...t[0]||=[o(`path`,{d:`M6 18l8.5-6L6 6v12zM16 6v12h2V6h-2z`},null,-1)]])}var Vn=$(Rn,[[`render`,Bn]]);const Hn={},Un={viewBox:`0 0 24 24`,fill:`currentColor`};function Wn(e,t){return b(),a(`svg`,Un,[...t[0]||=[o(`path`,{d:`M16.5 12A4.5 4.5 0 0 0 14 7.97v2.21l2.45 2.45c.03-.2.05-.41.05-.63zm2.5 0c0 .94-.2 1.82-.54 2.64l1.51 1.51A8.796 8.796 0 0 0 21 12c0-4.28-2.99-7.86-7-8.77v2.06c2.89.86 5 3.54 5 6.71zM4.27 3L3 4.27 7.73 9H3v6h4l5 5v-6.73l4.25 4.25c-.67.52-1.42.93-2.25 1.18v2.06A8.99 8.99 0 0 0 17.73 18L19 19.27 20.27 18 5.27 3 4.27 3zM12 4L9.91 6.09 12 8.18V4z`},null,-1)]])}var Gn=$(Hn,[[`render`,Wn]]);const Kn={},qn={viewBox:`0 0 24 24`,fill:`currentColor`};function Jn(e,t){return b(),a(`svg`,qn,[...t[0]||=[o(`path`,{d:`M3 9v6h4l5 5V4L7 9H3zm13.5 3A4.5 4.5 0 0 0 14 7.97v8.05c1.48-.73 2.5-2.25 2.5-4.02z`},null,-1)]])}var Yn=$(Kn,[[`render`,Jn]]);function Xn(e,t){return n(()=>e.value?e.value:t.value?document.getElementById(t.value)??null:null)}const Zn=[`aria-label`];var Qn=$(u({__name:`PlayButton`,props:{player:{type:[Object,null],required:!1},for:{type:String,required:!1}},setup(e){let t=e,i=Xn(k(t,`player`),k(t,`for`)),o=n(()=>i.value?.isError?`error`:i.value?.hasEnded?`ended`:i.value?.isPlaying?`playing`:`idle`),s=n(()=>{switch(o.value){case`error`:return`Retry`;case`ended`:return`Replay`;case`playing`:return`Pause`;default:return`Play`}});function c(){let e=i.value;e&&(e.isError?e.retry():e.togglePlay())}return(e,t)=>(b(),a(`button`,{type:`button`,class:`mvp-play-button`,"aria-label":s.value,onClick:c},[T(e.$slots,`default`,{isPlaying:A(i)?.isPlaying??!1,hasEnded:A(i)?.hasEnded??!1,isError:A(i)?.isError??!1},()=>[o.value===`error`||o.value===`ended`?(b(),r(A(Ln),{key:0})):o.value===`playing`?(b(),r(A(xn),{key:1})):(b(),r(A(kn),{key:2}))],!0)],8,Zn))}}),[[`__scopeId`,`data-v-218255bd`]]),$n=$(u({__name:`Spinner`,props:{size:{type:Number,required:!1,default:14},borderWidth:{type:Number,required:!1,default:2}},setup(e){return(t,n)=>(b(),a(`div`,{class:`spinner`,style:_({width:`${e.size}px`,height:`${e.size}px`,borderWidth:`${e.borderWidth}px`})},null,4))}}),[[`__scopeId`,`data-v-259be2b2`]]);const er={key:0,class:`mvp-buffering`};var tr=$(u({__name:`Buffering`,props:{player:{type:[Object,null],required:!1},for:{type:String,required:!1}},setup(e){let t=e,n=Xn(k(t,`player`),k(t,`for`));return(e,t)=>A(n)?.isBuffering?(b(),a(`div`,er,[T(e.$slots,`default`,{},()=>[l($n)],!0)])):i(`v-if`,!0)}}),[[`__scopeId`,`data-v-454fec7f`]]),nr=u({__name:`VolumeIcon`,props:{isAudible:{type:Boolean,required:!0}},setup(e){return(t,n)=>e.isAudible?(b(),r(A(Yn),{key:0})):(b(),r(A(Gn),{key:1}))}});const rr={class:`hud`},ir=[`aria-label`],ar=[`aria-label`],or=[`aria-label`],sr=[`aria-label`,`innerHTML`],cr={key:4,class:`hud__spacer`},lr={class:`hud__play-wrap`};var ur=$(u({__name:`HudButtons`,setup(t){let n=Q(Z),r=Q(Ot),{currentAction:s,isCustom:c,customAction:u,builtinLabel:d,builtinActive:p,onBuiltinClick:m}=Pt(f(kt),n,Q(jt));return(t,f)=>(b(),a(`div`,rr,[!A(r).isOpen&&!A(n).isFullscreen?(b(),a(e,{key:0},[A(s)===`mute`?(b(),a(`button`,{key:0,class:h([`hud__btn`,{"hud__btn--active":A(p)}]),"aria-label":A(d),onClick:f[0]||=N((...e)=>A(m)&&A(m)(...e),[`stop`])},[l(nr,{"is-audible":A(n).isAudible},null,8,[`is-audible`])],10,ir)):A(s)===`loop`?(b(),a(`button`,{key:1,class:h([`hud__btn`,{"hud__btn--active":A(p)}]),"aria-label":A(d),onClick:f[1]||=N((...e)=>A(m)&&A(m)(...e),[`stop`])},[l(A(pn))],10,ar)):A(s)===`autoplay`?(b(),a(`button`,{key:2,class:h([`hud__btn`,{"hud__btn--active":A(p)}]),"aria-label":A(d),onClick:f[2]||=N((...e)=>A(m)&&A(m)(...e),[`stop`])},[l(A(Vn))],10,or)):A(c)&&A(u)?(b(),a(`button`,{key:3,class:`hud__btn`,"aria-label":A(u).label,onClick:f[3]||=N(e=>A(u).onClick(),[`stop`]),innerHTML:A(u).icon},null,8,sr)):(b(),a(`div`,cr))],64)):i(`v-if`,!0),o(`div`,lr,[l(Qn,{player:A(n),class:`ppbtn ppbtn--lg`},null,8,[`player`]),l(tr,{player:A(n),class:`hud__buf-spinner`},null,8,[`player`])]),!A(r).isOpen&&!A(n).isFullscreen?(b(),a(`button`,{key:1,class:`hud__btn`,"aria-label":`Show controls`,onClick:f[4]||=N((...e)=>A(r).openControls&&A(r).openControls(...e),[`stop`])},[l(A(Xt))])):i(`v-if`,!0)]))}}),[[`__scopeId`,`data-v-a6d118e7`]]);function dr(e,t,n){if(!document.startViewTransition||!e.value){n();return}e.value.style.viewTransitionName=t,document.startViewTransition(async()=>{n(),await m()}).finished.finally(()=>{e.value&&(e.value.style.viewTransitionName=``)})}const fr=[`aria-label`];var pr=$(u({__name:`FullscreenButton`,props:{player:{type:[Object,null],required:!1},for:{type:String,required:!1}},setup(e){let t=e,n=Xn(k(t,`player`),k(t,`for`));return(e,t)=>(b(),a(`button`,{type:`button`,class:`mvp-fullscreen-button`,"aria-label":A(n)?.isFullscreen?`Exit fullscreen`:`Enter fullscreen`,onClick:t[0]||=e=>A(n)?.toggleFullscreen()},[T(e.$slots,`default`,{isFullscreen:A(n)?.isFullscreen??!1},()=>[A(n)?.isFullscreen?(b(),r(A(ln),{key:0})):(b(),r(A(an),{key:1}))],!0)],8,fr))}}),[[`__scopeId`,`data-v-b93a5017`]]);const mr=[`aria-pressed`];var hr=$(u({__name:`PipButton`,props:{player:{type:[Object,null],required:!1},for:{type:String,required:!1}},setup(e){let t=e,n=Xn(k(t,`player`),k(t,`for`));return(e,t)=>A(n)?.supportsPip?(b(),a(`button`,{key:0,type:`button`,class:h([`mvp-pip-button`,{"mvp-pip-button--active":A(n)?.isPipActive}]),"aria-pressed":A(n)?.isPipActive??!1,"aria-label":`Toggle Picture-in-Picture`,onClick:t[0]||=e=>A(n)?.togglePip()},[T(e.$slots,`default`,{isPipActive:A(n)?.isPipActive??!1},()=>[l(A(Tn))],!0)],10,mr)):i(`v-if`,!0)}}),[[`__scopeId`,`data-v-f654d93e`]]);function gr(e){let t=C(!1),r=C(null),i=!1,a=null,o=n(()=>{let t=e.value;return t?.total?t.current/t.total*100:0}),s=n(()=>r.value??o.value),c=n(()=>r.value!==null),l=n(()=>{let t=e.value?.total??0;return s.value/100*t});function u(){a&&clearTimeout(a),a=null,r.value=null}function d(n){let o=e.value;o?.total&&(t.value||=(i=o.isPlaying,o.isPlaying&&o.togglePlay(),!0),a&&clearTimeout(a),a=null,r.value=Number(n.target.value))}function f(n){if(!t.value)return;t.value=!1;let o=e.value;if(!o)return;let s=Number(n.target.value);r.value=s,o.seek(s),i&&o.togglePlay(),a&&clearTimeout(a),a=setTimeout(u,3e3)}return j(()=>e.value?.current,()=>{let t=e.value;if(r.value===null||!t?.total)return;let n=r.value/100*t.total;Math.abs(t.current-n)<1&&u()}),v(u),{scrubbing:c,displayPercent:s,previewSeconds:l,onInput:d,onChange:f}}const _r={class:`mvp-scrubber-wrap`},vr=[`value`];var yr=$(u({inheritAttrs:!1,__name:`Scrubber`,props:{player:{type:[Object,null],required:!1},for:{type:String,required:!1}},setup(e){let t=e,n=Xn(k(t,`player`),k(t,`for`)),{scrubbing:r,displayPercent:s,previewSeconds:c,onInput:l,onChange:u}=gr(n),d=e=>R(e,!0);return(e,t)=>(b(),a(`div`,_r,[o(`input`,p({type:`range`,min:`0`,max:`100`,step:`0.1`,value:A(s),class:`mvp-scrubber`},e.$attrs,{style:{"--p":`${A(s)}%`,"--b":`${A(n)?.bufferedDisplay??0}%`},onInput:t[0]||=(...e)=>A(l)&&A(l)(...e),onChange:t[1]||=(...e)=>A(u)&&A(u)(...e)}),null,16,vr),T(e.$slots,`preview`,{scrubbing:A(r),percent:A(s),previewSeconds:A(c),formatTime:d},()=>[A(r)?(b(),a(`div`,{key:0,class:`mvp-scrubber__preview`,style:_({left:`${A(s)}%`})},O(d(A(c))),5)):i(`v-if`,!0)],!0)]))}}),[[`__scopeId`,`data-v-043f1bc8`]]),br=$(u({__name:`TimeDisplay`,props:{player:{type:[Object,null],required:!1},for:{type:String,required:!1}},setup(t){let n=t,r=Xn(k(n,`player`),k(n,`for`));return(t,n)=>(b(),a(`span`,{class:h([`mvp-time-display`,{"mvp-time-display--live":A(r)?.isLive}])},[T(t.$slots,`default`,{isLive:A(r)?.isLive??!1,current:A(r)?.current??0,total:A(r)?.total??0,formatTime:A(R)},()=>[A(r)?.isLive?(b(),a(e,{key:0},[n[0]||=o(`span`,{class:`mvp-time-display__dot`},null,-1),n[1]||=c(`Live `,-1)],64)):(b(),a(e,{key:1},[c(O(A(R)(A(r)?.current??0))+` / `+O(A(R)(A(r)?.total??0)),1)],64))],!0)],2))}}),[[`__scopeId`,`data-v-0285c811`]]);const xr={class:`mvp-volume-wrap`},Sr=[`value`],Cr={class:`mvp-volume-pct`};var wr=$(u({inheritAttrs:!1,__name:`VolumeSlider`,props:{player:{type:[Object,null],required:!1},for:{type:String,required:!1}},setup(e){let t=e,r=Xn(k(t,`player`),k(t,`for`)),i=n(()=>{let e=r.value;return e?e.isMuted?0:Math.round(e.vol*100):0});function s(e){r.value?.setVolume(Number(e.target.value)/100)}return(e,t)=>(b(),a(`div`,xr,[o(`input`,p({type:`range`,min:`0`,max:`100`,step:`1`,value:i.value,class:`mvp-volume-slider`},e.$attrs,{style:{"--v":`${i.value}%`},"aria-label":`Volume`,onInput:s}),null,16,Sr),T(e.$slots,`default`,{percent:i.value},()=>[o(`span`,Cr,O(i.value)+`%`,1)],!0)]))}}),[[`__scopeId`,`data-v-fbb2c86c`]]);const Tr={class:`controls__vol-header`},Er=[`aria-label`],Dr={class:`controls__vol-body`},Or={class:`controls__vol-pct`};var kr=$(u({__name:`VolumePanel`,emits:[`back`],setup(t){let n=Q(Z),r=Q(Ot);return(t,i)=>(b(),a(e,null,[o(`div`,Tr,[o(`button`,{class:`controls__btn`,"aria-label":`Back`,onClick:i[0]||=e=>t.$emit(`back`)},[l(A(Rt))]),i[6]||=o(`span`,{class:`controls__vol-label`},`Volume`,-1),o(`button`,{class:`controls__btn`,"aria-label":A(n).isMuted?`Unmute`:`Mute`,onClick:i[1]||=e=>A(n).toggleMute()},[l(nr,{"is-audible":A(n).isAudible},null,8,[`is-audible`])],8,Er)]),o(`div`,Dr,[l(wr,{player:A(n),class:`controls__vol-slider`,onMousedown:i[2]||=e=>A(r).pauseHide(),onMouseup:i[3]||=e=>A(r).scheduleHide(),onTouchstartPassive:i[4]||=e=>A(r).pauseHide(),onTouchend:i[5]||=e=>A(r).scheduleHide()},{default:M(({percent:e})=>[o(`span`,Or,O(e)+`%`,1)]),_:1},8,[`player`])])],64))}}),[[`__scopeId`,`data-v-10b0ae67`]]);function Ar(e){function t(){let t=q.indexOf(e.playbackRate);e.setPlaybackRate(q[(t+1)%q.length])}function n(e){return`${e}×`}return{cycleRate:t,fmtRate:n}}function jr(e){function t(){let t=e.captionTracks;if(!t.length)return;let n=t[t.findIndex(t=>t.index===e.activeCaptionIndex)+1];e.setCaptionTrack(n?n.index:null)}function n(){return e.captionTracks.find(t=>t.index===e.activeCaptionIndex)?.label??`Off`}return{cycleCaptionTrack:t,currentCaptionLabel:n}}function Mr(e){function t(){let t=e.qualityLevels;if(!t.length)return;if(e.isAutoQuality){e.setQuality(t[t.length-1].index);return}let n=t.findIndex(t=>t.index===e.currentQualityIndex);e.setQuality(n<=0?null:t[n-1].index)}function n(){return e.isAutoQuality?`Auto`:e.qualityLevels.find(t=>t.index===e.currentQualityIndex)?.label??`Auto`}return{cycleQuality:t,currentQualityLabel:n}}const Nr=[`aria-label`],Pr={key:0,class:`controls__more-row-label`},Fr=[`innerHTML`],Ir={key:1},Lr={key:2,class:`controls__more-value`};var Rr=$(u({__name:`MoreMenuRow`,props:{label:{type:String,required:!0},ariaLabel:{type:String,required:!1,default:``},icon:{type:null,required:!1},iconHtml:{type:String,required:!1},active:{type:Boolean,required:!1,default:!1},value:{type:String,required:!1}},emits:[`click`],setup(e){return(t,n)=>(b(),a(`button`,{class:h([`controls__more-row`,{"controls__more-row--active":e.active}]),"aria-label":e.ariaLabel||e.label,onClick:n[0]||=e=>t.$emit(`click`)},[e.icon||e.iconHtml?(b(),a(`span`,Pr,[e.icon?(b(),r(E(e.icon),{key:0,class:`controls__more-row-icon`})):(b(),a(`span`,{key:1,class:`controls__more-row-icon`,innerHTML:e.iconHtml},null,8,Fr)),c(` `+O(e.label),1)])):(b(),a(`span`,Ir,O(e.label),1)),e.value===void 0?i(`v-if`,!0):(b(),a(`span`,Lr,O(e.value),1))],10,Nr))}}),[[`__scopeId`,`data-v-47ca5bfc`]]);const zr={class:`controls__more-header`};var Br=$(u({__name:`MoreMenu`,props:{isCustom:{type:Boolean,required:!0},customAction:{type:[Object,null],required:!0}},emits:[`back`],setup(t){let n=Q(Z),s=Q(Ot),c=Q(jt),{cycleRate:u,fmtRate:d}=Ar(n),{cycleCaptionTrack:f,currentCaptionLabel:p}=jr(n),{cycleQuality:m,currentQualityLabel:h}=Mr(n);return(g,_)=>(b(),a(e,null,[o(`div`,zr,[o(`button`,{class:`controls__btn`,"aria-label":`Back`,onClick:_[0]||=e=>g.$emit(`back`)},[l(A(Rt))]),_[5]||=o(`span`,{class:`controls__more-label`},`More`,-1)]),o(`div`,{class:`controls__more-body`,onTouchstartPassive:_[4]||=e=>A(s).keepOpen()},[A(n).supportsPlaybackRate?(b(),r(Rr,{key:0,label:`Playback speed`,value:A(d)(A(n).playbackRate),onClick:A(u)},null,8,[`value`,`onClick`])):i(`v-if`,!0),l(Rr,{label:`Loop`,"aria-label":`Toggle loop`,icon:A(pn),active:A(n).isLooping,value:A(n).isLooping?`On`:`Off`,onClick:_[1]||=e=>A(n).toggleLoop()},null,8,[`icon`,`active`,`value`]),A(n).supportsCaptions?(b(),r(Rr,{key:1,label:`Captions`,icon:A(Ht),active:A(n).activeCaptionIndex!==null,value:A(p)(),onClick:A(f)},null,8,[`icon`,`active`,`value`,`onClick`])):i(`v-if`,!0),A(n).supportsQuality?(b(),r(Rr,{key:2,label:`Quality`,icon:A(Nn),active:!A(n).isAutoQuality,value:A(h)(),onClick:A(m)},null,8,[`icon`,`active`,`value`,`onClick`])):i(`v-if`,!0),A(c).hasPlaylist?(b(),r(Rr,{key:3,label:`Autoplay next`,"aria-label":`Toggle autoplay next`,icon:A(Vn),active:A(c).autoAdvance,value:A(c).autoAdvance?`On`:`Off`,onClick:_[2]||=e=>A(c).toggleAutoAdvance()},null,8,[`icon`,`active`,`value`])):i(`v-if`,!0),t.isCustom&&t.customAction?(b(),r(Rr,{key:4,label:t.customAction.label,"icon-html":t.customAction.icon,onClick:_[3]||=e=>t.customAction.onClick()},null,8,[`label`,`icon-html`])):i(`v-if`,!0)],32)],64))}}),[[`__scopeId`,`data-v-e89a8208`]]);const Vr={class:`controls__row`},Hr={class:`controls__play-wrap`},Ur={class:`controls__fs-wrap`};var Wr=$(u({__name:`ControlsPopup`,setup(t){let s=Q(Z),c=Q(Ot),u=Q(jt),d=Nt(f(At),s),{isCustom:p,customAction:m}=Pt(f(kt),s,u),g=C(!1),_=C(!1),x=C(null),S=n(()=>s.isLooping||s.playbackRate!==1||u.autoAdvance);function w(e){return!x.value||x.value.contains(e)?!1:(c.closeControls(),!0)}function T(e){w(e.target)}function E(e){w(e.target)&&e.preventDefault()}y(()=>{s.fire(`controlsopen`,{element:x.value}),document.addEventListener(`click`,T,!0),document.addEventListener(`touchend`,E,!0)}),v(()=>{g.value=!1,_.value=!1,s.fire(`controlsclose`,{element:x.value}),document.removeEventListener(`click`,T,!0),document.removeEventListener(`touchend`,E,!0)});function D(e){c.suppressMouseLeave(),dr(x,`controls-popup`,e)}function O(){if(P()){s.toggleMute();return}D(()=>{g.value=!0})}function k(){D(()=>{_.value=!0})}return(t,n)=>(b(),a(`div`,{ref_key:`popupEl`,ref:x,class:h([`controls`,{"controls--fs":A(s).isFullscreen,"controls--compact":A(d)}]),onMousemove:n[7]||=N((...e)=>A(c).keepOpen&&A(c).keepOpen(...e),[`stop`])},[g.value?(b(),r(kr,{key:0,onBack:n[0]||=e=>D(()=>g.value=!1)})):_.value?(b(),r(Br,{key:1,"is-custom":A(p),"custom-action":A(m),onBack:n[1]||=e=>D(()=>_.value=!1)},null,8,[`is-custom`,`custom-action`])):(b(),a(e,{key:2},[A(s).isLive?i(`v-if`,!0):(b(),r(yr,{key:0,player:A(s),class:`controls__seek`,onMousedown:n[2]||=e=>A(c).pauseHide(),onMouseup:n[3]||=e=>A(c).scheduleHide(),onTouchstartPassive:n[4]||=e=>A(c).pauseHide(),onTouchend:n[5]||=e=>A(c).scheduleHide()},null,8,[`player`])),o(`div`,Vr,[o(`div`,Hr,[l(tr,{player:A(s)},null,8,[`player`]),A(s).isBuffering?i(`v-if`,!0):(b(),r(Qn,{key:0,player:A(s),class:`ppbtn ppbtn--sm`},null,8,[`player`]))]),l(br,{player:A(s),class:`controls__time-display`},null,8,[`player`]),A(u).hasNext?(b(),a(`button`,{key:0,class:`controls__btn`,"aria-label":`Play next`,onClick:n[6]||=e=>A(u).playNext()},[l(A(Vn))])):i(`v-if`,!0),o(`button`,{class:`controls__btn`,"aria-label":`Volume`,onClick:O},[l(nr,{"is-audible":A(s).isAudible},null,8,[`is-audible`])]),o(`button`,{class:h([`controls__btn controls__btn--more`,{"controls__btn--active":S.value}]),"aria-label":`More`,onClick:k},[l(A(_n))],2),l(hr,{player:A(s),class:`controls__btn controls__btn--pip`},null,8,[`player`]),o(`div`,Ur,[A(s).isFullscreenPending?(b(),r($n,{key:0})):(b(),r(pr,{key:1,player:A(s),class:`controls__btn`},null,8,[`player`]))])])],64))],34))}}),[[`__scopeId`,`data-v-5712aad4`]]);const Gr={key:0,class:`overlay__spinner`},Kr={key:0,class:`overlay__error`};var qr=$(u({__name:`PlayerOverlay`,setup(n){let r=Q(Z),{hudVisible:s,popupVisible:c}=Mt(r,Q(Ot));return(n,u)=>(b(),a(e,null,[l(t,{name:`fade`},{default:M(()=>[!A(r).isReady&&!A(r).isError?(b(),a(`div`,Gr,[l($n,{size:40,"border-width":3})])):i(`v-if`,!0)]),_:1}),l(t,{name:`fade`},{default:M(()=>[A(r).isError?(b(),a(`div`,Kr,[o(`p`,null,O(A(r).errorMessage||`This video could not be played.`),1),o(`button`,{class:`overlay__retry`,onClick:u[0]||=N((...e)=>A(r).retry&&A(r).retry(...e),[`stop`])},`Retry`)])):i(`v-if`,!0)]),_:1}),o(`div`,{class:h([`overlay__hud`,{"overlay__hud--visible":A(s)}])},[l(ur)],2),l(t,{name:`popup`},{default:M(()=>[A(c)?(b(),a(`div`,{key:0,class:h([`overlay__popup`,{"overlay__popup--fs":A(r).isFullscreen}])},[l(Wr)],2)):i(`v-if`,!0)]),_:1})],64))}}),[[`__scopeId`,`data-v-f3307b98`]]);const Jr={class:`ad-overlay`},Yr={class:`ad-overlay__bar`},Xr={class:`ad-overlay__badge`},Zr={key:0,class:`ad-overlay__countdown`},Qr=[`aria-label`],$r=[`aria-label`];var ei=$(u({__name:`AdOverlay`,setup(e){let t=Q(Z),s=n(()=>t.adRemainingTime>0?t.fmt(t.adRemainingTime):``);return(e,n)=>(b(),a(`div`,Jr,[o(`div`,Yr,[o(`div`,Xr,[n[2]||=o(`span`,null,`Ad`,-1),s.value?(b(),a(`span`,Zr,O(s.value),1)):i(`v-if`,!0)]),o(`button`,{class:`ad-overlay__btn`,"aria-label":A(t).isAdPaused?`Resume ad`:`Pause ad`,onClick:n[0]||=e=>A(t).togglePlay()},[A(t).isAdPaused?(b(),r(A(kn),{key:0})):(b(),r(A(xn),{key:1}))],8,Qr),o(`button`,{class:`ad-overlay__btn`,"aria-label":A(t).isAdMuted?`Unmute ad`:`Mute ad`,onClick:n[1]||=e=>A(t).toggleAdMute()},[A(t).isAdMuted?(b(),r(A(Gn),{key:0})):(b(),r(A(Yn),{key:1}))],8,$r)])]))}}),[[`__scopeId`,`data-v-23efcc8b`]]);const ti={class:`player`},ni={"data-mvp-player":``},ri=[`poster`],ii=[`src`,`kind`,`srclang`,`label`,`default`],ai={key:3,class:`player__native-play`};var oi=$(u({__name:`VideoPlayer`,props:{videoUrl:{type:String,required:!0},title:{type:String,required:!1,default:``},poster:{type:String,required:!1,default:``},aspectRatio:{type:String,required:!1,default:K},adTagUrl:{type:String,required:!1,default:``},adTagParams:{type:Object,required:!1},headerBidding:{type:Object,required:!1},tracks:{type:Array,required:!1,default:()=>[]},autoplay:{type:Boolean,required:!1,default:!1},muted:{type:Boolean,required:!1,default:void 0},playbackRate:{type:Number,required:!1},nativeUi:{type:Boolean,required:!1,default:!1},autoStage:{type:Boolean,required:!1,default:!1},lazy:{type:Boolean,required:!1,default:!1},payload:{type:Object,required:!1,default:()=>({})},action:{type:[String,Object,null],required:!1,default:null},disableTapCapture:{type:Boolean,required:!1,default:!1},controls:{type:Boolean,required:!1,default:!0},playWhenInView:{type:Boolean,required:!1,default:!1},hasPlaylist:{type:Boolean,required:!1,default:!1},hasNext:{type:Boolean,required:!1,default:!1},hasPrevious:{type:Boolean,required:!1,default:!1},autoAdvance:{type:Boolean,required:!1,default:!1}},emits:[`state-change`,`play-next`,`play-previous`,`toggle-auto-advance`],setup(t,{expose:s,emit:c}){let u=t,d=c,f=C(null),p=S(Et(f,u,d)),m=S(Dt(k(p,`isPlaying`)));x(Z,p),x(Ot,m),x(kt,k(u,`action`)),x(jt,S({hasPlaylist:n(()=>u.hasPlaylist),hasNext:n(()=>u.hasNext),hasPrevious:n(()=>u.hasPrevious),autoAdvance:n(()=>u.autoAdvance),playNext:()=>d(`play-next`),playPrevious:()=>d(`play-previous`),toggleAutoAdvance:()=>d(`toggle-auto-advance`)}));let g=n(()=>L(u.aspectRatio)),v=n(()=>g.value.isPortrait),y=n(()=>g.value.cssRatio),T=n(()=>!u.poster&&!p.isReady);function E(){m.onVideoTap(),p.fire(`tap`)}return s(p),(t,n)=>(b(),a(`div`,ti,[o(`div`,{class:h([`player__shell`,{"player__shell--portrait":v.value}]),style:_({aspectRatio:y.value}),onMousemove:n[0]||=e=>m.onMouseMove(),onContextmenuCapture:n[1]||=N(()=>{},[`prevent`]),onMouseleave:n[2]||=e=>m.onMouseLeave()},[o(`div`,ni,[o(`video`,{ref_key:`videoEl`,ref:f,class:h([`mvp-video`,{"mvp-video--hidden":T.value}]),poster:u.poster,playsinline:``},[(b(!0),a(e,null,w(u.tracks,(e,t)=>(b(),a(`track`,{key:`${e.src}-${t}`,src:e.src,kind:e.kind??`captions`,srclang:e.srclang,label:e.label,default:e.default},null,8,ii))),128))],10,ri),i(` Never rendered during any ad state (playing or paused) — pausing/resuming an ad goes
2
+ through AdOverlay's own dedicated button, not a tap-anywhere gesture over the whole ad
3
+ creative, so there's no reason for this layer to cover the ad break at all. `),!u.disableTapCapture&&!p.nativeUi&&p.hasStarted&&!p.isAdPlaying?(b(),a(`div`,{key:0,class:`overlay__tap-capture`,onClick:E,onTouchend:N(E,[`prevent`,`stop`])},null,32)):i(`v-if`,!0),i(` Decoupled from \`controls\` on purpose, same as the tap-capture layer above - a
4
+ consumer driving their own headless HUD still needs a way to pause/mute the ad and see
5
+ how long it runs, since none of that comes from the ad creative itself. `),p.isAdPlaying&&!p.nativeUi?(b(),r(ei,{key:1})):i(`v-if`,!0),u.controls&&!p.nativeUi?(b(),r(qr,{key:2})):i(`v-if`,!0),u.controls&&p.nativeUi&&!p.hasStarted?(b(),a(`div`,ai,[l(Qn,{player:p,class:`ppbtn ppbtn--lg`},null,8,[`player`])])):i(`v-if`,!0)])],38)]))}}),[[`__scopeId`,`data-v-4ab3cf75`]]);const si=C(0),ci=n(()=>si.value>0);function li(){si.value++}function ui(){si.value--}function di(e,t){window.dispatchEvent(new CustomEvent(e,{detail:t}))}function fi(e,t){let n=e=>t(e.detail);y(()=>window.addEventListener(e,n)),v(()=>window.removeEventListener(e,n))}const pi=[`retry`,`togglePlay`,`seek`,`toggleMute`,`setVolume`,`toggleFullscreen`,`markFullscreenPending`,`toggleLoop`,`toggleAdMute`,`setPlaybackRate`,`setCaptionTrack`,`setQuality`,`togglePip`],mi=`isPlaying.hasEnded.isReady.isAdPlaying.isAdPaused.isAdMuted.adRemainingTime.isLive.isBuffering.current.total.vol.isMuted.isAudible.isLooping.playbackRate.hasStarted.isError.errorMessage.progress.bufferedDisplay.isFullscreen.isFullscreenPending.supportsPlaybackRate.supportsCaptions.captionTracks.activeCaptionIndex.supportsQuality.qualityLevels.currentQualityIndex.isAutoQuality.supportsPip.isPipActive.nativeUi`.split(`.`);function hi(e=()=>!0){let t=D(null),r={};for(let n of pi)r[n]=async(...r)=>{await e(n)&&t.value?.[n]?.(...r)};for(let e of mi)r[e]=n(()=>t.value?.[e]);return{playerRef:t,forwarded:r}}function gi(e,t){let r=n(()=>!e.value||!t.value?-1:e.value.findIndex(e=>e.videoUrl===t.value?.videoUrl)),i=n(()=>r.value===-1||!e.value?null:e.value[r.value+1]??null),a=n(()=>r.value<=0||!e.value?null:e.value[r.value-1]??null);return{hasNext:n(()=>i.value!==null),hasPrevious:n(()=>a.value!==null),nextEntry:i,previousEntry:a}}function _i(){return localStorage.getItem(H)===`true`}function vi(e){localStorage.setItem(H,String(e))}const yi=[`src`],bi={class:`stage__idle-body`},xi={class:`stage__idle-btn`},Si={class:`stage__idle-title`},Ci={key:1,class:`stage__idle-empty`};var wi=$(u({__name:`VideoStage`,props:{pinPosition:{type:String,required:!1,default:`bottom-right`},playlist:{type:Array,required:!1}},emits:[`state-change`],setup(t,{expose:s,emit:c}){let u=t,d=c,f=C(_i());j(f,vi);let m=n(()=>!!u.playlist?.length),g=C(null),S=C(!1),w=C(!1),{playerRef:T,forwarded:E}=hi(()=>S.value),D=C(null),M=C(null),P=C(!1);x(At,P);let{hasNext:F,hasPrevious:I,nextEntry:ee,previousEntry:R}=gi(k(u,`playlist`),g),z=n(()=>P.value&&!!g.value&&S.value),te=n(()=>L(g.value?.aspectRatio||`16:9`).cssRatio),B=C(null),V=C(null);j(z,e=>{B.value=e&&M.value?{height:M.value.offsetHeight,width:M.value.offsetWidth}:null});let H=n(()=>{if(!B.value)return{};let{height:e,width:t}=B.value,n=V.value&&t?V.value/t:1;return{height:`${Math.round(e*n)}px`}}),U=null,W=null;function G(){U?.disconnect(),W?.disconnect(),D.value&&(U=new IntersectionObserver(([e])=>{P.value=!e.isIntersecting},{threshold:1}),U.observe(D.value),W=new ResizeObserver(([e])=>{V.value=e.contentRect.width}),W.observe(D.value))}j(D,G);function ie(){g.value&&(g.value={...g.value,autoplay:!0},S.value=!0)}function ae(){D.value?.scrollIntoView({behavior:`smooth`,block:`center`})}function K(){g.value=null,S.value=!1,w.value=!1,B.value=null,q()}function q(){di(re,{currentVideoUrl:g.value?.videoUrl??null,isPlaying:w.value})}function J(e){if(g.value?.videoUrl===e.videoUrl&&S.value){T.value?.togglePlay();return}g.value=e,S.value=!1,w.value=!1,q(),S.value=!0}function Y(e){if(!(!g.value||e.videoUrl!==g.value.videoUrl)){if(!S.value){g.value={...g.value,autoplay:!0},S.value=!0;return}T.value?.togglePlay()}}function oe(e){return{...e,muted:e.muted??T.value?.isMuted,autoplay:!0}}function se(){ee.value&&J(oe(ee.value))}function ce(){R.value&&J(oe(R.value))}function le(e){e.type===`play`&&(w.value=!0),(e.type===`pause`||e.type===`ended`)&&(w.value=!1),e.type===`ended`&&f.value&&se(),q(),d(`state-change`,e)}return fi(ne,J),fi(`video-toggle`,Y),y(li),v(()=>{ui(),U?.disconnect(),W?.disconnect()}),s({playNext:se,playPrevious:ce,hasNext:F,hasPrevious:I,...E}),(n,s)=>(b(),a(`div`,{ref_key:`wrapperEl`,ref:D,class:`stage-wrapper`,style:_(H.value)},[o(`div`,{ref_key:`stageEl`,ref:M,class:h([`stage`,{"stage--minified":z.value,[`stage--pin-${t.pinPosition}`]:z.value}])},[z.value?(b(),a(`button`,{key:0,class:`stage__scroll-to`,"aria-label":`Scroll to player`,onClick:N(ae,[`stop`])},[l(A(en))])):i(`v-if`,!0),z.value?(b(),a(`button`,{key:1,class:`stage__dismiss`,"aria-label":`Close`,onClick:N(K,[`stop`])},[l(A(Kt))])):i(`v-if`,!0),g.value&&S.value?(b(),r(oi,p({ref_key:`playerRef`,ref:T,key:g.value.videoUrl},g.value,{"has-playlist":m.value,"has-next":A(F),"has-previous":A(I),"auto-advance":f.value,onStateChange:le,onPlayNext:se,onPlayPrevious:ce,onToggleAutoAdvance:s[0]||=e=>f.value=!f.value}),null,16,[`has-playlist`,`has-next`,`has-previous`,`auto-advance`])):(b(),a(`div`,{key:3,class:`stage__idle`,style:_({aspectRatio:te.value}),onClick:ie},[g.value?.poster?(b(),a(`img`,{key:0,src:g.value.poster,class:`stage__idle-poster`},null,8,yi)):i(`v-if`,!0),s[1]||=o(`div`,{class:`stage__idle-scrim`},null,-1),o(`div`,bi,[g.value?(b(),a(e,{key:0},[o(`div`,xi,[l(A(kn))]),o(`p`,Si,O(g.value.title),1)],64)):(b(),a(`p`,Ci,`Select a video to play`))])],4))],2)],4))}}),[[`__scopeId`,`data-v-fb8c86cf`]]),Ti=u({__name:`PlayPauseIcon`,props:{isPlaying:{type:Boolean,required:!0},hasEnded:{type:Boolean,required:!1,default:!1}},setup(e){return(t,n)=>e.isPlaying?(b(),r(A(xn),{key:0})):e.hasEnded?(b(),r(A(Ln),{key:1})):(b(),r(A(kn),{key:2}))}});const Ei={class:`placeholder`},Di=[`src`,`alt`],Oi={class:`placeholder__btn-wrap`},ki=[`aria-label`],Ai={key:1,class:`placeholder__footer`},ji={class:`placeholder__title`};var Mi=$(u({__name:`VideoPlaceholder`,props:{videoUrl:{type:String,required:!0},title:{type:String,required:!1,default:``},poster:{type:String,required:!1,default:``},aspectRatio:{type:String,required:!1,default:K},adTagUrl:{type:String,required:!1,default:``},adTagParams:{type:Object,required:!1},headerBidding:{type:Object,required:!1},tracks:{type:Array,required:!1},autoplay:{type:Boolean,required:!1,default:!1},muted:{type:Boolean,required:!1,default:void 0},playbackRate:{type:Number,required:!1},nativeUi:{type:Boolean,required:!1,default:!1},autoStage:{type:Boolean,required:!1,default:!1},lazy:{type:Boolean,required:!1},payload:{type:Object,required:!1,default:()=>({})},action:{type:[String,Object,null],required:!1,default:null},disableTapCapture:{type:Boolean,required:!1},controls:{type:Boolean,required:!1},playWhenInView:{type:Boolean,required:!1}},emits:[`enter-view`],setup(e,{emit:t}){let r=e,s=t,c=n(()=>L(r.aspectRatio)),u=n(()=>c.value.isPortrait),d=n(()=>c.value.cssRatio),f=C(null),p=null,m=C(!1),g=C(!1),x=n(()=>m.value&&g.value?`Pause`:`Play`);fi(re,e=>{m.value=e.currentVideoUrl===r.videoUrl,g.value=m.value&&e.isPlaying});function S(e){di(ne,{...r,...e!==void 0&&{autoplay:e}})}function w(){S(!0)}return y(()=>{r.autoStage&&S(),r.playWhenInView&&f.value&&(p=_t(f.value,()=>s(`enter-view`)))}),v(()=>p?.()),(t,n)=>(b(),a(`div`,Ei,[o(`div`,{ref_key:`shellEl`,ref:f,class:h([`placeholder__shell`,{"placeholder__shell--portrait":u.value,"placeholder__shell--active":m.value}]),style:_({aspectRatio:d.value}),onClick:w},[e.poster?(b(),a(`img`,{key:0,class:`placeholder__poster`,src:e.poster,alt:e.title},null,8,Di)):i(`v-if`,!0),n[0]||=o(`div`,{class:`placeholder__scrim`},null,-1),o(`div`,Oi,[o(`button`,{type:`button`,class:`ppbtn ppbtn--lg`,"aria-label":x.value,onClick:N(w,[`stop`])},[l(Ti,{"is-playing":m.value&&g.value},null,8,[`is-playing`])],8,ki)]),e.title?(b(),a(`div`,Ai,[o(`p`,ji,O(e.title),1)])):i(`v-if`,!0)],6)]))}}),[[`__scopeId`,`data-v-dbcb4f82`]]),Ni=u({__name:`VideoItem`,props:{videoUrl:{type:String,required:!0},title:{type:String,required:!1},poster:{type:String,required:!1},aspectRatio:{type:String,required:!1},adTagUrl:{type:String,required:!1},adTagParams:{type:Object,required:!1},headerBidding:{type:Object,required:!1},tracks:{type:Array,required:!1},autoplay:{type:Boolean,required:!1},muted:{type:Boolean,required:!1,default:void 0},playbackRate:{type:Number,required:!1},nativeUi:{type:Boolean,required:!1},autoStage:{type:Boolean,required:!1},lazy:{type:Boolean,required:!1,default:!0},payload:{type:Object,required:!1},action:{type:[String,Object,null],required:!1,default:null},disableTapCapture:{type:Boolean,required:!1},controls:{type:Boolean,required:!1,default:void 0},playWhenInView:{type:Boolean,required:!1}},emits:[`state-change`],setup(t,{expose:n,emit:i}){let o=t,s=i,c=C(!1);async function l(){c.value||(c.value=!0,await m())}let{playerRef:u,forwarded:d}=hi(async e=>ci.value?(e===`togglePlay`&&di(ne,{...o,autoplay:!0}),!1):(await l(),!0));return n(d),(t,n)=>A(ci)?(b(),r(Mi,g(p({key:0},o)),null,16)):(b(),a(e,{key:1},[o.lazy&&!c.value&&!o.autoplay?(b(),r(Mi,p({key:0},o,{onClickCapture:n[0]||=e=>c.value=!0,onEnterView:n[1]||=e=>c.value=!0}),null,16)):(b(),r(oi,p({key:1,ref_key:`playerRef`,ref:u},o,{autoplay:c.value||o.autoplay,onStateChange:n[2]||=e=>s(`state-change`,e)}),null,16,[`autoplay`]))],64))}});const Pi=d(oi,{shadowRoot:!1}),Fi=d(wi,{shadowRoot:!1}),Ii=d(Mi,{shadowRoot:!1}),Li=d(Ni,{shadowRoot:!1});customElements.define(`muns-video-player`,Pi),customElements.define(`muns-video-stage`,Fi),customElements.define(`muns-video-placeholder`,Ii),customElements.define(`muns-video-item`,Li);export{Li as VideoItemElement,Ii as VideoPlaceholderElement,Pi as VideoPlayerElement,Fi as VideoStageElement};
@@ -0,0 +1,168 @@
1
+ //#region src/types/playback.d.ts
2
+ interface CaptionTrackInfo {
3
+ index: number;
4
+ label: string;
5
+ language: string;
6
+ }
7
+ interface QualityLevelInfo {
8
+ index: number;
9
+ height: number;
10
+ bitrate: number;
11
+ label: string;
12
+ }
13
+ //#endregion
14
+ //#region src/types.d.ts
15
+ type BuiltinAction = 'mute' | 'loop' | 'autoplay';
16
+ interface CustomAction {
17
+ icon: string;
18
+ label: string;
19
+ onClick: () => void;
20
+ }
21
+ type PlayerAction = BuiltinAction | CustomAction;
22
+ interface HeaderBiddingAdUnit {
23
+ code: string;
24
+ mediaTypes: {
25
+ video: Record<string, unknown>;
26
+ };
27
+ bids: Array<{
28
+ bidder: string;
29
+ params?: Record<string, unknown>;
30
+ }>;
31
+ }
32
+ interface HeaderBiddingConfig {
33
+ adUnit: HeaderBiddingAdUnit;
34
+ params?: Record<string, string>;
35
+ timeoutMs?: number;
36
+ }
37
+ interface CaptionTrackDef {
38
+ src: string;
39
+ kind?: 'captions' | 'subtitles';
40
+ srclang?: string;
41
+ label?: string;
42
+ default?: boolean;
43
+ }
44
+ interface PlayerProps {
45
+ videoUrl: string;
46
+ title?: string;
47
+ poster?: string;
48
+ aspectRatio?: string;
49
+ adTagUrl?: string;
50
+ adTagParams?: Record<string, string>;
51
+ headerBidding?: HeaderBiddingConfig;
52
+ tracks?: CaptionTrackDef[];
53
+ autoplay?: boolean;
54
+ muted?: boolean;
55
+ playbackRate?: number;
56
+ nativeUi?: boolean;
57
+ autoStage?: boolean;
58
+ lazy?: boolean;
59
+ payload?: Record<string, unknown>;
60
+ action?: PlayerAction | null;
61
+ disableTapCapture?: boolean;
62
+ controls?: boolean;
63
+ playWhenInView?: boolean;
64
+ }
65
+ type VideoEntry = PlayerProps;
66
+ interface PlayerHandle {
67
+ isPlaying: boolean;
68
+ togglePlay(): void;
69
+ hasEnded: boolean;
70
+ isError: boolean;
71
+ retry(): void;
72
+ isMuted: boolean;
73
+ toggleMute(): void;
74
+ isAudible: boolean;
75
+ isFullscreen: boolean;
76
+ toggleFullscreen(): void;
77
+ current: number;
78
+ total: number;
79
+ seek(percent: number): void;
80
+ bufferedDisplay: number;
81
+ isBuffering: boolean;
82
+ isLive: boolean;
83
+ vol: number;
84
+ setVolume(vol: number): void;
85
+ isLooping: boolean;
86
+ toggleLoop(): void;
87
+ supportsPip: boolean;
88
+ isPipActive: boolean;
89
+ togglePip(): void;
90
+ supportsCaptions: boolean;
91
+ captionTracks: CaptionTrackInfo[];
92
+ activeCaptionIndex: number | null;
93
+ setCaptionTrack(index: number | null): void;
94
+ supportsQuality: boolean;
95
+ qualityLevels: QualityLevelInfo[];
96
+ currentQualityIndex: number | null;
97
+ isAutoQuality: boolean;
98
+ setQuality(index: number | null): void;
99
+ supportsPlaybackRate: boolean;
100
+ playbackRate: number;
101
+ setPlaybackRate(rate: number): void;
102
+ }
103
+ //#endregion
104
+ //#region src/elements/core.d.ts
105
+ declare const VideoPlayerElement: import("vue").VueElementConstructor<PlayerProps & {
106
+ hasPlaylist?: boolean;
107
+ hasNext?: boolean;
108
+ hasPrevious?: boolean;
109
+ autoAdvance?: boolean;
110
+ }>;
111
+ declare const VideoStageElement: import("vue").VueElementConstructor<{
112
+ pinPosition?: "bottom-right" | "bottom-left" | "top-right" | "top-left" | "full-width";
113
+ playlist?: VideoEntry[];
114
+ }>;
115
+ declare const VideoPlaceholderElement: import("vue").VueElementConstructor<PlayerProps>;
116
+ declare const VideoItemElement: import("vue").VueElementConstructor<PlayerProps>;
117
+ //#endregion
118
+ //#region src/elements/controls.d.ts
119
+ declare const ScrubberElement: import("vue").VueElementConstructor<{
120
+ player?: PlayerHandle | null;
121
+ for?: string;
122
+ }>;
123
+ declare const PlayButtonElement: import("vue").VueElementConstructor<{
124
+ player?: PlayerHandle | null;
125
+ for?: string;
126
+ }>;
127
+ declare const MuteButtonElement: import("vue").VueElementConstructor<{
128
+ player?: PlayerHandle | null;
129
+ for?: string;
130
+ }>;
131
+ declare const FullscreenButtonElement: import("vue").VueElementConstructor<{
132
+ player?: PlayerHandle | null;
133
+ for?: string;
134
+ }>;
135
+ declare const BufferingElement: import("vue").VueElementConstructor<{
136
+ player?: PlayerHandle | null;
137
+ for?: string;
138
+ }>;
139
+ declare const LoopButtonElement: import("vue").VueElementConstructor<{
140
+ player?: PlayerHandle | null;
141
+ for?: string;
142
+ }>;
143
+ declare const PipButtonElement: import("vue").VueElementConstructor<{
144
+ player?: PlayerHandle | null;
145
+ for?: string;
146
+ }>;
147
+ declare const CaptionsButtonElement: import("vue").VueElementConstructor<{
148
+ player?: PlayerHandle | null;
149
+ for?: string;
150
+ }>;
151
+ declare const QualityButtonElement: import("vue").VueElementConstructor<{
152
+ player?: PlayerHandle | null;
153
+ for?: string;
154
+ }>;
155
+ declare const PlaybackRateButtonElement: import("vue").VueElementConstructor<{
156
+ player?: PlayerHandle | null;
157
+ for?: string;
158
+ }>;
159
+ declare const VolumeSliderElement: import("vue").VueElementConstructor<{
160
+ player?: PlayerHandle | null;
161
+ for?: string;
162
+ }>;
163
+ declare const TimeDisplayElement: import("vue").VueElementConstructor<{
164
+ player?: PlayerHandle | null;
165
+ for?: string;
166
+ }>;
167
+ //#endregion
168
+ export { BufferingElement, CaptionsButtonElement, FullscreenButtonElement, LoopButtonElement, MuteButtonElement, PipButtonElement, PlayButtonElement, PlaybackRateButtonElement, QualityButtonElement, ScrubberElement, TimeDisplayElement, VideoItemElement, VideoPlaceholderElement, VideoPlayerElement, VideoStageElement, VolumeSliderElement };
@@ -0,0 +1,5 @@
1
+ import{Fragment as e,Transition as t,computed as n,createBlock as r,createCommentVNode as i,createElementBlock as a,createElementVNode as o,createStaticVNode as s,createTextVNode as c,createVNode as l,defineComponent as u,defineCustomElement as d,inject as f,mergeProps as p,nextTick as m,normalizeClass as h,normalizeProps as g,normalizeStyle as _,onBeforeUnmount as v,onMounted as y,openBlock as b,provide as x,reactive as S,ref as C,renderList as w,renderSlot as T,resolveDynamicComponent as E,shallowRef as D,toDisplayString as O,toRef as k,unref as A,watch as j,withCtx as M,withModifiers as N}from"vue";function P(){return/iPad|iPhone|iPod/.test(navigator.userAgent)||/Mac/.test(navigator.userAgent)&&navigator.maxTouchPoints>1}function F(e){(e.requestFullscreen||e.webkitRequestFullscreen)?.call(e)}function I(){(document.exitFullscreen||document.webkitExitFullscreen)?.call(document)}function L(e){let[t,n]=e.split(`:`).map(Number);return{isPortrait:n>t,cssRatio:`${t}/${n}`}}function ee(e,t){if(!t||!Object.keys(t).length)return e;let n=e;for(let[e,r]of Object.entries(t))r!=null&&r!==``&&(n=n.split(`{${e}}`).join(encodeURIComponent(r)));return n}function R(e,t=!1){if(!e||isNaN(e))return`0:00`;let n=t?Math.round(e):Math.floor(e);return`${Math.floor(n/60)}:${String(n%60).padStart(2,`0`)}`}function z(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 te(e){return e.filter(e=>e.src&&(e.type===`application/x-mpegURL`||e.type===`video/mp4`)).sort((e,t)=>e.type===`application/x-mpegURL`?-1:1)}const ne=`video-select`,re=`video-state`,B=`fullscreen-pending`,V=`fullscreen-pending-done`,H=`player:autoAdvance`,U=`mvp-youtube`,W=`mvp-vimeo`,G=`mvp-dailymotion`,ie=`mvp-ad-playing`,ae=`mvp-ad-paused`,oe=`16:9`,K=[.5,.75,1,1.25,1.5,2],q=[[.25,`firstQuartile`],[.5,`midpoint`],[.75,`thirdQuartile`]];function J(e){return e.match(/cdn\.jwplayer\.com\/videos\/([^-]+)/)?.[1]??e.match(/cdn\.jwplayer\.com\/manifests\/([^.]+)/)?.[1]??e.match(/^jwplayer:\/\/([^/]+)$/)?.[1]??null}function se(e){let t=e?.advertising?.schedule;return Array.isArray(t)&&t.length?t[0].tag??null:e?.advertising?.tag??null}const ce=z(async e=>{let t=await fetch(`https://cdn.jwplayer.com/v2/media/${e}`);if(!t.ok)throw Error(`JW Platform API error: ${t.status}`);let n=(await t.json()).playlist?.[0];if(!n)throw Error(`JW Platform: empty playlist`);let r=te((n.sources??[]).map(e=>({src:e.file,type:e.type})));if(!r.length)throw Error(`JW Platform: no playable sources found`);return{src:r[0].src,type:r[0].type,poster:n.image??null,adTagUrl:se(n)}});async function le(e){let t=J(e);if(!t)throw Error(`JW Platform: unrecognised source URL: ${e}`);let n=await ce(t);if(e.startsWith(`jwplayer://`))return n;let r=/\.mp4(\?|#|$)/.test(e)?`video/mp4`:`application/x-mpegURL`;return{...n,src:e,type:r}}function ue(e){let t;try{t=new URL(e)}catch{return null}if(t.hostname!==`players.brightcove.net`)return null;let[,n,r]=t.pathname.split(`/`),i=t.searchParams.get(`videoId`),a=r?.indexOf(`_`)??-1;return!n||a===-1||!i?null:{accountId:n,playerId:r.slice(0,a),embed:r.slice(a+1),videoId:i}}function de(e){for(let t of e?.plugins??[]){let e=t.options?.serverUrl??t.options?.imaOptions?.serverUrl;if(e)return e}return null}const fe=z(async(e,t,n,r)=>{let i=await fetch(`https://players.brightcove.net/${e}/${t}_${n}/config.json`);if(!i.ok)throw Error(`Brightcove: could not load player config (${i.status})`);let a=await i.json(),o=r??a?.video_cloud?.policy_key;if(!o)throw Error(`Brightcove: policy_key not found in player config`);return{policyKey:o,adTagUrl:de(a)}},(e,t,n)=>`${e}/${t}_${n}`);async function pe(e,t,n){let r=await fetch(`https://edge.api.brightcove.com/playback/v1/accounts/${e}/videos/${t}`,{headers:{Accept:`application/json;pk=${n}`}});if(!r.ok)throw Error(`Brightcove Playback API error: ${r.status}`);let i=await r.json(),a=te(i.sources||[]);if(!a.length)throw Error(`Brightcove: no playable sources found`);return{sources:a.map(e=>({src:e.src,type:e.type})),poster:i.poster??i.thumbnail??null}}async function me(e,t){let n=ue(e);if(!n)throw Error(`Brightcove: invalid src — expected a Brightcove embed URL, e.g. "https://players.brightcove.net/{accountId}/{playerId}_{embed}/index.html?videoId={videoId}"`);let{accountId:r,playerId:i,embed:a,videoId:o}=n,{policyKey:s,adTagUrl:c}=await fe(r,i,a,t),{sources:l,poster:u}=await pe(r,o,s);return{...l[0],poster:u,adTagUrl:c}}function he(){let e=new Map;function t(t,n){for(let r of Array.isArray(t)?t:[t])e.has(r)||e.set(r,new Set),e.get(r)?.add(n)}function n(t,n){e.get(t)?.delete(n)}function r(t,...n){e.get(t)?.forEach(e=>e(...n))}function i(){e.clear()}return{on:t,off:n,trigger:r,dispose:i}}const ge={};function _e(e,t=e){return ge[t]||(ge[t]=new Promise((t,n)=>{let r=document.createElement(`script`);r.src=e,r.onload=()=>t(),r.onerror=()=>n(Error(`Failed to load script: ${e}`)),document.head.appendChild(r)})),ge[t]}let ve=0;function ye(e,t){e.parentElement?.classList.add(t);let n=`${t}-${++ve}`,r=document.createElement(`div`);r.id=n,r.className=`mvp-tech`,r.style.cssText=`width:100%;height:100%;top:0;left:0;position:absolute`;let i=document.createElement(`div`);return i.style.cssText=`width:100%;height:100%;position:absolute;inset:0;opacity:0;pointer-events:none;transition:opacity 0.2s`,i.appendChild(r),e.parentElement?.insertBefore(i,e),{techId:n,wrapper:i,innerDiv:r}}function be(e,t){e.style.display=`none`,t.style.opacity=`1`,t.style.pointerEvents=``}function xe(e,t,n){t.remove(),e.parentElement?.classList.remove(n),e.style.display=``}function Se(e){return e.closest(`.player__shell`)}function Ce(){let e=new Set;return{schedule(t,n=0){let r=setTimeout(()=>{e.delete(r),t()},n);e.add(r)},clearAll(){e.forEach(clearTimeout),e.clear()}}}function we(e){e.trigger(B);let t=document.createElement(`div`);t.style.cssText=`position:fixed;inset:0;z-index:99999;opacity:0;pointer-events:none`,document.body.appendChild(t);let n=!1;function r(){n||e.trigger(V)}function i(r){n||(n=!0,e.trigger(V),t.remove(),r?.())}return{overlay:t,reveal:r,finish:i}}function Te(e,t){return t===e.PlayerState.PLAYING||t===e.PlayerState.BUFFERING}function Ee(e){let t={videoId:null,listId:null},n=e.match(/^.*(youtu\.be\/|v\/|u\/\w\/|embed\/|watch\?v=|shorts\/|&v=)([^#&?]*).*/);n?.[2]?.length===11&&(t.videoId=n[2]);let r=e.match(/[?&]list=([^#&?]+)/);return r?.[1]&&(t.listId=r[1]),t}let De=!1,Oe=!1;const ke=[];function Ae(){Oe||(Oe=!0,_e(`https://www.youtube.com/iframe_api`).then(()=>{window.YT?.ready(()=>{De=!0,ke.forEach(e=>e()),ke.length=0})}))}function je(e,t){Ae();let n=he(),{techId:r,wrapper:i}=ye(e,U),a=Ee(t.src),o=null,s=a.videoId,c=!1,l=!1,u=!1,d=null,f=!1,p=null,m=!1,{schedule:h,clearAll:g}=Ce(),_=null,v={active:!1,wasPaused:!1,timeBefore:0,catchUpInterval:null};function y(){try{let e=o?.getPlayerResponse()?.adPlacements;return Array.isArray(e)&&e.length>0}catch{return!1}}function b(e){o?.loadVideoById({videoId:e})}function x(e){o?.cueVideoById({videoId:e})}function S(){a.videoId&&(v.wasPaused=!1,c?s===a.videoId?o?.playVideo():(b(a.videoId),s=a.videoId):(n.trigger(`waiting`),l=!0))}function C(){v.catchUpInterval&&clearInterval(v.catchUpInterval),v.active=!1,v.wasPaused&&o?.pauseVideo(),n.trigger(`seeked`)}function w(){m=(o?.getAvailablePlaybackRates()??[]).length>1,c=!0,t.muted&&o?.mute(),l?S():u&&a.videoId&&(x(a.videoId),s=a.videoId)}function T(e){if(e===d||p!==null)return;d=e;let t=y();t!==f&&(f=t,n.trigger(t?`adstart`:`adend`));let r=window.YT;if(r){switch(e){case-1:n.trigger(`loadstart`),n.trigger(`loadedmetadata`),n.trigger(`durationchange`),n.trigger(`ratechange`);break;case r.PlayerState.ENDED:n.trigger(`ended`);break;case r.PlayerState.PLAYING:n.trigger(`timeupdate`),n.trigger(`durationchange`),n.trigger(`playing`),n.trigger(`play`),v.active&&C();break;case r.PlayerState.PAUSED:n.trigger(`canplay`),v.active||n.trigger(`pause`);break;case r.PlayerState.BUFFERING:n.trigger(`waiting`);break;case r.PlayerState.CUED:n.trigger(`canplay`);break}_&&=(clearInterval(_),null),e===r.PlayerState.PLAYING&&(_=setInterval(()=>n.trigger(`timeupdate`),250))}}function E(){let e={controls:+!!t.nativeUi,modestbranding:1,rel:0,showinfo:0,mute:+!!t.muted,origin:window.location.origin,allowfullscreen:1,fullscreen:1,fs:1,playsinline:1,...t.customVars};s=a.videoId,o=new window.YT.Player(r,{videoId:s??void 0,playerVars:e,events:{onReady:w,onStateChange:e=>T(e.data),onPlaybackRateChange:()=>n.trigger(`ratechange`),onVolumeChange:()=>n.trigger(`volumechange`),onError:e=>{p=e.data,n.trigger(`error`),h(()=>{p=null})}}})}De?E():ke.push(E),t.autoplay?c?S():l=!0:a.videoId&&(u=!0);function D(){if(!o)return;let e=o.getCurrentTime(),{video_id:t}=o.getVideoData();o.pauseVideo();let{overlay:r,reveal:i,finish:a}=we(n),s=document.createElement(`div`);s.id=`yt-fs-${Math.random().toString(36).slice(2)}`,r.appendChild(s);let c=null,l=()=>{document.removeEventListener(`pointerdown`,u,!0),a(()=>{let t=c?.getCurrentTime()??e;try{c?.destroy()}catch{}o?.seekTo(t,!0),n.trigger(`timeupdate`)})};function u(){l()}c=new window.YT.Player(s.id,{videoId:t,playerVars:{playsinline:0,autoplay:1,controls:1,modestbranding:1,rel:0,start:Math.floor(e)},events:{onReady:t=>{i(),t.target.seekTo(e,!0),t.target.playVideo()},onStateChange:e=>{let t=window.YT;t&&(e.data===t.PlayerState.ENDED?l():e.data===t.PlayerState.PAUSED?(document.removeEventListener(`pointerdown`,u,!0),document.addEventListener(`pointerdown`,u,{capture:!0,once:!0})):(document.removeEventListener(`pointerdown`,u,!0),i()))}}})}function O(){if(P()&&o){D();return}let t=Se(e);t&&F(t)}function k(){I()}return{el:i,play:S,pause:()=>o?.pauseVideo(),paused:()=>{if(!o)return!0;let e=window.YT;return!e||!Te(e,d)},currentTime:()=>o?.getCurrentTime()??0,setCurrentTime:e=>{if(!o)return;let t=window.YT;t&&d===t.PlayerState.PAUSED&&(v.timeBefore=o.getCurrentTime()),v.active||(v.wasPaused=!t||!Te(t,d)),o.seekTo(e,!0),n.trigger(`timeupdate`),n.trigger(`seeking`),v.active=!0,t&&d===t.PlayerState.PAUSED&&v.timeBefore!==e&&(v.catchUpInterval&&clearInterval(v.catchUpInterval),v.catchUpInterval=setInterval(()=>{d!==t.PlayerState.PAUSED||!v.active?v.catchUpInterval&&clearInterval(v.catchUpInterval):o&&o.getCurrentTime()!==v.timeBefore&&(n.trigger(`timeupdate`),C())},250))},duration:()=>o?.getDuration()??0,volume:()=>o?o.getVolume()/100:1,setVolume:e=>o?.setVolume(e*100),muted:()=>o?.isMuted()??!1,setMuted:e=>{o&&(e?o.mute():o.unMute(),h(()=>n.trigger(`volumechange`),50))},playbackRate:()=>o?.getPlaybackRate()??1,setPlaybackRate:e=>o?.setPlaybackRate(e),bufferedEnd:()=>o?.getVideoLoadedFraction?o.getVideoLoadedFraction()*o.getDuration():0,error:()=>p===null?null:{code:p,message:`This video could not be played.`},setSrc:e=>{let t=Ee(e);a.videoId=t.videoId,a.listId=t.listId,a.videoId&&(c?(b(a.videoId),s=a.videoId):u=!0)},featuresPlaybackRate:()=>m,featuresCaptions:()=>!1,getCaptionTracks:()=>[],setCaptionTrack:()=>{},getActiveCaptionTrack:()=>null,featuresQuality:()=>!1,getQualityLevels:()=>[],getCurrentQuality:()=>null,isAutoQuality:()=>!0,setQuality:()=>{},featuresPip:()=>!1,isPipActive:()=>!1,togglePip:()=>{},enterFullscreen:O,exitFullscreen:k,on:n.on,off:n.off,dispose:()=>{if(g(),_&&clearInterval(_),v.catchUpInterval&&clearInterval(v.catchUpInterval),o)try{o.stopVideo(),o.destroy()}catch{}else{let e=ke.indexOf(E);e!==-1&&ke.splice(e,1)}o=null,xe(e,i,U),n.dispose()}}}function Me(e){return e.match(/(?:vimeo\.com\/(?:video\/|channels\/[^/]+\/|groups\/[^/]+\/videos\/)?|player\.vimeo\.com\/video\/)(\d+)/)?.[1]??null}function Ne(e,t){let n=he(),{techId:r,wrapper:i}=ye(e,W),a=Me(t.src),o=null,s=0,c=0,l=1,u=!1,d=!0,f=1,p=!1,m=!1,h=!1,g=null,{schedule:_,clearAll:v}=Ce();function y(){if(!o){m=!0;return}o.play().catch(()=>{})}function b(){t.muted&&o?.setMuted(!0).catch(()=>{}),m&&y()}async function x(e){if(await _e(`https://player.vimeo.com/api/player.js`,`vimeo`),h||!window.Vimeo)return;let i={id:Number(e),byline:!1,portrait:!1,title:!1,transparent:!0,controls:!!t.nativeUi,autopause:!1,...t.autoplay!==void 0&&{autoplay:t.autoplay},...t.muted!==void 0&&{muted:t.muted}};o=new window.Vimeo.Player(r,i),t.autoplay&&(m=!0),o.ready().then(b).catch(e=>{g={code:4,message:e?.message||`This video is unavailable or cannot be embedded here.`},n.trigger(`error`)}),o.on(`play`,()=>{d=!1,n.trigger(`play`),n.trigger(`playing`)}),o.on(`pause`,()=>{d=!0,n.trigger(`pause`)}),o.on(`ended`,()=>{d=!0,n.trigger(`ended`)}),o.on(`timeupdate`,e=>{let{seconds:t,duration:r}=e;s=t,c=r,n.trigger(`timeupdate`),r&&!p&&(p=!0,n.trigger(`durationchange`))}),o.on(`loaded`,()=>{p=!1,n.trigger(`loadedmetadata`),n.trigger(`durationchange`)}),o.on(`seeking`,e=>{s=e.seconds,n.trigger(`seeking`)}),o.on(`seeked`,e=>{s=e.seconds,n.trigger(`seeked`),n.trigger(`timeupdate`)}),o.on(`bufferstart`,()=>n.trigger(`waiting`)),o.on(`bufferend`,()=>n.trigger(`canplay`)),o.on(`volumechange`,e=>{l=e.volume,n.trigger(`volumechange`)}),o.on(`error`,()=>n.trigger(`error`))}a&&x(a);function S(){if(!P()){let t=Se(e);t&&F(t);return}o?.requestFullscreen().catch(()=>{})}function C(){I()}return{el:i,play:y,pause:()=>o?.pause().catch(()=>{}),paused:()=>d,currentTime:()=>s,setCurrentTime:e=>{o?.setCurrentTime(e).catch(()=>{}),n.trigger(`timeupdate`),n.trigger(`seeking`)},duration:()=>c,volume:()=>l,setVolume:e=>{l=e,o?.setVolume(e).catch(()=>{})},muted:()=>u,setMuted:e=>{u=e,o?.setMuted(e).then(()=>_(()=>n.trigger(`volumechange`),50)).catch(()=>{})},playbackRate:()=>f,setPlaybackRate:e=>{f=e,o?.setPlaybackRate(e).catch(()=>{}),n.trigger(`ratechange`)},bufferedEnd:()=>s,error:()=>g,setSrc:()=>{},featuresPlaybackRate:()=>!1,featuresCaptions:()=>!1,getCaptionTracks:()=>[],setCaptionTrack:()=>{},getActiveCaptionTrack:()=>null,featuresQuality:()=>!1,getQualityLevels:()=>[],getCurrentQuality:()=>null,isAutoQuality:()=>!0,setQuality:()=>{},featuresPip:()=>!1,isPipActive:()=>!1,togglePip:()=>{},enterFullscreen:S,exitFullscreen:C,on:n.on,off:n.off,dispose:()=>{h=!0,v(),o?.destroy().catch(()=>{}),o=null,xe(e,i,W),n.dispose()}}}function Pe(e){let t=e.match(/[?&]video=([a-zA-Z0-9]+)/);return t?t[1]:e.match(/(?:dailymotion\.com\/(?:embed\/)?video\/|dai\.ly\/)([a-zA-Z0-9]+)/)?.[1]??null}function Fe(e,t){let n=he(),{techId:r,wrapper:i}=ye(e,G),a=Se(e),o=Pe(t.src),s=typeof t.customVars?.playerId==`string`?t.customVars.playerId:void 0,c=null,l=0,u=0,d=1,f=!1,p=!0,m=!1,h=!1,g=null;async function _(){if(!o){g={code:4,message:`Could not parse video ID from source URL`},n.trigger(`error`);return}try{let e=await _e(s?`https://geo.dailymotion.com/libs/player/${s}.js`:`https://geo.dailymotion.com/libs/player.js`,s||`dailymotion-sdk`).then(()=>window.dailymotion);if(!e)return;let i=await e.createPlayer(r,{...s&&{player:s},video:o,params:{autoplay:!!t.autoplay,mute:!!t.muted}});c=i;let a=e.events;m&&i.play(),i.on(a.PLAYER_CRITICALPATHREADY,e=>{let t=e.videoThumbnails;if(!t)return;let r=Object.keys(t).map(Number).sort((e,t)=>t-e)[0],i=r===void 0?void 0:t[r];i&&n.trigger(`posterchange`,i)}),i.on(a.VIDEO_PLAY,()=>{p=!1,n.trigger(`play`),n.trigger(`playing`),!t.autoplay&&!h&&(h=!0,i.pause())}),i.on(a.VIDEO_PLAYING,()=>{p=!1,n.trigger(`play`),n.trigger(`playing`)}),i.on(a.VIDEO_PAUSE,()=>{p=!0,n.trigger(`pause`)}),a.VIDEO_BUFFERING&&i.on(a.VIDEO_BUFFERING,()=>n.trigger(`waiting`)),i.on(a.VIDEO_END,()=>{p=!0,n.trigger(`ended`)}),i.on(a.VIDEO_TIMECHANGE,e=>{l=e.videoTime??l,u=e.videoDuration??u,n.trigger(`timeupdate`)}),i.on(a.VIDEO_DURATIONCHANGE,e=>{u=e.videoDuration??u,n.trigger(`durationchange`)}),i.on(a.VIDEO_SEEKSTART,()=>n.trigger(`seeking`)),i.on(a.VIDEO_SEEKEND,e=>{l=e.videoTime??l,n.trigger(`seeked`)}),i.on(a.PLAYER_VOLUMECHANGE,e=>{d=e.playerVolume??d,f=e.playerIsMuted??f,n.trigger(`volumechange`)}),i.on(a.PLAYER_ERROR,()=>n.trigger(`error`)),a.AD_START&&i.on(a.AD_START,()=>{p=!1,n.trigger(`play`),n.trigger(`adstart`)}),a.AD_END&&i.on(a.AD_END,()=>n.trigger(`adend`))}catch(e){g={code:4,message:e instanceof Error?e.message:`This video could not be played.`},n.trigger(`error`)}}_();function v(){c?c.play():m=!0}function y(){if(P()){c?.setFullscreen(!0);return}a&&F(a)}function b(){if(P()){c?.setFullscreen(!1);return}I()}return{el:i,play:v,pause:()=>c?.pause(),paused:()=>p,currentTime:()=>l,setCurrentTime:e=>{l=e,c?.seek(e),n.trigger(`seeking`)},duration:()=>u,volume:()=>d,setVolume:e=>{d=e,c?.setVolume(e)},muted:()=>f,setMuted:e=>{f=e,c?.setMute(e)},playbackRate:()=>1,setPlaybackRate:()=>{},bufferedEnd:()=>l,error:()=>g,setSrc:()=>{},featuresPlaybackRate:()=>!1,featuresCaptions:()=>!1,getCaptionTracks:()=>[],setCaptionTrack:()=>{},getActiveCaptionTrack:()=>null,featuresQuality:()=>!1,getQualityLevels:()=>[],getCurrentQuality:()=>null,isAutoQuality:()=>!0,setQuality:()=>{},featuresPip:()=>!1,isPipActive:()=>!1,togglePip:()=>{},enterFullscreen:y,exitFullscreen:b,on:n.on,off:n.off,dispose:()=>{c?.destroy?.(),c=null,xe(e,i,G),n.dispose()}}}const Ie=[{test:e=>/youtu\.be|youtube\.com/.test(e),key:`youtube`,embed:!0},{test:e=>/vimeo\.com|player\.vimeo\.com/.test(e),key:`vimeo`,embed:!0},{test:e=>/dailymotion\.com|dai\.ly/.test(e),key:`dailymotion`,embed:!0},{test:e=>/cdn\.jwplayer\.com/.test(e)||e.startsWith(`jwplayer://`),key:`jwplayer`,embed:!1},{test:e=>/players\.brightcove\.net/.test(e),key:`brightcove`,embed:!1}];function Le(e){let t=Ie.find(t=>t.test(e));return{key:t?.key??`html5`,embed:t?.embed??!1}}function Re(e){if(/\.m3u8(\?|#|$)/.test(e))return`application/x-mpegURL`;if(/\.mpd(\?|#|$)/.test(e))return`application/dash+xml`;if(/\.mp4(\?|#|$)/.test(e))return`video/mp4`}const ze={youtube:je,vimeo:Ne,dailymotion:Fe};function Be(e,t,n){let r=ze[e];return r?r(t,n):null}async function Ve(e,t){return e===`jwplayer`?le(t):e===`brightcove`?me(t):{src:t,type:Re(t)}}function He(e){return e.kind===`captions`||e.kind===`subtitles`}function Ue(e,t){e.textTracks.addEventListener(`addtrack`,t),e.textTracks.addEventListener(`removetrack`,t);function n(){let t=[];for(let n=0;n<e.textTracks.length;n++){let r=e.textTracks[n];He(r)&&t.push({index:n,label:r.label||r.language||`Track ${n+1}`,language:r.language})}return t}function r(t){for(let n=0;n<e.textTracks.length;n++){let r=e.textTracks[n];He(r)&&(r.mode=n===t?`showing`:`hidden`)}}function i(){for(let t=0;t<e.textTracks.length;t++){let n=e.textTracks[t];if(He(n)&&n.mode===`showing`)return t}return null}return{featuresCaptions:()=>n().length>0,getCaptionTracks:n,setCaptionTrack:r,getActiveCaptionTrack:i,dispose:()=>{e.textTracks.removeEventListener(`addtrack`,t),e.textTracks.removeEventListener(`removetrack`,t)}}}function We(e){function t(){return e()?.levels()??[]}function n(){return e()?.isAuto()??!0}function r(){let t=e();return t?n()?null:t.currentIndex():null}function i(t){e()?.setIndex(t)}return{featuresQuality:()=>t().length>0,getQualityLevels:t,getCurrentQuality:r,isAutoQuality:n,setQuality:i}}function Ge(e,t,n){let r=[[`webkitbeginfullscreen`,t],[`webkitendfullscreen`,n]];for(let[t,n]of r)e.addEventListener(t,n);function i(){let t=e;if(typeof t.webkitEnterFullscreen==`function`){t.webkitEnterFullscreen();return}let n=e.closest(`.player__shell`);n instanceof HTMLElement&&F(n)}function a(){let t=e;if(typeof t.webkitExitFullscreen==`function`){t.webkitExitFullscreen();return}I()}return{enterFullscreen:i,exitFullscreen:a,dispose:()=>{for(let[t,n]of r)e.removeEventListener(t,n)}}}function Ke(e,t){let n=[[`enterpictureinpicture`,t],[`leavepictureinpicture`,t]];for(let[t,r]of n)e.addEventListener(t,r);function r(){return typeof document<`u`&&!!document.pictureInPictureEnabled&&!e.disablePictureInPicture}function i(){return document.pictureInPictureElement===e}function a(){i()?document.exitPictureInPicture():r()&&e.requestPictureInPicture()}return{featuresPip:r,isPipActive:i,togglePip:a,dispose:()=>{for(let[t,r]of n)e.removeEventListener(t,r)}}}const qe=`application/x-mpegURL`,Je=[`play`,`pause`,`ended`,`error`,`timeupdate`,`durationchange`,`progress`,`volumechange`,`ratechange`,`seeking`,`seeked`,`waiting`,`playing`,`canplay`];function Ye(e){return{levels:()=>e.levels.map((e,t)=>({index:t,height:e.height,bitrate:e.bitrate,label:`${e.height}p`})),isAuto:()=>e.autoLevelEnabled,currentIndex:()=>e.currentLevel,setIndex:t=>{e.currentLevel=t??-1}}}function Xe(e){return{levels:()=>e.getBitrateInfoListFor(`video`).map(e=>({index:e.qualityIndex,height:e.height,bitrate:e.bitrate,label:`${e.height}p`})),isAuto:()=>e.getSettings().streaming?.abr?.autoSwitchBitrate?.video??!0,currentIndex:()=>e.getQualityFor(`video`),setIndex:t=>{if(t===null){e.updateSettings({streaming:{abr:{autoSwitchBitrate:{video:!0}}}});return}e.updateSettings({streaming:{abr:{autoSwitchBitrate:{video:!1}}}}),e.setQualityFor(`video`,t,!0)}}}function Ze(e,t){let n=he(),r=null,i=null,a=!1,o=null,s=null;async function c(i){let{default:s}=await import(`hls.js`);if(a||o!==i)return;if(typeof s?.isSupported!=`function`||!s.isSupported()){e.src=i,t.autoplay&&e.play();return}r=new s({liveDurationInfinity:!0}),r.loadSource(i),r.attachMedia(e),t.autoplay&&e.play();let c=s.Events,l=s.ErrorTypes;r.on(c.MANIFEST_PARSED,f(`qualitychange`)),r.on(c.LEVEL_SWITCHED,f(`qualitychange`)),r.on(c.ERROR,(e,t)=>{if(!(!t.fatal||a||o!==i))switch(t.type){case l.NETWORK_ERROR:r?.startLoad();break;case l.MEDIA_ERROR:r?.recoverMediaError();break;default:r?.destroy(),r=null,n.trigger(`error`);break}})}async function l(r){let o=await import(`dashjs`);if(a||s!==r)return;let c=o.MediaPlayer().create();i=c,c.initialize(e,r,t.autoplay??!1);let l=o.MediaPlayer.events;c.on(l.QUALITY_CHANGE_RENDERED,f(`qualitychange`)),c.on(l.STREAM_INITIALIZED,f(`qualitychange`)),c.on(l.ERROR,()=>{a||s!==r||(c.destroy(),i=null,n.trigger(`error`))})}function u(){return/Apple/.test(navigator.vendor)&&!/CriOS|FxiOS|OPiOS|EdgiOS|Chrome|Chromium|Android/.test(navigator.userAgent)&&(e.canPlayType(`application/vnd.apple.mpegurl`)!==``||e.canPlayType(qe)!==``)}function d(n,a){if(r?.destroy(),r=null,o=null,i?.destroy(),i=null,s=null,a===`application/dash+xml`){s=n,l(n);return}if(a===qe&&!u()){o=n,c(n);return}e.src=n,t.autoplay&&e.play()}let f=e=>()=>n.trigger(e),p=Je.map(e=>[e,f(e)]);for(let[t,n]of p)e.addEventListener(t,n);let m=Ue(e,f(`captionschange`)),h=We(()=>r?Ye(r):i?Xe(i):null),g=Ge(e,f(`nativefullscreenenter`),f(`nativefullscreenexit`)),_=Ke(e,f(`pipchange`));return e.poster=t.poster??``,e.muted=t.muted??t.autoplay??!1,e.playbackRate=t.playbackRate??1,e.playsInline=!0,d(t.src,t.type),{el:e,play:()=>e.play(),pause:()=>e.pause(),paused:()=>e.paused,currentTime:()=>e.currentTime,setCurrentTime:t=>{e.currentTime=t},duration:()=>e.duration,volume:()=>e.volume,setVolume:t=>{e.volume=t},muted:()=>e.muted,setMuted:t=>{e.muted=t},playbackRate:()=>e.playbackRate,setPlaybackRate:t=>{e.playbackRate=t},bufferedEnd:()=>{let{buffered:t,duration:n}=e;if(!t.length)return 0;let r=t.end(t.length-1);return n&&r>n?n:r},error:()=>{let t=e.error;return t?{code:t.code,message:t.message||`This video could not be played.`}:null},setSrc:d,featuresPlaybackRate:()=>!0,featuresCaptions:m.featuresCaptions,getCaptionTracks:m.getCaptionTracks,setCaptionTrack:m.setCaptionTrack,getActiveCaptionTrack:m.getActiveCaptionTrack,featuresQuality:h.featuresQuality,getQualityLevels:h.getQualityLevels,getCurrentQuality:h.getCurrentQuality,isAutoQuality:h.isAutoQuality,setQuality:h.setQuality,featuresPip:_.featuresPip,isPipActive:_.isPipActive,togglePip:_.togglePip,enterFullscreen:g.enterFullscreen,exitFullscreen:g.exitFullscreen,on:n.on,off:n.off,dispose:()=>{a=!0,r?.destroy(),i?.destroy();for(let[t,n]of p)e.removeEventListener(t,n);m.dispose(),g.dispose(),_.dispose(),n.dispose()}}}const Qe=new Set;function $e(e){return Qe.add(e),()=>Qe.delete(e)}function et(e){Qe.forEach(t=>{if(t!==e)try{t()}catch{}})}function tt(e){let t=new Set,n=null;function r(){t.forEach(e=>e())}return i=>(n||=e(r),t.add(i),()=>{t.delete(i),t.size===0&&(n?.(),n=null)})}const nt=tt(e=>(document.addEventListener(`fullscreenchange`,e),document.addEventListener(`webkitfullscreenchange`,e),()=>{document.removeEventListener(`fullscreenchange`,e),document.removeEventListener(`webkitfullscreenchange`,e)})),rt=tt(e=>(document.addEventListener(`visibilitychange`,e),window.addEventListener(`blur`,e),()=>{document.removeEventListener(`visibilitychange`,e),window.removeEventListener(`blur`,e)}));function it(e){let t=C(!1),n=C(!1),r=null;function i(){let e=document;t.value=!!(document.fullscreenElement||e.webkitFullscreenElement),n.value=!1}function a(){let r=e();if(r){if(t.value){r.exitFullscreen();return}n.value=!0,r.enterFullscreen()}}function o(){n.value=!0}function s(e){e.on(B,()=>{n.value=!0}),e.on(V,()=>{n.value=!1}),e.on(`nativefullscreenenter`,()=>{t.value=!0,n.value=!1}),e.on(`nativefullscreenexit`,()=>{t.value=!1,n.value=!1})}return y(()=>{r=nt(i)}),v(()=>{r?.()}),{isFullscreen:t,isFullscreenPending:n,toggleFullscreen:a,markFullscreenPending:o,attachPlayerEvents:s}}function at(e){let t=C(!1),n=null;function r(){clearTimeout(n??void 0),t.value&&e(`bufferend`),t.value=!1}function i(i){i.on(`waiting`,()=>{clearTimeout(n??void 0),n=setTimeout(()=>{t.value=!0,e(`bufferstart`)},500)}),i.on(`playing`,r),i.on(`canplay`,r)}return v(()=>clearTimeout(n??void 0)),{isBuffering:t,attachPlayerEvents:i,reset:r}}function ot(e,t,n){let r=new Set;function i(){if(!t.value)return;let i=e.value/t.value;for(let[e,t]of q)!r.has(e)&&i>=e&&(r.add(e),n(t))}function a(){r.clear()}return{checkQuartiles:i,reset:a}}function st(){try{return JSON.parse(localStorage.getItem(`player:positions`)??`[]`)}catch{return[]}}function ct(e){localStorage.setItem(`player:positions`,JSON.stringify(e))}function lt(e,t){if(t<5)return;let n=st().filter(t=>t.url!==e);n.unshift({url:e,time:t}),ct(n.slice(0,5))}function ut(e){return st().find(t=>t.url===e)?.time??null}function dt(e){ct(st().filter(t=>t.url!==e))}function ft(e,t,n){let r=!1;function i(t){if(r)return;let n=ut(e);n&&t.setCurrentTime(n),r=!0}function a(t){!t||n.value||lt(e,t.currentTime()??0)}function o(){dt(e)}function s(){document.visibilityState===`hidden`&&a(t())}return y(()=>document.addEventListener(`visibilitychange`,s)),v(()=>{a(t()),document.removeEventListener(`visibilitychange`,s)}),{restoreOnce:i,save:a,clear:o}}const pt=new WeakMap,mt=[.1,.5];function ht(e){let t=pt.get(e);if(t)return t;let n=new Set,r=new IntersectionObserver(([e])=>n.forEach(t=>t(e)),{threshold:mt});r.observe(e);let i={observer:r,callbacks:n};return pt.set(e,i),i}function gt(e,t){let n=ht(e);return n.callbacks.add(t),()=>{n.callbacks.delete(t),n.callbacks.size===0&&(n.observer.disconnect(),pt.delete(e))}}let _t=null,Y=null;function vt(e,t){let n=gt(e,n=>{n.intersectionRatio<.5||(Y&&clearTimeout(Y),_t=e,Y=setTimeout(()=>{_t=null,Y=null,t()},150))});return()=>{_t===e&&Y&&(clearTimeout(Y),_t=null,Y=null),n()}}function yt(e,t,n,r){let i=null;y(()=>{let a=e.value?.closest(`.player__shell`);a&&(i=gt(a,e=>{let i=t();e.intersectionRatio<.1&&i&&!i.paused()&&!n.value&&!r.value&&i.pause()}))}),v(()=>i?.())}function bt(e,t,n,r){let i=null;y(()=>{let a=e.value?.closest(`.player__shell`);a&&(i=vt(a,()=>{let e=t();e&&e.paused()&&!n.value&&!r.value&&e.play()}))}),v(()=>i?.())}function xt(e,t,n,r,i,a){function o(){let n=e();if(!(!n||!t.value)){if(!a.value){n.play();return}n.pause()}}function s(t){e()?.setCurrentTime(n.value*(t/100))}function c(){let t=e();t?.setMuted(!t.muted())}function l(t){let n=e();n&&(n.setVolume(t),n.setMuted(t===0))}function u(){r.value=!r.value}function d(t){let n=e();n&&(n.setPlaybackRate(t),i.value=t)}return{togglePlay:o,seek:s,toggleMute:c,setVolume:l,toggleLoop:u,setPlaybackRate:d}}function St(e,t){let{isPlaying:n,hasEnded:r,isReady:i,isAdPlaying:a,isLive:o,current:s,total:c,buffered:l,vol:u,isMuted:d,isLooping:f,playbackRate:p,supportsPlaybackRate:m,supportsCaptions:h,captionTracks:g,activeCaptionIndex:_,supportsQuality:v,qualityLevels:y,currentQualityIndex:b,isAutoQuality:x,supportsPip:S,isPipActive:C,hasStarted:w,isError:T,errorMessage:E}=e,{fire:D,pauseThisPlayer:O,positionMemory:k,quartiles:A,buffering:j,fullscreen:M}=t;function N(e){i.value=!0,m.value=e.featuresPlaybackRate();function t(){g.value=e.getCaptionTracks(),h.value=e.featuresCaptions();let t=e.getActiveCaptionTrack();t!==_.value&&(_.value=t,w.value&&D(`captionchange`,{captionIndex:t}))}t(),e.on(`captionschange`,t);function N(){y.value=e.getQualityLevels(),v.value=e.featuresQuality();let t=e.getCurrentQuality(),n=e.isAutoQuality(),r=t!==b.value||n!==x.value;b.value=t,x.value=n,r&&w.value&&D(`qualitychange`,{qualityIndex:n?null:t})}N(),e.on(`qualitychange`,N);function P(){S.value=e.featuresPip();let t=e.isPipActive();t!==C.value&&(C.value=t,w.value&&D(`pipchange`,{isPipActive:t}))}P(),e.on(`pipchange`,P);let F=()=>{let t=e.duration();if(t===1/0){o.value=!0;return}o.value=!1,t&&t>0&&isFinite(t)&&(c.value=t)};e.on(`adstart`,()=>{et(O),a.value=!0,D(`adstart`)}),e.on(`adend`,()=>{a.value=!1,D(`adend`)}),e.on(`play`,()=>{et(O),w.value=!0,n.value=!0,r.value=!1,o.value||k.restoreOnce(e),D(`play`)}),e.on(`pause`,()=>{n.value=!1,o.value||k.save(e),D(`pause`)}),e.on(`ended`,()=>{if(n.value=!1,A.reset(),j.reset(),f.value){e.setCurrentTime(0),e.play();return}c.value&&(s.value=c.value),r.value=!0,k.clear(),D(`ended`)}),e.on(`seeked`,()=>{D(`seeked`)}),e.on(`error`,()=>{let t=e.error();E.value=t?.message||`This video could not be played.`,T.value=!0,i.value=!0,D(`error`,{error:t})});let I=0;e.on(`timeupdate`,()=>{if(r.value)return;s.value=e.currentTime()??0,c.value||F(),m.value||=e.featuresPlaybackRate();let t=e.getActiveCaptionTrack();_.value!==t&&(_.value=t,w.value&&D(`captionchange`,{captionIndex:t})),o.value||A.checkQuartiles();let n=Date.now();w.value&&n-I>=250&&(I=n,D(`timeupdate`))}),e.on(`durationchange`,F),e.on(`progress`,()=>{let t=e.duration();l.value=t?e.bufferedEnd()/t*100:0}),e.on(`volumechange`,()=>{let t=e.muted();u.value=e.volume()??1,d.value=t??!1,w.value&&D(`volumechange`,{isMuted:t})}),e.on(`ratechange`,()=>{let t=e.playbackRate()??1;p.value=t,w.value&&D(`ratechange`,{playbackRate:t})}),j.attachPlayerEvents(e),M.attachPlayerEvents(e)}return{attachPlayerEvents:N}}function Ct(){return window.google?.ima?Promise.resolve():_e(`https://imasdk.googleapis.com/js/sdkloader/ima3.js`,`ima`)}function wt(e,t,n,r){let i=document.createElement(`div`);i.className=`ima-ad-container`,e.appendChild(i);let a=n,o=null,s=null,c=null,l=!1,u=!1,d=!1,f=!1,p=!1,m=!1,h=1,g=new ResizeObserver(([e])=>{let t=window.google?.ima;if(!c||!t)return;let{width:n,height:r}=e.contentRect;c.resize(n,r,t.ViewMode.NORMAL)});g.observe(t);function _(){s?.contentComplete()}function v(t){f=t,e.classList.toggle(ie,t),t||(p=!1,e.classList.remove(ae))}function y(){if(l||!u||!d||!o||!s||!a)return;l=!0;let e=window.google?.ima;if(!e)return;o.initialize();let t=new e.AdsRequest;t.adTagUrl=a,s.requestAds(t)}function b(e){a=e,y()}Ct().then(()=>{if(m)return;let n=window.google?.ima;n&&(o=new n.AdDisplayContainer(i,t),s=new n.AdsLoader(o),u=!0,s.addEventListener(n.AdsManagerLoadedEvent.Type.ADS_MANAGER_LOADED,i=>{if(m)return;let a=new n.AdsRenderingSettings;a.restoreCustomPlaybackStateOnAdBreakComplete=!0,c=i.getAdsManager(t,a),t.addEventListener(`ended`,_),c.addEventListener(n.AdEvent.Type.CONTENT_PAUSE_REQUESTED,()=>{t.removeEventListener(`ended`,_),t.pause(),v(!0),r.onAdStart();let e=c?.getVolume()??1;e>0&&(h=e),r.onAdMuteChange(e===0)}),c.addEventListener(n.AdEvent.Type.CONTENT_RESUME_REQUESTED,()=>{t.addEventListener(`ended`,_),v(!1),r.onAdEnd(),t.ended||t.play()}),c.addEventListener(n.AdEvent.Type.PAUSED,()=>{p=!0,e.classList.add(ae),r.onAdPauseChange(!0)}),c.addEventListener(n.AdEvent.Type.RESUMED,()=>{p=!1,e.classList.remove(ae),r.onAdPauseChange(!1)}),c.addEventListener(n.AdEvent.Type.AD_PROGRESS,()=>{r.onAdProgress(c?.getRemainingTime()??0)}),c.addEventListener(n.AdErrorEvent.Type.AD_ERROR,e=>{v(!1),r.onError(e.getError().getMessage()),t.play()});try{c.init(t.clientWidth,t.clientHeight,n.ViewMode.NORMAL),c.start()}catch(e){r.onError(e instanceof Error?e.message:`Ad playback failed to start.`)}}),s.addEventListener(n.AdErrorEvent.Type.AD_ERROR,e=>{r.onError(e.getError().getMessage())}),y())}).catch(e=>r.onError(e.message));function x(){d=!0,y()}function S(){if(!c)return;let e=c.getVolume();e>0?(h=e,c.setVolume(0)):c.setVolume(h||1),r.onAdMuteChange(c.getVolume()===0)}return{isAdPlaying:()=>f,isAdPaused:()=>p,requestAdsOnFirstPlay:x,setAdTagUrl:b,pauseAd:()=>c?.pause(),resumeAd:()=>c?.resume(),toggleAdMute:S,dispose:()=>{m=!0,g.disconnect(),t.removeEventListener(`ended`,_),c?.destroy(),s?.destroy(),i.remove(),e.classList.remove(ie,ae)}}}function Tt(e,t){let n=window.pbjs;if(!n)return Promise.resolve(t);let r=e.timeoutMs??1e3;return new Promise(i=>{let a=!1;function o(e){a||(a=!0,i(e||t))}let s=setTimeout(()=>o(t),r);n.que.push(()=>{try{n.addAdUnits(e.adUnit),n.requestBids({adUnitCodes:[e.adUnit.code],timeout:r,bidsBackHandler:()=>{clearTimeout(s);try{o(n.adServers?.gam?.buildVideoUrl({adUnit:e.adUnit,params:e.params}))}catch{o(t)}}})}catch{clearTimeout(s),o(t)}})})}function Et(e,t){let{isAdPlaying:n,isAdPaused:r,isAdMuted:i,adRemainingTime:a}=e,{fire:o,pauseThisPlayer:s}=t,c=null,l=null;function u(e,t,u,d){if(!(u||d)||!e.parentElement)return;d&&Tt(d,u).catch(()=>u).then(e=>c?.setAdTagUrl(e));function f(){!P()&&t.isPipActive()&&document.exitPictureInPicture()}function p(){!P()&&(document.hidden||!document.hasFocus())&&c?.isAdPlaying()&&c.pauseAd()}let m=rt(p),h=()=>{t.isPipActive()||p()};t.on(`pipchange`,h),l=()=>{m(),t.off(`pipchange`,h)},c=wt(e.parentElement,e,u,{onAdStart:()=>{n.value=!0,r.value=!1,o(`adstart`),f(),p()},onAdEnd:()=>{n.value=!1,r.value=!1,a.value=0,o(`adend`)},onAdPauseChange:e=>{r.value=e,e||et(s)},onAdMuteChange:e=>{i.value=e},onAdProgress:e=>{a.value=e},onError:e=>{n.value=!1,r.value=!1,a.value=0,console.error(`Ad playback error:`,e)}}),t.on(`play`,()=>c?.requestAdsOnFirstPlay())}return{attach:u,isAdPlaying:()=>c?.isAdPlaying()??!1,isAdPaused:()=>c?.isAdPaused()??!1,pauseAd:()=>c?.pauseAd(),resumeAd:()=>c?.resumeAd(),toggleAdMute:()=>c?.toggleAdMute(),dispose:()=>{c?.dispose(),c=null,l?.(),l=null}}}function Dt(e,t,r){let i=null,a=null,o=null,s=C(!1),c=C(!1),l=C(!1),u=C(!1),d=C(!1),f=C(!1),p=C(0),m=C(!1),h=C(0),g=C(0),_=C(0),b=C(1),x=C(t.muted??t.autoplay??t.playWhenInView??!1),S=C(!1),w=C(t.playbackRate??1),T=C(!1),E=C(!1),D=C([]),O=C(null),k=C(!1),A=C([]),M=C(null),N=C(!0),P=C(!1),F=C(!1),I=C(!1),L=C(!1),z=C(``),te=C(!1),ne=n(()=>g.value?h.value/g.value*100:0),re=n(()=>Math.max(_.value,ne.value)),B=n(()=>!x.value&&b.value>0),V=()=>i,H=it(V),U=at(G),W=ft(t.videoUrl,V,c);function G(e,n={}){r(`state-change`,{type:e,currentTime:h.value,duration:g.value,src:t.videoUrl,...n,payload:t.payload})}let ie=ot(h,g,G);function ae(){!i||!o||(L.value=!1,z.value=``,i.setSrc(o.src,o.type))}function oe(){if(q.isAdPlaying()){q.pauseAd();return}i?.pause()}function K(){if(q.isAdPlaying()){q.isAdPaused()?q.resumeAd():q.pauseAd();return}J.togglePlay()}let q=Et({isAdPlaying:u,isAdPaused:d,isAdMuted:f,adRemainingTime:p},{fire:G,pauseThisPlayer:oe}),J=xt(V,l,g,S,w,s),{attachPlayerEvents:se}=St({isPlaying:s,hasEnded:c,isReady:l,isAdPlaying:u,isLive:m,current:h,total:g,buffered:_,vol:b,isMuted:x,isLooping:S,playbackRate:w,supportsPlaybackRate:T,supportsCaptions:E,captionTracks:D,activeCaptionIndex:O,supportsQuality:k,qualityLevels:A,currentQualityIndex:M,isAutoQuality:N,supportsPip:P,isPipActive:F,hasStarted:I,isError:L,errorMessage:z},{fire:G,pauseThisPlayer:oe,positionMemory:W,quartiles:ie,buffering:U,fullscreen:H});function ce(e){i?.setCaptionTrack(e),O.value=e,I.value&&G(`captionchange`,{captionIndex:e})}function le(e){i?.setQuality(e),M.value=e,N.value=e===null,I.value&&G(`qualitychange`,{qualityIndex:e})}function ue(){i?.togglePip()}function de(){J.toggleLoop(),I.value&&G(`loopchange`,{isLooping:S.value})}return j(()=>t.muted,e=>{!i||e===void 0||i.setMuted(e)}),j(()=>t.playbackRate,e=>{!i||e===void 0||i.setPlaybackRate(e)}),yt(e,V,H.isFullscreen,H.isFullscreenPending),t.playWhenInView&&bt(e,V,H.isFullscreen,H.isFullscreenPending),j(I,t=>{!t||!e.value||!i||i.el===e.value||be(e.value,i.el)}),y(async()=>{let n=Le(t.videoUrl);if(n.embed){if(!e.value)return;let r=Be(n.key,e.value,{src:t.videoUrl,poster:t.poster,autoplay:t.autoplay,muted:t.muted??t.autoplay??t.playWhenInView,nativeUi:t.nativeUi});if(!r){L.value=!0,l.value=!0,z.value=`This platform is not yet supported.`;return}te.value=!!t.nativeUi,i=r,o={src:t.videoUrl},a=$e(oe),se(i);return}let r=await Ve(n.key,t.videoUrl).catch(()=>({src:t.videoUrl}));if(!e.value)return;o={src:r.src,type:r.type},i=Ze(e.value,{src:r.src,type:r.type,poster:r.poster||t.poster||``,autoplay:t.autoplay,muted:t.muted??t.autoplay,playbackRate:w.value});let s=ee(t.adTagUrl||r.adTagUrl||``,t.adTagParams);q.attach(e.value,i,s,t.headerBidding),a=$e(oe),se(i)}),v(()=>{a?.(),q.dispose(),i?.dispose(),i=null}),{isPlaying:s,hasEnded:c,isReady:l,isAdPlaying:u,isAdPaused:d,isAdMuted:f,adRemainingTime:p,isLive:m,isBuffering:U.isBuffering,current:h,total:g,vol:b,isMuted:x,isAudible:B,isLooping:S,playbackRate:w,hasStarted:I,isError:L,errorMessage:z,progress:ne,bufferedDisplay:re,isFullscreen:H.isFullscreen,isFullscreenPending:H.isFullscreenPending,fmt:R,fire:G,retry:ae,togglePlay:K,seek:J.seek,toggleMute:J.toggleMute,setVolume:J.setVolume,toggleFullscreen:H.toggleFullscreen,markFullscreenPending:H.markFullscreenPending,toggleLoop:de,toggleAdMute:q.toggleAdMute,setPlaybackRate:J.setPlaybackRate,supportsPlaybackRate:T,supportsCaptions:E,captionTracks:D,activeCaptionIndex:O,setCaptionTrack:ce,supportsQuality:k,qualityLevels:A,currentQualityIndex:M,isAutoQuality:N,setQuality:le,supportsPip:P,isPipActive:F,togglePip:ue,nativeUi:te}}function Ot(e){let t=C(!0),n=C(!1),r=null,i=0;function a(e=400){i=Date.now()+e}function o(e=3500){clearTimeout(r??void 0),r=setTimeout(()=>{t.value=!1,n.value=!1},e)}function s(){clearTimeout(r??void 0)}function c(){n.value=!0,t.value=!0,o()}function l(){n.value=!1,e.value&&o()}function u(){e.value&&o()}function d(){t.value=!0,e.value&&o()}function f(){t.value=!0,o()}function p(){Date.now()<i||e.value&&o(600)}return j(e,e=>{if(!e){clearTimeout(r??void 0),t.value=!0;return}o()}),v(()=>clearTimeout(r??void 0)),{showHUD:t,isOpen:n,scheduleHide:o,pauseHide:s,onVideoTap:d,onMouseMove:f,onMouseLeave:p,openControls:c,closeControls:l,keepOpen:u,suppressMouseLeave:a}}const X=Symbol(`player`),kt=Symbol(`hud`),At=Symbol(`action`),jt=Symbol(`compact`),Mt=Symbol(`playlist`);function Z(e){let t=f(e);if(t===void 0)throw Error(`[video-player] missing "${String(e.description)}" context — this component must be rendered inside <VideoPlayer>`);return t}function Nt(e,t){return{hudVisible:n(()=>!e.isReady||e.isError?!1:t.showHUD),popupVisible:n(()=>!e.isReady||e.isError?!1:e.isFullscreen?t.showHUD:t.isOpen)}}function Pt(e,t){return n(()=>!(!e?.value||t.isFullscreen))}function Ft(e,t,r){let i=n(()=>e?.value??null),a=n(()=>!!i.value&&typeof i.value==`object`),o=n(()=>a.value?i.value:null),s=n(()=>i.value===`mute`?t.isMuted?`Unmute`:`Mute`:i.value===`loop`?t.isLooping?`Disable loop`:`Loop`:i.value===`autoplay`?r.autoAdvance?`Disable autoplay next`:`Autoplay next`:``),c=n(()=>i.value===`mute`?t.isMuted:i.value===`loop`?t.isLooping:i.value===`autoplay`&&r.autoAdvance);function l(){i.value===`mute`?t.toggleMute():i.value===`loop`?t.toggleLoop():i.value===`autoplay`&&r.toggleAutoAdvance()}return{currentAction:i,isCustom:a,customAction:o,builtinLabel:s,builtinActive:c,onBuiltinClick:l}}var Q=(e,t)=>{let n=e.__vccOpts||e;for(let[e,r]of t)n[e]=r;return n};const It={},Lt={viewBox:`0 0 24 24`,fill:`currentColor`};function Rt(e,t){return b(),a(`svg`,Lt,[...t[0]||=[o(`path`,{d:`M20 11H7.83l5.59-5.59L12 4l-8 8 8 8 1.41-1.41L7.83 13H20v-2z`},null,-1)]])}var zt=Q(It,[[`render`,Rt]]);const Bt={},Vt={viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`2`,"stroke-linecap":`round`,"stroke-linejoin":`round`};function Ht(e,t){return b(),a(`svg`,Vt,[...t[0]||=[o(`rect`,{x:`2`,y:`5`,width:`20`,height:`14`,rx:`2`},null,-1),o(`path`,{d:`M9.5 10.5a2 2 0 0 0-3.5 1.3v.4a2 2 0 0 0 3.5 1.3`},null,-1),o(`path`,{d:`M17.5 10.5a2 2 0 0 0-3.5 1.3v.4a2 2 0 0 0 3.5 1.3`},null,-1)]])}var Ut=Q(Bt,[[`render`,Ht]]);const Wt={},Gt={viewBox:`0 0 24 24`,fill:`currentColor`};function Kt(e,t){return b(),a(`svg`,Gt,[...t[0]||=[o(`path`,{d:`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 qt=Q(Wt,[[`render`,Kt]]);const Jt={},Yt={viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`2`,"stroke-linecap":`round`,"stroke-linejoin":`round`};function Xt(e,t){return b(),a(`svg`,Yt,[...t[0]||=[s(`<line x1="4" y1="6" x2="20" y2="6"></line><line x1="4" y1="12" x2="20" y2="12"></line><line x1="4" y1="18" x2="20" y2="18"></line><circle cx="9" cy="6" r="2.5" fill="currentColor" stroke="none"></circle><circle cx="15" cy="12" r="2.5" fill="currentColor" stroke="none"></circle><circle cx="9" cy="18" r="2.5" fill="currentColor" stroke="none"></circle>`,6)]])}var Zt=Q(Jt,[[`render`,Xt]]);const Qt={},$t={viewBox:`0 0 24 24`,fill:`currentColor`};function en(e,t){return b(),a(`svg`,$t,[...t[0]||=[o(`path`,{d:`M4 12l1.41 1.41L11 7.83V20h2V7.83l5.59 5.58L20 12l-8-8-8 8z`},null,-1)]])}var tn=Q(Qt,[[`render`,en]]);const nn={},rn={viewBox:`0 0 24 24`,fill:`currentColor`};function an(e,t){return b(),a(`svg`,rn,[...t[0]||=[o(`path`,{d:`M7 14H5v5h5v-2H7v-3zm-2-4h2V7h3V5H5v5zm12 7h-3v2h5v-5h-2v3zM14 5v2h3v3h2V5h-5z`},null,-1)]])}var on=Q(nn,[[`render`,an]]);const sn={},cn={viewBox:`0 0 24 24`,fill:`currentColor`};function ln(e,t){return b(),a(`svg`,cn,[...t[0]||=[o(`path`,{d:`M5 16h3v3h2v-5H5v2zm3-8H5v2h5V5H8v3zm6 11h2v-3h3v-2h-5v5zm2-11V5h-2v5h5V8h-3z`},null,-1)]])}var un=Q(sn,[[`render`,ln]]);const dn={},fn={viewBox:`0 0 24 24`,fill:`currentColor`};function pn(e,t){return b(),a(`svg`,fn,[...t[0]||=[o(`path`,{d:`M7 7h10v3l4-4-4-4v3H5v6h2V7zm10 10H7v-3l-4 4 4 4v-3h12v-6h-2v4z`},null,-1)]])}var mn=Q(dn,[[`render`,pn]]);const hn={},gn={viewBox:`0 0 24 24`,fill:`currentColor`};function _n(e,t){return b(),a(`svg`,gn,[...t[0]||=[o(`circle`,{cx:`5`,cy:`12`,r:`2`},null,-1),o(`circle`,{cx:`12`,cy:`12`,r:`2`},null,-1),o(`circle`,{cx:`19`,cy:`12`,r:`2`},null,-1)]])}var vn=Q(hn,[[`render`,_n]]);const yn={},bn={viewBox:`0 0 24 24`,fill:`currentColor`};function xn(e,t){return b(),a(`svg`,bn,[...t[0]||=[o(`path`,{d:`M6 19h4V5H6v14zm8-14v14h4V5h-4z`},null,-1)]])}var Sn=Q(yn,[[`render`,xn]]);const Cn={},wn={viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`2`,"stroke-linecap":`round`,"stroke-linejoin":`round`};function Tn(e,t){return b(),a(`svg`,wn,[...t[0]||=[o(`rect`,{x:`2`,y:`4`,width:`20`,height:`16`,rx:`2`},null,-1),o(`rect`,{x:`12`,y:`11`,width:`8`,height:`6`,rx:`1`,fill:`currentColor`,stroke:`none`},null,-1)]])}var En=Q(Cn,[[`render`,Tn]]);const Dn={},On={viewBox:`0 0 24 24`,fill:`currentColor`};function kn(e,t){return b(),a(`svg`,On,[...t[0]||=[o(`path`,{d:`M8 5v14l11-7z`},null,-1)]])}var An=Q(Dn,[[`render`,kn]]);const jn={},Mn={viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`2`,"stroke-linecap":`round`,"stroke-linejoin":`round`};function Nn(e,t){return b(),a(`svg`,Mn,[...t[0]||=[o(`rect`,{x:`2`,y:`6`,width:`20`,height:`12`,rx:`2`},null,-1),o(`path`,{d:`M7 14v-4M12 14V8M17 14v-2`},null,-1)]])}var Pn=Q(jn,[[`render`,Nn]]);const Fn={},In={viewBox:`0 0 24 24`,fill:`currentColor`};function Ln(e,t){return b(),a(`svg`,In,[...t[0]||=[o(`path`,{d:`M12 5V1L7 6l5 5V7c3.31 0 6 2.69 6 6s-2.69 6-6 6-6-2.69-6-6H4c0 4.42 3.58 8 8 8s8-3.58 8-8-3.58-8-8-8z`},null,-1)]])}var Rn=Q(Fn,[[`render`,Ln]]);const zn={},Bn={viewBox:`0 0 24 24`,fill:`currentColor`};function Vn(e,t){return b(),a(`svg`,Bn,[...t[0]||=[o(`path`,{d:`M6 18l8.5-6L6 6v12zM16 6v12h2V6h-2z`},null,-1)]])}var Hn=Q(zn,[[`render`,Vn]]);const Un={},Wn={viewBox:`0 0 24 24`,fill:`currentColor`};function Gn(e,t){return b(),a(`svg`,Wn,[...t[0]||=[o(`path`,{d:`M16.5 12A4.5 4.5 0 0 0 14 7.97v2.21l2.45 2.45c.03-.2.05-.41.05-.63zm2.5 0c0 .94-.2 1.82-.54 2.64l1.51 1.51A8.796 8.796 0 0 0 21 12c0-4.28-2.99-7.86-7-8.77v2.06c2.89.86 5 3.54 5 6.71zM4.27 3L3 4.27 7.73 9H3v6h4l5 5v-6.73l4.25 4.25c-.67.52-1.42.93-2.25 1.18v2.06A8.99 8.99 0 0 0 17.73 18L19 19.27 20.27 18 5.27 3 4.27 3zM12 4L9.91 6.09 12 8.18V4z`},null,-1)]])}var Kn=Q(Un,[[`render`,Gn]]);const qn={},Jn={viewBox:`0 0 24 24`,fill:`currentColor`};function Yn(e,t){return b(),a(`svg`,Jn,[...t[0]||=[o(`path`,{d:`M3 9v6h4l5 5V4L7 9H3zm13.5 3A4.5 4.5 0 0 0 14 7.97v8.05c1.48-.73 2.5-2.25 2.5-4.02z`},null,-1)]])}var Xn=Q(qn,[[`render`,Yn]]);function $(e,t){return n(()=>e.value?e.value:t.value?document.getElementById(t.value)??null:null)}const Zn=[`aria-label`];var Qn=Q(u({__name:`PlayButton`,props:{player:{type:[Object,null],required:!1},for:{type:String,required:!1}},setup(e){let t=e,i=$(k(t,`player`),k(t,`for`)),o=n(()=>i.value?.isError?`error`:i.value?.hasEnded?`ended`:i.value?.isPlaying?`playing`:`idle`),s=n(()=>{switch(o.value){case`error`:return`Retry`;case`ended`:return`Replay`;case`playing`:return`Pause`;default:return`Play`}});function c(){let e=i.value;e&&(e.isError?e.retry():e.togglePlay())}return(e,t)=>(b(),a(`button`,{type:`button`,class:`mvp-play-button`,"aria-label":s.value,onClick:c},[T(e.$slots,`default`,{isPlaying:A(i)?.isPlaying??!1,hasEnded:A(i)?.hasEnded??!1,isError:A(i)?.isError??!1},()=>[o.value===`error`||o.value===`ended`?(b(),r(A(Rn),{key:0})):o.value===`playing`?(b(),r(A(Sn),{key:1})):(b(),r(A(An),{key:2}))],!0)],8,Zn))}}),[[`__scopeId`,`data-v-218255bd`]]),$n=Q(u({__name:`Spinner`,props:{size:{type:Number,required:!1,default:14},borderWidth:{type:Number,required:!1,default:2}},setup(e){return(t,n)=>(b(),a(`div`,{class:`spinner`,style:_({width:`${e.size}px`,height:`${e.size}px`,borderWidth:`${e.borderWidth}px`})},null,4))}}),[[`__scopeId`,`data-v-259be2b2`]]);const er={key:0,class:`mvp-buffering`};var tr=Q(u({__name:`Buffering`,props:{player:{type:[Object,null],required:!1},for:{type:String,required:!1}},setup(e){let t=e,n=$(k(t,`player`),k(t,`for`));return(e,t)=>A(n)?.isBuffering?(b(),a(`div`,er,[T(e.$slots,`default`,{},()=>[l($n)],!0)])):i(`v-if`,!0)}}),[[`__scopeId`,`data-v-454fec7f`]]),nr=u({__name:`VolumeIcon`,props:{isAudible:{type:Boolean,required:!0}},setup(e){return(t,n)=>e.isAudible?(b(),r(A(Xn),{key:0})):(b(),r(A(Kn),{key:1}))}});const rr={class:`hud`},ir=[`aria-label`],ar=[`aria-label`],or=[`aria-label`],sr=[`aria-label`,`innerHTML`],cr={key:4,class:`hud__spacer`},lr={class:`hud__play-wrap`};var ur=Q(u({__name:`HudButtons`,setup(t){let n=Z(X),r=Z(kt),{currentAction:s,isCustom:c,customAction:u,builtinLabel:d,builtinActive:p,onBuiltinClick:m}=Ft(f(At),n,Z(Mt));return(t,f)=>(b(),a(`div`,rr,[!A(r).isOpen&&!A(n).isFullscreen?(b(),a(e,{key:0},[A(s)===`mute`?(b(),a(`button`,{key:0,class:h([`hud__btn`,{"hud__btn--active":A(p)}]),"aria-label":A(d),onClick:f[0]||=N((...e)=>A(m)&&A(m)(...e),[`stop`])},[l(nr,{"is-audible":A(n).isAudible},null,8,[`is-audible`])],10,ir)):A(s)===`loop`?(b(),a(`button`,{key:1,class:h([`hud__btn`,{"hud__btn--active":A(p)}]),"aria-label":A(d),onClick:f[1]||=N((...e)=>A(m)&&A(m)(...e),[`stop`])},[l(A(mn))],10,ar)):A(s)===`autoplay`?(b(),a(`button`,{key:2,class:h([`hud__btn`,{"hud__btn--active":A(p)}]),"aria-label":A(d),onClick:f[2]||=N((...e)=>A(m)&&A(m)(...e),[`stop`])},[l(A(Hn))],10,or)):A(c)&&A(u)?(b(),a(`button`,{key:3,class:`hud__btn`,"aria-label":A(u).label,onClick:f[3]||=N(e=>A(u).onClick(),[`stop`]),innerHTML:A(u).icon},null,8,sr)):(b(),a(`div`,cr))],64)):i(`v-if`,!0),o(`div`,lr,[l(Qn,{player:A(n),class:`ppbtn ppbtn--lg`},null,8,[`player`]),l(tr,{player:A(n),class:`hud__buf-spinner`},null,8,[`player`])]),!A(r).isOpen&&!A(n).isFullscreen?(b(),a(`button`,{key:1,class:`hud__btn`,"aria-label":`Show controls`,onClick:f[4]||=N((...e)=>A(r).openControls&&A(r).openControls(...e),[`stop`])},[l(A(Zt))])):i(`v-if`,!0)]))}}),[[`__scopeId`,`data-v-a6d118e7`]]);function dr(e,t,n){if(!document.startViewTransition||!e.value){n();return}e.value.style.viewTransitionName=t,document.startViewTransition(async()=>{n(),await m()}).finished.finally(()=>{e.value&&(e.value.style.viewTransitionName=``)})}const fr=[`aria-label`];var pr=Q(u({__name:`FullscreenButton`,props:{player:{type:[Object,null],required:!1},for:{type:String,required:!1}},setup(e){let t=e,n=$(k(t,`player`),k(t,`for`));return(e,t)=>(b(),a(`button`,{type:`button`,class:`mvp-fullscreen-button`,"aria-label":A(n)?.isFullscreen?`Exit fullscreen`:`Enter fullscreen`,onClick:t[0]||=e=>A(n)?.toggleFullscreen()},[T(e.$slots,`default`,{isFullscreen:A(n)?.isFullscreen??!1},()=>[A(n)?.isFullscreen?(b(),r(A(un),{key:0})):(b(),r(A(on),{key:1}))],!0)],8,fr))}}),[[`__scopeId`,`data-v-b93a5017`]]);const mr=[`aria-pressed`];var hr=Q(u({__name:`PipButton`,props:{player:{type:[Object,null],required:!1},for:{type:String,required:!1}},setup(e){let t=e,n=$(k(t,`player`),k(t,`for`));return(e,t)=>A(n)?.supportsPip?(b(),a(`button`,{key:0,type:`button`,class:h([`mvp-pip-button`,{"mvp-pip-button--active":A(n)?.isPipActive}]),"aria-pressed":A(n)?.isPipActive??!1,"aria-label":`Toggle Picture-in-Picture`,onClick:t[0]||=e=>A(n)?.togglePip()},[T(e.$slots,`default`,{isPipActive:A(n)?.isPipActive??!1},()=>[l(A(En))],!0)],10,mr)):i(`v-if`,!0)}}),[[`__scopeId`,`data-v-f654d93e`]]);function gr(e){let t=C(!1),r=C(null),i=!1,a=null,o=n(()=>{let t=e.value;return t?.total?t.current/t.total*100:0}),s=n(()=>r.value??o.value),c=n(()=>r.value!==null),l=n(()=>{let t=e.value?.total??0;return s.value/100*t});function u(){a&&clearTimeout(a),a=null,r.value=null}function d(n){let o=e.value;o?.total&&(t.value||=(i=o.isPlaying,o.isPlaying&&o.togglePlay(),!0),a&&clearTimeout(a),a=null,r.value=Number(n.target.value))}function f(n){if(!t.value)return;t.value=!1;let o=e.value;if(!o)return;let s=Number(n.target.value);r.value=s,o.seek(s),i&&o.togglePlay(),a&&clearTimeout(a),a=setTimeout(u,3e3)}return j(()=>e.value?.current,()=>{let t=e.value;if(r.value===null||!t?.total)return;let n=r.value/100*t.total;Math.abs(t.current-n)<1&&u()}),v(u),{scrubbing:c,displayPercent:s,previewSeconds:l,onInput:d,onChange:f}}const _r={class:`mvp-scrubber-wrap`},vr=[`value`];var yr=Q(u({inheritAttrs:!1,__name:`Scrubber`,props:{player:{type:[Object,null],required:!1},for:{type:String,required:!1}},setup(e){let t=e,n=$(k(t,`player`),k(t,`for`)),{scrubbing:r,displayPercent:s,previewSeconds:c,onInput:l,onChange:u}=gr(n),d=e=>R(e,!0);return(e,t)=>(b(),a(`div`,_r,[o(`input`,p({type:`range`,min:`0`,max:`100`,step:`0.1`,value:A(s),class:`mvp-scrubber`},e.$attrs,{style:{"--p":`${A(s)}%`,"--b":`${A(n)?.bufferedDisplay??0}%`},onInput:t[0]||=(...e)=>A(l)&&A(l)(...e),onChange:t[1]||=(...e)=>A(u)&&A(u)(...e)}),null,16,vr),T(e.$slots,`preview`,{scrubbing:A(r),percent:A(s),previewSeconds:A(c),formatTime:d},()=>[A(r)?(b(),a(`div`,{key:0,class:`mvp-scrubber__preview`,style:_({left:`${A(s)}%`})},O(d(A(c))),5)):i(`v-if`,!0)],!0)]))}}),[[`__scopeId`,`data-v-043f1bc8`]]),br=Q(u({__name:`TimeDisplay`,props:{player:{type:[Object,null],required:!1},for:{type:String,required:!1}},setup(t){let n=t,r=$(k(n,`player`),k(n,`for`));return(t,n)=>(b(),a(`span`,{class:h([`mvp-time-display`,{"mvp-time-display--live":A(r)?.isLive}])},[T(t.$slots,`default`,{isLive:A(r)?.isLive??!1,current:A(r)?.current??0,total:A(r)?.total??0,formatTime:A(R)},()=>[A(r)?.isLive?(b(),a(e,{key:0},[n[0]||=o(`span`,{class:`mvp-time-display__dot`},null,-1),n[1]||=c(`Live `,-1)],64)):(b(),a(e,{key:1},[c(O(A(R)(A(r)?.current??0))+` / `+O(A(R)(A(r)?.total??0)),1)],64))],!0)],2))}}),[[`__scopeId`,`data-v-0285c811`]]);const xr={class:`mvp-volume-wrap`},Sr=[`value`],Cr={class:`mvp-volume-pct`};var wr=Q(u({inheritAttrs:!1,__name:`VolumeSlider`,props:{player:{type:[Object,null],required:!1},for:{type:String,required:!1}},setup(e){let t=e,r=$(k(t,`player`),k(t,`for`)),i=n(()=>{let e=r.value;return e?e.isMuted?0:Math.round(e.vol*100):0});function s(e){r.value?.setVolume(Number(e.target.value)/100)}return(e,t)=>(b(),a(`div`,xr,[o(`input`,p({type:`range`,min:`0`,max:`100`,step:`1`,value:i.value,class:`mvp-volume-slider`},e.$attrs,{style:{"--v":`${i.value}%`},"aria-label":`Volume`,onInput:s}),null,16,Sr),T(e.$slots,`default`,{percent:i.value},()=>[o(`span`,Cr,O(i.value)+`%`,1)],!0)]))}}),[[`__scopeId`,`data-v-fbb2c86c`]]);const Tr={class:`controls__vol-header`},Er=[`aria-label`],Dr={class:`controls__vol-body`},Or={class:`controls__vol-pct`};var kr=Q(u({__name:`VolumePanel`,emits:[`back`],setup(t){let n=Z(X),r=Z(kt);return(t,i)=>(b(),a(e,null,[o(`div`,Tr,[o(`button`,{class:`controls__btn`,"aria-label":`Back`,onClick:i[0]||=e=>t.$emit(`back`)},[l(A(zt))]),i[6]||=o(`span`,{class:`controls__vol-label`},`Volume`,-1),o(`button`,{class:`controls__btn`,"aria-label":A(n).isMuted?`Unmute`:`Mute`,onClick:i[1]||=e=>A(n).toggleMute()},[l(nr,{"is-audible":A(n).isAudible},null,8,[`is-audible`])],8,Er)]),o(`div`,Dr,[l(wr,{player:A(n),class:`controls__vol-slider`,onMousedown:i[2]||=e=>A(r).pauseHide(),onMouseup:i[3]||=e=>A(r).scheduleHide(),onTouchstartPassive:i[4]||=e=>A(r).pauseHide(),onTouchend:i[5]||=e=>A(r).scheduleHide()},{default:M(({percent:e})=>[o(`span`,Or,O(e)+`%`,1)]),_:1},8,[`player`])])],64))}}),[[`__scopeId`,`data-v-10b0ae67`]]);function Ar(e){function t(){let t=K.indexOf(e.playbackRate);e.setPlaybackRate(K[(t+1)%K.length])}function n(e){return`${e}×`}return{cycleRate:t,fmtRate:n}}function jr(e){function t(){let t=e.captionTracks;if(!t.length)return;let n=t[t.findIndex(t=>t.index===e.activeCaptionIndex)+1];e.setCaptionTrack(n?n.index:null)}function n(){return e.captionTracks.find(t=>t.index===e.activeCaptionIndex)?.label??`Off`}return{cycleCaptionTrack:t,currentCaptionLabel:n}}function Mr(e){function t(){let t=e.qualityLevels;if(!t.length)return;if(e.isAutoQuality){e.setQuality(t[t.length-1].index);return}let n=t.findIndex(t=>t.index===e.currentQualityIndex);e.setQuality(n<=0?null:t[n-1].index)}function n(){return e.isAutoQuality?`Auto`:e.qualityLevels.find(t=>t.index===e.currentQualityIndex)?.label??`Auto`}return{cycleQuality:t,currentQualityLabel:n}}const Nr=[`aria-label`],Pr={key:0,class:`controls__more-row-label`},Fr=[`innerHTML`],Ir={key:1},Lr={key:2,class:`controls__more-value`};var Rr=Q(u({__name:`MoreMenuRow`,props:{label:{type:String,required:!0},ariaLabel:{type:String,required:!1,default:``},icon:{type:null,required:!1},iconHtml:{type:String,required:!1},active:{type:Boolean,required:!1,default:!1},value:{type:String,required:!1}},emits:[`click`],setup(e){return(t,n)=>(b(),a(`button`,{class:h([`controls__more-row`,{"controls__more-row--active":e.active}]),"aria-label":e.ariaLabel||e.label,onClick:n[0]||=e=>t.$emit(`click`)},[e.icon||e.iconHtml?(b(),a(`span`,Pr,[e.icon?(b(),r(E(e.icon),{key:0,class:`controls__more-row-icon`})):(b(),a(`span`,{key:1,class:`controls__more-row-icon`,innerHTML:e.iconHtml},null,8,Fr)),c(` `+O(e.label),1)])):(b(),a(`span`,Ir,O(e.label),1)),e.value===void 0?i(`v-if`,!0):(b(),a(`span`,Lr,O(e.value),1))],10,Nr))}}),[[`__scopeId`,`data-v-47ca5bfc`]]);const zr={class:`controls__more-header`};var Br=Q(u({__name:`MoreMenu`,props:{isCustom:{type:Boolean,required:!0},customAction:{type:[Object,null],required:!0}},emits:[`back`],setup(t){let n=Z(X),s=Z(kt),c=Z(Mt),{cycleRate:u,fmtRate:d}=Ar(n),{cycleCaptionTrack:f,currentCaptionLabel:p}=jr(n),{cycleQuality:m,currentQualityLabel:h}=Mr(n);return(g,_)=>(b(),a(e,null,[o(`div`,zr,[o(`button`,{class:`controls__btn`,"aria-label":`Back`,onClick:_[0]||=e=>g.$emit(`back`)},[l(A(zt))]),_[5]||=o(`span`,{class:`controls__more-label`},`More`,-1)]),o(`div`,{class:`controls__more-body`,onTouchstartPassive:_[4]||=e=>A(s).keepOpen()},[A(n).supportsPlaybackRate?(b(),r(Rr,{key:0,label:`Playback speed`,value:A(d)(A(n).playbackRate),onClick:A(u)},null,8,[`value`,`onClick`])):i(`v-if`,!0),l(Rr,{label:`Loop`,"aria-label":`Toggle loop`,icon:A(mn),active:A(n).isLooping,value:A(n).isLooping?`On`:`Off`,onClick:_[1]||=e=>A(n).toggleLoop()},null,8,[`icon`,`active`,`value`]),A(n).supportsCaptions?(b(),r(Rr,{key:1,label:`Captions`,icon:A(Ut),active:A(n).activeCaptionIndex!==null,value:A(p)(),onClick:A(f)},null,8,[`icon`,`active`,`value`,`onClick`])):i(`v-if`,!0),A(n).supportsQuality?(b(),r(Rr,{key:2,label:`Quality`,icon:A(Pn),active:!A(n).isAutoQuality,value:A(h)(),onClick:A(m)},null,8,[`icon`,`active`,`value`,`onClick`])):i(`v-if`,!0),A(c).hasPlaylist?(b(),r(Rr,{key:3,label:`Autoplay next`,"aria-label":`Toggle autoplay next`,icon:A(Hn),active:A(c).autoAdvance,value:A(c).autoAdvance?`On`:`Off`,onClick:_[2]||=e=>A(c).toggleAutoAdvance()},null,8,[`icon`,`active`,`value`])):i(`v-if`,!0),t.isCustom&&t.customAction?(b(),r(Rr,{key:4,label:t.customAction.label,"icon-html":t.customAction.icon,onClick:_[3]||=e=>t.customAction.onClick()},null,8,[`label`,`icon-html`])):i(`v-if`,!0)],32)],64))}}),[[`__scopeId`,`data-v-e89a8208`]]);const Vr={class:`controls__row`},Hr={class:`controls__play-wrap`},Ur={class:`controls__fs-wrap`};var Wr=Q(u({__name:`ControlsPopup`,setup(t){let s=Z(X),c=Z(kt),u=Z(Mt),d=Pt(f(jt),s),{isCustom:p,customAction:m}=Ft(f(At),s,u),g=C(!1),_=C(!1),x=C(null),S=n(()=>s.isLooping||s.playbackRate!==1||u.autoAdvance);function w(e){return!x.value||x.value.contains(e)?!1:(c.closeControls(),!0)}function T(e){w(e.target)}function E(e){w(e.target)&&e.preventDefault()}y(()=>{s.fire(`controlsopen`,{element:x.value}),document.addEventListener(`click`,T,!0),document.addEventListener(`touchend`,E,!0)}),v(()=>{g.value=!1,_.value=!1,s.fire(`controlsclose`,{element:x.value}),document.removeEventListener(`click`,T,!0),document.removeEventListener(`touchend`,E,!0)});function D(e){c.suppressMouseLeave(),dr(x,`controls-popup`,e)}function O(){if(P()){s.toggleMute();return}D(()=>{g.value=!0})}function k(){D(()=>{_.value=!0})}return(t,n)=>(b(),a(`div`,{ref_key:`popupEl`,ref:x,class:h([`controls`,{"controls--fs":A(s).isFullscreen,"controls--compact":A(d)}]),onMousemove:n[7]||=N((...e)=>A(c).keepOpen&&A(c).keepOpen(...e),[`stop`])},[g.value?(b(),r(kr,{key:0,onBack:n[0]||=e=>D(()=>g.value=!1)})):_.value?(b(),r(Br,{key:1,"is-custom":A(p),"custom-action":A(m),onBack:n[1]||=e=>D(()=>_.value=!1)},null,8,[`is-custom`,`custom-action`])):(b(),a(e,{key:2},[A(s).isLive?i(`v-if`,!0):(b(),r(yr,{key:0,player:A(s),class:`controls__seek`,onMousedown:n[2]||=e=>A(c).pauseHide(),onMouseup:n[3]||=e=>A(c).scheduleHide(),onTouchstartPassive:n[4]||=e=>A(c).pauseHide(),onTouchend:n[5]||=e=>A(c).scheduleHide()},null,8,[`player`])),o(`div`,Vr,[o(`div`,Hr,[l(tr,{player:A(s)},null,8,[`player`]),A(s).isBuffering?i(`v-if`,!0):(b(),r(Qn,{key:0,player:A(s),class:`ppbtn ppbtn--sm`},null,8,[`player`]))]),l(br,{player:A(s),class:`controls__time-display`},null,8,[`player`]),A(u).hasNext?(b(),a(`button`,{key:0,class:`controls__btn`,"aria-label":`Play next`,onClick:n[6]||=e=>A(u).playNext()},[l(A(Hn))])):i(`v-if`,!0),o(`button`,{class:`controls__btn`,"aria-label":`Volume`,onClick:O},[l(nr,{"is-audible":A(s).isAudible},null,8,[`is-audible`])]),o(`button`,{class:h([`controls__btn controls__btn--more`,{"controls__btn--active":S.value}]),"aria-label":`More`,onClick:k},[l(A(vn))],2),l(hr,{player:A(s),class:`controls__btn controls__btn--pip`},null,8,[`player`]),o(`div`,Ur,[A(s).isFullscreenPending?(b(),r($n,{key:0})):(b(),r(pr,{key:1,player:A(s),class:`controls__btn`},null,8,[`player`]))])])],64))],34))}}),[[`__scopeId`,`data-v-5712aad4`]]);const Gr={key:0,class:`overlay__spinner`},Kr={key:0,class:`overlay__error`};var qr=Q(u({__name:`PlayerOverlay`,setup(n){let r=Z(X),{hudVisible:s,popupVisible:c}=Nt(r,Z(kt));return(n,u)=>(b(),a(e,null,[l(t,{name:`fade`},{default:M(()=>[!A(r).isReady&&!A(r).isError?(b(),a(`div`,Gr,[l($n,{size:40,"border-width":3})])):i(`v-if`,!0)]),_:1}),l(t,{name:`fade`},{default:M(()=>[A(r).isError?(b(),a(`div`,Kr,[o(`p`,null,O(A(r).errorMessage||`This video could not be played.`),1),o(`button`,{class:`overlay__retry`,onClick:u[0]||=N((...e)=>A(r).retry&&A(r).retry(...e),[`stop`])},`Retry`)])):i(`v-if`,!0)]),_:1}),o(`div`,{class:h([`overlay__hud`,{"overlay__hud--visible":A(s)}])},[l(ur)],2),l(t,{name:`popup`},{default:M(()=>[A(c)?(b(),a(`div`,{key:0,class:h([`overlay__popup`,{"overlay__popup--fs":A(r).isFullscreen}])},[l(Wr)],2)):i(`v-if`,!0)]),_:1})],64))}}),[[`__scopeId`,`data-v-f3307b98`]]);const Jr={class:`ad-overlay`},Yr={class:`ad-overlay__bar`},Xr={class:`ad-overlay__badge`},Zr={key:0,class:`ad-overlay__countdown`},Qr=[`aria-label`],$r=[`aria-label`];var ei=Q(u({__name:`AdOverlay`,setup(e){let t=Z(X),s=n(()=>t.adRemainingTime>0?t.fmt(t.adRemainingTime):``);return(e,n)=>(b(),a(`div`,Jr,[o(`div`,Yr,[o(`div`,Xr,[n[2]||=o(`span`,null,`Ad`,-1),s.value?(b(),a(`span`,Zr,O(s.value),1)):i(`v-if`,!0)]),o(`button`,{class:`ad-overlay__btn`,"aria-label":A(t).isAdPaused?`Resume ad`:`Pause ad`,onClick:n[0]||=e=>A(t).togglePlay()},[A(t).isAdPaused?(b(),r(A(An),{key:0})):(b(),r(A(Sn),{key:1}))],8,Qr),o(`button`,{class:`ad-overlay__btn`,"aria-label":A(t).isAdMuted?`Unmute ad`:`Mute ad`,onClick:n[1]||=e=>A(t).toggleAdMute()},[A(t).isAdMuted?(b(),r(A(Kn),{key:0})):(b(),r(A(Xn),{key:1}))],8,$r)])]))}}),[[`__scopeId`,`data-v-23efcc8b`]]);const ti={class:`player`},ni={"data-mvp-player":``},ri=[`poster`],ii=[`src`,`kind`,`srclang`,`label`,`default`],ai={key:3,class:`player__native-play`};var oi=Q(u({__name:`VideoPlayer`,props:{videoUrl:{type:String,required:!0},title:{type:String,required:!1,default:``},poster:{type:String,required:!1,default:``},aspectRatio:{type:String,required:!1,default:oe},adTagUrl:{type:String,required:!1,default:``},adTagParams:{type:Object,required:!1},headerBidding:{type:Object,required:!1},tracks:{type:Array,required:!1,default:()=>[]},autoplay:{type:Boolean,required:!1,default:!1},muted:{type:Boolean,required:!1,default:void 0},playbackRate:{type:Number,required:!1},nativeUi:{type:Boolean,required:!1,default:!1},autoStage:{type:Boolean,required:!1,default:!1},lazy:{type:Boolean,required:!1,default:!1},payload:{type:Object,required:!1,default:()=>({})},action:{type:[String,Object,null],required:!1,default:null},disableTapCapture:{type:Boolean,required:!1,default:!1},controls:{type:Boolean,required:!1,default:!0},playWhenInView:{type:Boolean,required:!1,default:!1},hasPlaylist:{type:Boolean,required:!1,default:!1},hasNext:{type:Boolean,required:!1,default:!1},hasPrevious:{type:Boolean,required:!1,default:!1},autoAdvance:{type:Boolean,required:!1,default:!1}},emits:[`state-change`,`play-next`,`play-previous`,`toggle-auto-advance`],setup(t,{expose:s,emit:c}){let u=t,d=c,f=C(null),p=S(Dt(f,u,d)),m=S(Ot(k(p,`isPlaying`)));x(X,p),x(kt,m),x(At,k(u,`action`)),x(Mt,S({hasPlaylist:n(()=>u.hasPlaylist),hasNext:n(()=>u.hasNext),hasPrevious:n(()=>u.hasPrevious),autoAdvance:n(()=>u.autoAdvance),playNext:()=>d(`play-next`),playPrevious:()=>d(`play-previous`),toggleAutoAdvance:()=>d(`toggle-auto-advance`)}));let g=n(()=>L(u.aspectRatio)),v=n(()=>g.value.isPortrait),y=n(()=>g.value.cssRatio),T=n(()=>!u.poster&&!p.isReady);function E(){m.onVideoTap(),p.fire(`tap`)}return s(p),(t,n)=>(b(),a(`div`,ti,[o(`div`,{class:h([`player__shell`,{"player__shell--portrait":v.value}]),style:_({aspectRatio:y.value}),onMousemove:n[0]||=e=>m.onMouseMove(),onContextmenuCapture:n[1]||=N(()=>{},[`prevent`]),onMouseleave:n[2]||=e=>m.onMouseLeave()},[o(`div`,ni,[o(`video`,{ref_key:`videoEl`,ref:f,class:h([`mvp-video`,{"mvp-video--hidden":T.value}]),poster:u.poster,playsinline:``},[(b(!0),a(e,null,w(u.tracks,(e,t)=>(b(),a(`track`,{key:`${e.src}-${t}`,src:e.src,kind:e.kind??`captions`,srclang:e.srclang,label:e.label,default:e.default},null,8,ii))),128))],10,ri),i(` Never rendered during any ad state (playing or paused) — pausing/resuming an ad goes
2
+ through AdOverlay's own dedicated button, not a tap-anywhere gesture over the whole ad
3
+ creative, so there's no reason for this layer to cover the ad break at all. `),!u.disableTapCapture&&!p.nativeUi&&p.hasStarted&&!p.isAdPlaying?(b(),a(`div`,{key:0,class:`overlay__tap-capture`,onClick:E,onTouchend:N(E,[`prevent`,`stop`])},null,32)):i(`v-if`,!0),i(` Decoupled from \`controls\` on purpose, same as the tap-capture layer above - a
4
+ consumer driving their own headless HUD still needs a way to pause/mute the ad and see
5
+ how long it runs, since none of that comes from the ad creative itself. `),p.isAdPlaying&&!p.nativeUi?(b(),r(ei,{key:1})):i(`v-if`,!0),u.controls&&!p.nativeUi?(b(),r(qr,{key:2})):i(`v-if`,!0),u.controls&&p.nativeUi&&!p.hasStarted?(b(),a(`div`,ai,[l(Qn,{player:p,class:`ppbtn ppbtn--lg`},null,8,[`player`])])):i(`v-if`,!0)])],38)]))}}),[[`__scopeId`,`data-v-4ab3cf75`]]);const si=C(0),ci=n(()=>si.value>0);function li(){si.value++}function ui(){si.value--}function di(e,t){window.dispatchEvent(new CustomEvent(e,{detail:t}))}function fi(e,t){let n=e=>t(e.detail);y(()=>window.addEventListener(e,n)),v(()=>window.removeEventListener(e,n))}const pi=[`retry`,`togglePlay`,`seek`,`toggleMute`,`setVolume`,`toggleFullscreen`,`markFullscreenPending`,`toggleLoop`,`toggleAdMute`,`setPlaybackRate`,`setCaptionTrack`,`setQuality`,`togglePip`],mi=`isPlaying.hasEnded.isReady.isAdPlaying.isAdPaused.isAdMuted.adRemainingTime.isLive.isBuffering.current.total.vol.isMuted.isAudible.isLooping.playbackRate.hasStarted.isError.errorMessage.progress.bufferedDisplay.isFullscreen.isFullscreenPending.supportsPlaybackRate.supportsCaptions.captionTracks.activeCaptionIndex.supportsQuality.qualityLevels.currentQualityIndex.isAutoQuality.supportsPip.isPipActive.nativeUi`.split(`.`);function hi(e=()=>!0){let t=D(null),r={};for(let n of pi)r[n]=async(...r)=>{await e(n)&&t.value?.[n]?.(...r)};for(let e of mi)r[e]=n(()=>t.value?.[e]);return{playerRef:t,forwarded:r}}function gi(e,t){let r=n(()=>!e.value||!t.value?-1:e.value.findIndex(e=>e.videoUrl===t.value?.videoUrl)),i=n(()=>r.value===-1||!e.value?null:e.value[r.value+1]??null),a=n(()=>r.value<=0||!e.value?null:e.value[r.value-1]??null);return{hasNext:n(()=>i.value!==null),hasPrevious:n(()=>a.value!==null),nextEntry:i,previousEntry:a}}function _i(){return localStorage.getItem(H)===`true`}function vi(e){localStorage.setItem(H,String(e))}const yi=[`src`],bi={class:`stage__idle-body`},xi={class:`stage__idle-btn`},Si={class:`stage__idle-title`},Ci={key:1,class:`stage__idle-empty`};var wi=Q(u({__name:`VideoStage`,props:{pinPosition:{type:String,required:!1,default:`bottom-right`},playlist:{type:Array,required:!1}},emits:[`state-change`],setup(t,{expose:s,emit:c}){let u=t,d=c,f=C(_i());j(f,vi);let m=n(()=>!!u.playlist?.length),g=C(null),S=C(!1),w=C(!1),{playerRef:T,forwarded:E}=hi(()=>S.value),D=C(null),M=C(null),P=C(!1);x(jt,P);let{hasNext:F,hasPrevious:I,nextEntry:ee,previousEntry:R}=gi(k(u,`playlist`),g),z=n(()=>P.value&&!!g.value&&S.value),te=n(()=>L(g.value?.aspectRatio||`16:9`).cssRatio),B=C(null),V=C(null);j(z,e=>{B.value=e&&M.value?{height:M.value.offsetHeight,width:M.value.offsetWidth}:null});let H=n(()=>{if(!B.value)return{};let{height:e,width:t}=B.value,n=V.value&&t?V.value/t:1;return{height:`${Math.round(e*n)}px`}}),U=null,W=null;function G(){U?.disconnect(),W?.disconnect(),D.value&&(U=new IntersectionObserver(([e])=>{P.value=!e.isIntersecting},{threshold:1}),U.observe(D.value),W=new ResizeObserver(([e])=>{V.value=e.contentRect.width}),W.observe(D.value))}j(D,G);function ie(){g.value&&(g.value={...g.value,autoplay:!0},S.value=!0)}function ae(){D.value?.scrollIntoView({behavior:`smooth`,block:`center`})}function oe(){g.value=null,S.value=!1,w.value=!1,B.value=null,K()}function K(){di(re,{currentVideoUrl:g.value?.videoUrl??null,isPlaying:w.value})}function q(e){if(g.value?.videoUrl===e.videoUrl&&S.value){T.value?.togglePlay();return}g.value=e,S.value=!1,w.value=!1,K(),S.value=!0}function J(e){if(!(!g.value||e.videoUrl!==g.value.videoUrl)){if(!S.value){g.value={...g.value,autoplay:!0},S.value=!0;return}T.value?.togglePlay()}}function se(e){return{...e,muted:e.muted??T.value?.isMuted,autoplay:!0}}function ce(){ee.value&&q(se(ee.value))}function le(){R.value&&q(se(R.value))}function ue(e){e.type===`play`&&(w.value=!0),(e.type===`pause`||e.type===`ended`)&&(w.value=!1),e.type===`ended`&&f.value&&ce(),K(),d(`state-change`,e)}return fi(ne,q),fi(`video-toggle`,J),y(li),v(()=>{ui(),U?.disconnect(),W?.disconnect()}),s({playNext:ce,playPrevious:le,hasNext:F,hasPrevious:I,...E}),(n,s)=>(b(),a(`div`,{ref_key:`wrapperEl`,ref:D,class:`stage-wrapper`,style:_(H.value)},[o(`div`,{ref_key:`stageEl`,ref:M,class:h([`stage`,{"stage--minified":z.value,[`stage--pin-${t.pinPosition}`]:z.value}])},[z.value?(b(),a(`button`,{key:0,class:`stage__scroll-to`,"aria-label":`Scroll to player`,onClick:N(ae,[`stop`])},[l(A(tn))])):i(`v-if`,!0),z.value?(b(),a(`button`,{key:1,class:`stage__dismiss`,"aria-label":`Close`,onClick:N(oe,[`stop`])},[l(A(qt))])):i(`v-if`,!0),g.value&&S.value?(b(),r(oi,p({ref_key:`playerRef`,ref:T,key:g.value.videoUrl},g.value,{"has-playlist":m.value,"has-next":A(F),"has-previous":A(I),"auto-advance":f.value,onStateChange:ue,onPlayNext:ce,onPlayPrevious:le,onToggleAutoAdvance:s[0]||=e=>f.value=!f.value}),null,16,[`has-playlist`,`has-next`,`has-previous`,`auto-advance`])):(b(),a(`div`,{key:3,class:`stage__idle`,style:_({aspectRatio:te.value}),onClick:ie},[g.value?.poster?(b(),a(`img`,{key:0,src:g.value.poster,class:`stage__idle-poster`},null,8,yi)):i(`v-if`,!0),s[1]||=o(`div`,{class:`stage__idle-scrim`},null,-1),o(`div`,bi,[g.value?(b(),a(e,{key:0},[o(`div`,xi,[l(A(An))]),o(`p`,Si,O(g.value.title),1)],64)):(b(),a(`p`,Ci,`Select a video to play`))])],4))],2)],4))}}),[[`__scopeId`,`data-v-fb8c86cf`]]),Ti=u({__name:`PlayPauseIcon`,props:{isPlaying:{type:Boolean,required:!0},hasEnded:{type:Boolean,required:!1,default:!1}},setup(e){return(t,n)=>e.isPlaying?(b(),r(A(Sn),{key:0})):e.hasEnded?(b(),r(A(Rn),{key:1})):(b(),r(A(An),{key:2}))}});const Ei={class:`placeholder`},Di=[`src`,`alt`],Oi={class:`placeholder__btn-wrap`},ki=[`aria-label`],Ai={key:1,class:`placeholder__footer`},ji={class:`placeholder__title`};var Mi=Q(u({__name:`VideoPlaceholder`,props:{videoUrl:{type:String,required:!0},title:{type:String,required:!1,default:``},poster:{type:String,required:!1,default:``},aspectRatio:{type:String,required:!1,default:oe},adTagUrl:{type:String,required:!1,default:``},adTagParams:{type:Object,required:!1},headerBidding:{type:Object,required:!1},tracks:{type:Array,required:!1},autoplay:{type:Boolean,required:!1,default:!1},muted:{type:Boolean,required:!1,default:void 0},playbackRate:{type:Number,required:!1},nativeUi:{type:Boolean,required:!1,default:!1},autoStage:{type:Boolean,required:!1,default:!1},lazy:{type:Boolean,required:!1},payload:{type:Object,required:!1,default:()=>({})},action:{type:[String,Object,null],required:!1,default:null},disableTapCapture:{type:Boolean,required:!1},controls:{type:Boolean,required:!1},playWhenInView:{type:Boolean,required:!1}},emits:[`enter-view`],setup(e,{emit:t}){let r=e,s=t,c=n(()=>L(r.aspectRatio)),u=n(()=>c.value.isPortrait),d=n(()=>c.value.cssRatio),f=C(null),p=null,m=C(!1),g=C(!1),x=n(()=>m.value&&g.value?`Pause`:`Play`);fi(re,e=>{m.value=e.currentVideoUrl===r.videoUrl,g.value=m.value&&e.isPlaying});function S(e){di(ne,{...r,...e!==void 0&&{autoplay:e}})}function w(){S(!0)}return y(()=>{r.autoStage&&S(),r.playWhenInView&&f.value&&(p=vt(f.value,()=>s(`enter-view`)))}),v(()=>p?.()),(t,n)=>(b(),a(`div`,Ei,[o(`div`,{ref_key:`shellEl`,ref:f,class:h([`placeholder__shell`,{"placeholder__shell--portrait":u.value,"placeholder__shell--active":m.value}]),style:_({aspectRatio:d.value}),onClick:w},[e.poster?(b(),a(`img`,{key:0,class:`placeholder__poster`,src:e.poster,alt:e.title},null,8,Di)):i(`v-if`,!0),n[0]||=o(`div`,{class:`placeholder__scrim`},null,-1),o(`div`,Oi,[o(`button`,{type:`button`,class:`ppbtn ppbtn--lg`,"aria-label":x.value,onClick:N(w,[`stop`])},[l(Ti,{"is-playing":m.value&&g.value},null,8,[`is-playing`])],8,ki)]),e.title?(b(),a(`div`,Ai,[o(`p`,ji,O(e.title),1)])):i(`v-if`,!0)],6)]))}}),[[`__scopeId`,`data-v-dbcb4f82`]]),Ni=u({__name:`VideoItem`,props:{videoUrl:{type:String,required:!0},title:{type:String,required:!1},poster:{type:String,required:!1},aspectRatio:{type:String,required:!1},adTagUrl:{type:String,required:!1},adTagParams:{type:Object,required:!1},headerBidding:{type:Object,required:!1},tracks:{type:Array,required:!1},autoplay:{type:Boolean,required:!1},muted:{type:Boolean,required:!1,default:void 0},playbackRate:{type:Number,required:!1},nativeUi:{type:Boolean,required:!1},autoStage:{type:Boolean,required:!1},lazy:{type:Boolean,required:!1,default:!0},payload:{type:Object,required:!1},action:{type:[String,Object,null],required:!1,default:null},disableTapCapture:{type:Boolean,required:!1},controls:{type:Boolean,required:!1,default:void 0},playWhenInView:{type:Boolean,required:!1}},emits:[`state-change`],setup(t,{expose:n,emit:i}){let o=t,s=i,c=C(!1);async function l(){c.value||(c.value=!0,await m())}let{playerRef:u,forwarded:d}=hi(async e=>ci.value?(e===`togglePlay`&&di(ne,{...o,autoplay:!0}),!1):(await l(),!0));return n(d),(t,n)=>A(ci)?(b(),r(Mi,g(p({key:0},o)),null,16)):(b(),a(e,{key:1},[o.lazy&&!c.value&&!o.autoplay?(b(),r(Mi,p({key:0},o,{onClickCapture:n[0]||=e=>c.value=!0,onEnterView:n[1]||=e=>c.value=!0}),null,16)):(b(),r(oi,p({key:1,ref_key:`playerRef`,ref:u},o,{autoplay:c.value||o.autoplay,onStateChange:n[2]||=e=>s(`state-change`,e)}),null,16,[`autoplay`]))],64))}});const Pi=d(oi,{shadowRoot:!1}),Fi=d(wi,{shadowRoot:!1}),Ii=d(Mi,{shadowRoot:!1}),Li=d(Ni,{shadowRoot:!1});customElements.define(`muns-video-player`,Pi),customElements.define(`muns-video-stage`,Fi),customElements.define(`muns-video-placeholder`,Ii),customElements.define(`muns-video-item`,Li);const Ri=[`aria-label`];var zi=Q(u({__name:`MuteButton`,props:{player:{type:[Object,null],required:!1},for:{type:String,required:!1}},setup(e){let t=e,n=$(k(t,`player`),k(t,`for`));return(e,t)=>(b(),a(`button`,{type:`button`,class:`mvp-mute-button`,"aria-label":A(n)?.isMuted?`Unmute`:`Mute`,onClick:t[0]||=e=>A(n)?.toggleMute()},[T(e.$slots,`default`,{isMuted:A(n)?.isMuted??!1},()=>[l(nr,{"is-audible":A(n)?.isAudible??!1},null,8,[`is-audible`])],!0)],8,Ri))}}),[[`__scopeId`,`data-v-1940b598`]]);const Bi=[`aria-pressed`];var Vi=Q(u({__name:`LoopButton`,props:{player:{type:[Object,null],required:!1},for:{type:String,required:!1}},setup(e){let t=e,n=$(k(t,`player`),k(t,`for`));return(e,t)=>(b(),a(`button`,{type:`button`,class:h([`mvp-loop-button`,{"mvp-loop-button--active":A(n)?.isLooping}]),"aria-pressed":A(n)?.isLooping??!1,"aria-label":`Toggle loop`,onClick:t[0]||=e=>A(n)?.toggleLoop()},[T(e.$slots,`default`,{isLooping:A(n)?.isLooping??!1},()=>[l(A(mn))],!0)],10,Bi))}}),[[`__scopeId`,`data-v-e32eda25`]]);const Hi=[`aria-label`];var Ui=Q(u({__name:`CaptionsButton`,props:{player:{type:[Object,null],required:!1},for:{type:String,required:!1}},setup(e){let t=e,r=$(k(t,`player`),k(t,`for`)),o=n(()=>r.value?jr(r.value):null),s=n(()=>o.value?.currentCaptionLabel()??`Off`);function c(){o.value?.cycleCaptionTrack()}return(e,t)=>A(r)?.supportsCaptions?(b(),a(`button`,{key:0,type:`button`,class:h([`mvp-captions-button`,{"mvp-captions-button--active":A(r)?.activeCaptionIndex!==null}]),"aria-label":`Captions: ${s.value}`,onClick:c},[T(e.$slots,`default`,{currentLabel:s.value,tracks:A(r)?.captionTracks??[],activeIndex:A(r)?.activeCaptionIndex??null},()=>[l(A(Ut))],!0)],10,Hi)):i(`v-if`,!0)}}),[[`__scopeId`,`data-v-2572c4f2`]]);const Wi=[`aria-label`];var Gi=Q(u({__name:`QualityButton`,props:{player:{type:[Object,null],required:!1},for:{type:String,required:!1}},setup(e){let t=e,r=$(k(t,`player`),k(t,`for`)),o=n(()=>r.value?Mr(r.value):null),s=n(()=>o.value?.currentQualityLabel()??`Auto`);function c(){o.value?.cycleQuality()}return(e,t)=>A(r)?.supportsQuality?(b(),a(`button`,{key:0,type:`button`,class:h([`mvp-quality-button`,{"mvp-quality-button--active":!A(r)?.isAutoQuality}]),"aria-label":`Quality: ${s.value}`,onClick:c},[T(e.$slots,`default`,{currentLabel:s.value,levels:A(r)?.qualityLevels??[],currentIndex:A(r)?.currentQualityIndex??null,isAuto:A(r)?.isAutoQuality??!0},()=>[l(A(Pn))],!0)],10,Wi)):i(`v-if`,!0)}}),[[`__scopeId`,`data-v-d1352878`]]);const Ki=[`aria-label`];var qi=Q(u({__name:`PlaybackRateButton`,props:{player:{type:[Object,null],required:!1},for:{type:String,required:!1}},setup(e){let t=e,r=$(k(t,`player`),k(t,`for`)),o=n(()=>r.value?Ar(r.value):null),s=n(()=>o.value?o.value.fmtRate(r.value.playbackRate):`1×`);function l(){o.value?.cycleRate()}return(e,t)=>A(r)?.supportsPlaybackRate?(b(),a(`button`,{key:0,type:`button`,class:h([`mvp-playback-rate-button`,{"mvp-playback-rate-button--active":A(r)?.playbackRate!==1}]),"aria-label":`Playback speed: ${s.value}`,onClick:l},[T(e.$slots,`default`,{currentLabel:s.value,rate:A(r)?.playbackRate??1,rates:[...A(K)]},()=>[c(O(s.value),1)],!0)],10,Ki)):i(`v-if`,!0)}}),[[`__scopeId`,`data-v-646c9bc1`]]);const Ji=d(yr,{shadowRoot:!1}),Yi=d(Qn,{shadowRoot:!1}),Xi=d(zi,{shadowRoot:!1}),Zi=d(pr,{shadowRoot:!1}),Qi=d(tr,{shadowRoot:!1}),$i=d(Vi,{shadowRoot:!1}),ea=d(hr,{shadowRoot:!1}),ta=d(Ui,{shadowRoot:!1}),na=d(Gi,{shadowRoot:!1}),ra=d(qi,{shadowRoot:!1}),ia=d(wr,{shadowRoot:!1}),aa=d(br,{shadowRoot:!1});if(customElements.define(`muns-controls-scrubber`,Ji),customElements.define(`muns-controls-play-button`,Yi),customElements.define(`muns-controls-mute-button`,Xi),customElements.define(`muns-controls-fullscreen-button`,Zi),customElements.define(`muns-controls-buffering`,Qi),customElements.define(`muns-controls-loop-button`,$i),customElements.define(`muns-controls-pip-button`,ea),customElements.define(`muns-controls-captions-button`,ta),customElements.define(`muns-controls-quality-button`,na),customElements.define(`muns-controls-playback-rate-button`,ra),customElements.define(`muns-controls-volume-slider`,ia),customElements.define(`muns-controls-time-display`,aa),typeof document<`u`&&!document.querySelector(`style[data-video-player]`)){let e=document.createElement(`style`);e.setAttribute(`data-video-player`,``),e.textContent=":where(.mvp-play-button[data-v-218255bd]){all:unset;cursor:pointer;justify-content:center;align-items:center;display:inline-flex}:where(.mvp-play-button svg[data-v-218255bd]){width:1em;height:1em}@keyframes spin-259be2b2{to{transform:rotate(360deg)}}.spinner[data-v-259be2b2]{border-style:solid;border-color:#fffc #ffffff26 #ffffff26;border-radius:50%;animation:.75s linear infinite spin-259be2b2}:where(.mvp-buffering[data-v-454fec7f]){justify-content:center;align-items:center;display:inline-flex}.ppbtn{backdrop-filter:blur(12px);will-change:backdrop-filter;color:#fff;cursor:pointer;background:#ffffff1a;border:1px solid #ffffff2e;border-radius:50%;justify-content:center;align-items:center;transition:background .2s,transform .15s;display:flex}.ppbtn:hover{background:#fff3;transform:scale(1.08)}.ppbtn--lg{background:var(--mvp-btn-bg,#ffffff1a);width:clamp(48px,20cqw,64px);height:clamp(48px,20cqw,64px);color:var(--mvp-btn-color,#fff)}.ppbtn--lg svg{width:clamp(20px,9cqw,28px);height:clamp(20px,9cqw,28px)}.ppbtn--lg:hover{background:var(--mvp-btn-bg,#fff3);filter:brightness(1.12)}.ppbtn--sm{color:#ffffffbf;background:0 0;border:none;border-radius:8px;width:30px;height:30px}.ppbtn--sm svg{width:16px;height:16px}.ppbtn--sm:hover{color:#fff;background:#ffffff1a;transform:none}.hud[data-v-a6d118e7]{align-items:center;gap:clamp(12px,5cqw,20px);display:flex}.hud__play-wrap[data-v-a6d118e7]{display:flex;position:relative}.hud__buf-spinner[data-v-a6d118e7]{margin-top:8px;position:absolute;top:100%;left:calc(50% - 7px)}.hud__spacer[data-v-a6d118e7]{flex-shrink:0;width:clamp(36px,14cqw,44px);height:clamp(36px,14cqw,44px)}.hud__btn[data-v-a6d118e7]{background:var(--mvp-btn-bg,#ffffff1a);backdrop-filter:blur(12px);will-change:backdrop-filter;width:clamp(36px,14cqw,44px);height:clamp(36px,14cqw,44px);color:var(--mvp-btn-color,#fff);cursor:pointer;border:1px solid #ffffff2e;border-radius:50%;justify-content:center;align-items:center;transition:background .2s,transform .15s;display:flex}.hud__btn svg[data-v-a6d118e7]{width:clamp(16px,6cqw,18px);height:clamp(16px,6cqw,18px)}.hud__btn[data-v-a6d118e7]:hover{background:var(--mvp-btn-bg,#fff3);filter:brightness(1.12);transform:scale(1.08)}.hud__btn--active[data-v-a6d118e7]{border-color:var(--mvp-accent,#3b82f6);background:color-mix(in srgb, var(--mvp-accent,#3b82f6) 30%, var(--mvp-btn-bg,#ffffff1a));color:var(--mvp-btn-color,#fff)}.hud__btn--active[data-v-a6d118e7]:hover{background:color-mix(in srgb, var(--mvp-accent,#3b82f6) 45%, var(--mvp-btn-bg,#fff3))}:where(.mvp-fullscreen-button[data-v-b93a5017]){all:unset;cursor:pointer;justify-content:center;align-items:center;display:inline-flex}:where(.mvp-fullscreen-button svg[data-v-b93a5017]){width:1em;height:1em}:where(.mvp-pip-button[data-v-f654d93e]){all:unset;cursor:pointer;opacity:.6;justify-content:center;align-items:center;display:inline-flex}:where(.mvp-pip-button--active[data-v-f654d93e]){opacity:1}:where(.mvp-pip-button svg[data-v-f654d93e]){width:1em;height:1em}.mvp-scrubber-wrap[data-v-043f1bc8]{width:100%;position:relative}:where(.mvp-scrubber[data-v-043f1bc8]){cursor:pointer;accent-color:currentColor;width:100%}.mvp-scrubber__preview[data-v-043f1bc8]{font-variant-numeric:tabular-nums;pointer-events:none;white-space:nowrap;margin-bottom:.4rem;font-size:.75rem;position:absolute;bottom:100%;transform:translate(-50%)}:where(.mvp-time-display[data-v-0285c811]){font-variant-numeric:tabular-nums;align-items:center;gap:.35rem;display:inline-flex}:where(.mvp-time-display__dot[data-v-0285c811]){background:currentColor;border-radius:50%;width:6px;height:6px}.mvp-volume-wrap[data-v-fbb2c86c]{align-items:center;gap:.75rem;width:100%;display:flex}:where(.mvp-volume-slider[data-v-fbb2c86c]){cursor:pointer;accent-color:currentColor;flex:1}:where(.mvp-volume-pct[data-v-fbb2c86c]){font-variant-numeric:tabular-nums;text-align:right;min-width:2rem}.controls__vol-slider{-webkit-appearance:none;appearance:none;cursor:pointer;background:linear-gradient(to right, #fff 0%, #fff var(--v), #ffffff26 var(--v), #ffffff26 100%);outline:none;flex:1;height:5px;transition:height .15s}.controls__vol-slider:hover{height:7px}.controls__vol-slider::-webkit-slider-runnable-track{background:0 0;height:5px}.controls__vol-slider::-webkit-slider-thumb{-webkit-appearance:none;cursor:pointer;background:#fff;border-radius:50%;width:16px;height:16px;margin-top:-5.5px;transition:transform .15s;box-shadow:0 0 0 3px #fff3}.controls__vol-slider:hover::-webkit-slider-thumb{transform:scale(1.2)}.controls__vol-slider::-moz-range-track{background:#ffffff26;height:5px}.controls__vol-slider::-moz-range-progress{background:#fff;height:5px}.controls__vol-slider::-moz-range-thumb{cursor:pointer;background:#fff;border:none;border-radius:50%;width:16px;height:16px;box-shadow:0 0 0 3px #fff3}.controls__vol-header[data-v-10b0ae67]{align-items:center;gap:4px;display:flex}.controls__vol-label[data-v-10b0ae67]{color:#ffffffe6;flex:1;padding:0 4px;font-size:.8rem;font-weight:600}.controls__vol-body[data-v-10b0ae67]{align-items:center;gap:12px;padding:6px 0 4px;display:flex}.controls__vol-pct[data-v-10b0ae67]{font-variant-numeric:tabular-nums;color:#fff9;text-align:right;min-width:32px;font-size:.75rem;font-weight:600}.controls__more-row[data-v-47ca5bfc]{color:#ffffffd9;cursor:pointer;background:0 0;border:none;border-radius:8px;justify-content:space-between;align-items:center;width:100%;padding:8px 4px;font-size:.8rem;font-weight:500;transition:background .15s;display:flex}.controls__more-row[data-v-47ca5bfc]:hover{background:#ffffff14}.controls__more-row-label[data-v-47ca5bfc]{align-items:center;gap:8px;display:flex}.controls__more-row-icon[data-v-47ca5bfc]{flex-shrink:0;width:16px;height:16px}.controls__more-value[data-v-47ca5bfc]{font-variant-numeric:tabular-nums;color:#ffffff80;font-size:.7rem;font-weight:600}.controls__more-row--active .controls__more-value[data-v-47ca5bfc]{color:var(--mvp-accent,#3b82f6)}.controls__more-header[data-v-e89a8208]{flex-shrink:0;align-items:center;gap:4px;display:flex}.controls__more-label[data-v-e89a8208]{color:#ffffffe6;flex:1;padding:0 4px;font-size:.8rem;font-weight:600}.controls__more-body[data-v-e89a8208]{flex-direction:column;min-height:0;padding:2px 0;display:flex;overflow-y:auto}::view-transition-old(controls-popup),::view-transition-new(controls-popup){animation-duration:.22s;animation-timing-function:ease-in-out}.controls__btn{color:#ffffffbf;cursor:pointer;background:0 0;border:none;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;width:30px;height:30px;transition:background .15s,color .15s;display:flex}.controls__btn svg{width:16px;height:16px}.controls__btn:hover{color:#fff;background:#ffffff1a}.controls--compact .controls__seek,.controls--compact .mvp-scrubber-wrap,.controls--compact .controls__btn--more,.controls--compact .controls__btn--pip,.controls--compact .controls__fs-wrap{display:none}@container player-shell (width<=300px){.controls__seek,.mvp-scrubber-wrap,.controls__btn--more,.controls__btn--pip,.controls__fs-wrap{display:none}}.controls__seek{-webkit-appearance:none;appearance:none;cursor:pointer;box-sizing:border-box;background:padding-box content-box;background-image:linear-gradient(to right, var(--mvp-accent,#3b82f6) 0%, var(--mvp-accent,#3b82f6) var(--p), #ffffff4d var(--p), #ffffff4d var(--b), #ffffff1a var(--b), #ffffff1a 100%);outline:none;width:100%;height:20px;padding:8px 0}.controls__seek::-webkit-slider-runnable-track{background:0 0;height:4px}.controls__seek::-webkit-slider-thumb{-webkit-appearance:none;background:var(--mvp-accent,#3b82f6);width:14px;height:14px;box-shadow:0 0 0 3px color-mix(in srgb, var(--mvp-accent,#3b82f6) 30%, transparent);cursor:pointer;border-radius:50%;margin-top:-5px;transition:transform .15s}.controls__seek:hover::-webkit-slider-thumb{transform:scale(1.25)}.controls__seek::-moz-range-track{background:#ffffff1a;height:4px}.controls__seek::-moz-range-progress{background:var(--mvp-accent,#3b82f6);height:4px}.controls__seek::-moz-range-thumb{background:var(--mvp-accent,#3b82f6);width:14px;height:14px;box-shadow:0 0 0 3px color-mix(in srgb, var(--mvp-accent,#3b82f6) 30%, transparent);cursor:pointer;border:none;border-radius:50%}.controls[data-v-5712aad4]{-webkit-backdrop-filter:blur(20px);background:#0a0a0e;border:1px solid #ffffff1a;border-radius:18px;flex-direction:column;gap:10px;width:min(340px,100% - 32px);max-height:100%;padding:14px 16px 12px;display:flex;overflow:hidden;box-shadow:0 8px 32px #00000080}.controls--fs[data-v-5712aad4]{width:100%}.controls__row[data-v-5712aad4]{align-items:center;gap:4px;display:flex}.controls__time-display[data-v-5712aad4]{color:#fff9;letter-spacing:.02em;flex:1;padding:0 4px;font-size:.7rem;font-weight:500}.controls__time-display.mvp-time-display--live[data-v-5712aad4]{letter-spacing:.04em;text-transform:uppercase;color:#f87171;font-weight:700}.controls__play-wrap[data-v-5712aad4]{flex-shrink:0;justify-content:center;align-items:center;width:30px;height:30px;display:flex}.controls__btn--active[data-v-5712aad4],.controls__btn--pip.mvp-pip-button--active[data-v-5712aad4]{color:var(--mvp-accent,#3b82f6)}.controls__btn--active[data-v-5712aad4]:hover,.controls__btn--pip.mvp-pip-button--active[data-v-5712aad4]:hover{color:var(--mvp-accent,#60a5fa)}.controls__fs-wrap[data-v-5712aad4]{flex-shrink:0;justify-content:center;align-items:center;width:30px;height:30px;display:flex}.overlay__spinner[data-v-f3307b98]{z-index:5;pointer-events:none;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.fade-enter-active[data-v-f3307b98],.fade-leave-active[data-v-f3307b98]{transition:opacity .25s}.fade-enter-from[data-v-f3307b98],.fade-leave-to[data-v-f3307b98]{opacity:0}.overlay__error[data-v-f3307b98]{z-index:6;pointer-events:none;flex-direction:column;justify-content:center;align-items:center;gap:.75rem;padding:1.5rem;display:flex;position:absolute;inset:0}.overlay__error p[data-v-f3307b98]{color:#ffffffb3;text-align:center;max-width:260px;font-size:.875rem;line-height:1.5}.overlay__retry[data-v-f3307b98]{pointer-events:auto;color:#fff;cursor:pointer;background:#ffffff1a;border:1px solid #ffffff40;border-radius:8px;padding:.4rem 1rem;font-size:.8rem;font-weight:600;transition:background .15s}.overlay__retry[data-v-f3307b98]:hover{background:#fff3}.overlay__hud[data-v-f3307b98]{z-index:4;opacity:0;pointer-events:none;justify-content:center;align-items:center;transition:opacity .3s;display:flex;position:absolute;top:50%;left:0;right:0;transform:translateY(-50%)}.overlay__hud--visible[data-v-f3307b98]{opacity:1;pointer-events:all}.overlay__popup[data-v-f3307b98]{z-index:5;align-items:var(--mvp-popup-align,center);pointer-events:none;justify-content:center;padding:16px;display:flex;position:absolute;inset:0}.overlay__popup[data-v-f3307b98] .controls{pointer-events:auto}.overlay__popup--fs[data-v-f3307b98]{align-items:flex-end}.popup-enter-active[data-v-f3307b98],.popup-leave-active[data-v-f3307b98]{transition:opacity .2s,transform .2s}.popup-enter-from[data-v-f3307b98],.popup-leave-to[data-v-f3307b98]{opacity:0;transform:scale(.95)}.ad-overlay[data-v-23efcc8b]{z-index:21;pointer-events:none;position:absolute;inset:0}.ad-overlay__bar[data-v-23efcc8b]{align-items:center;gap:6px;display:flex;position:absolute;bottom:10px;left:10px}.ad-overlay__badge[data-v-23efcc8b]{color:#fff;text-transform:uppercase;letter-spacing:.06em;background:#0009;border-radius:4px;align-items:center;gap:6px;padding:3px 8px;font-size:.65rem;font-weight:700;display:flex}.ad-overlay__countdown[data-v-23efcc8b]{font-variant-numeric:tabular-nums;text-transform:none;letter-spacing:.02em;opacity:.8;font-weight:500}.ad-overlay__btn[data-v-23efcc8b]{color:#fff;cursor:pointer;pointer-events:auto;background:#0009;border:none;border-radius:4px;justify-content:center;align-items:center;padding:3px;transition:background .15s;display:flex}.ad-overlay__btn[data-v-23efcc8b]:hover{background:#000c}.ad-overlay__btn svg[data-v-23efcc8b]{width:11px;height:11px}.player[data-v-4ab3cf75]{user-select:none;-webkit-tap-highlight-color:transparent;width:100%;max-width:800px;margin:0 auto}[data-mvp-player][data-v-4ab3cf75]{position:absolute;inset:0}.player__shell[data-v-4ab3cf75]{border-radius:var(--mvp-radius,12px);cursor:pointer;background:#000;position:relative;overflow:hidden;container:player-shell/inline-size}.mvp-video--hidden[data-v-4ab3cf75]{opacity:0}.overlay__tap-capture[data-v-4ab3cf75]{z-index:2;position:absolute;inset:0}.player__shell--portrait[data-v-4ab3cf75]{width:auto;max-width:100%;max-height:75dvh;margin:0 auto}.player__native-play[data-v-4ab3cf75]{z-index:3;pointer-events:none;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.player__native-play[data-v-4ab3cf75]>*{pointer-events:auto}.player__shell[data-v-4ab3cf75]:fullscreen{border-radius:0;width:100vw;height:100dvh}.player__shell:fullscreen .mvp-video[data-v-4ab3cf75],.player__shell:fullscreen [data-mvp-player][data-v-4ab3cf75]{width:100%!important;height:100%!important}.mvp-video{border-radius:var(--mvp-radius,12px);object-fit:cover;background:#000;width:100%;height:100%;position:absolute;inset:0;overflow:hidden}.mvp-dailymotion .mvp-tech>*,.mvp-dailymotion .dailymotion-player-root,.mvp-dailymotion iframe{width:100%!important;height:100%!important;position:absolute!important;inset:0!important}.mvp-vimeo .mvp-tech>div{width:100%!important;height:100%!important;padding:0!important;position:absolute!important;top:0!important;left:0!important}.mvp-vimeo iframe{width:100%!important;height:100%!important;position:absolute!important;top:0!important;left:0!important}[data-mvp-player] .ima-ad-container{pointer-events:none;z-index:20!important;width:100%!important;height:100%!important;position:absolute!important;top:0!important;left:0!important}.mvp-ad-playing .ima-ad-container{pointer-events:auto}.mvp-ad-playing .overlay__hud,.mvp-ad-playing .overlay__spinner{display:none!important}.stage-wrapper[data-v-fb8c86cf]{width:100%;max-width:800px;margin:0 auto}.stage[data-v-fb8c86cf]{width:100%}.stage__dismiss[data-v-fb8c86cf],.stage__scroll-to[data-v-fb8c86cf]{z-index:10;backdrop-filter:blur(6px);color:#fff;cursor:pointer;background:#0009;border:none;border-radius:50%;justify-content:center;align-items:center;width:26px;height:26px;transition:all .15s;display:flex;position:absolute;top:.4rem}.stage__dismiss[data-v-fb8c86cf]:hover,.stage__scroll-to[data-v-fb8c86cf]:hover{background:#000000d9}.stage__dismiss svg[data-v-fb8c86cf],.stage__scroll-to svg[data-v-fb8c86cf]{width:14px;height:14px}.stage__dismiss[data-v-fb8c86cf]{right:.4rem}.stage__scroll-to[data-v-fb8c86cf]{left:.4rem}.stage--minified[data-v-fb8c86cf]{z-index:100;margin:0;position:fixed;overflow:hidden;box-shadow:0 8px 32px #0009}.stage--pin-bottom-right[data-v-fb8c86cf],.stage--pin-bottom-left[data-v-fb8c86cf],.stage--pin-top-right[data-v-fb8c86cf],.stage--pin-top-left[data-v-fb8c86cf]{border-radius:var(--mvp-radius,12px);width:360px;max-width:360px;@media (width<=740px){max-width:300px}}.stage--pin-bottom-right[data-v-fb8c86cf]{bottom:1.25rem;right:1.25rem}.stage--pin-bottom-left[data-v-fb8c86cf]{bottom:1.25rem;left:1.25rem}.stage--pin-top-right[data-v-fb8c86cf]{top:1.25rem;right:1.25rem}.stage--pin-top-left[data-v-fb8c86cf]{top:1.25rem;left:1.25rem}.stage--pin-full-width[data-v-fb8c86cf]{width:100%;max-width:100%;box-shadow:none;border-radius:0;top:0;left:0;right:0}.stage__idle[data-v-fb8c86cf]{border-radius:var(--mvp-radius,12px);cursor:pointer;background:#111;justify-content:center;align-items:center;width:100%;display:flex;position:relative;overflow:hidden}.stage__idle-poster[data-v-fb8c86cf]{object-fit:cover;width:100%;height:100%;position:absolute;inset:0}.stage__idle-scrim[data-v-fb8c86cf]{background:#00000073;transition:background .15s;position:absolute;inset:0}.stage__idle:hover .stage__idle-scrim[data-v-fb8c86cf]{background:#0000004d}.stage__idle-body[data-v-fb8c86cf]{text-align:center;flex-direction:column;align-items:center;gap:.75rem;padding:1rem;display:flex;position:relative}.stage__idle-btn[data-v-fb8c86cf]{backdrop-filter:blur(4px);color:#fff;background:#0009;border-radius:50%;justify-content:center;align-items:center;width:64px;height:64px;transition:transform .15s,background .15s;display:flex}.stage__idle:hover .stage__idle-btn[data-v-fb8c86cf]{background:#000c;transform:scale(1.1)}.stage__idle-btn svg[data-v-fb8c86cf]{width:32px;height:32px}.stage__idle-title[data-v-fb8c86cf]{color:#f1f5f9;text-shadow:0 1px 4px #000c;font-size:1rem;font-weight:600}.stage__idle-empty[data-v-fb8c86cf]{color:#64748b;font-size:.95rem}.placeholder[data-v-dbcb4f82]{width:100%}.placeholder__shell[data-v-dbcb4f82]{border-radius:var(--mvp-radius,12px);cursor:pointer;background:#111;position:relative;overflow:hidden}.placeholder__shell--portrait[data-v-dbcb4f82]{width:auto;max-height:75dvh;margin:0 auto}.placeholder__poster[data-v-dbcb4f82]{object-fit:cover;width:100%;height:100%;position:absolute;inset:0}.placeholder__scrim[data-v-dbcb4f82]{background:#00000059;transition:background .15s;position:absolute;inset:0}.placeholder__shell:hover .placeholder__scrim[data-v-dbcb4f82]{background:#00000026}.placeholder__btn-wrap[data-v-dbcb4f82]{pointer-events:none;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.placeholder__btn-wrap[data-v-dbcb4f82]>*{pointer-events:auto}.placeholder__footer[data-v-dbcb4f82]{pointer-events:none;background:linear-gradient(#0000 0%,#000c 100%);padding:1.5rem .75rem .6rem;position:absolute;bottom:0;left:0;right:0}.placeholder__title[data-v-dbcb4f82]{color:#f1f5f9;white-space:nowrap;text-overflow:ellipsis;text-shadow:0 1px 3px #0009;font-size:.8rem;font-weight:600;overflow:hidden}:where(.mvp-mute-button[data-v-1940b598]){all:unset;cursor:pointer;justify-content:center;align-items:center;display:inline-flex}:where(.mvp-mute-button svg[data-v-1940b598]){width:1em;height:1em}:where(.mvp-loop-button[data-v-e32eda25]){all:unset;cursor:pointer;opacity:.6;justify-content:center;align-items:center;display:inline-flex}:where(.mvp-loop-button--active[data-v-e32eda25]){opacity:1}:where(.mvp-loop-button svg[data-v-e32eda25]){width:1em;height:1em}:where(.mvp-captions-button[data-v-2572c4f2]){all:unset;cursor:pointer;opacity:.6;justify-content:center;align-items:center;display:inline-flex}:where(.mvp-captions-button--active[data-v-2572c4f2]){opacity:1}:where(.mvp-captions-button svg[data-v-2572c4f2]){width:1em;height:1em}:where(.mvp-quality-button[data-v-d1352878]){all:unset;cursor:pointer;opacity:.6;justify-content:center;align-items:center;display:inline-flex}:where(.mvp-quality-button--active[data-v-d1352878]){opacity:1}:where(.mvp-quality-button svg[data-v-d1352878]){width:1em;height:1em}:where(.mvp-playback-rate-button[data-v-646c9bc1]){all:unset;cursor:pointer;font-variant-numeric:tabular-nums;opacity:.6;justify-content:center;align-items:center;display:inline-flex}:where(.mvp-playback-rate-button--active[data-v-646c9bc1]){opacity:1}\n",document.head.appendChild(e)}export{Qi as BufferingElement,ta as CaptionsButtonElement,Zi as FullscreenButtonElement,$i as LoopButtonElement,Xi as MuteButtonElement,ea as PipButtonElement,Yi as PlayButtonElement,ra as PlaybackRateButtonElement,na as QualityButtonElement,Ji as ScrubberElement,aa as TimeDisplayElement,Li as VideoItemElement,Ii as VideoPlaceholderElement,Pi as VideoPlayerElement,Fi as VideoStageElement,ia as VolumeSliderElement};