UNPKG

@aidenlx/player

Version:

Headless web components that make integrating media on the a web a breeze.

2 lines (1 loc) 9.28 kB
import{a as m}from"./chunk.IZOPTWJO.js";import{M as c,U as f,aa as l,f as p,fa as h,ga as y,j as o,k as t,m as d,n as r,u}from"./chunk.PWTX2M5C.js";var n=class{constructor(e,s){this.e=e;this.M=s;this.br=!1;this.Sr=!1;this.wr=!1;this.i=new o;this.delay=2e3;e.addController(this)}get paused(){return this.wr||this.Sr}set paused(e){this.wr=e,this.Ue()}hostConnected(){this.i.add(this.M.paused.subscribe(s=>{this.Sr=s,this.Ue()})),["pointerdown","pointermove","focus","keydown"].forEach(s=>{let i=p(this.e,s,h(this.Ue.bind(this),250,!0));this.i.add(i)})}hostDisconnected(){this.i.empty(),this.kt()}Ue(){this.paused?this.kt():this.Yi()}Yi(){this.kt(),this.Tt=window.setTimeout(()=>{this.Cr(!this.paused)},this.delay)}kt(){window.clearTimeout(this.Tt),this.Tt=void 0,this.Cr(!1)}Cr(e){this.br!==e&&(this.e.dispatchEvent(d("vds-idle-change",{detail:e})),this.br=e)}};var E=class{constructor(e){this.e=e;this.K=new o;this.ue=new c;this.Ht=new o;this.es=void 0;this.z=void 0;this.xr=t(this.e,"vds-media-provider-connect",e=>{if(e.detail.connected)return;let{element:s,onDisconnect:i}=e.detail;e.detail.connected=!0,this.mediaProvider!==s&&(this.Pr(),this.r=s,this.ts(),i(this.Pr.bind(this)))});this.Lr=m.provide(this.e);this.$e=new n(this.e,this.t);this.Ue=t(this.e,"vds-idle-change",e=>{this.t.idle.set(e.detail),this.G("idle",e)});this.c={play:[],pause:[],volume:[],fullscreen:[],seeked:[],seeking:[],idle:[]};this.hn=t(this.e,"vds-can-load",()=>{this.t.canLoad.set(!0)});this.pn=t(this.e,"vds-mute-request",this.y("muted",e=>{this.r?.muted!==!0&&(this.c.volume.push(e),this.mediaProvider.muted=!0)}));this.mn=t(this.e,"vds-unmute-request",this.y("muted",e=>{this.r?.muted!==!1&&(this.c.volume.push(e),this.mediaProvider.muted=!1)}));this.vn=t(this.e,"vds-play-request",this.y("paused",e=>{this.r?.paused!==!1&&(this.c.play.push(e),this.mediaProvider.paused=!1)}));this.fn=t(this.e,"vds-pause-request",this.y("paused",e=>{this.r?.paused!==!0&&(this.c.pause.push(e),this.mediaProvider.paused=!0)}));this.Rt=!1;this.gn=t(this.e,"vds-seeking-request",this.y("seeking",e=>{this.ce(),this.c.seeking.push(e),this.Rt=!0,this.t.seeking.set(!0)}));this.yn=t(this.e,"vds-seek-request",this.y("seeking",e=>{this.r?.ended&&(this.he=!0),this.c.seeked.push(e),this.Rt=!1;let s=e.detail;this.mediaProvider.duration-e.detail<.25&&(s=this.mediaProvider.duration),this.mediaProvider.currentTime=s}));this.En=t(this.e,"vds-volume-change-request",this.y("volume",e=>{this.r?.volume!==e.detail&&(this.c.volume.push(e),this.mediaProvider.volume=e.detail)}));this.bn=t(this.e,"vds-enter-fullscreen-request",this.y("fullscreen",async e=>{this.mediaProvider?.fullscreen||(this.c.fullscreen.push(e),await this.e.requestFullscreen())}));this.Sn=t(this.e,"vds-exit-fullscreen-request",this.y("fullscreen",async e=>{!this.mediaProvider?.fullscreen||(this.c.fullscreen.push(e),await this.e.exitFullscreen?.())}));this.wn=t(this.e,"vds-resume-idling-request",e=>{!this._t(e)||(this.c.idle.push(e),this.$e.paused=!1)});this.Cn=t(this.e,"vds-pause-idling-request",e=>{!this._t(e)||(this.c.idle.push(e),this.$e.paused=!0)});this.xn=t(this.e,"vds-show-poster-request",this.y("poster",()=>{this.r.__canLoadPoster=!0}));this.Pn=t(this.e,"vds-hide-poster-request",this.y("poster",()=>{this.r.__canLoadPoster=!1}));this.Ln=t(this.e,"vds-loop-request",this.y("loop",()=>{window.requestAnimationFrame(async()=>{try{this.Q=!0,this.he=!0,await this.r.play()}catch{this.he=!1,this.Q=!1}})}));this.vt=t(this.e,"vds-fullscreen-change",e=>{this.t.fullscreen.set(e.detail),this.G("fullscreen",e)});this.ur=t(this.e,"vds-fullscreen-error",e=>{this.G("fullscreen",e)});this.he=!1;this.Q=!1;this.Ie=!1;this.u=[];this.Mr=t(this.e,"vds-load-start",e=>{this.u.push(e),r(e,this.d("vds-src-change")),this.t.currentSrc.set(e.detail.src),this.t.currentPoster.set(e.detail.poster),this.t.mediaType.set(e.detail.mediaType),this.t.viewType.set(e.detail.viewType)});this.Tr=t(this.e,"vds-loaded-data",e=>{this.u.push(e),r(e,this.d("vds-load-start"))});this.kr=t(this.e,"vds-loaded-metadata",e=>{this.u.push(e),r(e,this.d("vds-load-start"))});this.Be=t(this.e,"vds-can-play",e=>{this.u.push(e),e.triggerEvent?.type!=="loadedmetadata"&&r(e,this.d("vds-loaded-metadata")),this.t.canPlay.set(!0),this.t.duration.set(e.detail.duration)});this.Hr=t(this.e,"vds-can-play-through",e=>{r(e,this.d("vds-can-play"))});this.Mn=t(this.e,"vds-autoplay",e=>{this.u.push(e),r(e,this.d("vds-play")),r(e,this.d("vds-can-play")),this.t.autoplayError.set(void 0)});this.Tn=t(this.e,"vds-autoplay-fail",e=>{r(e,this.d("vds-play-fail")),r(e,this.d("vds-can-play")),this.t.autoplayError.set(e.detail),this.te()});this._r=t(this.e,"vds-play",e=>{if(this.Q||!this.r?.paused){e.stopImmediatePropagation();return}if(this.u.push(e),r(e,this.d("vds-waiting")),this.G("play",e),this.t.paused.set(!1),this.t.autoplayError.set(void 0),this.xe("paused",!1),this.r?.ended||this.he){this.he=!1,this.t.ended.set(!1);let s=d("vds-replay",{triggerEvent:e});this.r?.dispatchEvent(s)}});this.kn=t(this.e,"vds-play-fail",e=>{this.u.push(e),this.ce(),r(e,this.d("vds-play")),this.t.paused.set(!0),this.t.playing.set(!1),this.G("play",e),this.te()});this.Rr=t(this.e,"vds-playing",e=>{this.u.push(e);let s=this.d("vds-play");if(s?(r(e,this.d("vds-waiting")),r(e,s)):r(e,this.d("vds-seeked")),this.ce(),this.te(),this.t.paused.set(!1),this.t.playing.set(!0),this.t.seeking.set(!1),this.t.ended.set(!1),this.Q){e.stopImmediatePropagation(),this.Q=!1;return}this.r?.started||(this.t.started.set(!0),this.r?.dispatchEvent(d("vds-started",{triggerEvent:e})))});this.Dr=t(this.e,"vds-pause",e=>{if(this.Q){e.stopImmediatePropagation();return}r(e,this.d("vds-seeked")),this.G("pause",e),this.t.paused.set(!0),this.t.playing.set(!1),this.t.seeking.set(!1),this.xe("paused",!0),this.ce(),this.te()});this.Hn=t(this.e,"vds-time-update",e=>{this.t.currentTime.set(e.detail),this.t.waiting.set(!1)});this.Vr=t(this.e,"vds-volume-change",e=>{this.t.volume.set(e.detail.volume),this.t.muted.set(e.detail.muted),this.G("volume",e),this.xe("muted",e.detail.muted)});this.Ar=t(this.e,"vds-seeking",y(e=>{this.u.push(e),this.t.seeking.set(!0),this.t.currentTime.set(e.detail),this.G("seeking",e)},150,{leading:!0}));this.qr=t(this.e,"vds-seeked",e=>{this.Rt?(this.t.seeking.set(!0),e.stopImmediatePropagation()):this.r?.seeking&&(this.u.push(e),r(e,this.d("vds-waiting")),r(e,this.d("vds-seeking")),this.r.paused&&this.ce(),this.t.seeking.set(!1),e.detail!==this.r.duration&&this.t.ended.set(!1),this.t.currentTime.set(e.detail),this.G("seeked",e))});this.Fr=h(()=>{if(!this.Pe)return;this.Ie=!0;let e=d("vds-waiting",this.Pe);this.u.push(e),this.t.waiting.set(!0),this.t.playing.set(!1),this.r?.dispatchEvent(e),this.Pe=void 0,this.Ie=!1},300);this.Nr=t(this.e,"vds-waiting",e=>{this.Ie||(e.stopImmediatePropagation(),this.Pe=e,this.Fr())});this.Or=t(this.e,"vds-ended",e=>{if(this.Q){e.stopImmediatePropagation();return}this.ce(),this.t.paused.set(!0),this.t.playing.set(!1),this.t.seeking.set(!1),this.t.ended.set(!0),this.te()});this._n=t(this.e,"vds-autoplay-change",e=>{this.t.autoplay.set(e.detail)});this.je=t(this.e,"vds-error",e=>{this.t.error.set(e.detail)});this.Rn=t(this.e,"vds-fullscreen-support-change",e=>{this.t.canFullscreen.set(e.detail)});this.Dn=t(this.e,"vds-poster-change",e=>{this.t.currentPoster.set(e.detail),this.xe("poster",e.detail)});this.Vn=t(this.e,"vds-loop-change",e=>{this.t.loop.set(e.detail)});this.An=t(this.e,"vds-playsinline-change",e=>{this.t.playsinline.set(e.detail)});this.qn=t(this.e,"vds-controls-change",e=>{this.t.controls.set(e.detail)});this.Fn=t(this.e,"vds-media-type-change",e=>{this.t.mediaType.set(e.detail)});this.Ur=t(this.e,"vds-duration-change",e=>{this.t.duration.set(e.detail)});this.$r=t(this.e,"vds-progress",e=>{let{buffered:s,seekable:i}=e.detail,a=s.length===0?0:s.end(s.length-1),g=i.length===0?0:i.end(i.length-1);this.t.buffered.set(s),this.t.bufferedAmount.set(a),this.t.seekable.set(i),this.t.seekableAmount.set(g)});this.Nn=t(this.e,"vds-src-change",e=>{this.te(),this.u.push(e),this.t.currentSrc.set(e.detail),this.xe("src",e.detail);let s=new Set(["currentSrc","autoplay","canFullscreen","controls","canLoad","loop","muted","playsinline","viewType","volume"]),i=this.t;l(i).forEach(a=>{s.has(a)||i[a].set(i[a].initialValue)})});e.addController({hostDisconnected:()=>{this.te(),this.Zi(),this.ue.destroy(),this.Ht.empty(),this.K.empty()}})}get logLevel(){return this.es?.logLevel??"silent"}set logLevel(e){}get mediaProvider(){return this.r}Pr(){u(this.mediaProvider)||(this.ue.destroy(),this.Ht.empty(),this.r=void 0,this.t.canLoad.set(!1))}ts(){this.ue.start(),this.Ht.add(()=>{this.ue.stop()})}xe(e,s){this.ue.queue(`attr:${e}`,()=>{this.mediaProvider&&f(this.r,e,s)})}get store(){return this.Lr.value}get t(){return this.Lr.value}get idleDelay(){return this.$e.delay}set idleDelay(e){this.$e.delay=e}Zi(){l(this.c).forEach(e=>{this.c[e]=[]})}G(e,s){let i=this.c[e].shift();i&&(s.requestEvent=i,r(s,i))}_t(e){return e.stopPropagation(),!0}y(e,s){return async i=>{if(!!this._t(i)){if(this.r){await s(i);return}this.ue.queue(e,async()=>{await s(i)})}}}te(){this.he=!1,this.Q=!1,this.Ie=!1,this.Pe=void 0,this.u=[]}d(e){return this.u[this.u.map(s=>s.type).lastIndexOf(e)]}ce(){this.Fr.cancel(),this.t.waiting.set(!1)}};export{E as a};