UNPKG

universalviewer

Version:

The Universal Viewer is a community-developed open source project on a mission to help you share your 📚📜📰📽️📻🗿 with the 🌎

2 lines (1 loc) 2.34 kB
import{a as r}from"./chunk-DSIJRHAY.js";import{a as f}from"./chunk-DVYM4KA5.js";import{g as l}from"./chunk-5XPHF4E5.js";import"./chunk-L67DAW3A.js";var c=class extends f{constructor(e,t,i){super(e,t,i);this.options=e;this.adapter=t;this._init(this.options.data)}_getYouTubeVideoId(e){return e.indexOf("v=")&&(e=e.split("v=")[1]),e}async _init(e){if(window.youTubePlayers||(window.youTubePlayers=[]),this._id="YTPlayer-"+new Date().getTime(),window.youTubePlayers.push({id:this._id,data:e,ref:this}),this._el.id=this._id,!document.getElementById("youtube-iframe-api")){let i=document.createElement("script");i.id="youtube-iframe-api",i.src="//www.youtube.com/iframe_api";let s=document.getElementsByTagName("script")[0];s.parentNode.insertBefore(i,s)}window.onYouTubeIframeAPIReady?window.onYouTubeIframeAPIReady():window.onYouTubeIframeAPIReady=()=>{for(let i of window.youTubePlayers)i.ref.configure({controls:!0}).then(s=>{window[i.id]=new YT.Player(i.id,{height:"100%",width:"100%",videoId:this._getYouTubeVideoId(i.data.youTubeVideoId),playerVars:{playsinline:1,enablejsapi:1,controls:s.controls?1:0,showInfo:0,rel:0,modestbranding:1},events:{onReady:d=>{let u=d.target.getIframe().id,n=window.youTubePlayers.find(o=>o.id===u);n&&(n.ref.config=s,n.ref.set(i.data),n.ref.fire(l.CREATED))},onStateChange:d=>{let a=d.target,u=a.getIframe().id,n=a.getDuration(),o=window.youTubePlayers.find(y=>y.id===u);if(o)switch(d.data){case-1:o.ref.fire(r.UNSTARTED),o.ref.fire(l.LOAD,{player:a,duration:n});break;case 0:o.ref.fire(r.ENDED);break;case 1:o.ref.fire(r.PLAYING);break;case 2:o.ref.fire(r.PAUSED);break;case 3:o.ref.fire(r.BUFFERING);break;case 5:o.ref.fire(r.CUED);break}}}})})}}set(e){let t=window[this._id];if(e.muted?t.mute():t.unMute(),e.youTubeVideoId){let i=this._getYouTubeVideoId(e.youTubeVideoId);e.autoPlay?e.duration?t.loadVideoById({videoId:i,startSeconds:e.duration[0],endSeconds:e.duration[1]}):t.loadVideoById(i):e.duration?t.cueVideoById({videoId:i,startSeconds:e.duration[0],endSeconds:e.duration[1]}):t.cueVideoById(i)}e.currentTime&&t.seekTo(e.currentTime,!0)}exitFullScreen(){}resize(){let e=this._el.clientWidth+"px",t=this._el.clientHeight+"px";this._el.style.width=e,this._el.style.height=t}dispose(){super.dispose(),window.youTubePlayers=window.youTubePlayers.filter(e=>e.id!==this._id)}};export{c as default};