@videts/vide 0.7.4 → 0.9.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +10 -10
- package/dist/chunk-2OVLZ27V.mjs +1 -0
- package/dist/chunk-3RDTWUHH.mjs +1 -0
- package/dist/chunk-6DWWYSH4.mjs +1 -0
- package/dist/chunk-G74QBLVV.mjs +1 -0
- package/dist/chunk-H3OXPFD3.mjs +1 -0
- package/dist/chunk-JRU2FKRB.mjs +2 -0
- package/dist/chunk-LPSJOF2I.mjs +2 -0
- package/dist/chunk-NA4C7W64.mjs +2 -0
- package/dist/chunk-UY5CGRNN.mjs +1 -0
- package/dist/chunk-VPH4JIJV.mjs +1 -0
- package/dist/chunk-WINCDUN5.mjs +1 -0
- package/dist/dash/index.d.ts +3 -7
- package/dist/dash/index.js +1 -0
- package/dist/dash/index.mjs +1 -2
- package/dist/drm/index.d.ts +5 -32
- package/dist/drm/index.js +1 -0
- package/dist/drm/index.mjs +1 -1
- package/dist/hls/index.d.ts +3 -7
- package/dist/hls/index.js +1 -0
- package/dist/hls/index.mjs +1 -2
- package/dist/index.d.ts +5 -5
- package/dist/index.js +1 -0
- package/dist/index.mjs +1 -1
- package/dist/omid/index.d.ts +2 -2
- package/dist/omid/index.js +2 -0
- package/dist/omid/index.mjs +2 -2
- package/dist/react/index.d.ts +240 -0
- package/dist/react/index.js +2 -0
- package/dist/react/index.mjs +2 -0
- package/dist/simid/index.d.ts +2 -2
- package/dist/simid/index.js +1 -0
- package/dist/ssai/index.d.ts +4 -40
- package/dist/ssai/index.js +1 -0
- package/dist/ssai/index.mjs +1 -1
- package/dist/svelte/DashPlugin.svelte +23 -0
- package/dist/svelte/DashPlugin.svelte.d.ts +4 -0
- package/dist/svelte/DrmPlugin.svelte +20 -0
- package/dist/svelte/DrmPlugin.svelte.d.ts +4 -0
- package/dist/svelte/HlsPlugin.svelte +23 -0
- package/dist/svelte/HlsPlugin.svelte.d.ts +4 -0
- package/dist/svelte/SsaiPlugin.svelte +23 -0
- package/dist/svelte/SsaiPlugin.svelte.d.ts +4 -0
- package/dist/svelte/VastPlugin.svelte +20 -0
- package/dist/svelte/VastPlugin.svelte.d.ts +4 -0
- package/dist/svelte/VideControls.svelte +22 -0
- package/dist/svelte/VideControls.svelte.d.ts +8 -0
- package/dist/svelte/VideUI.svelte +49 -0
- package/dist/svelte/VideUI.svelte.d.ts +9 -0
- package/dist/svelte/Video.svelte +31 -0
- package/dist/svelte/Video.svelte.d.ts +10 -0
- package/dist/svelte/VmapPlugin.svelte +20 -0
- package/dist/svelte/VmapPlugin.svelte.d.ts +4 -0
- package/dist/svelte/components/AdCountdown.svelte +37 -0
- package/dist/svelte/components/AdCountdown.svelte.d.ts +7 -0
- package/dist/svelte/components/AdLabel.svelte +26 -0
- package/dist/svelte/components/AdLabel.svelte.d.ts +8 -0
- package/dist/svelte/components/AdLearnMore.svelte +42 -0
- package/dist/svelte/components/AdLearnMore.svelte.d.ts +9 -0
- package/dist/svelte/components/AdOverlay.svelte +46 -0
- package/dist/svelte/components/AdOverlay.svelte.d.ts +8 -0
- package/dist/svelte/components/AdSkip.svelte +67 -0
- package/dist/svelte/components/AdSkip.svelte.d.ts +8 -0
- package/dist/svelte/components/BigPlayButton.svelte +46 -0
- package/dist/svelte/components/BigPlayButton.svelte.d.ts +8 -0
- package/dist/svelte/components/ClickPlay.svelte +76 -0
- package/dist/svelte/components/ClickPlay.svelte.d.ts +7 -0
- package/dist/svelte/components/ErrorDisplay.svelte +27 -0
- package/dist/svelte/components/ErrorDisplay.svelte.d.ts +6 -0
- package/dist/svelte/components/FullscreenButton.svelte +65 -0
- package/dist/svelte/components/FullscreenButton.svelte.d.ts +9 -0
- package/dist/svelte/components/Loader.svelte +11 -0
- package/dist/svelte/components/Loader.svelte.d.ts +6 -0
- package/dist/svelte/components/MuteButton.svelte +57 -0
- package/dist/svelte/components/MuteButton.svelte.d.ts +8 -0
- package/dist/svelte/components/PlayButton.svelte +63 -0
- package/dist/svelte/components/PlayButton.svelte.d.ts +8 -0
- package/dist/svelte/components/Poster.svelte +13 -0
- package/dist/svelte/components/Poster.svelte.d.ts +8 -0
- package/dist/svelte/components/Progress.svelte +101 -0
- package/dist/svelte/components/Progress.svelte.d.ts +6 -0
- package/dist/svelte/components/TimeDisplay.svelte +33 -0
- package/dist/svelte/components/TimeDisplay.svelte.d.ts +7 -0
- package/dist/svelte/components/Volume.svelte +117 -0
- package/dist/svelte/components/Volume.svelte.d.ts +8 -0
- package/dist/svelte/context.d.ts +6 -0
- package/dist/svelte/context.js +10 -0
- package/dist/svelte/create-vide-player.svelte.d.ts +2 -0
- package/dist/svelte/create-vide-player.svelte.js +22 -0
- package/dist/svelte/helpers.d.ts +17 -0
- package/dist/svelte/helpers.js +31 -0
- package/dist/svelte/icons/IconFullscreenEnter.svelte +3 -0
- package/dist/svelte/icons/IconFullscreenEnter.svelte.d.ts +26 -0
- package/dist/svelte/icons/IconFullscreenExit.svelte +3 -0
- package/dist/svelte/icons/IconFullscreenExit.svelte.d.ts +26 -0
- package/dist/svelte/icons/IconPause.svelte +3 -0
- package/dist/svelte/icons/IconPause.svelte.d.ts +26 -0
- package/dist/svelte/icons/IconPlay.svelte +3 -0
- package/dist/svelte/icons/IconPlay.svelte.d.ts +26 -0
- package/dist/svelte/icons/IconVolumeHigh.svelte +3 -0
- package/dist/svelte/icons/IconVolumeHigh.svelte.d.ts +26 -0
- package/dist/svelte/icons/IconVolumeLow.svelte +3 -0
- package/dist/svelte/icons/IconVolumeLow.svelte.d.ts +26 -0
- package/dist/svelte/icons/IconVolumeMute.svelte +3 -0
- package/dist/svelte/icons/IconVolumeMute.svelte.d.ts +26 -0
- package/dist/svelte/index.d.ts +42 -0
- package/dist/svelte/index.js +39 -0
- package/dist/svelte/use-ad-state.svelte.d.ts +7 -0
- package/dist/svelte/use-ad-state.svelte.js +40 -0
- package/dist/svelte/use-autohide.svelte.d.ts +2 -0
- package/dist/svelte/use-autohide.svelte.js +68 -0
- package/dist/svelte/use-keyboard.svelte.d.ts +7 -0
- package/dist/svelte/use-keyboard.svelte.js +96 -0
- package/dist/svelte/use-plugin.svelte.d.ts +15 -0
- package/dist/svelte/use-plugin.svelte.js +40 -0
- package/dist/svelte/use-vide-event.svelte.d.ts +3 -0
- package/dist/svelte/use-vide-event.svelte.js +9 -0
- package/dist/types-BsEF8iWC.d.ts +316 -0
- package/dist/types-C1_eVsFF.d.ts +49 -0
- package/dist/types-C6XFF6w_.d.ts +30 -0
- package/dist/types-COeag8fU.d.ts +173 -0
- package/dist/types-CwjR99DL.d.ts +10 -0
- package/dist/types-DsixuzNX.d.ts +52 -0
- package/dist/types-DzY1cmXC.d.ts +10 -0
- package/dist/types-SuT99_Z3.d.ts +40 -0
- package/dist/ui/index.d.ts +8 -38
- package/dist/ui/index.js +1 -0
- package/dist/ui/index.mjs +1 -2
- package/dist/ui/theme.css +138 -46
- package/dist/vast/index.d.ts +188 -4
- package/dist/vast/index.js +1 -0
- package/dist/vast/index.mjs +1 -1
- package/dist/vide.core.global.js +1 -0
- package/dist/vide.dash.global.js +2 -0
- package/dist/vide.drm.global.js +1 -0
- package/dist/vide.global.js +2 -0
- package/dist/vide.hls.global.js +2 -0
- package/dist/vide.omid.global.js +2 -0
- package/dist/vide.simid.global.js +1 -0
- package/dist/vide.ssai.global.js +1 -0
- package/dist/vide.ui.css +956 -0
- package/dist/vide.ui.global.js +2 -0
- package/dist/vide.vast.global.js +1 -0
- package/dist/vide.vmap.global.js +1 -0
- package/dist/vmap/index.d.ts +5 -49
- package/dist/vmap/index.js +1 -0
- package/dist/vmap/index.mjs +1 -1
- package/dist/vue/index.d.ts +354 -0
- package/dist/vue/index.js +2 -0
- package/dist/vue/index.mjs +2 -0
- package/package.json +48 -5
- package/dist/chunk-726XNUGZ.mjs +0 -1
- package/dist/chunk-G4Q7R3SH.mjs +0 -1
- package/dist/types-8aPf_wxJ.d.ts +0 -98
- package/dist/types-Cine0xi3.d.ts +0 -142
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import {d}from'../chunk-2OVLZ27V.mjs';import {e,b as b$1,c,x}from'../chunk-LPSJOF2I.mjs';import {a as a$3}from'../chunk-6DWWYSH4.mjs';import {a as a$2}from'../chunk-3RDTWUHH.mjs';import {c as c$1}from'../chunk-WINCDUN5.mjs';import'../chunk-G74QBLVV.mjs';import'../chunk-UY5CGRNN.mjs';import {a}from'../chunk-NA4C7W64.mjs';import {a as a$1}from'../chunk-JRU2FKRB.mjs';import'../chunk-H3OXPFD3.mjs';import {e as e$1}from'../chunk-VPH4JIJV.mjs';import'../chunk-DWXOYV4E.mjs';import {defineComponent,ref,inject,onMounted,h as h$1,watch,onScopeDispose,shallowRef,provide}from'vue';var _=Symbol("vide-player"),R=Symbol("vide-register");function u(){let e=inject(_);if(!e)throw new Error("useVideContext must be used within <VideVideo>");return e}function Fe(){let e=shallowRef(null),i=l=>{e.value&&(e.value.destroy(),e.value=null),e.value=a$3(l);};return provide(_,e),provide(R,i),onScopeDispose(()=>{e.value?.destroy(),e.value=null;}),e}function v(e,i,l){let r;watch(e,n=>{r?.(),r=void 0,n&&(n.on(i,l),r=()=>n.off(i,l));},{immediate:true}),onScopeDispose(()=>{r?.();});}function E(e,i,l){let r;watch(e,n=>{if(r?.(),r=void 0,!n)return;r=i(l).setup(n)??void 0;},{immediate:true}),onScopeDispose(()=>{r?.();});}function Ne(e,i){E(e,a,i??{});}function qe(e,i){E(e,a$1,i??{});}function Ge(e,i){E(e,e$1,i);}function Xe(e,i){E(e,a$2,i);}function $e(e,i){E(e,c$1,i);}function Je(e,i){E(e,d,i??{});}function Qe(e,i){E(e,x,i);}var N=defineComponent({name:"VideVideo",inheritAttrs:false,slots:Object,setup(e,{attrs:i,slots:l,expose:r}){let n=ref(null),t=inject(R);return r({video:n}),onMounted(()=>{n.value&&t&&t(n.value);}),()=>{let{class:a,...o}=i;return h$1("div",{class:a},[h$1("video",{...o,ref:n}),l.default?.()])}}});function w(e,i,l){return defineComponent({name:e,props:l.reduce((r,n)=>(r[n]=null,r),{}),setup(r){let n=u(),t;return watch(n,a=>{if(t?.(),t=void 0,!a)return;t=i({...r}).setup(a)??void 0;},{immediate:true}),onScopeDispose(()=>{t?.();}),()=>null}})}var q=w("VideHlsPlugin",a,["hlsConfig","recovery"]),G=w("VideDashPlugin",a$1,["dashConfig","recovery"]),X=w("VideDrmPlugin",e$1,["widevine","fairplay"]),$=w("VideVastPlugin",a$2,["tagUrl","timeout","allowSkip","adPlugins"]),J=w("VideVmapPlugin",c$1,["url","timeout","vastOptions","adPlugins"]),Q=w("VideSsaiPlugin",d,["tolerance","parser"]);var b={xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",width:24,height:24,fill:"currentColor","aria-hidden":"true"},j=defineComponent({name:"IconPlay",render(){return h$1("svg",b,[h$1("path",{d:"M8 5v14l11-7z"})])}}),Pe=defineComponent({name:"IconPause",render(){return h$1("svg",b,[h$1("path",{d:"M6 19h4V5H6v14zm8-14v14h4V5h-4z"})])}}),O=defineComponent({name:"IconVolumeHigh",render(){return h$1("svg",b,[h$1("path",{d:"M3 9v6h4l5 5V4L7 9H3zm13.5 3c0-1.77-1.02-3.29-2.5-4.03v8.05c1.48-.73 2.5-2.25 2.5-4.02zM14 3.23v2.06c2.89.86 5 3.54 5 6.71s-2.11 5.85-5 6.71v2.06c4.01-.91 7-4.49 7-8.77s-2.99-7.86-7-8.77z"})])}}),B=defineComponent({name:"IconVolumeLow",render(){return h$1("svg",b,[h$1("path",{d:"M18.5 12c0-1.77-1.02-3.29-2.5-4.03v8.05c1.48-.73 2.5-2.25 2.5-4.02zM5 9v6h4l5 5V4L9 9H5z"})])}}),H=defineComponent({name:"IconVolumeMute",render(){return h$1("svg",b,[h$1("path",{d:"M16.5 12c0-1.77-1.02-3.29-2.5-4.03v2.21l2.45 2.45c.03-.2.05-.41.05-.63zm2.5 0c0 .94-.2 1.82-.54 2.64l1.51 1.51C20.63 14.91 21 13.5 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.06c1.38-.31 2.63-.95 3.69-1.81L19.73 21 21 19.73l-9-9L4.27 3zM12 4l-1.88 1.88L12 7.76V4z"})])}}),xe=defineComponent({name:"IconFullscreenEnter",render(){return h$1("svg",b,[h$1("path",{d:"M7 14H5v5h5v-2H7v-3zm-2-4h2V7h3V5H5v5zm12 7h-3v2h5v-5h-2v3zM14 5v2h3v3h2V5h-5z"})])}}),Ee=defineComponent({name:"IconFullscreenExit",render(){return h$1("svg",b,[h$1("path",{d:"M5 16h3v3h2v-5H5v2zm3-8H5v2h5V5H8v3zm6 11h2v-3h3v-2h-5v5zm2-11V5h-2v5h5V8h-3z"})])}});function at(...e){return e.filter(Boolean).join(" ")}var W=defineComponent({name:"VidePlayButton",inheritAttrs:false,setup(e,{attrs:i,slots:l}){let r=u(),n=ref(false);v(r,"statechange",({to:a})=>{a==="playing"||a==="ad:playing"?n.value=true:(a==="paused"||a==="ready"||a==="ended"||a==="ad:paused")&&(n.value=false);});let t=()=>{let a=r.value;a&&(a.state==="playing"||a.state==="ad:playing"?a.pause():a.play().catch(()=>{}));};return ()=>h$1("button",{type:"button",class:at("vide-play",i.class),"aria-label":n.value?"Pause":"Play","data-playing":n.value||void 0,onClick:t},l.default?.()??[h$1(n.value?Pe:j)])}});function mt(...e){return e.filter(Boolean).join(" ")}var Z=defineComponent({name:"VideMuteButton",inheritAttrs:false,setup(e,{attrs:i,slots:l}){let r=u(),n=ref(false),t=ref(1),a;watch(r,s=>{if(a?.(),a=void 0,!s)return;let f=()=>{n.value=s.muted||s.volume===0,t.value=s.volume;};s.el.addEventListener("volumechange",f),f(),a=()=>s.el.removeEventListener("volumechange",f);},{immediate:true}),onScopeDispose(()=>{a?.();});let o=()=>{let s=r.value;s&&(s.muted=!s.muted);};return ()=>h$1("button",{type:"button",class:mt("vide-mute",i.class),"aria-label":n.value?"Unmute":"Mute","data-muted":n.value||void 0,onClick:o},l.default?.()??[h$1(n.value?H:t.value<.5?B:O)])}});function pt(...e){return e.filter(Boolean).join(" ")}var ee=defineComponent({name:"VideProgress",inheritAttrs:false,setup(e,{attrs:i}){let l=u(),r=ref(0),n=ref(0),t=ref(false),a=ref(false),o=ref(null);v(l,"timeupdate",({currentTime:d,duration:c})=>{!a.value&&c>0&&(r.value=d/c);let m=l.value;if(m&&m.el.buffered.length>0&&c>0){let p=m.el.buffered.end(m.el.buffered.length-1);n.value=Math.min(1,p/c);}}),v(l,"statechange",({to:d})=>{let c=d==="ad:loading"||d==="ad:playing"||d==="ad:paused";t.value=c;});let s=d=>{if(!o.value)return 0;let c=o.value.getBoundingClientRect();return c.width===0?0:Math.max(0,Math.min(1,(d.clientX-c.left)/c.width))},f=d=>{!l.value||t.value||(a.value=true,o.value?.setPointerCapture(d.pointerId),r.value=s(d));},g=d=>{a.value&&(r.value=s(d));},V=d=>{if(!a.value||!l.value)return;a.value=false,o.value?.releasePointerCapture(d.pointerId);let c=s(d),m=l.value.el.duration;Number.isFinite(m)&&m>0&&(l.value.currentTime=c*m);};return ()=>h$1("div",{ref:o,class:pt("vide-progress",i.class),role:"slider",tabindex:0,"aria-label":"Seek","aria-valuemin":0,"aria-valuemax":100,"aria-valuenow":Math.round(r.value*100),"data-disabled":t.value||void 0,style:{"--vide-progress":r.value,"--vide-progress-buffered":n.value},onPointerdown:f,onPointermove:g,onPointerup:V},[h$1("div",{class:"vide-progress__buffered"}),h$1("div",{class:"vide-progress__bar"}),h$1("div",{class:"vide-progress__handle"})])}});function gt(...e){return e.filter(Boolean).join(" ")}var te=defineComponent({name:"VideVolume",inheritAttrs:false,setup(e,{attrs:i,slots:l}){let r=u(),n=ref(1),t=ref(false),a=ref(false),o=ref(null),s;watch(r,m=>{if(s?.(),s=void 0,!m)return;let p=()=>{a.value||(n.value=m.muted?0:m.volume),t.value=m.muted||m.volume===0;};m.el.addEventListener("volumechange",p),p(),s=()=>m.el.removeEventListener("volumechange",p);},{immediate:true}),onScopeDispose(()=>{s?.();});let f=()=>{let m=r.value;m&&(m.muted=!m.muted);},g=m=>{if(!o.value)return 0;let p=o.value.getBoundingClientRect();return p.width===0?0:Math.max(0,Math.min(1,(m.clientX-p.left)/p.width))},V=m=>{let p=r.value;if(!p)return;a.value=true,o.value?.setPointerCapture(m.pointerId);let P=g(m);p.volume=P,p.muted&&P>0&&(p.muted=false),n.value=P,t.value=P===0;},d=m=>{let p=r.value;if(!a.value||!p)return;let P=g(m);p.volume=P,p.muted&&P>0&&(p.muted=false),n.value=P,t.value=P===0;},c=m=>{a.value&&(a.value=false,o.value?.releasePointerCapture(m.pointerId));};return ()=>h$1("div",{class:gt("vide-volume",i.class),"data-muted":t.value||void 0,style:{"--vide-volume":n.value}},[h$1("button",{type:"button",class:"vide-volume__button","aria-label":t.value?"Unmute":"Mute",onClick:f},l.default?.()??[h$1(t.value?H:n.value<.5?B:O)]),h$1("div",{ref:o,class:"vide-volume__slider",role:"slider",tabindex:0,"aria-label":"Volume","aria-valuemin":0,"aria-valuemax":100,"aria-valuenow":Math.round(n.value*100),onPointerdown:V,onPointermove:d,onPointerup:c},[h$1("div",{class:"vide-volume__track"}),h$1("div",{class:"vide-volume__filled"})])])}});function Et(...e){return e.filter(Boolean).join(" ")}var ne=defineComponent({name:"VideFullscreenButton",inheritAttrs:false,props:{target:{type:Object,default:null}},setup(e,{attrs:i,slots:l}){let r=u(),n=ref(false),t=()=>{n.value=document.fullscreenElement!=null||document.webkitFullscreenElement!=null;};onMounted(()=>{document.addEventListener("fullscreenchange",t),document.addEventListener("webkitfullscreenchange",t);}),onScopeDispose(()=>{document.removeEventListener("fullscreenchange",t),document.removeEventListener("webkitfullscreenchange",t);});let a=()=>{let o=e.target??r.value?.el.closest(".vide-ui")??r.value?.el.parentElement;o&&(document.fullscreenElement?document.exitFullscreen().catch(()=>{}):o.requestFullscreen().catch(()=>{}));};return ()=>h$1("button",{type:"button",class:Et("vide-fullscreen",i.class),"aria-label":n.value?"Exit fullscreen":"Fullscreen","data-fullscreen":n.value||void 0,onClick:a},l.default?.()??[h$1(n.value?Ee:xe)])}});function bt(...e){return e.filter(Boolean).join(" ")}var re=defineComponent({name:"VideTimeDisplay",inheritAttrs:false,props:{separator:{type:String,default:"/"}},setup(e$1,{attrs:i}){let l=u(),r=ref(0),n=ref(0);return v(l,"timeupdate",t=>{r.value=t.currentTime,n.value=t.duration;}),()=>h$1("div",{class:bt("vide-time",i.class),"aria-label":"Time"},[h$1("span",e(r.value)),h$1("span",e$1.separator),h$1("span",e(n.value))])}});function Ct(...e){return e.filter(Boolean).join(" ")}var oe=defineComponent({name:"VideLoader",inheritAttrs:false,setup(e,{attrs:i}){return ()=>h$1("div",{class:Ct("vide-loader",i.class)},[h$1("div",{class:"vide-loader__spinner"})])}});function kt(...e){return e.filter(Boolean).join(" ")}var ie=defineComponent({name:"VidePoster",inheritAttrs:false,props:{src:{type:String,required:true},alt:{type:String,default:""}},setup(e,{attrs:i}){return ()=>h$1("div",{class:kt("vide-poster",i.class)},[h$1("img",{class:"vide-poster__image",src:e.src,alt:e.alt})])}});function It(...e){return e.filter(Boolean).join(" ")}var le=defineComponent({name:"VideErrorDisplay",inheritAttrs:false,setup(e,{attrs:i}){let l=u(),r=ref(""),n;return watch(l,t=>{if(n?.(),n=void 0,!t)return;let a=({message:o})=>{r.value=o;};t.on("error",a),n=()=>t.off("error",a);},{immediate:true}),onScopeDispose(()=>{n?.();}),()=>h$1("div",{class:It("vide-error",i.class)},[h$1("span",{class:"vide-error__message"},r.value)])}});function Rt(...e){return e.filter(Boolean).join(" ")}var ae=defineComponent({name:"VideBigPlayButton",inheritAttrs:false,setup(e,{attrs:i,slots:l}){let r=u(),n=()=>{let t=r.value;if(t){if(t.state==="ended"){let s=function({to:f}){f==="ready"&&(o.off("statechange",s),o.play().catch(()=>{}));};let o=t;o.on("statechange",s),o.el.currentTime=0,o.el.load();return}t.play().catch(()=>{});}};return ()=>h$1("button",{type:"button",class:Rt("vide-bigplay",i.class),"aria-label":"Play video",onClick:n},l.default?.()??[h$1(j)])}});var Ht=200;function Ft(...e){return e.filter(Boolean).join(" ")}var se=defineComponent({name:"VideClickPlay",inheritAttrs:false,props:{enableFullscreen:{type:Boolean,default:true}},setup(e,{attrs:i}){let l=u(),r=null,n=()=>{let o=l.value;o&&(o.state==="playing"||o.state==="ad:playing"?o.pause():o.play().catch(()=>{}));},t=()=>{if(!e.enableFullscreen)return;let o=l.value,s=o?.el.closest(".vide-ui")??o?.el.parentElement;s&&(document.fullscreenElement!=null?document.exitFullscreen().catch(()=>{}):s.requestFullscreen&&s.requestFullscreen().catch(()=>{}));},a=()=>{let o=l.value;if(o){if(c(o.state)){o.el.click(),n();return}if(r!==null){clearTimeout(r),r=null,t();return}r=setTimeout(()=>{r=null,n();},Ht);}};return onScopeDispose(()=>{r!==null&&(clearTimeout(r),r=null);}),()=>h$1("div",{class:Ft("vide-clickplay",i.class),onClick:a})}});function h(e){let i=ref(false),l=shallowRef(null);return v(e,"ad:start",r=>{i.value=true,l.value={adId:r.adId,clickThrough:r.clickThrough,skipOffset:r.skipOffset,duration:r.duration,adTitle:r.adTitle,adStartTime:Date.now()};}),v(e,"ad:end",()=>{i.value=false,l.value=null;}),v(e,"ad:skip",()=>{i.value=false,l.value=null;}),{active:i,meta:l}}function Nt(...e){return e.filter(Boolean).join(" ")}var ue=defineComponent({name:"VideAdOverlay",inheritAttrs:false,setup(e,{attrs:i,slots:l}){let r=u(),{active:n,meta:t}=h(r),a=()=>{let o=r.value;if(!o)return;o.el.click();let s=t.value?.clickThrough;s?(window.open(s,"_blank"),o.el.pause()):o.el.paused?Promise.resolve(o.el.play()).catch(()=>{}):o.el.pause();};return ()=>n.value?h$1("div",{class:Nt("vide-ad-overlay",i.class),onClick:a},l.default?.()):null}});function Xt(...e){return e.filter(Boolean).join(" ")}var de=defineComponent({name:"VideAdSkip",inheritAttrs:false,setup(e,{attrs:i,slots:l}){let r=u(),{active:n,meta:t}=h(r),a=ref(false),o=ref(0);v(r,"timeupdate",({currentTime:f})=>{!n.value||!t.value||t.value.skipOffset===void 0||(f>=t.value.skipOffset?a.value=true:(a.value=false,o.value=Math.max(0,Math.ceil(t.value.skipOffset-f))));});let s=()=>{let f=r.value;!f||!a.value||!t.value||f.emit("ad:skip",{adId:t.value.adId});};return ()=>!n.value||!t.value||t.value.skipOffset===void 0?null:h$1("button",{type:"button",class:Xt("vide-skip",!a.value&&"vide-skip--disabled",i.class),"aria-label":"Skip ad",onClick:s,disabled:!a.value},a.value?l.default?.()??"Skip Ad":`Skip in ${o.value}s`)}});function Wt(...e){return e.filter(Boolean).join(" ")}var me=defineComponent({name:"VideAdCountdown",inheritAttrs:false,props:{format:{type:Function,default:void 0}},setup(e,{attrs:i}){let l=u(),{active:r,meta:n}=h(l),t=ref(0);return v(l,"timeupdate",({currentTime:a})=>{if(!r.value||!n.value)return;let o=l.value,s=n.value.duration??(o&&Number.isFinite(o.duration)?o.duration:0);t.value=Math.max(0,Math.ceil(s-a));}),()=>r.value?h$1("div",{class:Wt("vide-ad-countdown",i.class)},e.format?e.format(t.value):`Ad \xB7 ${t.value}s`):null}});function tn(...e){return e.filter(Boolean).join(" ")}var fe=defineComponent({name:"VideAdLabel",inheritAttrs:false,setup(e,{attrs:i,slots:l}){let r=u(),{active:n}=h(r);return ()=>n.value?h$1("div",{class:tn("vide-ad-label",i.class)},l.default?.()??"Ad"):null}});function rn(...e){return e.filter(Boolean).join(" ")}var pe=defineComponent({name:"VideAdLearnMore",inheritAttrs:false,props:{showTitle:{type:Boolean,default:false}},setup(e,{attrs:i,slots:l}){let r=u(),{active:n,meta:t}=h(r),a=()=>{let o=r.value;!o||!t.value?.clickThrough||(o.el.click(),window.open(t.value.clickThrough,"_blank"),o.el.pause());};return ()=>{if(!n.value||!t.value?.clickThrough)return null;let o=[];return e.showTitle&&t.value.adTitle&&o.push(h$1("span",{class:"vide-ad-cta__title"},t.value.adTitle)),o.push(l.default?.()??"Learn More"),h$1("button",{type:"button",class:rn("vide-ad-cta",i.class),onClick:a},o)}}});var an=3e3;function sn(e,i){let l=null,r;watch([e,i],([n,t])=>{if(r?.(),r=void 0,!n||!t)return;function a(){if(!t)return true;let d=t.state;return d==="paused"||d==="ended"||d==="idle"||d==="ready"||c(d)}function o(){n?.classList.remove("vide-ui--autohide");}function s(){l!==null&&(clearTimeout(l),l=null);}function f(){s(),!a()&&(l=setTimeout(()=>{n?.classList.add("vide-ui--autohide");},an));}function g(){o(),f();}function V({to:d}){d==="paused"||d==="ended"||d==="idle"||d==="ready"||c(d)?(s(),o()):f();}n.addEventListener("mousemove",g),n.addEventListener("touchstart",g),n.addEventListener("keydown",g),t.on("statechange",V),f(),r=()=>{s(),n.removeEventListener("mousemove",g),n.removeEventListener("touchstart",g),n.removeEventListener("keydown",g),n.classList.remove("vide-ui--autohide"),t.off("statechange",V);};},{immediate:true}),onScopeDispose(()=>{r?.();});}function mn(e,i,l={}){let r;watch([e,i],([n,t])=>{if(r?.(),r=void 0,!n||!t)return;n.setAttribute("tabindex","0");function a(o){if(!t)return;let s=!l.disableSeek,f=!l.disableVolume,g=!l.disableFullscreen,V=c(t.state);switch(o.key){case " ":case "k":case "K":o.preventDefault(),t.state==="playing"||t.state==="ad:playing"?t.pause():t.play().catch(()=>{});break;case "ArrowLeft":if(!s||V)return;o.preventDefault(),t.currentTime=Math.max(0,t.el.currentTime-5);break;case "ArrowRight":if(!s||V)return;o.preventDefault(),t.currentTime=Math.min(t.el.duration||0,t.el.currentTime+5);break;case "ArrowUp":if(!f)return;o.preventDefault(),t.volume=Math.min(1,t.volume+.1),t.muted&&(t.muted=false);break;case "ArrowDown":if(!f)return;o.preventDefault(),t.volume=Math.max(0,t.volume-.1);break;case "m":case "M":if(!f)return;o.preventDefault(),t.muted=!t.muted;break;case "f":case "F":if(!g)return;o.preventDefault(),document.fullscreenElement!=null?document.exitFullscreen().catch(()=>{}):(n?.closest(".vide-ui")??n)?.requestFullscreen().catch(()=>{});break;default:if(o.key.length===1&&o.key>="0"&&o.key<="9"&&s&&!V){o.preventDefault();let d=Number.parseInt(o.key,10)/10,c=t.el.duration;Number.isFinite(c)&&c>0&&(t.currentTime=d*c);}break}}n.addEventListener("keydown",a),r=()=>{n.removeEventListener("keydown",a),n.removeAttribute("tabindex");};},{immediate:true}),onScopeDispose(()=>{r?.();});}function je(...e){return e.filter(Boolean).join(" ")}var ce=defineComponent({name:"VideUI",inheritAttrs:false,setup(e,{attrs:i,slots:l}){let r=u(),n=ref("");return watch(r,(t,a,o)=>{if(!t){n.value="";return}n.value=b$1(t.state);let s=({to:f})=>{n.value=b$1(f);};t.on("statechange",s),o(()=>t.off("statechange",s));},{immediate:true}),()=>h$1("div",{class:je("vide-ui",n.value,i.class),role:"region","aria-label":"Video player"},l.default?.())}}),ve=defineComponent({name:"VideControls",inheritAttrs:false,setup(e,{attrs:i,slots:l}){let r=u();return ()=>r.value?h$1("div",{class:je("vide-controls",i.class)},l.default?.()):null}});var Io={Video:N,HlsPlugin:q,DashPlugin:G,DrmPlugin:X,VastPlugin:$,VmapPlugin:J,SsaiPlugin:Q,PlayButton:W,MuteButton:Z,Progress:ee,Volume:te,FullscreenButton:ne,TimeDisplay:re,Loader:oe,Poster:ie,ErrorDisplay:le,BigPlayButton:ae,ClickPlay:se,UI:ce,Controls:ve,AdOverlay:ue,AdSkip:de,AdCountdown:me,AdLabel:fe,AdLearnMore:pe};
|
|
2
|
+
export{_ as VIDE_PLAYER_KEY,Io as Vide,me as VideAdCountdown,fe as VideAdLabel,pe as VideAdLearnMore,ue as VideAdOverlay,de as VideAdSkip,ae as VideBigPlayButton,se as VideClickPlay,ve as VideControls,G as VideDashPlugin,X as VideDrmPlugin,le as VideErrorDisplay,ne as VideFullscreenButton,q as VideHlsPlugin,oe as VideLoader,Z as VideMuteButton,W as VidePlayButton,ie as VidePoster,ee as VideProgress,Q as VideSsaiPlugin,re as VideTimeDisplay,ce as VideUI,$ as VideVastPlugin,N as VideVideo,J as VideVmapPlugin,te as VideVolume,h as useAdState,sn as useAutohide,qe as useDash,Ge as useDrm,Ne as useHls,mn as useKeyboard,Je as useSsai,Qe as useUi,Xe as useVast,u as useVideContext,v as useVideEvent,Fe as useVidePlayer,$e as useVmap};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import {d}from'../chunk-2OVLZ27V.mjs';import {e,b as b$1,c,x}from'../chunk-LPSJOF2I.mjs';import {a as a$3}from'../chunk-6DWWYSH4.mjs';import {a as a$2}from'../chunk-3RDTWUHH.mjs';import {c as c$1}from'../chunk-WINCDUN5.mjs';import'../chunk-G74QBLVV.mjs';import'../chunk-UY5CGRNN.mjs';import {a}from'../chunk-NA4C7W64.mjs';import {a as a$1}from'../chunk-JRU2FKRB.mjs';import'../chunk-H3OXPFD3.mjs';import {e as e$1}from'../chunk-VPH4JIJV.mjs';import'../chunk-DWXOYV4E.mjs';import {defineComponent,ref,inject,onMounted,h as h$1,watch,onScopeDispose,shallowRef,provide}from'vue';var _=Symbol("vide-player"),R=Symbol("vide-register");function u(){let e=inject(_);if(!e)throw new Error("useVideContext must be used within <VideVideo>");return e}function Fe(){let e=shallowRef(null),i=l=>{e.value&&(e.value.destroy(),e.value=null),e.value=a$3(l);};return provide(_,e),provide(R,i),onScopeDispose(()=>{e.value?.destroy(),e.value=null;}),e}function v(e,i,l){let r;watch(e,n=>{r?.(),r=void 0,n&&(n.on(i,l),r=()=>n.off(i,l));},{immediate:true}),onScopeDispose(()=>{r?.();});}function E(e,i,l){let r;watch(e,n=>{if(r?.(),r=void 0,!n)return;r=i(l).setup(n)??void 0;},{immediate:true}),onScopeDispose(()=>{r?.();});}function Ne(e,i){E(e,a,i??{});}function qe(e,i){E(e,a$1,i??{});}function Ge(e,i){E(e,e$1,i);}function Xe(e,i){E(e,a$2,i);}function $e(e,i){E(e,c$1,i);}function Je(e,i){E(e,d,i??{});}function Qe(e,i){E(e,x,i);}var N=defineComponent({name:"VideVideo",inheritAttrs:false,slots:Object,setup(e,{attrs:i,slots:l,expose:r}){let n=ref(null),t=inject(R);return r({video:n}),onMounted(()=>{n.value&&t&&t(n.value);}),()=>{let{class:a,...o}=i;return h$1("div",{class:a},[h$1("video",{...o,ref:n}),l.default?.()])}}});function w(e,i,l){return defineComponent({name:e,props:l.reduce((r,n)=>(r[n]=null,r),{}),setup(r){let n=u(),t;return watch(n,a=>{if(t?.(),t=void 0,!a)return;t=i({...r}).setup(a)??void 0;},{immediate:true}),onScopeDispose(()=>{t?.();}),()=>null}})}var q=w("VideHlsPlugin",a,["hlsConfig","recovery"]),G=w("VideDashPlugin",a$1,["dashConfig","recovery"]),X=w("VideDrmPlugin",e$1,["widevine","fairplay"]),$=w("VideVastPlugin",a$2,["tagUrl","timeout","allowSkip","adPlugins"]),J=w("VideVmapPlugin",c$1,["url","timeout","vastOptions","adPlugins"]),Q=w("VideSsaiPlugin",d,["tolerance","parser"]);var b={xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",width:24,height:24,fill:"currentColor","aria-hidden":"true"},j=defineComponent({name:"IconPlay",render(){return h$1("svg",b,[h$1("path",{d:"M8 5v14l11-7z"})])}}),Pe=defineComponent({name:"IconPause",render(){return h$1("svg",b,[h$1("path",{d:"M6 19h4V5H6v14zm8-14v14h4V5h-4z"})])}}),O=defineComponent({name:"IconVolumeHigh",render(){return h$1("svg",b,[h$1("path",{d:"M3 9v6h4l5 5V4L7 9H3zm13.5 3c0-1.77-1.02-3.29-2.5-4.03v8.05c1.48-.73 2.5-2.25 2.5-4.02zM14 3.23v2.06c2.89.86 5 3.54 5 6.71s-2.11 5.85-5 6.71v2.06c4.01-.91 7-4.49 7-8.77s-2.99-7.86-7-8.77z"})])}}),B=defineComponent({name:"IconVolumeLow",render(){return h$1("svg",b,[h$1("path",{d:"M18.5 12c0-1.77-1.02-3.29-2.5-4.03v8.05c1.48-.73 2.5-2.25 2.5-4.02zM5 9v6h4l5 5V4L9 9H5z"})])}}),H=defineComponent({name:"IconVolumeMute",render(){return h$1("svg",b,[h$1("path",{d:"M16.5 12c0-1.77-1.02-3.29-2.5-4.03v2.21l2.45 2.45c.03-.2.05-.41.05-.63zm2.5 0c0 .94-.2 1.82-.54 2.64l1.51 1.51C20.63 14.91 21 13.5 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.06c1.38-.31 2.63-.95 3.69-1.81L19.73 21 21 19.73l-9-9L4.27 3zM12 4l-1.88 1.88L12 7.76V4z"})])}}),xe=defineComponent({name:"IconFullscreenEnter",render(){return h$1("svg",b,[h$1("path",{d:"M7 14H5v5h5v-2H7v-3zm-2-4h2V7h3V5H5v5zm12 7h-3v2h5v-5h-2v3zM14 5v2h3v3h2V5h-5z"})])}}),Ee=defineComponent({name:"IconFullscreenExit",render(){return h$1("svg",b,[h$1("path",{d:"M5 16h3v3h2v-5H5v2zm3-8H5v2h5V5H8v3zm6 11h2v-3h3v-2h-5v5zm2-11V5h-2v5h5V8h-3z"})])}});function at(...e){return e.filter(Boolean).join(" ")}var W=defineComponent({name:"VidePlayButton",inheritAttrs:false,setup(e,{attrs:i,slots:l}){let r=u(),n=ref(false);v(r,"statechange",({to:a})=>{a==="playing"||a==="ad:playing"?n.value=true:(a==="paused"||a==="ready"||a==="ended"||a==="ad:paused")&&(n.value=false);});let t=()=>{let a=r.value;a&&(a.state==="playing"||a.state==="ad:playing"?a.pause():a.play().catch(()=>{}));};return ()=>h$1("button",{type:"button",class:at("vide-play",i.class),"aria-label":n.value?"Pause":"Play","data-playing":n.value||void 0,onClick:t},l.default?.()??[h$1(n.value?Pe:j)])}});function mt(...e){return e.filter(Boolean).join(" ")}var Z=defineComponent({name:"VideMuteButton",inheritAttrs:false,setup(e,{attrs:i,slots:l}){let r=u(),n=ref(false),t=ref(1),a;watch(r,s=>{if(a?.(),a=void 0,!s)return;let f=()=>{n.value=s.muted||s.volume===0,t.value=s.volume;};s.el.addEventListener("volumechange",f),f(),a=()=>s.el.removeEventListener("volumechange",f);},{immediate:true}),onScopeDispose(()=>{a?.();});let o=()=>{let s=r.value;s&&(s.muted=!s.muted);};return ()=>h$1("button",{type:"button",class:mt("vide-mute",i.class),"aria-label":n.value?"Unmute":"Mute","data-muted":n.value||void 0,onClick:o},l.default?.()??[h$1(n.value?H:t.value<.5?B:O)])}});function pt(...e){return e.filter(Boolean).join(" ")}var ee=defineComponent({name:"VideProgress",inheritAttrs:false,setup(e,{attrs:i}){let l=u(),r=ref(0),n=ref(0),t=ref(false),a=ref(false),o=ref(null);v(l,"timeupdate",({currentTime:d,duration:c})=>{!a.value&&c>0&&(r.value=d/c);let m=l.value;if(m&&m.el.buffered.length>0&&c>0){let p=m.el.buffered.end(m.el.buffered.length-1);n.value=Math.min(1,p/c);}}),v(l,"statechange",({to:d})=>{let c=d==="ad:loading"||d==="ad:playing"||d==="ad:paused";t.value=c;});let s=d=>{if(!o.value)return 0;let c=o.value.getBoundingClientRect();return c.width===0?0:Math.max(0,Math.min(1,(d.clientX-c.left)/c.width))},f=d=>{!l.value||t.value||(a.value=true,o.value?.setPointerCapture(d.pointerId),r.value=s(d));},g=d=>{a.value&&(r.value=s(d));},V=d=>{if(!a.value||!l.value)return;a.value=false,o.value?.releasePointerCapture(d.pointerId);let c=s(d),m=l.value.el.duration;Number.isFinite(m)&&m>0&&(l.value.currentTime=c*m);};return ()=>h$1("div",{ref:o,class:pt("vide-progress",i.class),role:"slider",tabindex:0,"aria-label":"Seek","aria-valuemin":0,"aria-valuemax":100,"aria-valuenow":Math.round(r.value*100),"data-disabled":t.value||void 0,style:{"--vide-progress":r.value,"--vide-progress-buffered":n.value},onPointerdown:f,onPointermove:g,onPointerup:V},[h$1("div",{class:"vide-progress__buffered"}),h$1("div",{class:"vide-progress__bar"}),h$1("div",{class:"vide-progress__handle"})])}});function gt(...e){return e.filter(Boolean).join(" ")}var te=defineComponent({name:"VideVolume",inheritAttrs:false,setup(e,{attrs:i,slots:l}){let r=u(),n=ref(1),t=ref(false),a=ref(false),o=ref(null),s;watch(r,m=>{if(s?.(),s=void 0,!m)return;let p=()=>{a.value||(n.value=m.muted?0:m.volume),t.value=m.muted||m.volume===0;};m.el.addEventListener("volumechange",p),p(),s=()=>m.el.removeEventListener("volumechange",p);},{immediate:true}),onScopeDispose(()=>{s?.();});let f=()=>{let m=r.value;m&&(m.muted=!m.muted);},g=m=>{if(!o.value)return 0;let p=o.value.getBoundingClientRect();return p.width===0?0:Math.max(0,Math.min(1,(m.clientX-p.left)/p.width))},V=m=>{let p=r.value;if(!p)return;a.value=true,o.value?.setPointerCapture(m.pointerId);let P=g(m);p.volume=P,p.muted&&P>0&&(p.muted=false),n.value=P,t.value=P===0;},d=m=>{let p=r.value;if(!a.value||!p)return;let P=g(m);p.volume=P,p.muted&&P>0&&(p.muted=false),n.value=P,t.value=P===0;},c=m=>{a.value&&(a.value=false,o.value?.releasePointerCapture(m.pointerId));};return ()=>h$1("div",{class:gt("vide-volume",i.class),"data-muted":t.value||void 0,style:{"--vide-volume":n.value}},[h$1("button",{type:"button",class:"vide-volume__button","aria-label":t.value?"Unmute":"Mute",onClick:f},l.default?.()??[h$1(t.value?H:n.value<.5?B:O)]),h$1("div",{ref:o,class:"vide-volume__slider",role:"slider",tabindex:0,"aria-label":"Volume","aria-valuemin":0,"aria-valuemax":100,"aria-valuenow":Math.round(n.value*100),onPointerdown:V,onPointermove:d,onPointerup:c},[h$1("div",{class:"vide-volume__track"}),h$1("div",{class:"vide-volume__filled"})])])}});function Et(...e){return e.filter(Boolean).join(" ")}var ne=defineComponent({name:"VideFullscreenButton",inheritAttrs:false,props:{target:{type:Object,default:null}},setup(e,{attrs:i,slots:l}){let r=u(),n=ref(false),t=()=>{n.value=document.fullscreenElement!=null||document.webkitFullscreenElement!=null;};onMounted(()=>{document.addEventListener("fullscreenchange",t),document.addEventListener("webkitfullscreenchange",t);}),onScopeDispose(()=>{document.removeEventListener("fullscreenchange",t),document.removeEventListener("webkitfullscreenchange",t);});let a=()=>{let o=e.target??r.value?.el.closest(".vide-ui")??r.value?.el.parentElement;o&&(document.fullscreenElement?document.exitFullscreen().catch(()=>{}):o.requestFullscreen().catch(()=>{}));};return ()=>h$1("button",{type:"button",class:Et("vide-fullscreen",i.class),"aria-label":n.value?"Exit fullscreen":"Fullscreen","data-fullscreen":n.value||void 0,onClick:a},l.default?.()??[h$1(n.value?Ee:xe)])}});function bt(...e){return e.filter(Boolean).join(" ")}var re=defineComponent({name:"VideTimeDisplay",inheritAttrs:false,props:{separator:{type:String,default:"/"}},setup(e$1,{attrs:i}){let l=u(),r=ref(0),n=ref(0);return v(l,"timeupdate",t=>{r.value=t.currentTime,n.value=t.duration;}),()=>h$1("div",{class:bt("vide-time",i.class),"aria-label":"Time"},[h$1("span",e(r.value)),h$1("span",e$1.separator),h$1("span",e(n.value))])}});function Ct(...e){return e.filter(Boolean).join(" ")}var oe=defineComponent({name:"VideLoader",inheritAttrs:false,setup(e,{attrs:i}){return ()=>h$1("div",{class:Ct("vide-loader",i.class)},[h$1("div",{class:"vide-loader__spinner"})])}});function kt(...e){return e.filter(Boolean).join(" ")}var ie=defineComponent({name:"VidePoster",inheritAttrs:false,props:{src:{type:String,required:true},alt:{type:String,default:""}},setup(e,{attrs:i}){return ()=>h$1("div",{class:kt("vide-poster",i.class)},[h$1("img",{class:"vide-poster__image",src:e.src,alt:e.alt})])}});function It(...e){return e.filter(Boolean).join(" ")}var le=defineComponent({name:"VideErrorDisplay",inheritAttrs:false,setup(e,{attrs:i}){let l=u(),r=ref(""),n;return watch(l,t=>{if(n?.(),n=void 0,!t)return;let a=({message:o})=>{r.value=o;};t.on("error",a),n=()=>t.off("error",a);},{immediate:true}),onScopeDispose(()=>{n?.();}),()=>h$1("div",{class:It("vide-error",i.class)},[h$1("span",{class:"vide-error__message"},r.value)])}});function Rt(...e){return e.filter(Boolean).join(" ")}var ae=defineComponent({name:"VideBigPlayButton",inheritAttrs:false,setup(e,{attrs:i,slots:l}){let r=u(),n=()=>{let t=r.value;if(t){if(t.state==="ended"){let s=function({to:f}){f==="ready"&&(o.off("statechange",s),o.play().catch(()=>{}));};let o=t;o.on("statechange",s),o.el.currentTime=0,o.el.load();return}t.play().catch(()=>{});}};return ()=>h$1("button",{type:"button",class:Rt("vide-bigplay",i.class),"aria-label":"Play video",onClick:n},l.default?.()??[h$1(j)])}});var Ht=200;function Ft(...e){return e.filter(Boolean).join(" ")}var se=defineComponent({name:"VideClickPlay",inheritAttrs:false,props:{enableFullscreen:{type:Boolean,default:true}},setup(e,{attrs:i}){let l=u(),r=null,n=()=>{let o=l.value;o&&(o.state==="playing"||o.state==="ad:playing"?o.pause():o.play().catch(()=>{}));},t=()=>{if(!e.enableFullscreen)return;let o=l.value,s=o?.el.closest(".vide-ui")??o?.el.parentElement;s&&(document.fullscreenElement!=null?document.exitFullscreen().catch(()=>{}):s.requestFullscreen&&s.requestFullscreen().catch(()=>{}));},a=()=>{let o=l.value;if(o){if(c(o.state)){o.el.click(),n();return}if(r!==null){clearTimeout(r),r=null,t();return}r=setTimeout(()=>{r=null,n();},Ht);}};return onScopeDispose(()=>{r!==null&&(clearTimeout(r),r=null);}),()=>h$1("div",{class:Ft("vide-clickplay",i.class),onClick:a})}});function h(e){let i=ref(false),l=shallowRef(null);return v(e,"ad:start",r=>{i.value=true,l.value={adId:r.adId,clickThrough:r.clickThrough,skipOffset:r.skipOffset,duration:r.duration,adTitle:r.adTitle,adStartTime:Date.now()};}),v(e,"ad:end",()=>{i.value=false,l.value=null;}),v(e,"ad:skip",()=>{i.value=false,l.value=null;}),{active:i,meta:l}}function Nt(...e){return e.filter(Boolean).join(" ")}var ue=defineComponent({name:"VideAdOverlay",inheritAttrs:false,setup(e,{attrs:i,slots:l}){let r=u(),{active:n,meta:t}=h(r),a=()=>{let o=r.value;if(!o)return;o.el.click();let s=t.value?.clickThrough;s?(window.open(s,"_blank"),o.el.pause()):o.el.paused?Promise.resolve(o.el.play()).catch(()=>{}):o.el.pause();};return ()=>n.value?h$1("div",{class:Nt("vide-ad-overlay",i.class),onClick:a},l.default?.()):null}});function Xt(...e){return e.filter(Boolean).join(" ")}var de=defineComponent({name:"VideAdSkip",inheritAttrs:false,setup(e,{attrs:i,slots:l}){let r=u(),{active:n,meta:t}=h(r),a=ref(false),o=ref(0);v(r,"timeupdate",({currentTime:f})=>{!n.value||!t.value||t.value.skipOffset===void 0||(f>=t.value.skipOffset?a.value=true:(a.value=false,o.value=Math.max(0,Math.ceil(t.value.skipOffset-f))));});let s=()=>{let f=r.value;!f||!a.value||!t.value||f.emit("ad:skip",{adId:t.value.adId});};return ()=>!n.value||!t.value||t.value.skipOffset===void 0?null:h$1("button",{type:"button",class:Xt("vide-skip",!a.value&&"vide-skip--disabled",i.class),"aria-label":"Skip ad",onClick:s,disabled:!a.value},a.value?l.default?.()??"Skip Ad":`Skip in ${o.value}s`)}});function Wt(...e){return e.filter(Boolean).join(" ")}var me=defineComponent({name:"VideAdCountdown",inheritAttrs:false,props:{format:{type:Function,default:void 0}},setup(e,{attrs:i}){let l=u(),{active:r,meta:n}=h(l),t=ref(0);return v(l,"timeupdate",({currentTime:a})=>{if(!r.value||!n.value)return;let o=l.value,s=n.value.duration??(o&&Number.isFinite(o.duration)?o.duration:0);t.value=Math.max(0,Math.ceil(s-a));}),()=>r.value?h$1("div",{class:Wt("vide-ad-countdown",i.class)},e.format?e.format(t.value):`Ad \xB7 ${t.value}s`):null}});function tn(...e){return e.filter(Boolean).join(" ")}var fe=defineComponent({name:"VideAdLabel",inheritAttrs:false,setup(e,{attrs:i,slots:l}){let r=u(),{active:n}=h(r);return ()=>n.value?h$1("div",{class:tn("vide-ad-label",i.class)},l.default?.()??"Ad"):null}});function rn(...e){return e.filter(Boolean).join(" ")}var pe=defineComponent({name:"VideAdLearnMore",inheritAttrs:false,props:{showTitle:{type:Boolean,default:false}},setup(e,{attrs:i,slots:l}){let r=u(),{active:n,meta:t}=h(r),a=()=>{let o=r.value;!o||!t.value?.clickThrough||(o.el.click(),window.open(t.value.clickThrough,"_blank"),o.el.pause());};return ()=>{if(!n.value||!t.value?.clickThrough)return null;let o=[];return e.showTitle&&t.value.adTitle&&o.push(h$1("span",{class:"vide-ad-cta__title"},t.value.adTitle)),o.push(l.default?.()??"Learn More"),h$1("button",{type:"button",class:rn("vide-ad-cta",i.class),onClick:a},o)}}});var an=3e3;function sn(e,i){let l=null,r;watch([e,i],([n,t])=>{if(r?.(),r=void 0,!n||!t)return;function a(){if(!t)return true;let d=t.state;return d==="paused"||d==="ended"||d==="idle"||d==="ready"||c(d)}function o(){n?.classList.remove("vide-ui--autohide");}function s(){l!==null&&(clearTimeout(l),l=null);}function f(){s(),!a()&&(l=setTimeout(()=>{n?.classList.add("vide-ui--autohide");},an));}function g(){o(),f();}function V({to:d}){d==="paused"||d==="ended"||d==="idle"||d==="ready"||c(d)?(s(),o()):f();}n.addEventListener("mousemove",g),n.addEventListener("touchstart",g),n.addEventListener("keydown",g),t.on("statechange",V),f(),r=()=>{s(),n.removeEventListener("mousemove",g),n.removeEventListener("touchstart",g),n.removeEventListener("keydown",g),n.classList.remove("vide-ui--autohide"),t.off("statechange",V);};},{immediate:true}),onScopeDispose(()=>{r?.();});}function mn(e,i,l={}){let r;watch([e,i],([n,t])=>{if(r?.(),r=void 0,!n||!t)return;n.setAttribute("tabindex","0");function a(o){if(!t)return;let s=!l.disableSeek,f=!l.disableVolume,g=!l.disableFullscreen,V=c(t.state);switch(o.key){case " ":case "k":case "K":o.preventDefault(),t.state==="playing"||t.state==="ad:playing"?t.pause():t.play().catch(()=>{});break;case "ArrowLeft":if(!s||V)return;o.preventDefault(),t.currentTime=Math.max(0,t.el.currentTime-5);break;case "ArrowRight":if(!s||V)return;o.preventDefault(),t.currentTime=Math.min(t.el.duration||0,t.el.currentTime+5);break;case "ArrowUp":if(!f)return;o.preventDefault(),t.volume=Math.min(1,t.volume+.1),t.muted&&(t.muted=false);break;case "ArrowDown":if(!f)return;o.preventDefault(),t.volume=Math.max(0,t.volume-.1);break;case "m":case "M":if(!f)return;o.preventDefault(),t.muted=!t.muted;break;case "f":case "F":if(!g)return;o.preventDefault(),document.fullscreenElement!=null?document.exitFullscreen().catch(()=>{}):(n?.closest(".vide-ui")??n)?.requestFullscreen().catch(()=>{});break;default:if(o.key.length===1&&o.key>="0"&&o.key<="9"&&s&&!V){o.preventDefault();let d=Number.parseInt(o.key,10)/10,c=t.el.duration;Number.isFinite(c)&&c>0&&(t.currentTime=d*c);}break}}n.addEventListener("keydown",a),r=()=>{n.removeEventListener("keydown",a),n.removeAttribute("tabindex");};},{immediate:true}),onScopeDispose(()=>{r?.();});}function je(...e){return e.filter(Boolean).join(" ")}var ce=defineComponent({name:"VideUI",inheritAttrs:false,setup(e,{attrs:i,slots:l}){let r=u(),n=ref("");return watch(r,(t,a,o)=>{if(!t){n.value="";return}n.value=b$1(t.state);let s=({to:f})=>{n.value=b$1(f);};t.on("statechange",s),o(()=>t.off("statechange",s));},{immediate:true}),()=>h$1("div",{class:je("vide-ui",n.value,i.class),role:"region","aria-label":"Video player"},l.default?.())}}),ve=defineComponent({name:"VideControls",inheritAttrs:false,setup(e,{attrs:i,slots:l}){let r=u();return ()=>r.value?h$1("div",{class:je("vide-controls",i.class)},l.default?.()):null}});var Io={Video:N,HlsPlugin:q,DashPlugin:G,DrmPlugin:X,VastPlugin:$,VmapPlugin:J,SsaiPlugin:Q,PlayButton:W,MuteButton:Z,Progress:ee,Volume:te,FullscreenButton:ne,TimeDisplay:re,Loader:oe,Poster:ie,ErrorDisplay:le,BigPlayButton:ae,ClickPlay:se,UI:ce,Controls:ve,AdOverlay:ue,AdSkip:de,AdCountdown:me,AdLabel:fe,AdLearnMore:pe};
|
|
2
|
+
export{_ as VIDE_PLAYER_KEY,Io as Vide,me as VideAdCountdown,fe as VideAdLabel,pe as VideAdLearnMore,ue as VideAdOverlay,de as VideAdSkip,ae as VideBigPlayButton,se as VideClickPlay,ve as VideControls,G as VideDashPlugin,X as VideDrmPlugin,le as VideErrorDisplay,ne as VideFullscreenButton,q as VideHlsPlugin,oe as VideLoader,Z as VideMuteButton,W as VidePlayButton,ie as VidePoster,ee as VideProgress,Q as VideSsaiPlugin,re as VideTimeDisplay,ce as VideUI,$ as VideVastPlugin,N as VideVideo,J as VideVmapPlugin,te as VideVolume,h as useAdState,sn as useAutohide,qe as useDash,Ge as useDrm,Ne as useHls,mn as useKeyboard,Je as useSsai,Qe as useUi,Xe as useVast,u as useVideContext,v as useVideEvent,Fe as useVidePlayer,$e as useVmap};
|
package/package.json
CHANGED
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@videts/vide",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.9.2",
|
|
4
4
|
"description": "Zero-config, web-standard-first modular video player. VAST, VMAP, HLS, DASH, DRM, SSAI, OMID, SIMID — all as plugins. Core under 2KB gzip.",
|
|
5
5
|
"type": "module",
|
|
6
|
+
"unpkg": "dist/vide.global.js",
|
|
7
|
+
"jsdelivr": "dist/vide.global.js",
|
|
6
8
|
"exports": {
|
|
7
9
|
".": {
|
|
8
10
|
"types": "./dist/index.d.ts",
|
|
@@ -44,14 +46,28 @@
|
|
|
44
46
|
"types": "./dist/ui/index.d.ts",
|
|
45
47
|
"import": "./dist/ui/index.mjs"
|
|
46
48
|
},
|
|
47
|
-
"./ui/theme.css": "./dist/ui/theme.css"
|
|
49
|
+
"./ui/theme.css": "./dist/ui/theme.css",
|
|
50
|
+
"./react": {
|
|
51
|
+
"types": "./dist/react/index.d.ts",
|
|
52
|
+
"import": "./dist/react/index.mjs"
|
|
53
|
+
},
|
|
54
|
+
"./vue": {
|
|
55
|
+
"types": "./dist/vue/index.d.ts",
|
|
56
|
+
"import": "./dist/vue/index.mjs"
|
|
57
|
+
},
|
|
58
|
+
"./svelte": {
|
|
59
|
+
"types": "./dist/svelte/index.d.ts",
|
|
60
|
+
"svelte": "./dist/svelte/index.js",
|
|
61
|
+
"default": "./dist/svelte/index.js"
|
|
62
|
+
}
|
|
48
63
|
},
|
|
49
64
|
"files": [
|
|
50
65
|
"dist"
|
|
51
66
|
],
|
|
52
67
|
"sideEffects": false,
|
|
53
68
|
"scripts": {
|
|
54
|
-
"build": "tsup",
|
|
69
|
+
"build": "tsup && pnpm build:svelte",
|
|
70
|
+
"build:svelte": "svelte-package -i src/svelte -o dist/svelte && find src -name '*.d.ts' -o -name '*.d.ts.map' | xargs rm -f",
|
|
55
71
|
"test": "vitest run",
|
|
56
72
|
"test:watch": "vitest",
|
|
57
73
|
"test:e2e": "playwright test",
|
|
@@ -67,19 +83,34 @@
|
|
|
67
83
|
"devDependencies": {
|
|
68
84
|
"@biomejs/biome": "^1.9.0",
|
|
69
85
|
"@playwright/test": "^1.58.2",
|
|
86
|
+
"@testing-library/react": "^16.0.0",
|
|
87
|
+
"@types/react": "^19.0.0",
|
|
88
|
+
"@types/react-dom": "^19.0.0",
|
|
89
|
+
"@sveltejs/package": "^2.0.0",
|
|
90
|
+
"@sveltejs/vite-plugin-svelte": "^4.0.0",
|
|
91
|
+
"@testing-library/svelte": "^5.0.0",
|
|
92
|
+
"@vue/test-utils": "^2.4.6",
|
|
70
93
|
"dashjs": "^4.7.0",
|
|
71
94
|
"hls.js": "^1.6.15",
|
|
72
95
|
"jsdom": "^25.0.0",
|
|
96
|
+
"react": "^19.0.0",
|
|
97
|
+
"react-dom": "^19.0.0",
|
|
73
98
|
"tsup": "^8.0.0",
|
|
74
99
|
"typedoc": "^0.28.17",
|
|
75
100
|
"typedoc-plugin-markdown": "^4.10.0",
|
|
76
101
|
"typescript": "^5.6.0",
|
|
77
102
|
"vitepress": "^1.6.4",
|
|
78
|
-
"vitest": "^2.0.0"
|
|
103
|
+
"vitest": "^2.0.0",
|
|
104
|
+
"svelte": "^5.0.0",
|
|
105
|
+
"vue": "^3.5.29"
|
|
79
106
|
},
|
|
80
107
|
"peerDependencies": {
|
|
81
108
|
"dashjs": "^4.0.0",
|
|
82
|
-
"hls.js": "^1.0.0"
|
|
109
|
+
"hls.js": "^1.0.0",
|
|
110
|
+
"react": "^18.0.0 || ^19.0.0",
|
|
111
|
+
"react-dom": "^18.0.0 || ^19.0.0",
|
|
112
|
+
"svelte": "^5.0.0",
|
|
113
|
+
"vue": "^3.3.0"
|
|
83
114
|
},
|
|
84
115
|
"peerDependenciesMeta": {
|
|
85
116
|
"dashjs": {
|
|
@@ -87,6 +118,18 @@
|
|
|
87
118
|
},
|
|
88
119
|
"hls.js": {
|
|
89
120
|
"optional": true
|
|
121
|
+
},
|
|
122
|
+
"react": {
|
|
123
|
+
"optional": true
|
|
124
|
+
},
|
|
125
|
+
"react-dom": {
|
|
126
|
+
"optional": true
|
|
127
|
+
},
|
|
128
|
+
"svelte": {
|
|
129
|
+
"optional": true
|
|
130
|
+
},
|
|
131
|
+
"vue": {
|
|
132
|
+
"optional": true
|
|
90
133
|
}
|
|
91
134
|
},
|
|
92
135
|
"repository": {
|
package/dist/chunk-726XNUGZ.mjs
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
function C(e){let r=new DOMParser().parseFromString(e,"text/xml");if(r.querySelector("parsererror"))return {version:"",ads:[],errors:["VAST XML parse error"]};let n=r.documentElement;if(n.tagName!=="VAST")return {version:"",ads:[],errors:["Document is not a VAST response"]};let s=n.getAttribute("version")??"",o=A(n,"Error"),a=g(n,"Ad"),c=[];for(let l of a){let u=S(l);u&&c.push(u);}return {version:s,ads:c,errors:o}}function S(e){let t=T(e,"InLine");if(!t)return null;let r=e.getAttribute("id")??"",i=e.getAttribute("sequence"),n=m(i,void 0),s=v(t,"AdSystem"),o=v(t,"AdTitle"),a=k(t,"Impression"),c=A(t,"Error"),l=t.querySelector("Creatives"),u=[];if(l){let d=g(l,"Creative");for(let E of d)u.push(N(E));}let f=x(t),p=F(t);return {id:r,sequence:n,adSystem:s,adTitle:o,impressions:a,creatives:u,errors:c,verifications:f,categories:p}}function x(e){let t=e.querySelector("AdVerifications");if(!t)return;let r=[],i=g(t,"Verification");for(let n of i){let s=n.getAttribute("vendor")??"",o="",a,c=n.querySelector("JavaScriptResource");if(c)o=(c.textContent??"").trim(),a=c.getAttribute("apiFramework")??void 0;else {let f=n.querySelector("ExecutableResource");f&&(o=(f.textContent??"").trim(),a=f.getAttribute("apiFramework")??void 0);}let l=n.querySelector("VerificationParameters"),u=l&&(l.textContent??"").trim()||void 0;r.push({vendor:s,resourceUrl:o,apiFramework:a,parameters:u});}return r.length>0?r:void 0}function F(e){let t=g(e,"Category");if(t.length===0)return;let r=[];for(let i of t){let n=i.getAttribute("authority")??"",s=(i.textContent??"").trim();s&&r.push({authority:n,value:s});}return r.length>0?r:void 0}function N(e){let t=e.getAttribute("id")??void 0,r=e.getAttribute("sequence"),i=m(r,void 0),n=e.querySelector("Linear"),s=n?w(n):null;return {id:t,sequence:i,linear:s}}function w(e){let t=v(e,"Duration"),r=b(t),i=e.getAttribute("skipoffset"),n=i!==null?y(i,r):void 0,s=q(e),o=I(e),a=V(e),c=e.querySelector("VideoClicks"),l=c&&v(c,"ClickThrough")||void 0,u=c?k(c,"ClickTracking"):[];return {duration:r,skipOffset:n,mediaFiles:s,interactiveCreativeFiles:o,trackingEvents:a,clickThrough:l,clickTracking:u}}function q(e){let t=e.querySelector("MediaFiles");if(!t)return [];let r=[],i=g(t,"MediaFile");for(let n of i){let s=(n.textContent??"").trim();if(!s)continue;let o=n.getAttribute("delivery");r.push({url:s,mimeType:n.getAttribute("type")??"",width:m(n.getAttribute("width"),0),height:m(n.getAttribute("height"),0),bitrate:m(n.getAttribute("bitrate"),void 0),delivery:o==="streaming"?"streaming":"progressive"});}return r}function I(e){let t=e.querySelector("MediaFiles");if(!t)return [];let r=[],i=g(t,"InteractiveCreativeFile");for(let n of i){let s=(n.textContent??"").trim();if(!s)continue;let o=n.getAttribute("apiFramework")??"",a=n.getAttribute("variableDuration"),c=a==="true"?true:a==="false"?false:void 0;r.push({url:s,apiFramework:o,variableDuration:c});}return r}var M=new Set(["start","firstQuartile","midpoint","thirdQuartile","complete","pause","resume","skip","loaded","mute","unmute","rewind","playerExpand","playerCollapse","closeLinear","notUsed","otherAdInteraction","creativeView"]);function V(e){let t=h(),r=e.querySelector("TrackingEvents");if(!r)return t;let i=r.querySelectorAll("Tracking");for(let n of i){let s=n.getAttribute("event"),o=(n.textContent??"").trim();if(!(!s||!o))if(s==="progress"){let a=n.getAttribute("offset"),c=a?y(a,0):0;t.progress.push({offset:c,url:o});}else M.has(s)&&t[s].push(o);}return t}function b(e){if(!e)return 0;let t=e.split(":");if(t.length!==3)return 0;let r=Number.parseInt(t[0],10),i=Number.parseInt(t[1],10),n=Number.parseFloat(t[2]);return Number.isNaN(r)||Number.isNaN(i)||Number.isNaN(n)?0:r*3600+i*60+n}function y(e,t){if(e.endsWith("%")){let r=Number.parseFloat(e);return Number.isNaN(r)?0:r/100*t}return b(e)}function g(e,t){let r=[];for(let i=0;i<e.children.length;i++)e.children[i].tagName===t&&r.push(e.children[i]);return r}function T(e,t){for(let r=0;r<e.children.length;r++)if(e.children[r].tagName===t)return e.children[r];return null}function A(e,t){let r=[];for(let i of g(e,t)){let n=(i.textContent??"").trim();n&&r.push(n);}return r}function v(e,t){let r=e.querySelector(t);return r?(r.textContent??"").trim():""}function k(e,t){let r=e.querySelectorAll(t),i=[];for(let n of r){let s=(n.textContent??"").trim();s&&i.push(s);}return i}async function D(e,t){let r=t?.timeout??5e3,i=new AbortController,n=setTimeout(()=>i.abort(),r);try{let s=await fetch(e,{signal:i.signal});if(!s.ok)throw new Error(`VAST fetch failed: ${s.status}`);return await s.text()}finally{clearTimeout(n);}}async function U(e,t){let r=t?.timeout??1e4,i=t?.maxDepth??5,n=Date.now()+r,s=new Set,o=[],a=e;for(let c=0;c<=i;c++){let l=n-Date.now();if(l<=0)return {version:"",ads:[],errors:["VAST resolve timeout"]};if(s.has(a))return {version:"",ads:[],errors:["VAST circular reference detected"]};s.add(a);let u;try{u=await D(a,{timeout:l});}catch(d){return {version:"",ads:[],errors:[d instanceof Error?d.message:String(d)]}}let f=C(u);if(f.ads.length>0)return {version:f.version,ads:f.ads.map(d=>O(d,o)),errors:f.errors};let p=R(u);if(!p)return f;o.push(p),a=p.adTagUri;}return {version:"",ads:[],errors:["VAST wrapper depth limit exceeded"]}}function R(e){let i=new DOMParser().parseFromString(e,"text/xml").documentElement;if(i.tagName!=="VAST")return null;for(let n of g(i,"Ad")){let s=T(n,"Wrapper");if(!s)continue;let o=v(s,"VASTAdTagURI").trim();if(!o)continue;let a=A(s,"Error"),c=k(s,"Impression"),l=h(),u=[],f=s.querySelector("Creatives");if(f)for(let p of g(f,"Creative")){let d=p.querySelector("Linear");if(d){l=V(d);let E=d.querySelector("VideoClicks");E&&(u=k(E,"ClickTracking"));break}}return {adTagUri:o,errors:a,impressions:c,trackingEvents:l,clickTracking:u}}return null}function h(){return {start:[],firstQuartile:[],midpoint:[],thirdQuartile:[],complete:[],pause:[],resume:[],skip:[],loaded:[],mute:[],unmute:[],rewind:[],playerExpand:[],playerCollapse:[],closeLinear:[],notUsed:[],otherAdInteraction:[],creativeView:[],progress:[]}}function L(e,t){let r=h();for(let i of Object.keys(r)){if(i==="progress")continue;let n=r[i];for(let s of e)n.push(...s[i]);n.push(...t[i]);}for(let i of e)r.progress.push(...i.progress);return r.progress.push(...t.progress),r}function O(e,t){if(t.length===0)return e;let r=[...t.flatMap(s=>s.errors),...e.errors],i=[...t.flatMap(s=>s.impressions),...e.impressions],n=e.creatives.map(s=>s.linear?{...s,linear:{...s.linear,trackingEvents:L(t.map(o=>o.trackingEvents),s.linear.trackingEvents),clickTracking:[...t.flatMap(o=>o.clickTracking),...s.linear.clickTracking]}}:s);return {...e,errors:r,impressions:i,creatives:n}}function m(e,t){if(e==null)return t;let r=Number.parseInt(e,10);return Number.isNaN(r)?t:r}export{C as a,D as b,U as c};
|
package/dist/chunk-G4Q7R3SH.mjs
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
function c(r){for(let e of r)typeof navigator<"u"&&typeof navigator.sendBeacon=="function"?navigator.sendBeacon(e):new Image().src=e;}function f(r,e){if(e<=0)return null;let t=r/e;return t>=1?"complete":t>=.75?"thirdQuartile":t>=.5?"midpoint":t>=.25?"firstQuartile":r>=0?"start":null}function s(r,e){let t=new Set,o=["start","firstQuartile","midpoint","thirdQuartile","complete"];return a=>{let n=f(a,r);if(!n||t.has(n))return;let l=o.indexOf(n);for(let i=0;i<=l;i++){let u=o[i];t.has(u)||(t.add(u),e(u));}}}export{c as a,f as b,s as c};
|
package/dist/types-8aPf_wxJ.d.ts
DELETED
|
@@ -1,98 +0,0 @@
|
|
|
1
|
-
import { P as Player } from './types-Cine0xi3.js';
|
|
2
|
-
|
|
3
|
-
interface VastResponse {
|
|
4
|
-
version: string;
|
|
5
|
-
ads: VastAd[];
|
|
6
|
-
errors: string[];
|
|
7
|
-
}
|
|
8
|
-
interface VastAd {
|
|
9
|
-
id: string;
|
|
10
|
-
sequence?: number | undefined;
|
|
11
|
-
adSystem: string;
|
|
12
|
-
adTitle: string;
|
|
13
|
-
impressions: string[];
|
|
14
|
-
creatives: VastCreative[];
|
|
15
|
-
errors: string[];
|
|
16
|
-
verifications?: AdVerification[] | undefined;
|
|
17
|
-
categories?: AdCategory[] | undefined;
|
|
18
|
-
}
|
|
19
|
-
interface AdVerification {
|
|
20
|
-
vendor: string;
|
|
21
|
-
resourceUrl: string;
|
|
22
|
-
apiFramework?: string | undefined;
|
|
23
|
-
parameters?: string | undefined;
|
|
24
|
-
}
|
|
25
|
-
interface AdCategory {
|
|
26
|
-
authority: string;
|
|
27
|
-
value: string;
|
|
28
|
-
}
|
|
29
|
-
interface VastCreative {
|
|
30
|
-
id?: string | undefined;
|
|
31
|
-
sequence?: number | undefined;
|
|
32
|
-
linear: VastLinear | null;
|
|
33
|
-
}
|
|
34
|
-
interface VastLinear {
|
|
35
|
-
duration: number;
|
|
36
|
-
skipOffset?: number | undefined;
|
|
37
|
-
mediaFiles: VastMediaFile[];
|
|
38
|
-
interactiveCreativeFiles: InteractiveCreativeFile[];
|
|
39
|
-
trackingEvents: VastTrackingEvents;
|
|
40
|
-
clickThrough?: string | undefined;
|
|
41
|
-
clickTracking: string[];
|
|
42
|
-
}
|
|
43
|
-
interface VastMediaFile {
|
|
44
|
-
url: string;
|
|
45
|
-
mimeType: string;
|
|
46
|
-
width: number;
|
|
47
|
-
height: number;
|
|
48
|
-
bitrate?: number | undefined;
|
|
49
|
-
delivery: "progressive" | "streaming";
|
|
50
|
-
}
|
|
51
|
-
interface InteractiveCreativeFile {
|
|
52
|
-
url: string;
|
|
53
|
-
apiFramework: string;
|
|
54
|
-
variableDuration?: boolean | undefined;
|
|
55
|
-
}
|
|
56
|
-
interface VastProgressEvent {
|
|
57
|
-
offset: number;
|
|
58
|
-
url: string;
|
|
59
|
-
}
|
|
60
|
-
interface VastTrackingEvents {
|
|
61
|
-
start: string[];
|
|
62
|
-
firstQuartile: string[];
|
|
63
|
-
midpoint: string[];
|
|
64
|
-
thirdQuartile: string[];
|
|
65
|
-
complete: string[];
|
|
66
|
-
pause: string[];
|
|
67
|
-
resume: string[];
|
|
68
|
-
skip: string[];
|
|
69
|
-
loaded: string[];
|
|
70
|
-
mute: string[];
|
|
71
|
-
unmute: string[];
|
|
72
|
-
rewind: string[];
|
|
73
|
-
playerExpand: string[];
|
|
74
|
-
playerCollapse: string[];
|
|
75
|
-
closeLinear: string[];
|
|
76
|
-
notUsed: string[];
|
|
77
|
-
otherAdInteraction: string[];
|
|
78
|
-
creativeView: string[];
|
|
79
|
-
progress: VastProgressEvent[];
|
|
80
|
-
}
|
|
81
|
-
/** Plugin scoped to a single ad. Created per-ad, cleaned up on ad end. */
|
|
82
|
-
interface AdPlugin {
|
|
83
|
-
name: string;
|
|
84
|
-
setup(player: Player, ad: VastAd): (() => void) | undefined;
|
|
85
|
-
}
|
|
86
|
-
interface VastPluginOptions {
|
|
87
|
-
tagUrl: string;
|
|
88
|
-
timeout?: number | undefined;
|
|
89
|
-
allowSkip?: boolean | undefined;
|
|
90
|
-
/** Create per-ad plugins. Called once per ad with the parsed VastAd. */
|
|
91
|
-
adPlugins?: ((ad: VastAd) => AdPlugin[]) | undefined;
|
|
92
|
-
}
|
|
93
|
-
interface ResolveOptions {
|
|
94
|
-
timeout?: number | undefined;
|
|
95
|
-
maxDepth?: number | undefined;
|
|
96
|
-
}
|
|
97
|
-
|
|
98
|
-
export type { AdCategory as A, ResolveOptions as R, VastResponse as V, VastPluginOptions as a, AdPlugin as b, AdVerification as c, VastProgressEvent as d, VastAd as e };
|
package/dist/types-Cine0xi3.d.ts
DELETED
|
@@ -1,142 +0,0 @@
|
|
|
1
|
-
type PlayerState = "idle" | "loading" | "ready" | "playing" | "paused" | "buffering" | "ad:loading" | "ad:playing" | "ad:paused" | "ended" | "error";
|
|
2
|
-
type AdQuartile = "start" | "firstQuartile" | "midpoint" | "thirdQuartile" | "complete";
|
|
3
|
-
interface PlayerEventMap {
|
|
4
|
-
statechange: {
|
|
5
|
-
from: PlayerState;
|
|
6
|
-
to: PlayerState;
|
|
7
|
-
};
|
|
8
|
-
play: undefined;
|
|
9
|
-
pause: undefined;
|
|
10
|
-
ended: undefined;
|
|
11
|
-
timeupdate: {
|
|
12
|
-
currentTime: number;
|
|
13
|
-
duration: number;
|
|
14
|
-
};
|
|
15
|
-
error: {
|
|
16
|
-
code: number;
|
|
17
|
-
message: string;
|
|
18
|
-
source: string;
|
|
19
|
-
};
|
|
20
|
-
"ad:start": {
|
|
21
|
-
adId: string;
|
|
22
|
-
};
|
|
23
|
-
"ad:end": {
|
|
24
|
-
adId: string;
|
|
25
|
-
};
|
|
26
|
-
"ad:skip": {
|
|
27
|
-
adId: string;
|
|
28
|
-
};
|
|
29
|
-
"ad:click": {
|
|
30
|
-
clickThrough: string | undefined;
|
|
31
|
-
clickTracking: string[];
|
|
32
|
-
};
|
|
33
|
-
"ad:error": {
|
|
34
|
-
error: Error;
|
|
35
|
-
source: string;
|
|
36
|
-
};
|
|
37
|
-
"ad:impression": {
|
|
38
|
-
adId: string;
|
|
39
|
-
};
|
|
40
|
-
"ad:loaded": {
|
|
41
|
-
adId: string;
|
|
42
|
-
};
|
|
43
|
-
"ad:quartile": {
|
|
44
|
-
adId: string;
|
|
45
|
-
quartile: AdQuartile;
|
|
46
|
-
};
|
|
47
|
-
"ad:mute": {
|
|
48
|
-
adId: string;
|
|
49
|
-
};
|
|
50
|
-
"ad:unmute": {
|
|
51
|
-
adId: string;
|
|
52
|
-
};
|
|
53
|
-
"ad:volumeChange": {
|
|
54
|
-
adId: string;
|
|
55
|
-
volume: number;
|
|
56
|
-
};
|
|
57
|
-
"ad:fullscreen": {
|
|
58
|
-
adId: string;
|
|
59
|
-
fullscreen: boolean;
|
|
60
|
-
};
|
|
61
|
-
"ad:breakStart": {
|
|
62
|
-
breakId: string | undefined;
|
|
63
|
-
};
|
|
64
|
-
"ad:breakEnd": {
|
|
65
|
-
breakId: string | undefined;
|
|
66
|
-
};
|
|
67
|
-
destroy: undefined;
|
|
68
|
-
}
|
|
69
|
-
type PlayerEvent = keyof PlayerEventMap;
|
|
70
|
-
type EventHandler<T> = (data: T) => void;
|
|
71
|
-
/** HTMLVideoElement event names not already covered by PlayerEventMap. */
|
|
72
|
-
type NativeVideoEvent = Exclude<keyof HTMLVideoElementEventMap, keyof PlayerEventMap>;
|
|
73
|
-
interface EventBus {
|
|
74
|
-
on<K extends PlayerEvent>(event: K, handler: EventHandler<PlayerEventMap[K]>): void;
|
|
75
|
-
on<K extends NativeVideoEvent>(event: K, handler: (ev: HTMLVideoElementEventMap[K]) => void): void;
|
|
76
|
-
on(event: string, handler: (...args: any[]) => void): void;
|
|
77
|
-
off<K extends PlayerEvent>(event: K, handler: EventHandler<PlayerEventMap[K]>): void;
|
|
78
|
-
off<K extends NativeVideoEvent>(event: K, handler: (ev: HTMLVideoElementEventMap[K]) => void): void;
|
|
79
|
-
off(event: string, handler: (...args: any[]) => void): void;
|
|
80
|
-
emit<K extends PlayerEvent>(event: K, data: PlayerEventMap[K]): void;
|
|
81
|
-
once<K extends PlayerEvent>(event: K, handler: EventHandler<PlayerEventMap[K]>): void;
|
|
82
|
-
once<K extends NativeVideoEvent>(event: K, handler: (ev: HTMLVideoElementEventMap[K]) => void): void;
|
|
83
|
-
once(event: string, handler: (...args: any[]) => void): void;
|
|
84
|
-
}
|
|
85
|
-
interface SourceHandler {
|
|
86
|
-
/** Whether this handler can process the given URL/type. */
|
|
87
|
-
canHandle(url: string, type?: string): boolean;
|
|
88
|
-
/** Load the source into the video element. */
|
|
89
|
-
load(url: string, videoElement: HTMLVideoElement): void;
|
|
90
|
-
/** Unload the source and clean up. */
|
|
91
|
-
unload(videoElement: HTMLVideoElement): void;
|
|
92
|
-
}
|
|
93
|
-
interface Plugin {
|
|
94
|
-
name: string;
|
|
95
|
-
setup(player: Player): (() => void) | undefined;
|
|
96
|
-
}
|
|
97
|
-
interface Player extends EventBus {
|
|
98
|
-
readonly el: HTMLVideoElement;
|
|
99
|
-
readonly state: PlayerState;
|
|
100
|
-
play(): Promise<void>;
|
|
101
|
-
pause(): void;
|
|
102
|
-
currentTime: number;
|
|
103
|
-
duration: number;
|
|
104
|
-
volume: number;
|
|
105
|
-
muted: boolean;
|
|
106
|
-
playbackRate: number;
|
|
107
|
-
readonly paused: boolean;
|
|
108
|
-
readonly ended: boolean;
|
|
109
|
-
readonly readyState: number;
|
|
110
|
-
readonly buffered: TimeRanges;
|
|
111
|
-
readonly seekable: TimeRanges;
|
|
112
|
-
readonly seeking: boolean;
|
|
113
|
-
readonly videoWidth: number;
|
|
114
|
-
readonly videoHeight: number;
|
|
115
|
-
readonly networkState: number;
|
|
116
|
-
loop: boolean;
|
|
117
|
-
autoplay: boolean;
|
|
118
|
-
poster: string;
|
|
119
|
-
preload: "" | "none" | "metadata" | "auto";
|
|
120
|
-
defaultPlaybackRate: number;
|
|
121
|
-
defaultMuted: boolean;
|
|
122
|
-
crossOrigin: string | null;
|
|
123
|
-
controls: boolean;
|
|
124
|
-
/** Web-standard addEventListener, delegates to the underlying HTMLVideoElement. */
|
|
125
|
-
addEventListener<K extends keyof HTMLVideoElementEventMap>(type: K, listener: (ev: HTMLVideoElementEventMap[K]) => void, options?: boolean | AddEventListenerOptions): void;
|
|
126
|
-
addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
|
|
127
|
-
/** Web-standard removeEventListener, delegates to the underlying HTMLVideoElement. */
|
|
128
|
-
removeEventListener<K extends keyof HTMLVideoElementEventMap>(type: K, listener: (ev: HTMLVideoElementEventMap[K]) => void, options?: boolean | EventListenerOptions): void;
|
|
129
|
-
removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
|
|
130
|
-
/** Current media source URL. Setting triggers SourceHandler lookup. */
|
|
131
|
-
src: string;
|
|
132
|
-
/** Register a handler for custom source types (e.g., HLS, DASH). */
|
|
133
|
-
registerSourceHandler(handler: SourceHandler): void;
|
|
134
|
-
use(plugin: Plugin): void;
|
|
135
|
-
destroy(): void;
|
|
136
|
-
/** Store data for cross-plugin communication. */
|
|
137
|
-
setPluginData(key: string, data: unknown): void;
|
|
138
|
-
/** Retrieve data stored by another plugin. Returns undefined if not set. */
|
|
139
|
-
getPluginData(key: string): unknown;
|
|
140
|
-
}
|
|
141
|
-
|
|
142
|
-
export type { AdQuartile as A, EventBus as E, Player as P, SourceHandler as S, EventHandler as a, PlayerEvent as b, PlayerEventMap as c, PlayerState as d, Plugin as e };
|