Comparing version
/*! | ||
* @license MIT | ||
* @name vlitejs | ||
* @version 7.2.0 | ||
* @version 7.2.1 | ||
* @copyright 2025 Yoriiis | ||
*/ | ||
class e{constructor({player:e}){this.providers=["html5"],this.types=["video"],this.player=e,this.airPlayAvailable=window.WebKitPlaybackTargetAvailabilityEvent instanceof Function,this.onWebKitPlaybackTargetAvailabilityChanged=this.onWebKitPlaybackTargetAvailabilityChanged.bind(this),this.onWebKitCurrentPlaybackTargetWirelessChanged=this.onWebKitCurrentPlaybackTargetWirelessChanged.bind(this),this.onClickOnAirPlayButton=this.onClickOnAirPlayButton.bind(this),this.onEnterFullscreen=this.onEnterFullscreen.bind(this),this.onExitFullscreen=this.onExitFullscreen.bind(this)}init(){this.airPlayAvailable&&this.addEvents()}addEvents(){this.render(),this.airPlayButton=this.player.elements.container.querySelector(".v-airPlayButton"),!this.player.isFullScreen&&this.addAirPlayEvents(),this.player.media.addEventListener("webkitcurrentplaybacktargetiswirelesschanged",this.onWebKitCurrentPlaybackTargetWirelessChanged),this.airPlayButton.addEventListener("click",this.onClickOnAirPlayButton),this.player.on("enterfullscreen",this.onEnterFullscreen),this.player.on("exitfullscreen",this.onExitFullscreen)}render(){const e=this.player.elements.container.querySelector(".v-controlBar"),t=this.player.elements.container.querySelector(".v-fullscreenButton"),i='<button class="v-airPlayButton v-controlButton" hidden><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path d="M488 32H88C39.47 32 0 71.47 0 120v208c0 48.5 39.47 88 88 88 13.25 0 24-10.75 24-24s-10.7-24-24-24c-22.06 0-40-17.94-40-40V120c0-22.06 17.94-40 40-40h400c22.06 0 40 17.94 40 40v208c0 22.06-17.94 40-40 40-13.25 0-24 10.75-24 24s10.8 24 24 24c48.53 0 88-39.47 88-88V120c0-48.53-39.5-88-88-88zM321.9 286.1c-18.62-18.75-49.13-18.75-67.88 0l-112 112C112 428.2 133.3 480 176 480h223.9c42.63 0 64.25-51.77 33.88-81.9l-111.88-112zM176 431.1l111.1-112 112 112H176z"/></svg></button>';e&&(t?t.insertAdjacentHTML("beforebegin",i):e.insertAdjacentHTML("beforeend",i))}addAirPlayEvents(){this.player.media.addEventListener("webkitplaybacktargetavailabilitychanged",this.onWebKitPlaybackTargetAvailabilityChanged)}removeAirPlayEvents(){this.player.media.removeEventListener("webkitplaybacktargetavailabilitychanged",this.onWebKitPlaybackTargetAvailabilityChanged)}onWebKitPlaybackTargetAvailabilityChanged(e){switch(e.availability){case"available":this.airPlayButton.removeAttribute("hidden");break;case"not-available":this.airPlayButton.setAttribute("hidden","")}}onClickOnAirPlayButton(e){e.preventDefault(),this.player.media.webkitShowPlaybackTargetPicker()}onEnterFullscreen(){this.removeAirPlayEvents()}onExitFullscreen(){this.addAirPlayEvents()}onWebKitCurrentPlaybackTargetWirelessChanged(){this.player.media.webkitCurrentPlaybackTargetIsWireless?(this.player.dispatchEvent("airplaysessionstarted"),this.airPlayButton.classList.add("v-active")):(this.player.dispatchEvent("airplaysessionended"),this.airPlayButton.classList.remove("v-active"),this.player.pause())}destroy(){this.removeAirPlayEvents(),this.player.media.removeEventListener("webkitcurrentplaybacktargetiswirelesschanged",this.onWebKitCurrentPlaybackTargetWirelessChanged),this.airPlayButton.removeEventListener("click",this.onClickOnAirPlayButton),this.player.off("enterfullscreen",this.onEnterFullscreen),this.player.off("exitfullscreen",this.onExitFullscreen)}}export{e as default}; |
/*! | ||
* @license MIT | ||
* @name vlitejs | ||
* @version 7.2.0 | ||
* @version 7.2.1 | ||
* @copyright 2025 Yoriiis | ||
*/ | ||
class e{constructor({player:e,options:t={}}){this.providers=["html5"],this.types=["video"],this.player=e,this.options=t,this.subtitles=[],this.backupAutoHide=!1,this.onCastStateChange=this.onCastStateChange.bind(this),this.onCurrentTimeChanged=this.onCurrentTimeChanged.bind(this),this.isMediaLoadedChanged=this.isMediaLoadedChanged.bind(this),this.onClickOnCastButton=this.onClickOnCastButton.bind(this),this.updateSubtitle=this.updateSubtitle.bind(this),this.onMediaPlay=this.onMediaPlay.bind(this),this.onMediaPause=this.onMediaPause.bind(this),this.onMediaVolumeChange=this.onMediaVolumeChange.bind(this),this.onMediaTimeupdate=this.onMediaTimeupdate.bind(this)}init(){this.isCastFrameworkAlreadyAvailable()?this.initCastApi():(window.__onGCastApiAvailable=e=>{e&&window.chrome.cast&&this.initCastApi()},this.loadWebSenderApi())}isCastFrameworkAlreadyAvailable(){var e;return!!((null===(e=window.cast)||void 0===e?void 0:e.framework)&&customElements.get&&customElements.get("google-cast-button"))}loadWebSenderApi(){const e=document.createElement("script");e.defer=!0,e.type="text/javascript",e.src="//www.gstatic.com/cv/js/sender/v1/cast_sender.js?loadCastFramework=1",document.getElementsByTagName("body")[0].appendChild(e)}initCastApi(){var e;this.castContext=window.cast.framework.CastContext.getInstance(),this.castContext.setOptions({receiverApplicationId:window.chrome.cast.media.DEFAULT_MEDIA_RECEIVER_APP_ID,autoJoinPolicy:window.chrome.cast.AutoJoinPolicy.ORIGIN_SCOPED}),this.remotePlayer=new window.cast.framework.RemotePlayer,this.remotePlayerController=new window.cast.framework.RemotePlayerController(this.remotePlayer),this.render();this.player.elements.container.querySelector(".v-castButton")&&(this.castButton=null===(e=this.player.elements.container)||void 0===e?void 0:e.querySelector(".v-castButton"),this.subtitles=this.getSubtitles(),this.addEvents())}render(){const e=this.player.elements.container.querySelector(".v-controlBar"),t=this.player.elements.container.querySelector(".v-fullscreenButton"),s='<button class="v-castButton v-controlButton"><svg viewBox="0 0 470 384" xmlns="http://www.w3.org/2000/svg"><path d="M426.5 0H42.7C19.1 0 0 19.1 0 42.7v63.9h42.7V42.7h383.8v298.6H277.3V384h149.4c23.6 0 42.7-19.1 42.7-42.7V42.7c0-23.6-19.3-42.7-42.9-42.7ZM0 319.6v63.9h63.9c0-35.3-28.6-63.9-63.9-63.9Zm0-85V277c58.9 0 106.6 48.1 106.6 107h42.7c.1-82.4-66.9-149.3-149.3-149.4ZM192.1 384h42.7C234.3 254.5 129.5 149.7 0 149.4v42.4c106-.2 192 86.2 192.1 192.2Z"/></svg></button>';e&&(t?t.insertAdjacentHTML("beforebegin",s):e.insertAdjacentHTML("beforeend",s))}addEvents(){this.castContext.addEventListener(window.cast.framework.CastContextEventType.SESSION_STATE_CHANGED,this.onCastStateChange),this.remotePlayerController.addEventListener(window.cast.framework.RemotePlayerEventType.CURRENT_TIME_CHANGED,this.onCurrentTimeChanged),this.remotePlayerController.addEventListener(window.cast.framework.RemotePlayerEventType.IS_MEDIA_LOADED_CHANGED,this.isMediaLoadedChanged),this.castButton.addEventListener("click",this.onClickOnCastButton),this.player.on("trackdisabled",this.updateSubtitle),this.player.on("trackenabled",this.updateSubtitle)}onCastStateChange(e){switch(e.sessionState){case window.cast.framework.SessionState.SESSION_STARTED:this.onSessionStart();break;case window.cast.framework.SessionState.SESSION_RESUMED:this.castContext.endCurrentSession(!0);break;case window.cast.framework.SessionState.SESSION_ENDED:this.onSessionStop()}}onCurrentTimeChanged(){this.player.updateProgressBar({seconds:this.remotePlayer.currentTime,duration:this.remotePlayer.duration,isRemote:!0})}onClickOnCastButton(e){e.preventDefault(),this.castContext.requestSession()}updateSubtitle(){if(!this.remotePlayer.isMediaLoaded)return;const e=this.player.plugins.subtitle.subtitlesList.querySelector(".v-trackButton.v-active").getAttribute("data-language");let t=[];if("off"===e)t=[];else{const s=this.subtitles.find((({language:t})=>t===e));s&&(t=[s.index])}const s=new window.chrome.cast.media.EditTracksInfoRequest(t);this.getSession().getMediaSession().editTracksInfo(s)}onSessionStart(){this.player.elements.container.focus(),this.player.methodPause(),this.backupAutoHide=this.player.Vlitejs.autoHideGranted,this.player.Vlitejs.autoHideGranted=!1,this.player.Vlitejs.stopAutoHideTimer(),this.player.elements.outerContainer.classList.add("v-remote"),this.castButton.classList.add("v-active"),this.player.isCast=!0;const e=this.getSession().getCastDevice().deviceName||"Chromecast";this.player.media.insertAdjacentHTML("afterend",`<span class="v-deviceName">Cast on ${e}</span>`),this.loadMedia(),this.player.dispatchEvent("castsessionstarted")}onSessionStop(){var e;this.player.Vlitejs.autoHideGranted=this.backupAutoHide,this.backupAutoHide&&this.player.Vlitejs.startAutoHideTimer(),this.player.elements.outerContainer.classList.remove("v-remote"),this.castButton.classList.remove("v-active"),this.player.isCast=!1,null===(e=this.player.elements.container.querySelector(".v-deviceName"))||void 0===e||e.remove(),this.player.isPaused||(this.player.methodPlay(),this.player.afterPlayPause()),this.player.dispatchEvent("castsessionended")}getSubtitles(){return Array.from(this.player.media.querySelectorAll("track")).map(((e,t)=>{var s,a,i,o;return{index:t,url:null!==(s=e.getAttribute("src"))&&void 0!==s?s:"",label:null!==(a=e.getAttribute("label"))&&void 0!==a?a:"",language:null!==(i=e.getAttribute("srclang"))&&void 0!==i?i:"",isDefault:null!==(o=e.hasAttribute("default"))&&void 0!==o?o:""}}))}getSession(){return this.castContext.getCurrentSession()}loadMedia(){const e=this.getSession();if(!e)return;const t=new window.chrome.cast.media.MediaInfo(this.player.media.src,"video/mp4");this.subtitles.length&&(t.tracks=this.getCastTracks());const s=new window.chrome.cast.media.TextTrackStyle;s.backgroundColor="#ffffff00",s.edgeColor="#00000016",s.edgeType="DROP_SHADOW",s.fontFamily="CASUAL",s.fontScale=1,s.foregroundColor="#ffffffff",t.textTrackStyle=Object.assign(Object.assign({},s),this.options.textTrackStyle||{});const a=new window.chrome.cast.media.GenericMediaMetadata;this.player.options.poster&&(a.images=[new window.chrome.cast.Image(this.player.options.poster)]),t.metadata=Object.assign(Object.assign({},a),this.options.metadata||{});const i=new window.chrome.cast.media.LoadRequest(t);i.autoplay=!1===this.player.isPaused,i.currentTime=this.player.media.currentTime,this.subtitles.length&&(i.activeTrackIds=[this.getActiveTrack().index]),e.loadMedia(i)}getCastTracks(){return this.subtitles.map((({url:e,label:t,language:s},a)=>{const i=new window.chrome.cast.media.Track(a,window.chrome.cast.media.TrackType.TEXT);return i.trackContentId=e,i.trackContentType="text/vtt",i.subtype=window.chrome.cast.media.TextTrackType.SUBTITLES,i.name=t,i.language=s,i}))}getActiveTrack(){return this.subtitles.find((e=>e.isDefault))||this.subtitles[0]}isMediaLoadedChanged(){this.player.on("play",this.onMediaPlay),this.player.on("pause",this.onMediaPause),this.player.on("volumechange",this.onMediaVolumeChange),this.player.on("timeupdate",this.onMediaTimeupdate)}onMediaPlay(){this.remotePlayer.isMediaLoaded&&this.remotePlayerController.playOrPause()}onMediaPause(){this.remotePlayer.isMediaLoaded&&this.remotePlayerController.playOrPause()}onMediaVolumeChange(){this.remotePlayer.isMediaLoaded&&this.player.getVolume().then((e=>{this.remotePlayer.volumeLevel=this.player.isMuted?0:e,this.remotePlayerController.setVolumeLevel()}))}onMediaTimeupdate(){this.remotePlayer.isMediaLoaded&&this.player.getCurrentTime().then((e=>{this.remotePlayer.currentTime=e,this.remotePlayerController.seek()}))}destroy(){this.castContext.removeEventListener(window.cast.framework.CastContextEventType.SESSION_STATE_CHANGED,this.onCastStateChange),this.remotePlayerController.removeEventListener(window.cast.framework.RemotePlayerEventType.CURRENT_TIME_CHANGED,this.onCurrentTimeChanged),this.remotePlayerController.removeEventListener(window.cast.framework.RemotePlayerEventType.IS_MEDIA_LOADED_CHANGED,this.isMediaLoadedChanged),this.castButton.removeEventListener("click",this.onClickOnCastButton),this.player.off("trackdisabled",this.updateSubtitle),this.player.off("trackenabled",this.updateSubtitle),this.player.off("play",this.onMediaPlay),this.player.off("pause",this.onMediaPause),this.player.off("volumechange",this.onMediaVolumeChange),this.player.off("timeupdate",this.onMediaTimeupdate)}}export{e as default}; |
/*! | ||
* @license MIT | ||
* @name vlitejs | ||
* @version 7.2.0 | ||
* @version 7.2.1 | ||
* @copyright 2025 Yoriiis | ||
*/ | ||
class e{constructor({player:e,options:t={}}){this.providers=["html5"],this.types=["video"],this.player=e;this.options=Object.assign(Object.assign({},{adTagUrl:"",adsRenderingSettings:{restoreCustomPlaybackStateOnAdBreakComplete:!0,enablePreloading:!0},updateImaSettings:()=>{},adTimeout:5e3,debug:!1}),t),this.playerIsReady=!1,this.sdkIsReady=!1,this.adsLoaded=!1,this.timerAdTimeout=0,this.resumeAd=!1,this.adError=!1,this.adTimeoutReached=!1,this.playIsWaiting=!1,this.isLinearAd=!1,this.playerIsEnded=!1,this.onBigPlayButtonClick=this.onBigPlayButtonClick.bind(this),this.onClickOnAdContainer=this.onClickOnAdContainer.bind(this),this.onPlayerPlay=this.onPlayerPlay.bind(this),this.onVolumeChange=this.onVolumeChange.bind(this),this.onPlayerEnterFullscreen=this.onPlayerEnterFullscreen.bind(this),this.onPlayerExitFullscreen=this.onPlayerExitFullscreen.bind(this),this.onPlayerEnded=this.onPlayerEnded.bind(this),this.onResize=this.onResize.bind(this),this.onAdsManagerLoaded=this.onAdsManagerLoaded.bind(this),this.onAdError=this.onAdError.bind(this),this.onContentPauseRequested=this.onContentPauseRequested.bind(this),this.onContentResumeRequested=this.onContentResumeRequested.bind(this),this.onAdStarted=this.onAdStarted.bind(this),this.onAdPaused=this.onAdPaused.bind(this),this.onAdResumed=this.onAdResumed.bind(this),this.onAdComplete=this.onAdComplete.bind(this),this.onAllAdsCompleted=this.onAllAdsCompleted.bind(this),this.onAdSkipped=this.onAdSkipped.bind(this)}init(){this.loadImaSdk()}loadImaSdk(){const e=document.createElement("script");e.defer=!0,e.type="text/javascript",e.src=`//imasdk.googleapis.com/js/sdkloader/ima3${this.options.debug?"_debug":""}.js`,e.onload=()=>{this.sdkIsReady=!0,this.onPlayerAndSdkReady()},document.getElementsByTagName("body")[0].appendChild(e)}onReady(){this.playerIsReady=!0,this.onPlayerAndSdkReady()}onPlayerAndSdkReady(){this.playerIsReady&&this.sdkIsReady?(this.player.loading(!1),this.render(),this.adContainer=this.player.elements.container.querySelector(".v-ad"),this.addEvents(),this.initAdObjects(),this.requestAds()):this.player.loading(!0)}render(){const e=document.createElement("div");e.classList.add("v-ad"),this.player.elements.container.appendChild(e)}addEvents(){this.player.elements.bigPlay.addEventListener("click",this.onBigPlayButtonClick),this.adContainer.addEventListener("click",this.onClickOnAdContainer),this.player.on("play",this.onPlayerPlay),this.player.on("volumechange",this.onVolumeChange),this.player.on("enterfullscreen",this.onPlayerEnterFullscreen),this.player.on("exitfullscreen",this.onPlayerExitFullscreen),this.player.on("ended",this.onPlayerEnded),window.addEventListener("resize",this.onResize)}onBigPlayButtonClick(){this.resumeAd&&(this.resumeAd=!1,this.adsManager.resume())}onClickOnAdContainer(){this.isLinearAd||this.player.elements.playPause.dispatchEvent(new Event("click",{bubbles:!0}))}initAdObjects(){this.adsLoaded=!1,window.google.ima.settings.setDisableCustomPlaybackForIOS10Plus(this.player.options.playsinline),this.options.updateImaSettings instanceof Function&&this.options.updateImaSettings(window.google.ima.settings),this.adDisplayContainer=new window.google.ima.AdDisplayContainer(this.adContainer,this.player.media),this.adsLoader=new window.google.ima.AdsLoader(this.adDisplayContainer),this.adsLoader.addEventListener(window.google.ima.AdsManagerLoadedEvent.Type.ADS_MANAGER_LOADED,this.onAdsManagerLoaded,!1),this.adsLoader.addEventListener(window.google.ima.AdErrorEvent.Type.AD_ERROR,this.onAdError,!1),this.player.dispatchEvent("adsloader",{adsLoader:this.adsLoader})}requestAds(){const e=new window.google.ima.AdsRequest;e.adTagUrl=this.options.adTagUrl,e.linearAdSlotWidth=this.player.media.clientWidth,e.linearAdSlotHeight=this.player.media.clientHeight,e.nonLinearAdSlotWidth=this.player.media.clientWidth,e.nonLinearAdSlotHeight=this.player.media.clientHeight/3,this.adsLoader.requestAds(e),this.player.dispatchEvent("adsrequest",{adsRequest:e})}onAdsManagerLoaded(e){const t=Object.assign(Object.assign(Object.assign({},new window.google.ima.AdsRenderingSettings),{uiElements:[window.google.ima.UiElements.AD_ATTRIBUTION,window.google.ima.UiElements.COUNTDOWN]}),this.options.adsRenderingSettings);this.adsManager=e.getAdsManager(this.player.media,t),this.adsManager.addEventListener(window.google.ima.AdErrorEvent.Type.AD_ERROR,this.onAdError),this.adsManager.addEventListener(window.google.ima.AdEvent.Type.CONTENT_PAUSE_REQUESTED,this.onContentPauseRequested),this.adsManager.addEventListener(window.google.ima.AdEvent.Type.CONTENT_RESUME_REQUESTED,this.onContentResumeRequested),this.adsManager.addEventListener(window.google.ima.AdEvent.Type.STARTED,this.onAdStarted),this.adsManager.addEventListener(window.google.ima.AdEvent.Type.PAUSED,this.onAdPaused),this.adsManager.addEventListener(window.google.ima.AdEvent.Type.RESUMED,this.onAdResumed),this.adsManager.addEventListener(window.google.ima.AdEvent.Type.COMPLETE,this.onAdComplete),this.adsManager.addEventListener(window.google.ima.AdEvent.Type.ALL_ADS_COMPLETED,this.onAllAdsCompleted),this.adsManager.addEventListener(window.google.ima.AdEvent.Type.SKIPPED,this.onAdSkipped),this.cuePoints=this.adsManager.getCuePoints(),Array.isArray(this.cuePoints)&&this.cuePoints.length&&this.player.elements.progressBar&&this.addCuePoints(),this.player.dispatchEvent("adsmanager",{adsManager:this.adsManager}),this.playIsWaiting&&!this.adTimeoutReached&&(clearTimeout(this.timerAdTimeout),this.onPlayerPlay())}onContentPauseRequested(){this.adContainer.classList.add("v-active"),!1===this.player.isPaused&&this.player.pause()}onContentResumeRequested(){this.clean(),this.adContainer.classList.remove("v-active"),!this.playerIsEnded&&this.player.play()}onAdStarted(e){this.player.loading(!1),this.currentAd=e.getAd(),this.isLinearAd=this.currentAd.isLinear(),this.isLinearAd?this.player.isLinearAd=!0:this.adContainer.classList.add("v-active"),this.player.elements.outerContainer.classList[this.isLinearAd?"remove":"add"]("v-adNonLinear"),this.player.elements.outerContainer.classList.add("v-adPlaying"),this.player.elements.outerContainer.classList.remove("v-adPaused")}onAdPaused(){this.resumeAd=!0,this.player.elements.outerContainer.classList.add("v-adPaused"),this.player.elements.outerContainer.classList.remove("v-adPlaying")}onAdResumed(){this.player.elements.outerContainer.classList.add("v-adPlaying"),this.player.elements.outerContainer.classList.remove("v-adPaused")}onAdComplete(){}onAllAdsCompleted(){this.clean(),!this.playerIsEnded&&this.player.play()}onAdSkipped(){this.clean(),this.player.play()}onAdError(e){this.adError=!0,clearTimeout(this.timerAdTimeout);try{const t=e.getError();if(null==t?void 0:t.j){const{type:e,errorCode:i,errorMessage:s}=t.j;console.warn(`${e} ${i}: ${s}`)}}catch(t){console.warn("onAdError",e)}this.destroy(),(this.player.options.autoplay||this.playIsWaiting)&&this.player.play()}addCuePoints(){const e=document.createElement("div");e.classList.add("v-cuePoints"),this.player.getDuration().then((t=>{this.cuePoints.filter((e=>0!==e&&-1!==e&&e<t)).forEach((i=>{const s=100*i/t,a=document.createElement("span");a.classList.add("v-cuePoint"),a.style.left=`${s}%`,e.appendChild(a)})),this.player.elements.controlBar.appendChild(e)}))}onPlayerPlay(){if(this.playerIsEnded=!1,!(this.adsLoaded||this.adError||this.adTimeoutReached))if(this.adDisplayContainer&&this.adsManager){this.adsLoaded=!0,this.adDisplayContainer.initialize();try{this.adsManager.init(this.player.media.clientWidth,this.player.media.clientHeight,window.google.ima.ViewMode.NORMAL),this.player.getVolume().then((e=>{this.adsManager.setVolume(e),this.adsManager.start()}))}catch(e){this.onAdError(e)}}else this.waitingAd()}waitingAd(){this.playIsWaiting=!0,this.player.pause(),window.setTimeout((()=>this.player.loading(!0)),0),this.timerAdTimeout=window.setTimeout((()=>{this.onAdTimeoutReached()}),this.options.adTimeout)}onAdTimeoutReached(){this.adTimeoutReached=!0,this.player.loading(!1),this.onAdError({errorMessage:"Timeout is reached"}),this.playIsWaiting=!1}onVolumeChange(){this.player.getVolume().then((e=>this.adsManager.setVolume(e)))}onPlayerEnterFullscreen(){this.adsManager&&this.adsManager.resize(window.screen.width,window.screen.height,window.google.ima.ViewMode.FULLSCREEN)}onPlayerEnded(){this.playerIsEnded=!0,this.adsLoader.contentComplete()}onPlayerExitFullscreen(){this.adsManager&&this.adsManager.resize(this.player.media.clientWidth,this.player.media.clientHeight,window.google.ima.ViewMode.NORMAL)}onResize(){var e;null===(e=this.adsManager)||void 0===e||e.resize(this.player.media.clientWidth,this.player.media.clientHeight,window.google.ima.ViewMode.NORMAL)}removeEventListener(){this.player.elements.bigPlay.removeEventListener("click",this.onBigPlayButtonClick),this.adContainer.removeEventListener("click",this.onClickOnAdContainer),this.player.off("play",this.onPlayerPlay),this.player.off("volumechange",this.onVolumeChange),this.player.off("enterfullscreen",this.onPlayerEnterFullscreen),this.player.off("exitfullscreen",this.onPlayerExitFullscreen),this.player.off("ended",this.onPlayerEnded),window.removeEventListener("resize",this.onResize)}clean(){this.player.isLinearAd=!1,this.adContainer.classList.remove("v-active","v-adNonLinear"),this.player.elements.outerContainer.classList.remove("v-adPlaying","v-adPaused")}destroy(){this.clean(),this.removeEventListener(),this.adsManager&&(this.adsManager.destroy(),this.adsManager=null),this.adDisplayContainer&&(this.adDisplayContainer.destroy(),this.adDisplayContainer=null),this.adsLoader&&(this.adsLoader.destroy(),this.adsLoader=null)}}export{e as default}; |
/*! | ||
* @license MIT | ||
* @name vlitejs | ||
* @version 7.2.0 | ||
* @version 7.2.1 | ||
* @copyright 2025 Yoriiis | ||
*/ | ||
class e{constructor({player:e}){this.providers=["html5"],this.types=["video"],this.player=e,this.onClickOnPipButton=this.onClickOnPipButton.bind(this),this.onEnterPip=this.onEnterPip.bind(this),this.onLeavePip=this.onLeavePip.bind(this)}init(){this.isPipApiAvailable()&&this.player.options.controls&&(this.render(),this.pipButton=this.player.elements.container.querySelector(".v-pipButton"),this.addEvents())}isPipApiAvailable(){return"pictureInPictureEnabled"in document&&!this.player.media.hasAttribute("disablePictureInPicture")}render(){const e='<button class="v-pipButton v-controlButton"><svg viewBox="0 0 22 18" xmlns="http://www.w3.org/2000/svg"><path d="M18 8h-8v6h8V8Zm-2 4h-4v-2h4v2Zm4-12H2C.9 0 0 .88 0 1.98V16c0 1.1.9 2 2 2h18c1.1 0 2-.9 2-2V1.98C22 .88 21.1 0 20 0Zm0 16.02H2V1.97h18v14.05Z"/></svg></button>',t=this.player.elements.container.querySelector(".v-controlBar"),i=this.player.elements.container.querySelector(".v-fullscreenButton");t&&(i?i.insertAdjacentHTML("beforebegin",e):t.insertAdjacentHTML("beforeend",e))}addEvents(){this.pipButton.addEventListener("click",this.onClickOnPipButton),this.player.media.addEventListener("enterpictureinpicture",this.onEnterPip),this.player.media.addEventListener("leavepictureinpicture",this.onLeavePip)}async onClickOnPipButton(e){e.preventDefault();try{this.player.media!==document.pictureInPictureElement?await this.player.media.requestPictureInPicture():await document.exitPictureInPicture()}catch(e){console.warn(`vlitejs :: ${e}`)}}onEnterPip(){this.player.dispatchEvent("enterpip")}onLeavePip(){this.player.dispatchEvent("leavepip")}destroy(){this.pipButton.removeEventListener("click",this.onClickOnPipButton),this.player.media.removeEventListener("enterpictureinpicture",this.onEnterPip),this.player.media.removeEventListener("leavepictureinpicture",this.onLeavePip)}}export{e as default}; |
/*! | ||
* @license MIT | ||
* @name vlitejs | ||
* @version 7.2.0 | ||
* @version 7.2.1 | ||
* @copyright 2025 Yoriiis | ||
*/ | ||
class t{constructor({player:t,options:e={}}){this.providers=["html5","youtube","dailymotion","vimeo"],this.types=["video"],this.player=t,this.options=e;this.options=Object.assign(Object.assign({},{mode:"on",width:400,offset:20,ratio:16/9}),this.options),this.windowSizes={clientWidth:document.documentElement.clientWidth,innerHeight:window.innerHeight},this.isSticky=!1,this.stickyIsClosed=!1,this.isOutViewport=null,this.isPlayerSeen=!1,this.onClickOnCloseStickyButton=this.onClickOnCloseStickyButton.bind(this),this.onScroll=this.onScroll.bind(this),this.onResize=this.onResize.bind(this)}init(){this.render(),this.closeStickyButton=this.player.elements.container.querySelector(".v-closeStickyButton"),this.addEvents()}render(){this.player.elements.container.insertAdjacentHTML("beforeend",'<button class="v-closeStickyButton"><svg xmlns="http://www.w3.org/2000/svg" viewBox="5.5 5.5 13 13"><path d="M18.207 5.793a1 1 0 0 0-1.414 0L12 10.586 7.207 5.793a1 1 0 0 0-1.414 1.414L10.586 12l-4.793 4.793a1 1 0 1 0 1.414 1.414L12 13.414l4.793 4.793a1 1 0 0 0 1.414-1.414L13.414 12l4.793-4.793a1 1 0 0 0 0-1.414Z"/></svg></button>')}addEvents(){this.observer=new window.IntersectionObserver(this.callbackOnIntersection.bind(this),{rootMargin:"0px",threshold:0}),this.observer.observe(this.player.elements.outerContainer),this.closeStickyButton.addEventListener("click",this.onClickOnCloseStickyButton),window.addEventListener("scroll",this.onScroll,{passive:!0}),window.addEventListener("resize",this.onResize)}onScroll(){this.updateSticky()}updateSticky({resize:t=!1}={}){this.isStickyGranted()?this.isSticky&&!t||this.setStickyOn():this.isSticky&&this.setStickyOff()}onResize(){this.windowSizes.clientWidth=document.documentElement.clientWidth,this.windowSizes.innerHeight=window.innerHeight,clearTimeout(this.resizeTimer),this.resizeTimer=window.setTimeout((()=>this.updateSticky({resize:!0})),0)}callbackOnIntersection(t){t.forEach((t=>{t.isIntersecting?this.inViewport():this.outViewport()}))}inViewport(){this.isPlayerSeen=!0,this.isOutViewport=!1,this.isStickyGranted()&&this.setStickyOff()}outViewport(){this.isOutViewport=!0,this.isStickyGranted()&&this.setStickyOn()}isStickyGranted(){return!this.stickyIsClosed&&this.isOutViewport&&("instant"===this.options.mode||this.isPlayerSeen)}setStickyOn(){this.player.dispatchEvent("entersticky"),this.isSticky=!0,this.player.elements.outerContainer.classList.add("v-sticky");const t=this.options.width/this.options.ratio,e=this.windowSizes.clientWidth-this.options.width-this.options.offset,i=this.windowSizes.innerHeight-t-this.options.offset;this.player.elements.container.style.width=`${this.options.width}px`,this.player.elements.container.style.height=`${t}px`,this.player.elements.container.style.transform=`translate3d(${e}px, ${i}px, 0)`}setStickyOff(){this.player.dispatchEvent("leavesticky"),this.isSticky=!1,this.player.elements.outerContainer.classList.remove("v-sticky"),this.player.elements.container.style.removeProperty("width"),this.player.elements.container.style.removeProperty("height"),this.player.elements.container.style.removeProperty("transform")}onClickOnCloseStickyButton(t){t.preventDefault(),this.stickyIsClosed=!0,this.setStickyOff()}destroy(){this.closeStickyButton.removeEventListener("click",this.onClickOnCloseStickyButton),window.removeEventListener("scroll",this.onScroll),window.removeEventListener("resize",this.onResize),this.observer.unobserve(this.player.elements.outerContainer)}}export{t as default}; |
/*! | ||
* @license MIT | ||
* @name vlitejs | ||
* @version 7.2.0 | ||
* @version 7.2.1 | ||
* @copyright 2025 Yoriiis | ||
*/ | ||
var t='<svg viewBox="0 0 18 14" xmlns="http://www.w3.org/2000/svg"><path d="M5.6 10.6 1.4 6.4 0 7.8l5.6 5.6 12-12L16.2 0z"/></svg>';class e{constructor({player:t}){this.providers=["html5"],this.types=["video"],this.player=t,this.tracks=Array.from(this.player.media.textTracks),this.subtitlesListCssTransitionDuration=0,this.onClickOnSubtitleButton=this.onClickOnSubtitleButton.bind(this),this.onClickOnSubtitlesList=this.onClickOnSubtitlesList.bind(this)}init(){this.tracks.length&&this.player.options.controls&&(this.activeTrack=this.getActiveTrack(),this.hideTracks(),this.render(),this.captions=this.player.elements.container.querySelector(".v-captions"),this.subtitleButton=this.player.elements.container.querySelector(".v-subtitleButton"),this.subtitlesList=this.player.elements.container.querySelector(".v-subtitlesList"),this.subtitlesListCssTransitionDuration=1e3*Number.parseFloat(window.getComputedStyle(this.subtitlesList).transitionDuration),this.addEvents())}onReady(){this.enableTrack()}getActiveTrack(){return this.tracks.find((t=>"showing"===t.mode))||this.tracks[0]}hideTracks(){this.tracks.forEach((t=>{t.mode="hidden"}))}render(){this.player.elements.container.insertAdjacentHTML("beforeend",'<div class="v-captions"></div>');const t=this.player.elements.container.querySelector(".v-controlBar"),e=this.player.elements.container.querySelector(".v-fullscreenButton");t&&(e?e.insertAdjacentHTML("beforebegin",this.getTemplate()):t.insertAdjacentHTML("beforeend",this.getTemplate()))}enableTrack(){if(this.activeTrack){const t=this.subtitlesList.querySelector(`[data-language="${this.activeTrack.language}"]`);t&&t.dispatchEvent(new window.CustomEvent("click",{bubbles:!0,detail:{triggerPlayerFocus:!1}}))}}getTemplate(){return`\n\t\t\t\t<div class="v-subtitle">\n\t\t\t\t\t<button class="v-subtitleButton v-controlButton v-controlPressed">\n\t\t\t\t\t\t<svg class="v-iconUnpressed" viewBox="0 0 20 16" xmlns="http://www.w3.org/2000/svg"><path d="M18 0H2C.9 0 0 .9 0 2v12c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V2c0-1.1-.9-2-2-2ZM2 8h4v2H2V8Zm10 6H2v-2h10v2Zm6 0h-4v-2h4v2Zm0-4H8V8h10v2Z"/></svg><svg class="v-iconPressed" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg"><path d="M18.96 1.55H5.79l8 8h5.17v2h-3.17l4.93 4.93c.15-.28.24-.59.24-.93v-12c0-1.1-.9-2-2-2ZM0 1.42l1.2 1.2c-.15.28-.24.59-.24.93v12c0 1.1.9 2 2 2h13.17l2.96 2.96 1.41-1.41L1.41 0 0 1.42Zm6.96 8.13v2h-4v-2h4Zm6 4.83v1.17h-10v-2h9.17l.83.83Z"/></svg>\n\t\t\t\t\t</button>\n\t\t\t\t\t<div class="v-subtitlesList">\n\t\t\t\t\t\t<ul>\n\t\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t\t<button class="v-trackButton v-active" data-language="off">${t}Off</button>\n\t\t\t\t\t\t\t</li>\n\t\t\t\t\t\t\t${this.tracks.map((e=>`<li>\n\t\t\t\t\t\t\t\t\t\t\t<button class="v-trackButton" data-language="${e.language}">${t}${e.label}</button>\n\t\t\t\t\t\t\t\t\t\t</li>`)).join(" ")}\n\t\t\t\t\t\t</ul>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t`}addEvents(){this.subtitleButton.addEventListener("click",this.onClickOnSubtitleButton),this.subtitlesList.addEventListener("click",this.onClickOnSubtitlesList)}onClickOnSubtitleButton(t){if(t.preventDefault(),this.subtitlesList.classList.toggle("v-active"),this.subtitlesList.classList.contains("v-active")){const t=this.subtitlesList.querySelector(".v-trackButton");setTimeout((()=>t.focus()),this.subtitlesListCssTransitionDuration)}}onClickOnSubtitlesList(t){var e;t.preventDefault();const s=t.target,i=s.getAttribute("data-language"),n=function({target:t,selectorString:e,nodeName:s}){return(s=[].concat(s)).some((s=>t.nodeName.toLowerCase()===s&&t.matches(e)))}({target:s,selectorString:".v-trackButton:not(.v-active)",nodeName:["button"]}),a=this.subtitlesList.querySelector(".v-active"),l=null===(e=t.detail.triggerPlayerFocus)||void 0===e||e;i&&n&&(null==a||a.classList.remove("v-active"),s.classList.add("v-active"),"off"===i?(this.subtitleButton.classList.add("v-controlPressed"),this.captions.classList.remove("v-active"),this.captions.innerHTML="",this.activeTrack&&this.updateCues({isDisabled:!0})):(this.subtitleButton.classList.remove("v-controlPressed"),this.activeTrack=this.getTrackByLanguage(i),this.activeTrack&&this.updateCues()),l&&this.player.elements.container.focus()),this.subtitlesList.classList.remove("v-active")}getTrackByLanguage(t){return this.tracks.find((e=>e.language===t))||null}updateCues({isDisabled:t=!1}={}){var e,s;if(null===(s=null===(e=this.activeTrack)||void 0===e?void 0:e.cues)||void 0===s?void 0:s.length){const e=Array.from(this.activeTrack.cues),s=this.activeTrack.activeCues,i=this,n=function(){i.addCue(this)},a=function(){i.hideCue(this)};e.forEach((e=>{e.onenter=t?null:n,e.onexit=t?null:a})),!t&&s&&s.length&&this.addCue(s[0]),this.player.dispatchEvent(t?"trackdisabled":"trackenabled")}}addCue(t){this.captions.innerHTML=t.text,this.captions.classList.add("v-active")}hideCue(){this.captions.classList.remove("v-active")}destroy(){this.subtitleButton.removeEventListener("click",this.onClickOnSubtitleButton),this.subtitlesList.removeEventListener("click",this.onClickOnSubtitlesList)}}export{e as default}; |
/*! | ||
* @license MIT | ||
* @name vlitejs | ||
* @version 7.2.0 | ||
* @version 7.2.1 | ||
* @copyright 2025 Yoriiis | ||
*/ | ||
class e{constructor({player:e}){this.providers=["html5","youtube","dailymotion","vimeo"],this.types=["video","audio"],this.player=e,this.onInputVolumeBar=this.onInputVolumeBar.bind(this),this.onVolumeChange=this.onVolumeChange.bind(this)}init(){this.player.options.controls&&this.player.options.volume&&(this.render(),this.volumeBar=this.player.elements.container.querySelector(".v-volumeBar"),this.addEvents())}onReady(){this.player.getVolume().then((e=>{this.updateVolumeBar(this.player.isMuted?0:e)}))}updateVolumeBar(e){this.volumeBar.style.setProperty("--vlite-progressValue",100*e+"%")}render(){if(this.player.elements.container.querySelector(".v-controlBar")){const e=this.player.elements.container.querySelector(".v-volumeButton"),t='<input type="range" class="v-volumeBar v-progressBarStyle" min="0" max="1" step="0.1" value="1" aria-label="Volume" aria-valuemin="0" tabindex="0" />',a=document.createElement("div");a.classList.add("v-volumeArea"),e.parentNode.insertBefore(a,e),a.appendChild(e),a.insertAdjacentHTML("beforeend",t)}}addEvents(){this.volumeBar.addEventListener("input",this.onInputVolumeBar),this.player.on("volumechange",this.onVolumeChange)}onInputVolumeBar(e){const t=e.target,a=Number.parseFloat(t.value);this.updateVolumeBar(a),t.setAttribute("aria-valuenow",`${Math.round(a)}`),this.player.setVolume(a)}onVolumeChange(e){const{volume:t}=(null==e?void 0:e.detail)||{};t?(this.volumeBar.value=`${t}`,this.updateVolumeBar(t)):this.player.isMuted?(this.volumeBar.value="0",this.updateVolumeBar(0)):this.player.getVolume().then((e=>{this.volumeBar.value=`${e}`,this.updateVolumeBar(e)}))}destroy(){this.volumeBar.removeEventListener("input",this.onInputVolumeBar)}}export{e as default}; |
/*! | ||
* @license MIT | ||
* @name vlitejs | ||
* @version 7.2.0 | ||
* @version 7.2.1 | ||
* @copyright 2025 Yoriiis | ||
*/ | ||
function t(t,e){const i="dailymotion";if(window.VlitejsDailymotionQueue=window.VlitejsDailymotionQueue||[],void 0===window[i]){const t=document.createElement("script");t.async=!0,t.type="text/javascript",t.src=`https://geo.dailymotion.com/libs/player/${e.playerId}.js`,t.onload=()=>{window.VlitejsDailymotionQueue.forEach((t=>{t.initDailymotionPlayer().then((()=>{t.addSpecificEvents(),t.onReady()}))})),window.VlitejsDailymotionQueue=[]},document.getElementsByTagName("body")[0].appendChild(t)}return class extends t{constructor(t){super(t);this.params=Object.assign(Object.assign({},{controls:!1}),this.options.providerParams),this.events=[{type:"timeupdate",listener:super.onTimeUpdate},{type:"end",listener:super.onMediaEnded},{type:"playing",listener:this.onPlaying},{type:"waiting",listener:this.onWaiting}]}init(){this.waitUntilVideoIsReady().then((()=>{this.addSpecificEvents(),super.onReady()}))}waitUntilVideoIsReady(){return new window.Promise((t=>{void 0!==window[i]?this.initDailymotionPlayer().then(t):window.VlitejsDailymotionQueue.push(this)}))}initDailymotionPlayer(){return new window.Promise((t=>{window.dailymotion.createPlayer(this.media.getAttribute("id"),{video:this.media.getAttribute("data-dailymotion-id")}).then((e=>{this.instance=e,this.media=e.getRootNode();const{autostart:i}=this.instance.getSettings();["on","firstTimeViewable"].includes(i)&&(this.options.autoplay=!0),this.media.classList.add("vlite-js"),this.media.removeAttribute("style"),t()}))}))}addSpecificEvents(){this.events.forEach((t=>{this.instance.on(t.type,t.listener.bind(this))}))}getInstance(){return this.instance}getCurrentTime(){return this.instance.getState().then((t=>t.videoTime))}getDuration(){return this.instance.getState().then((t=>t.videoDuration))}methodPlay(){this.instance.play()}methodPause(){this.instance.pause()}methodSetVolume(t){this.instance.setVolume(t)}methodGetVolume(){return this.instance.getState().then((t=>t.playerVolume))}methodMute(){this.instance.setMute(!0)}methodUnMute(){this.instance.setMute(!1)}methodSeekTo(t){this.instance.seek(t)}onWaiting(){this.loading(!0)}onPlaying(){this.loading(!1)}removeSpecificEvents(){this.events.forEach((t=>{this.instance.off(t.type,t.listener)}))}destroy(){this.removeSpecificEvents(),this.instance.destroy(),super.destroy()}}}export{t as default}; |
/*! | ||
* @license MIT | ||
* @name vlitejs | ||
* @version 7.2.0 | ||
* @version 7.2.1 | ||
* @copyright 2025 Yoriiis | ||
*/ | ||
function e(e){const t="Vimeo";if(window.VlitejsVimeoQueue=window.VlitejsVimeoQueue||[],void 0===window[t]){const e=document.createElement("script");e.async=!0,e.type="text/javascript",e.src="https://player.vimeo.com/api/player.js",e.onload=()=>{window.VlitejsVimeoQueue.forEach((e=>{e.initVimeoPlayer().then((()=>{e.addSpecificEvents(),e.onReady()}))})),window.VlitejsVimeoQueue=[]},document.getElementsByTagName("body")[0].appendChild(e)}return class extends e{constructor(e){super(e);const t={id:this.media.getAttribute("data-vimeo-id"),playsinline:this.options.playsinline?1:0,loop:this.options.loop?1:0,controls:!1};this.params=Object.assign(Object.assign({},t),this.options.providerParams),this.events=[{type:"timeupdate",listener:super.onTimeUpdate},{type:"ended",listener:super.onMediaEnded},{type:"playing",listener:this.onPlaying},{type:"waiting",listener:this.onWaiting},{type:"seeking",listener:this.onSeeking},{type:"seeked",listener:this.onSeeked}]}init(){this.waitUntilVideoIsReady().then((()=>{this.addSpecificEvents(),super.onReady()}))}waitUntilVideoIsReady(){return new window.Promise((e=>{void 0!==window[t]?this.initVimeoPlayer().then(e):window.VlitejsVimeoQueue.push(this)}))}initVimeoPlayer(){return new window.Promise((e=>{this.instance=new window.Vimeo.Player(this.media.getAttribute("id"),this.params),this.media=this.instance.element,this.instance.ready().then((()=>{this.media.firstElementChild.setAttribute("tabindex","-1"),e()}))}))}addSpecificEvents(){this.events.forEach((e=>{this.instance.on(e.type,e.listener.bind(this))}))}getInstance(){return this.instance}getCurrentTime(){return new window.Promise((e=>{this.instance.getCurrentTime().then((t=>e(t)))}))}getDuration(){return new window.Promise((e=>{this.instance.getDuration().then((t=>e(t)))}))}methodPlay(){this.instance.play()}methodPause(){this.instance.pause()}methodSetVolume(e){this.instance.setVolume(e)}methodGetVolume(){return new window.Promise((e=>{this.instance.getVolume().then((t=>{e(t)}))}))}methodMute(){this.instance.setVolume(0)}methodUnMute(){this.instance.setVolume(1)}methodSeekTo(e){this.instance.setCurrentTime(e)}onWaiting(){this.loading(!0)}onPlaying(){this.loading(!1)}onSeeking(){this.loading(!0)}onSeeked(){this.loading(!1)}removeSpecificEvents(){this.events.forEach((e=>{this.instance.off(e.type,e.listener)}))}destroy(){this.removeSpecificEvents(),this.instance.destroy(),super.destroy()}}}export{e as default}; |
/*! | ||
* @license MIT | ||
* @name vlitejs | ||
* @version 7.2.0 | ||
* @version 7.2.1 | ||
* @copyright 2025 Yoriiis | ||
*/ | ||
function e(e){if(window.VlitejsYoutubeQueue=window.VlitejsYoutubeQueue||[],void 0===window.YT){const e=document.createElement("script");e.async=!0,e.type="text/javascript",e.src="https://youtube.com/iframe_api",window.onYouTubeIframeAPIReady=()=>{window.VlitejsYoutubeQueue.forEach((e=>{e.initYoutubePlayer().then((()=>{e.onReady()}))})),window.VlitejsYoutubeQueue=[]},document.getElementsByTagName("body")[0].appendChild(e)}return class extends e{constructor(e){super(e);const t={autohide:1,controls:0,fs:this.options.fullscreen?1:0,modestbranding:0,playsinline:this.options.playsinline?1:0,rel:0,showinfo:0,wmode:"transparent"};this.params=Object.assign(Object.assign({},t),this.options.providerParams)}init(){this.waitUntilVideoIsReady().then((()=>{super.onReady()}))}waitUntilVideoIsReady(){return new window.Promise((e=>{void 0!==window.YT?this.initYoutubePlayer().then(e):window.VlitejsYoutubeQueue.push(this)}))}initYoutubePlayer(){return new window.Promise((e=>{this.instance=new window.YT.Player(this.media.getAttribute("id"),{videoId:this.media.getAttribute("data-youtube-id"),height:"100%",width:"100%",playerVars:this.params,origin:window.location.origin,events:{onReady:t=>{this.media=t.target.getIframe(),e()},onStateChange:e=>this.onPlayerStateChange(e)}})}))}onPlayerStateChange(e){switch(this.rafPlaying&&window.cancelAnimationFrame(this.rafPlaying),e.data){case window.YT.PlayerState.ENDED:super.onMediaEnded();break;case window.YT.PlayerState.PLAYING:super.loading(!1),this.options.controls&&window.requestAnimationFrame(this.onRafPlaying.bind(this));break;case window.YT.PlayerState.BUFFERING:super.loading(!0)}}onRafPlaying(){super.onTimeUpdate(),this.isPaused||(this.rafTimeout=setTimeout((()=>{this.rafPlaying=window.requestAnimationFrame(this.onRafPlaying.bind(this))}),100))}getInstance(){return this.instance}getCurrentTime(){return new window.Promise((e=>e(this.instance.getCurrentTime())))}getDuration(){return new window.Promise((e=>e(this.instance.getDuration())))}methodPlay(){this.instance.playVideo()}methodPause(){this.instance.pauseVideo()}methodSetVolume(e){this.instance.setVolume(100*e)}methodGetVolume(){return new window.Promise((e=>e(this.instance.getVolume()/100)))}methodMute(){this.instance.mute()}methodUnMute(){this.instance.unMute()}methodSeekTo(e){null!==this.isPaused||this.options.muted||(this.mute(),this.play()),this.instance.seekTo(e),super.onTimeUpdate()}destroy(){clearTimeout(this.rafTimeout),this.instance.destroy(),super.destroy()}}}export{e as default}; |
/*! | ||
* @license MIT | ||
* @name vlitejs | ||
* @version 7.2.0 | ||
* @version 7.2.1 | ||
* @copyright 2025 Yoriiis | ||
*/ | ||
const e={},t={};function s({plugins:s,provider:i,type:n,player:r}){(function(s){const i=[],n=Object.keys(e);return s.forEach((s=>{if(!n.includes(s))throw new Error(`vlitejs :: Unknown plugin "${s}".`);i.push({id:s,Plugin:e[s],options:t[s]})})),i})(s).forEach((({id:e,Plugin:t,options:s})=>{const o=new t({player:r,options:s});if(r.plugins[e]=o,!o.providers.includes(i)||!o.types.includes(n))throw new Error(`vlitejs :: The "${e}" plugin is only compatible with providers:"${o.providers}" and types:"${o.types}"`);o.init()}))}const i={html5:function(e){return class extends e{constructor(e){super(e),this.events=[{type:"timeupdate",listener:super.onTimeUpdate},{type:"ended",listener:super.onMediaEnded},{type:"playing",listener:this.onPlaying},{type:"waiting",listener:this.onWaiting},{type:"seeking",listener:this.onSeeking},{type:"seeked",listener:this.onSeeked}]}init(){this.waitUntilVideoIsReady().then((()=>{this.addSpecificEvents(),super.onReady()}))}waitUntilVideoIsReady(){return new window.Promise((e=>{this.media.readyState>=2&&this.media.duration||0===this.media.readyState&&"none"===this.media.preload?e():(this.media.addEventListener("loadedmetadata",e,{once:!0}),this.media.addEventListener("canplay",e,{once:!0}))}))}addSpecificEvents(){this.events.forEach((e=>{this.media.addEventListener(e.type,e.listener.bind(this))}))}getInstance(){return this.media}getCurrentTime(){return new window.Promise((e=>e(this.media.currentTime)))}getDuration(){return new window.Promise((e=>e(this.media.duration)))}methodPlay(){this.media.play()}methodPause(){this.media.pause()}methodSetVolume(e){this.media.volume=e}methodGetVolume(){return new window.Promise((e=>e(this.media.volume)))}methodMute(){this.media.muted=!0,this.media.setAttribute("muted","")}methodUnMute(){this.media.muted=!1,this.media.removeAttribute("muted")}methodSeekTo(e){this.media.currentTime=e}onWaiting(){this.loading(!0)}onPlaying(){this.loading(!1)}onSeeking(){this.loading(!0)}onSeeked(){this.loading(!1)}removeSpecificEvents(){this.events.forEach((e=>{this.media.removeEventListener(e.type,e.listener)}))}destroy(){this.removeSpecificEvents(),super.destroy()}}}},n={};function r(e){const t=1e3*e,s=t/1e3/60|0,i=t/1e3%60|0;let n="";return n+=s<10?"0":"",n+=`${s}:`,n+=i<10?"0":"",n+=i,n}function o(){const e=function(){if(document.exitFullscreen instanceof Function)return"";return["webkit","moz","ms"].find((e=>document[`${e}ExitFullscreen`]instanceof Function||document[`${e}CancelFullScreen`]instanceof Function))||""}();return{requestFn:e?`${e}RequestFullScreen`:"requestFullscreen",cancelFn:e?`${e}ExitFullscreen`:"exitFullscreen",changeEvent:e?`${e}fullscreenchange`:"fullscreenchange",isFullScreen:e?`${e}FullscreenElement`:"fullscreenElement"}}function l({target:e,selectorString:t,nodeName:s}){return(s=[].concat(s)).some((s=>e.nodeName.toLowerCase()===s&&e.matches(t)))}var a='<svg class="v-iconPressed" viewBox="0 0 14 14" xmlns="http://www.w3.org/2000/svg"><path d="M1 11h2v2c0 .55.45 1 1 1s1-.45 1-1v-3c0-.55-.45-1-1-1H1c-.55 0-1 .45-1 1s.45 1 1 1Zm2-8H1c-.55 0-1 .45-1 1s.45 1 1 1h3c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1S3 .45 3 1v2Zm7 11c.55 0 1-.45 1-1v-2h2c.55 0 1-.45 1-1s-.45-1-1-1h-3c-.55 0-1 .45-1 1v3c0 .55.45 1 1 1Zm1-11V1c0-.55-.45-1-1-1S9 .45 9 1v3c0 .55.45 1 1 1h3c.55 0 1-.45 1-1s-.45-1-1-1h-2Z"/></svg>',h='<svg class="v-iconUnpressed" viewBox="0 0 14 14" xmlns="http://www.w3.org/2000/svg"><path d="M1 9c-.55 0-1 .45-1 1v3c0 .55.45 1 1 1h3c.55 0 1-.45 1-1s-.45-1-1-1H2v-2c0-.55-.45-1-1-1Zm0-4c.55 0 1-.45 1-1V2h2c.55 0 1-.45 1-1s-.45-1-1-1H1C.45 0 0 .45 0 1v3c0 .55.45 1 1 1Zm11 7h-2c-.55 0-1 .45-1 1s.45 1 1 1h3c.55 0 1-.45 1-1v-3c0-.55-.45-1-1-1s-1 .45-1 1v2ZM9 1c0 .55.45 1 1 1h2v2c0 .55.45 1 1 1s1-.45 1-1V1c0-.55-.45-1-1-1h-3c-.55 0-1 .45-1 1Z"/></svg>',u='<svg class="v-iconPressed" viewBox="0 0 12 14" xmlns="http://www.w3.org/2000/svg"><path d="M2 14c1.1 0 2-.9 2-2V2c0-1.1-.9-2-2-2S0 .9 0 2v10c0 1.1.9 2 2 2ZM8 2v10c0 1.1.9 2 2 2s2-.9 2-2V2c0-1.1-.9-2-2-2S8 .9 8 2Z"/></svg>',c='<svg class="v-iconUnpressed" viewBox="0 0 11 13" xmlns="http://www.w3.org/2000/svg"><path d="M0 1v10.36c0 .79.87 1.27 1.54.84l8.14-5.18a1 1 0 0 0 0-1.69L1.54.16A.998.998 0 0 0 0 1Z"/></svg>',d='<svg class="v-iconUnpressed" viewBox="0 0 18 17" xmlns="http://www.w3.org/2000/svg"><path d="M0 6.461v4c0 .55.45 1 1 1h3l3.29 3.29c.63.63 1.71.18 1.71-.71V2.871c0-.89-1.08-1.34-1.71-.71L4 5.461H1c-.55 0-1 .45-1 1Zm13.5 2a4.5 4.5 0 0 0-2.5-4.03v8.05c1.48-.73 2.5-2.25 2.5-4.02ZM11 .911v.2c0 .38.25.71.6.85a7.004 7.004 0 0 1 4.4 6.5c0 2.94-1.82 5.47-4.4 6.5-.36.14-.6.47-.6.85v.2c0 .63.63 1.07 1.21.85a8.98 8.98 0 0 0 5.79-8.4c0-3.84-2.4-7.11-5.79-8.4-.58-.23-1.21.22-1.21.85Z"/></svg>',p='<svg class="v-iconPressed" viewBox="0 0 18 18" xmlns="http://www.w3.org/2000/svg"><path d="M.63.292a.996.996 0 0 0 0 1.41l3.66 3.66-.29.3H1c-.55 0-1 .45-1 1v4c0 .55.45 1 1 1h3l3.29 3.29c.63.63 1.71.18 1.71-.71v-4.17l4.18 4.18c-.49.37-1.02.68-1.6.91-.36.15-.58.53-.58.92 0 .72.73 1.18 1.39.91.8-.33 1.55-.77 2.22-1.31l1.34 1.34a.997.997 0 1 0 1.41-1.41L2.05.293c-.39-.39-1.02-.39-1.42 0ZM16 8.662c0 .82-.15 1.61-.41 2.34l1.53 1.53c.56-1.17.88-2.48.88-3.87 0-3.83-2.4-7.11-5.78-8.4-.59-.23-1.22.23-1.22.86v.19c0 .38.25.71.61.85 2.57 1.04 4.39 3.56 4.39 6.5Zm-8.71-6.29-.17.17L9 4.422v-1.35c0-.89-1.08-1.33-1.71-.7Zm6.21 6.29a4.5 4.5 0 0 0-2.5-4.03v1.79l2.48 2.48c.01-.08.02-.16.02-.24Z"/></svg>';function v({options:e,isMuted:t,isVideo:s}){return s?`<div class="v-controlBar">${e.playPause?m():""}${e.time?y():""}${e.progressBar?g():""}${e.volume?w({isMuted:t}):""}${e.fullscreen?`<button class="v-fullscreenButton v-controlButton" aria-label="Enter fullscreen">${h}${a}</span></button>`:""}</div>`:`<div class="v-controlBar">${e.playPause?m():""}${e.time?y():""}${e.progressBar?g():""}${e.volume?w({isMuted:t}):""}</div>`}function m(){return`<button class="v-playPauseButton v-controlButton" aria-label="Play">${c}${u}</button>`}function y(){return'<div class="v-time"><span class="v-currentTime">00:00</span> / <span class="v-duration"></span></div>'}function g(){return'<input type="range" class="v-progressBar v-progressBarStyle" min="0" max="100" step="0.01" value="0" aria-label="Seek" aria-valuemin="0" />'}function w({isMuted:e}){return`<button class="v-volumeButton v-controlButton${e?" v-controlPressed":""}">${d}${p}</button>`}class P{constructor({player:e,type:t}){this.player=e,this.type=t,this.touchEvents=["touchstart","touchmove","touchend"],this.onInputProgressBar=this.onInputProgressBar.bind(this),this.onTouchEventProgressBar=this.onTouchEventProgressBar.bind(this),this.onClickOnControlBar=this.onClickOnControlBar.bind(this),this.togglePlayPause=this.togglePlayPause.bind(this),this.toggleVolume=this.toggleVolume.bind(this),this.toggleFullscreen=this.toggleFullscreen.bind(this)}init(){this.render(),this.cacheElements(),this.addEvents()}cacheElements(){const e=this.player.elements.container.querySelector(".v-controlBar");e&&(this.player.elements.controlBar=e,this.player.elements.playPause=e.querySelector(".v-playPauseButton"),this.player.elements.progressBar=e.querySelector(".v-progressBar"),this.player.elements.currentTime=e.querySelector(".v-currentTime"),this.player.elements.duration=e.querySelector(".v-duration"),this.player.elements.volume=e.querySelector(".v-volumeButton"),this.player.elements.fullscreen=e.querySelector(".v-fullscreenButton"),this.player.elements.volume&&this.player.elements.volume.setAttribute("aria-label",this.player.isMuted?"Unmute":"Mute"))}render(){this.player.elements.container.insertAdjacentHTML("beforeend",this.getTemplate())}onReady(){this.player.getDuration().then((e=>{this.player.elements.progressBar&&this.player.elements.progressBar.setAttribute("aria-valuemax",`${Math.round(e)}`),this.player.elements.duration&&(this.player.elements.duration.innerHTML=r(e))}))}addEvents(){var e;this.player.elements.progressBar&&(this.player.elements.progressBar.addEventListener("input",this.onInputProgressBar),this.player.isTouch&&this.touchEvents.forEach((e=>{this.player.elements.progressBar.addEventListener(e,this.onTouchEventProgressBar)}))),null===(e=this.player.elements.controlBar)||void 0===e||e.addEventListener("click",this.onClickOnControlBar)}onTouchEventProgressBar(e){e.preventDefault();const t=e.target,s=Number.parseFloat(t.getAttribute("max")||"100"),i=t.getBoundingClientRect(),n=(e.changedTouches[0].clientX-i.left)/i.width*100;t.value=""+100*n/s,t.dispatchEvent(new Event("input"))}onInputProgressBar(e){const t=e.target;t.style.setProperty("--vlite-progressValue",`${t.value}%`),this.player.elements.outerContainer.classList.contains("v-firstStart")&&this.player.play(),this.player.getDuration().then((e=>{this.player.seekTo(Number.parseFloat(t.value)*e/100)}))}onClickOnControlBar(e){const t=e.target,s=l({target:t,selectorString:".v-playPauseButton",nodeName:["button"]}),i=l({target:t,selectorString:".v-volumeButton",nodeName:["button"]}),n=l({target:t,selectorString:".v-fullscreenButton",nodeName:["button"]});s?this.togglePlayPause(e):i?this.toggleVolume(e):n&&this.toggleFullscreen(e),this.player.elements.container.focus(),this.player.Vlitejs.startAutoHideTimer()}togglePlayPause(e){e.preventDefault(),this.player.elements.outerContainer.classList.contains("v-paused")?this.player.play():this.player.pause()}toggleVolume(e){e.preventDefault(),this.player.elements.volume.classList.contains("v-controlPressed")?this.player.unMute():this.player.mute()}toggleFullscreen(e){if(e.preventDefault(),this.player.isFullScreen)this.isOrientationApiAvailable()&&window.screen.orientation.unlock(),this.player.exitFullscreen();else{this.player.requestFullscreen();try{window.matchMedia("(orientation:portrait)").matches&&this.isOrientationApiAvailable()&&window.screen.orientation.lock("landscape").catch((()=>{}))}catch(e){}}}isOrientationApiAvailable(){return window.screen.orientation&&!window.screen.mozOrientation}getTemplate(){return`${v({options:this.player.options,isMuted:this.player.isMuted,isVideo:"video"===this.type})}`}removeEvents(){var e;this.player.elements.progressBar&&(this.player.elements.progressBar.removeEventListener("input",this.onInputProgressBar),this.player.isTouch&&this.touchEvents.forEach((e=>{this.player.elements.progressBar.removeEventListener(e,this.onTouchEventProgressBar)}))),null===(e=this.player.elements.controlBar)||void 0===e||e.removeEventListener("click",this.onClickOnControlBar)}destroy(){var e;this.removeEvents(),null===(e=this.player.elements.controlBar)||void 0===e||e.remove()}}class f{constructor({Vlitejs:e,type:t}){this.Vlitejs=e,this.type=t,this.plugins={},this.media=e.media,this.options=e.options,this.isCast=!1,this.isLinearAd=!1,this.elements={container:e.container,outerContainer:e.outerContainer,bigPlay:e.container.querySelector(".v-bigPlay"),poster:e.container.querySelector(".v-poster"),controlBar:null,playPause:null,progressBar:null,currentTime:null,duration:null,volume:null,fullscreen:null},this.isFullScreen=!1,this.isMuted=this.options.muted,this.isPaused=null,this.playerEvents=[],this.isTouch=!!("ontouchstart"in document.documentElement),this.controlBar=new P({player:this,type:t})}build(){this.options.controls&&this.controlBar.init(),this.init()}onReady(){this.options.muted&&this.mute(),this.media.classList.add("v-media"),this.media.setAttribute("tabindex","-1"),this.options.autoplay&&(!this.media.muted&&this.mute(),this.play()),this.Vlitejs.onReady instanceof Function&&this.Vlitejs.onReady.call(this,this),"none"===this.media.preload&&"html5"===this.Vlitejs.provider?this.media.addEventListener("loadedmetadata",(()=>this.triggerOnReady())):this.triggerOnReady(),this.loading(!1)}triggerOnReady(){this.options.controls&&this.controlBar.onReady(),Object.keys(this.plugins).forEach((e=>{this.plugins[e].onReady instanceof Function&&this.plugins[e].onReady()}))}on(e,t){t instanceof Function&&(this.playerEvents.push({type:e,listener:t}),this.elements.container.addEventListener(e,t))}off(e,t){t instanceof Function&&this.elements.container.removeEventListener(e,t)}dispatchEvent(e,t){this.elements.container.dispatchEvent(new window.CustomEvent(e,{detail:t}))}loading(e){this.elements.outerContainer.classList[e?"add":"remove"]("v-loading"),this.dispatchEvent("progress")}onTimeUpdate(){this.options.time&&Promise.all([this.getCurrentTime(),this.getDuration()]).then((([e,t])=>this.updateProgressBar({seconds:e,duration:t})))}updateProgressBar({seconds:e,duration:t,isRemote:s=!1}){const i=Math.round(e);if(this.elements.progressBar){const s=100*i/t;this.elements.progressBar.value=`${s}`,this.elements.progressBar.style.setProperty("--vlite-progressValue",`${s}%`),this.elements.progressBar.setAttribute("aria-valuenow",`${Math.round(e)}`)}this.elements.currentTime&&(this.elements.currentTime.innerHTML=r(i)),!s&&this.dispatchEvent("timeupdate")}onMediaEnded(){this.options.loop?this.play():(this.elements.outerContainer.classList.replace("v-playing","v-paused"),this.elements.outerContainer.classList.add("v-firstStart"),this.isPaused=null),this.elements.poster&&this.elements.poster.classList.add("v-active"),this.elements.progressBar&&(this.elements.progressBar.value="0",this.elements.progressBar.style.setProperty("--vlite-progressValue","0%"),this.elements.progressBar.removeAttribute("aria-valuenow")),this.elements.currentTime&&(this.elements.currentTime.innerHTML="00:00"),this.dispatchEvent("ended")}play(){this.isLinearAd||(null===this.isPaused&&(this.elements.outerContainer.classList.remove("v-firstStart"),"video"===this.type&&this.elements.poster&&this.elements.poster.classList.remove("v-active")),!this.isCast&&this.methodPlay(),this.isPaused=!1,this.elements.outerContainer.classList.replace("v-paused","v-playing"),this.elements.playPause&&(this.elements.playPause.setAttribute("aria-label","Pause"),this.elements.playPause.classList.add("v-controlPressed")),"video"===this.type&&this.elements.bigPlay&&this.elements.bigPlay.setAttribute("aria-label","Pause"),this.afterPlayPause(),this.dispatchEvent("play"))}pause(){!this.isCast&&this.methodPause(),this.isPaused=!0,this.elements.outerContainer.classList.replace("v-playing","v-paused"),this.elements.playPause&&(this.elements.playPause.setAttribute("aria-label","Play"),this.elements.playPause.classList.remove("v-controlPressed")),"video"===this.type&&this.elements.bigPlay&&this.elements.bigPlay.setAttribute("aria-label","Play"),this.afterPlayPause(),this.dispatchEvent("pause")}afterPlayPause(){this.Vlitejs.autoHideGranted&&(this.Vlitejs.stopAutoHideTimer(),!this.isPaused&&this.Vlitejs.startAutoHideTimer())}setVolume(e){let t=e;t>1?t=1:t<=0?(t=0,this.isMuted=!0,this.elements.volume&&this.elements.volume.classList.add("v-controlPressed")):(this.isMuted=!1,this.elements.volume&&this.elements.volume.classList.remove("v-controlPressed")),this.methodSetVolume(t),this.dispatchEvent("volumechange",{volume:t})}getVolume(){return new window.Promise((e=>{this.methodGetVolume().then((t=>{e(t)}))}))}mute(){this.methodMute(),this.isMuted=!0,this.elements.volume&&(this.elements.volume.classList.add("v-controlPressed"),this.elements.volume.setAttribute("aria-label","Unmute")),this.dispatchEvent("volumechange")}unMute(){this.methodUnMute(),this.isMuted=!1,this.elements.volume&&(this.elements.volume.classList.remove("v-controlPressed"),this.elements.volume.setAttribute("aria-label","Mute")),this.dispatchEvent("volumechange")}seekTo(e){this.methodSeekTo(e)}requestFullscreen(){const{requestFn:e}=this.Vlitejs.supportFullScreen;this.media[e]&&(this.elements.container[e](),this.isFullScreen=!0,this.elements.outerContainer.classList.add("v-fullscreen"),this.elements.fullscreen&&(this.elements.fullscreen.classList.add("v-controlPressed"),this.elements.fullscreen.setAttribute("aria-label","Exit fullscreen")),this.dispatchEvent("enterfullscreen"))}exitFullscreen({escKey:e=!1}={}){const{cancelFn:t}=this.Vlitejs.supportFullScreen;document[t]&&(!e&&document[t](),this.isFullScreen=!1,this.elements.outerContainer.classList.remove("v-fullscreen"),this.elements.fullscreen&&(this.elements.fullscreen.classList.remove("v-controlPressed"),this.elements.fullscreen.setAttribute("aria-label","Enter fullscreen")),this.dispatchEvent("exitfullscreen"))}destroy(){var e;null===(e=this.controlBar)||void 0===e||e.destroy(),Object.keys(this.plugins).forEach((e=>{this.plugins[e].destroy instanceof Function&&this.plugins[e].destroy()})),this.playerEvents.forEach((e=>{this.elements.container.removeEventListener(e.type,e.listener)})),this.elements.container.remove()}}const E={audio:{controls:!0,autoplay:!1,playPause:!0,progressBar:!0,time:!0,seekTime:5,volume:!0,volumeStep:.1,loop:!1},video:{controls:!0,autoplay:!1,playPause:!0,progressBar:!0,time:!0,seekTime:5,volume:!0,volumeStep:.1,fullscreen:!0,poster:null,bigPlay:!0,playsinline:!0,loop:!1,muted:!1,autoHide:!1,autoHideDelay:3e3,providerParams:{}}};class b{constructor(e,{options:t={},provider:r="html5",plugins:l=[],onReady:a=()=>{}}={}){if("string"==typeof e)this.media=document.querySelector(e);else{if(!(e instanceof HTMLVideoElement||e instanceof HTMLAudioElement||e instanceof HTMLDivElement))throw new TypeError("vlitejs :: The element or selector supplied is not valid.");this.media=e}this.provider=r,this.onReady=a,this.type=this.media instanceof HTMLAudioElement?"audio":"video",this.supportFullScreen=o();["autoplay","playsinline","muted","loop"].forEach((e=>{this.media.hasAttribute(e)?t[e]=!0:t[e]&&this.media.setAttribute(e,"")})),this.options=Object.assign(Object.assign({},E[this.type]),t),this.autoHideGranted="video"===this.type&&!!this.options.autoHide&&!!this.options.controls,/(iPhone)/gi.test(window.navigator.userAgent)&&(this.options.fullscreen=!1),this.onClickOnPlayer=this.onClickOnPlayer.bind(this),this.onDoubleClickOnPlayer=this.onDoubleClickOnPlayer.bind(this),this.onKeydown=this.onKeydown.bind(this),this.onMousemove=this.onMousemove.bind(this),this.onChangeFullScreen=this.onChangeFullScreen.bind(this);const h=function(e,t){const s=i[e];if(s)return s(t,n[e]);throw new Error(`vlitejs :: Unknown provider "${e}"`)}(r,f);this.wrapElement(),this.container=this.media.closest(".v-container"),this.outerContainer=this.container.closest(".v-vlite"),"video"===this.type&&this.renderLayout(),this.player=new h({type:this.type,Vlitejs:this}),this.player.build(),this.addEvents(),s({plugins:l,provider:r,type:this.type,player:this.player})}wrapElement(){const e=document.createElement("div");e.classList.add("v-vlite","v-firstStart","v-paused","v-loading",`v-${this.type}`);const t=document.createElement("div");t.setAttribute("tabindex","0"),t.classList.add("v-container"),e.appendChild(t);this.media.parentNode.insertBefore(e,this.media),t.appendChild(this.media)}renderLayout(){const e=`\n\t\t\t<div class="v-overlay"></div>\n\t\t\t\n\t\t<div class="v-loader">\n\t\t\t<div class="v-loaderContent">\n\t\t\t\t<div class="v-loaderBounce1"></div>\n\t\t\t\t<div class="v-loaderBounce2"></div>\n\t\t\t\t<div class="v-loaderBounce3"></div>\n\t\t\t</div>\n\t\t</div>\n\t\n\t\t\t${this.options.poster?function({posterUrl:e=""}){return`<div class="v-poster v-active"${e&&` style="background-image: url(${e})"`}></div>`}({posterUrl:this.options.poster}):""}\n\t\t\t${this.options.bigPlay?'<button class="v-bigPlay" aria-label="Play"><svg viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"><path d="M10 0C4.48 0 0 4.48 0 10s4.48 10 10 10 10-4.48 10-10S15.52 0 10 0ZM7.5 12.67V7.33c0-.79.88-1.27 1.54-.84l4.15 2.67a1 1 0 0 1 0 1.68l-4.15 2.67c-.66.43-1.54-.05-1.54-.84Z"/></svg></button>':""}\n\t\t`;this.container.insertAdjacentHTML("beforeend",e)}addEvents(){"video"===this.type&&(this.container.addEventListener("click",this.onClickOnPlayer),this.container.addEventListener("dblclick",this.onDoubleClickOnPlayer),this.autoHideGranted&&this.container.addEventListener("mousemove",this.onMousemove),document.addEventListener(this.supportFullScreen.changeEvent,this.onChangeFullScreen)),this.container.addEventListener("keydown",this.onKeydown)}onClickOnPlayer(e){const t=e.target;l({target:t,selectorString:".v-poster, .v-overlay, .v-bigPlay",nodeName:["div","button"]})&&(this.player.controlBar.togglePlayPause(e),t.matches(".v-bigPlay")&&this.container.focus())}onDoubleClickOnPlayer(e){l({target:e.target,selectorString:".v-overlay",nodeName:["div"]})&&this.player.controlBar.toggleFullscreen(e)}onKeydown(e){const t=document.activeElement,{keyCode:s}=e;[9,32,37,39].includes(s)&&this.autoHideGranted&&(t===this.container||(null==t?void 0:t.closest(".v-vlite")))&&(this.stopAutoHideTimer(),this.startAutoHideTimer()),![37,39].includes(s)||t!==this.container&&t!==this.player.elements.progressBar||(e.preventDefault(),37===s?this.fastForward("backward"):39===s&&this.fastForward("forward")),![38,40].includes(s)||t!==this.container&&t!==this.player.elements.volume||(38===s?this.increaseVolume():40===s&&this.decreaseVolume()),32===s&&t===this.container&&this.player.controlBar.togglePlayPause(e)}onMousemove(){!this.player.isPaused&&this.autoHideGranted&&(this.stopAutoHideTimer(),this.startAutoHideTimer())}onChangeFullScreen(){!document[this.supportFullScreen.isFullScreen]&&this.player.isFullScreen&&this.player.exitFullscreen({escKey:!0})}fastForward(e){this.player.getCurrentTime().then((t=>{this.player.seekTo("backward"===e?t-this.options.seekTime:t+this.options.seekTime)}))}increaseVolume(){this.player.isMuted&&this.player.unMute(),this.player.getVolume().then((e=>{this.player.setVolume(Math.min(Math.round(10*(e+this.options.volumeStep))/10,1))}))}decreaseVolume(){this.player.getVolume().then((e=>{this.player.setVolume(Math.max(Math.round(10*(e-this.options.volumeStep))/10,0))}))}stopAutoHideTimer(){"video"===this.type&&this.player.elements.controlBar&&(this.player.elements.controlBar.classList.remove("v-hidden"),clearTimeout(this.timerAutoHide))}startAutoHideTimer(){"video"===this.type&&!this.player.isPaused&&this.player.elements.controlBar&&(this.timerAutoHide=window.setTimeout((()=>{var e;null===(e=this.player.elements.controlBar)||void 0===e||e.classList.add("v-hidden")}),this.options.autoHideDelay))}removeEvents(){this.container.removeEventListener("keydown",this.onKeydown),"video"===this.type&&(this.container.removeEventListener("click",this.onClickOnPlayer),this.container.removeEventListener("dblclick",this.onDoubleClickOnPlayer),this.autoHideGranted&&this.container.removeEventListener("mousemove",this.onMousemove),window.removeEventListener(this.supportFullScreen.changeEvent,this.onChangeFullScreen))}destroy(){this.removeEvents(),this.player.destroy(),this.player.controlBar.destroy()}}b.registerProvider=function(e,t,s){if(void 0!==t){if(!Object.keys(i).includes(e))return i[e]=t,void(s&&(n[e]=s));throw new Error(`vlitejs :: The provider id "${e}" is already registered.`)}throw new Error(`vlitejs :: The provider id "${e}" is undefined.`)},b.registerPlugin=function(s,i,n){if(void 0!==i){if(!Object.keys(e).includes(s))return e[s]=i,void(n&&(t[s]=n));throw new Error(`vlitejs :: The plugin id "${s}" is already registered.`)}throw new Error(`vlitejs :: The plugin id "${s}" is undefined.`)};export{b as default}; |
{ | ||
"name": "vlitejs", | ||
"version": "7.2.0", | ||
"version": "7.2.1", | ||
"description": "vLitejs is a fast and lightweight Javascript library for customizing video and audio player in Javascript with a minimalist theme (HTML5, Youtube, Vimeo, Dailymotion)", | ||
@@ -5,0 +5,0 @@ "keywords": [ |
Sorry, the diff of this file is not supported yet
99208
0.1%