Comparing version
/*! | ||
* @license MIT | ||
* @name vlitejs | ||
* @version 5.0.2 | ||
* @version 6.0.0 | ||
* @copyright 2023 Joris DANIEL | ||
*/ | ||
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.VlitejsAirplay=t():e.VlitejsAirplay=t()}(globalThis,(()=>(()=>{var e={673:function(e,t,i){var a,r,n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};a=[i,t,i(135),i(414)],r=function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),i=n(i);t.default=class{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"),a=`<button class="v-airPlayButton v-controlButton" hidden>${i.default}</button>`;e&&(t?t.insertAdjacentHTML("beforebegin",a):e.insertAdjacentHTML("beforeend",a))}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)}}}.apply(t,a),void 0===r||(e.exports=r)},414:(e,t,i)=>{"use strict";i.r(t)},135:e=>{"use strict";e.exports='<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>'}},t={};function i(a){var r=t[a];if(void 0!==r)return r.exports;var n=t[a]={exports:{}};return e[a].call(n.exports,n,n.exports,i),n.exports}i.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var a=i(673);return a=a.default})())); | ||
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 5.0.2 | ||
* @version 6.0.0 | ||
* @copyright 2023 Joris DANIEL | ||
*/ | ||
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.VlitejsCast=t():e.VlitejsCast=t()}(globalThis,(()=>(()=>{var e={175:function(e,t,s){var i,a,o=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};i=[s,t,s(117),s(743)],a=function(e,t,s){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),s=o(s);t.default=class{constructor({player:e,options:t={}}){this.providers=["html5"],this.types=["video"],this.player=e,this.options=t,this.subtitles=[],this.backupAutoHide=null,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(){return!!(window.cast&&window.cast.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(){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.castButton=this.player.elements.container.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"),i=`<button class="v-castButton v-controlButton">${s.default}</button>`;e&&(t?t.insertAdjacentHTML("beforebegin",i):e.insertAdjacentHTML("beforeend",i))}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(){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,this.player.elements.container.querySelector(".v-deviceName").remove(),this.player.isPaused||(this.player.methodPlay(),this.player.afterPlayPause()),this.player.dispatchEvent("castsessionended")}getSubtitles(){return[...this.player.media.querySelectorAll("track")].map(((e,t)=>({index:t,url:e.getAttribute("src"),label:e.getAttribute("label"),language:e.getAttribute("srclang"),isDefault:e.hasAttribute("default")})))}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);t.contentType="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 i=new window.chrome.cast.media.GenericMediaMetadata;this.player.options.poster&&(i.images=[new window.chrome.cast.Image(this.player.options.poster)]),t.metadata=Object.assign(Object.assign({},i),this.options.metadata||{});const a=new window.chrome.cast.media.LoadRequest(t);a.autoplay=!1===this.player.isPaused,a.currentTime=this.player.media.currentTime,this.subtitles.length&&(a.activeTrackIds=[this.getActiveTrack().index]),e.loadMedia(a)}getCastTracks(){return this.subtitles.map((({url:e,label:t,language:s},i)=>{const a=new window.chrome.cast.media.Track(i,window.chrome.cast.media.TrackType.TEXT);return a.trackContentId=e,a.trackContentType="text/vtt",a.subtype=window.chrome.cast.media.TextTrackType.SUBTITLES,a.name=t,a.language=s,a}))}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)}}}.apply(t,i),void 0===a||(e.exports=a)},743:(e,t,s)=>{"use strict";s.r(t)},117:e=>{"use strict";e.exports='<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>'}},t={};function s(i){var a=t[i];if(void 0!==a)return a.exports;var o=t[i]={exports:{}};return e[i].call(o.exports,o,o.exports,s),o.exports}s.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var i=s(175);return i=i.default})())); | ||
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(){return!!(window.cast&&window.cast.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(){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=this.player.elements.container.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(){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,this.player.elements.container.querySelector(".v-deviceName").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 5.0.2 | ||
* @version 6.0.0 | ||
* @copyright 2023 Joris DANIEL | ||
*/ | ||
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.VlitejsIma=t():e.VlitejsIma=t()}(globalThis,(()=>(()=>{var e={27:(e,t,i)=>{var s,a;s=[i,t,i(755)],a=function(e,t){"use strict";({value:!0});t.default=class{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){var t;this.adError=!0,clearTimeout(this.timerAdTimeout);try{const{type:i,errorCode:s,errorMessage:a}=null===(t=e.getError())||void 0===t?void 0:t.j;console.warn(`${i} ${s}: ${a}`)}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(){this.adsManager&&this.adsManager.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)}}}.apply(t,s),void 0===a||(e.exports=a)},755:(e,t,i)=>{"use strict";i.r(t)}},t={};function i(s){var a=t[s];if(void 0!==a)return a.exports;var n=t[s]={exports:{}};return e[s](n,n.exports,i),n.exports}i.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var s=i(27);return s=s.default})())); | ||
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){var t;this.adError=!0,clearTimeout(this.timerAdTimeout);try{const{type:i,errorCode:s,errorMessage:a}=null===(t=e.getError())||void 0===t?void 0:t.j;console.warn(`${i} ${s}: ${a}`)}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(){this.adsManager&&this.adsManager.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 5.0.2 | ||
* @version 6.0.0 | ||
* @copyright 2023 Joris DANIEL | ||
*/ | ||
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.VlitejsPip=t():e.VlitejsPip=t()}(globalThis,(()=>(()=>{var e={202:function(e,t,i){var n,r,o=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};n=[i,t,i(377),i(594)],r=function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),i=o(i);t.default=class{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">${i.default}</button>`,t=this.player.elements.container.querySelector(".v-controlBar"),n=this.player.elements.container.querySelector(".v-fullscreenButton");t&&(n?n.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)}}}.apply(t,n),void 0===r||(e.exports=r)},594:(e,t,i)=>{"use strict";i.r(t)},377:e=>{"use strict";e.exports='<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>'}},t={};function i(n){var r=t[n];if(void 0!==r)return r.exports;var o=t[n]={exports:{}};return e[n].call(o.exports,o,o.exports,i),o.exports}i.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var n=i(202);return n=n.default})())); | ||
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 5.0.2 | ||
* @version 6.0.0 | ||
* @copyright 2023 Joris DANIEL | ||
*/ | ||
!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.VlitejsSticky=e():t.VlitejsSticky=e()}(globalThis,(()=>(()=>{var t={418:function(t,e,i){var s,n,o=this&&this.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};s=[i,e,i(985),i(422)],n=function(t,e,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),i=o(i);e.default=class{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(){const t=`<button class="v-closeStickyButton">${i.default}</button>`;this.player.elements.container.insertAdjacentHTML("beforeend",t)}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)}}}.apply(e,s),void 0===n||(t.exports=n)},422:(t,e,i)=>{"use strict";i.r(e)},985:t=>{"use strict";t.exports='<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>'}},e={};function i(s){var n=e[s];if(void 0!==n)return n.exports;var o=e[s]={exports:{}};return t[s].call(o.exports,o,o.exports,i),o.exports}i.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};var s=i(418);return s=s.default})())); | ||
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 5.0.2 | ||
* @version 6.0.0 | ||
* @copyright 2023 Joris DANIEL | ||
*/ | ||
!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.VlitejsSubtitle=e():t.VlitejsSubtitle=e()}(globalThis,(()=>(()=>{var t={452:function(t,e,s){var i,n,a=this&&this.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};i=[s,e,s(341),s(474),s(638),s(227),s(868)],n=function(t,e,s,i,n,r){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),s=a(s),i=a(i),n=a(n),r=a(r);e.default=class{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*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${i.default}${n.default}\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">${r.default}Off</button>\n\t\t\t\t\t\t\t</li>\n\t\t\t\t\t\t\t${this.tracks.map((t=>`<li>\n\t\t\t\t\t\t\t\t\t\t\t<button class="v-trackButton" data-language="${t.language}">${r.default}${t.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 i=t.target,n=i.getAttribute("data-language"),a=(0,s.default)({target:i,selectorString:".v-trackButton:not(.v-active)",nodeName:["button"]}),r=this.subtitlesList.querySelector(".v-active"),o=null===(e=t.detail.triggerPlayerFocus)||void 0===e||e;n&&a&&(r&&r.classList.remove("v-active"),i.classList.add("v-active"),"off"===n?(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(n),this.activeTrack&&this.updateCues()),o&&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}={}){if(this.activeTrack&&this.activeTrack.cues&&this.activeTrack.cues.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)}}}.apply(e,i),void 0===n||(t.exports=n)},868:(t,e,s)=>{"use strict";s.r(e)},341:t=>{ | ||
/** | ||
* @license MIT | ||
* @name validateTarget | ||
* @version 2.0.0 | ||
* @author: Yoriiis aka Joris DANIEL <joris.daniel@gmail.com> | ||
* @description: Easily validate target of an HTML element especially during event delegation | ||
* {@link https://github.com/yoriiis/validate-target} | ||
* @copyright 2020 Joris DANIEL | ||
**/ | ||
t.exports=function({target:t,selectorString:e,nodeName:s}){if("string"==typeof s&&(s=[s]),Array.isArray(s)&&s.length)return s.map((s=>t.nodeName.toLowerCase()===s&&t.matches(e))).includes(!0)}},227:t=>{"use strict";t.exports='<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>'},638:t=>{"use strict";t.exports='<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>'},474:t=>{"use strict";t.exports='<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>'}},e={};function s(i){var n=e[i];if(void 0!==n)return n.exports;var a=e[i]={exports:{}};return t[i].call(a.exports,a,a.exports,s),a.exports}s.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};var i=s(452);return i=i.default})())); | ||
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*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}){if("string"==typeof s&&(s=[s]),Array.isArray(s))return 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"),c=null===(e=t.detail.triggerPlayerFocus)||void 0===e||e;i&&n&&(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()),c&&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}={}){if(this.activeTrack&&this.activeTrack.cues&&this.activeTrack.cues.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 5.0.2 | ||
* @version 6.0.0 | ||
* @copyright 2023 Joris DANIEL | ||
*/ | ||
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.VlitejsVolumeBar=t():e.VlitejsVolumeBar=t()}(globalThis,(()=>(()=>{var e={387:(e,t,o)=>{var r,a;r=[o,t,o(659)],a=function(e,t){"use strict";({value:!0});t.default=class{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" />',o=document.createElement("div");o.classList.add("v-volumeArea"),e.parentNode.insertBefore(o,e),o.appendChild(e),o.insertAdjacentHTML("beforeend",t)}}addEvents(){this.volumeBar.addEventListener("input",this.onInputVolumeBar),this.player.on("volumechange",this.onVolumeChange)}onInputVolumeBar(e){const t=e.target,o=parseFloat(t.value);this.updateVolumeBar(o),t.setAttribute("aria-valuenow",`${Math.round(o)}`),this.player.setVolume(o)}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)}}}.apply(t,r),void 0===a||(e.exports=a)},659:(e,t,o)=>{"use strict";o.r(t)}},t={};function o(r){var a=t[r];if(void 0!==a)return a.exports;var l=t[r]={exports:{}};return e[r](l,l.exports,o),l.exports}o.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var r=o(387);return r=r.default})())); | ||
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=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 5.0.2 | ||
* @version 6.0.0 | ||
* @copyright 2023 Joris DANIEL | ||
*/ | ||
!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.VlitejsDailymotion=e():t.VlitejsDailymotion=e()}(globalThis,(()=>{return t={301:(t,e,i)=>{var n;n=function(t,e){"use strict";e.default=function(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()}}}}.apply(e,[i,e]),void 0===n||(t.exports=n)}},e={},function i(n){var s=e[n];if(void 0!==s)return s.exports;var o=e[n]={exports:{}};return t[n](o,o.exports,i),o.exports}(301).default;var t,e})); | ||
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 5.0.2 | ||
* @version 6.0.0 | ||
* @copyright 2023 Joris DANIEL | ||
*/ | ||
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.VlitejsVimeo=t():e.VlitejsVimeo=t()}(globalThis,(()=>{return e={868:(e,t,i)=>{var n;n=function(e,t){"use strict";t.default=function(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()}}}}.apply(t,[i,t]),void 0===n||(e.exports=n)}},t={},function i(n){var s=t[n];if(void 0!==s)return s.exports;var o=t[n]={exports:{}};return e[n](o,o.exports,i),o.exports}(868).default;var e,t})); | ||
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 5.0.2 | ||
* @version 6.0.0 | ||
* @copyright 2023 Joris DANIEL | ||
*/ | ||
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.VlitejsYoutube=t():e.VlitejsYoutube=t()}(globalThis,(()=>{return e={277:(e,t,i)=>{var n;n=function(e,t){"use strict";t.default=function(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,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()}}}}.apply(t,[i,t]),void 0===n||(e.exports=n)}},t={},function i(n){var o=t[n];if(void 0!==o)return o.exports;var s=t[n]={exports:{}};return e[n](s,s.exports,i),s.exports}(277).default;var e,t})); | ||
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,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 5.0.2 | ||
* @version 6.0.0 | ||
* @copyright 2023 Joris DANIEL | ||
*/ | ||
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.Vlitejs=t():e.Vlitejs=t()}(globalThis,(()=>(()=>{var e={782:function(e,t,s){var i,n,r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};i=[s,t,s(566),s(296)],n=function(e,t,s){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),s=r(s),t.default=function(){return`<button class="v-bigPlay">${s.default}</button>`}}.apply(t,i),void 0===n||(e.exports=n)},794:function(e,t,s){var i,n,r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};i=[s,t,s(158),s(341),s(159),s(244)],n=function(e,t,s,i,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),i=r(i),n=r(n);t.default=class{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");this.player.elements.controlBar=e,this.player.elements.controlBar&&(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=(0,s.formatVideoTime)(e))}))}addEvents(){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)}))),this.player.elements.controlBar&&this.player.elements.controlBar.addEventListener("click",this.onClickOnControlBar)}onTouchEventProgressBar(e){e.preventDefault();const t=e.target,s=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(parseFloat(t.value)*e/100)}))}onClickOnControlBar(e){const t=e.target,s=(0,i.default)({target:t,selectorString:".v-playPauseButton",nodeName:["button"]}),n=(0,i.default)({target:t,selectorString:".v-volumeButton",nodeName:["button"]}),r=(0,i.default)({target:t,selectorString:".v-fullscreenButton",nodeName:["button"]});s?this.togglePlayPause(e):n?this.toggleVolume(e):r&&this.toggleFullscreen(e)}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){e.preventDefault(),this.player.isFullScreen?this.player.exitFullscreen():this.player.requestFullscreen()}getTemplate(){return`${(0,n.default)({options:this.player.options,isMuted:this.player.isMuted,isVideo:"video"===this.type})}`}removeEvents(){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)}))),this.player.elements.controlBar&&this.player.elements.controlBar.removeEventListener("click",this.onClickOnControlBar)}destroy(){this.removeEvents(),this.player.elements.controlBar&&this.player.elements.controlBar.remove()}}}.apply(t,i),void 0===n||(e.exports=n)},159:function(e,t,s){var i,n,r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};i=[s,t,s(323),s(36),s(489),s(903),s(80),s(549)],n=function(e,t,s,i,n,o,l,a){"use strict";function u(){return`<button class="v-playPauseButton v-controlButton" aria-label="Play">${s.default}${i.default}</button>`}function c(){return'<div class="v-time"><span class="v-currentTime">00:00</span> / <span class="v-duration"></span></div>'}function h(){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 d({isMuted:e}){return`<button class="v-volumeButton v-controlButton${e?" v-controlPressed":""}">${n.default}${o.default}</button>`}Object.defineProperty(t,"__esModule",{value:!0}),s=r(s),i=r(i),n=r(n),o=r(o),l=r(l),a=r(a),t.default=function({options:e,isMuted:t,isVideo:s}){return s?`<div class="v-controlBar">${e.playPause?u():""}${e.time?c():""}${e.progressBar?h():""}${e.volume?d({isMuted:t}):""}${e.fullscreen?`<button class="v-fullscreenButton v-controlButton" aria-label="Enter fullscreen">${l.default}${a.default}</span></button>`:""}</div>`:`<div class="v-controlBar">${e.playPause?u():""}${e.time?c():""}${e.progressBar?h():""}${e.volume?d({isMuted:t}):""}</div>`}}.apply(t,i),void 0===n||(e.exports=n)},851:(e,t,s)=>{var i,n;i=[s,t,s(798)],n=function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(){return'\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'}}.apply(t,i),void 0===n||(e.exports=n)},522:(e,t,s)=>{var i,n;i=[s,t,s(395)],n=function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(){return'<div class="v-overlay"></div>'}}.apply(t,i),void 0===n||(e.exports=n)},392:(e,t,s)=>{var i,n;i=[s,t,s(100)],n=function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function({posterUrl:e=""}){return`<div class="v-poster v-active"${e&&` style="background-image: url(${e})"`}></div>`}}.apply(t,i),void 0===n||(e.exports=n)},330:function(e,t,s){var i,n,r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};i=[s,t,s(158),s(794)],n=function(e,t,s,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),i=r(i);t.default=class{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=(0,s.isTouch)(),this.controlBar=new i.default({player:this,type:t})}build(){this.options.controls&&this.controlBar.init(),this.init()}init(){throw new Error('You have to implement the function "init".')}waitUntilVideoIsReady(){throw new Error('You have to implement the function "waitUntilVideoIsReady".')}getInstance(){throw new Error('You have to implement the function "getInstance".')}getCurrentTime(){throw new Error('You have to implement the function "getCurrentTime".')}methodSeekTo(e){throw new Error('You have to implement the function "methodSeekTo".')}getDuration(){throw new Error('You have to implement the function "getDuration".')}methodPlay(){throw new Error('You have to implement the function "methodPlay".')}methodPause(){throw new Error('You have to implement the function "methodPause".')}methodSetVolume(e){throw new Error('You have to implement the function "methodSetVolume".')}methodGetVolume(){throw new Error('You have to implement the function "methodGetVolume".')}methodMute(){throw new Error('You have to implement the function "methodMute".')}methodUnMute(){throw new Error('You have to implement the function "methodUnMute".')}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),this.options.controls&&this.controlBar.onReady(),Object.keys(this.plugins).forEach((e=>{this.plugins[e].onReady instanceof Function&&this.plugins[e].onReady()})),this.loading(!1)}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:i=!1}){const n=Math.round(e);if(this.elements.progressBar){const s=100*n/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=(0,s.formatVideoTime)(n)),!i&&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.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){e>1?e=1:e<=0?(e=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(e),this.dispatchEvent("volumechange",{volume:e})}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-fullscreenButtonDisplay"),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-fullscreenButtonDisplay"),this.elements.fullscreen&&(this.elements.fullscreen.classList.remove("v-controlPressed"),this.elements.fullscreen.setAttribute("aria-label","Enter fullscreen")),this.dispatchEvent("exitfullscreen"))}destroy(){this.controlBar&&this.controlBar.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()}}}.apply(t,i),void 0===n||(e.exports=n)},668:function(e,t,s){var i,n,r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};i=[s,t,s(330),s(341),s(158),s(851),s(782),s(522),s(392),s(390),s(555),s(7)],n=function(e,t,s,i,n,o,l,a,u,c,h){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),s=r(s),i=r(i),o=r(o),l=r(l),a=r(a),u=r(u);const d={audio:{controls:!0,autoplay:!1,playPause:!0,progressBar:!0,time:!0,volume:!0,loop:!1},video:{controls:!0,autoplay:!1,playPause:!0,progressBar:!0,time:!0,volume:!0,fullscreen:!0,poster:null,bigPlay:!0,playsinline:!0,loop:!1,muted:!1,autoHide:!1,autoHideDelay:3e3,providerParams:{}}};class p{constructor(e,{options:t={},provider:i="html5",plugins:r=[],onReady:o=(()=>{})}={}){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=i,this.onReady=o,this.type=this.media instanceof HTMLAudioElement?"audio":"video",this.supportFullScreen=(0,n.checkSupportFullScreen)();["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({},d[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 l=(0,c.getProviderInstance)(i,s.default);this.wrapElement(),this.container=this.media.closest(".v-container"),this.outerContainer=this.container.closest(".v-vlite"),"video"===this.type&&this.renderLayout(),this.player=new l({type:this.type,Vlitejs:this}),this.player.build(),this.addEvents(),(0,h.initializePlugins)({plugins:r,provider:i,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${(0,a.default)()}\n\t\t\t${(0,o.default)()}\n\t\t\t${this.options.poster?(0,u.default)({posterUrl:this.options.poster}):""}\n\t\t\t${this.options.bigPlay?(0,l.default)():""}\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;(0,i.default)({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){const t=e.target;(0,i.default)({target:t,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-5:t+5)}))}increaseVolume(){this.player.isMuted&&this.player.unMute(),this.player.getVolume().then((e=>{this.player.setVolume(Math.round(10*(e+.1))/10)}))}decreaseVolume(){this.player.getVolume().then((e=>{this.player.setVolume(Math.round(10*(e-.1))/10)}))}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((()=>{this.player.elements.controlBar.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()}}p.registerProvider=c.registerProvider,p.registerPlugin=h.registerPlugin,t.default=p}.apply(t,i),void 0===n||(e.exports=n)},555:(e,t,s)=>{var i;i=function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.initializePlugins=t.registerPlugin=t.getPluginInstance=void 0;const s={},i={};function n(e){const t=[],n=Object.keys(s);return e.forEach((e=>{if(!n.includes(e))throw new Error(`vlitejs :: Unknown plugin "${e}".`);t.push({id:e,Plugin:s[e],options:i[e]})})),t}t.getPluginInstance=n,t.registerPlugin=function(e,t,n){if(void 0!==t){if(!Object.keys(s).includes(e))return s[e]=t,void(n&&(i[e]=n));throw new Error(`vlitejs :: The plugin id "${e}" is already registered.`)}throw new Error(`vlitejs :: The plugin id "${e}" is undefined.`)},t.initializePlugins=function({plugins:e,provider:t,type:s,player:i}){n(e).forEach((({id:e,Plugin:n,options:r})=>{const o=new n({player:i,options:r});if(i.plugins[e]=o,!o.providers.includes(t)||!o.types.includes(s))throw new Error(`vlitejs :: The "${e}" plugin is only compatible with providers:"${o.providers}" and types:"${o.types}"`);o.init()}))}}.apply(t,[s,t]),void 0===i||(e.exports=i)},571:(e,t,s)=>{var i;i=function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=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?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()}}}}.apply(t,[s,t]),void 0===i||(e.exports=i)},390:function(e,t,s){var i,n,r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};i=[s,t,s(571)],n=function(e,t,s){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.registerProvider=t.getProviderInstance=void 0;const i={html5:(s=r(s)).default},n={};t.getProviderInstance=function(e,t){const s=i[e];if(s)return s(t,n[e]);throw new Error(`vlitejs :: Unknown provider "${e}"`)},t.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.`)}}.apply(t,i),void 0===n||(e.exports=n)},158:(e,t,s)=>{var i;i=function(e,t){"use strict";function s(){if(document.exitFullscreen instanceof Function)return"";return["webkit","moz","ms"].find((e=>document[e+"ExitFullscreen"]instanceof Function||document[`${e}CancelFullScreen`]instanceof Function))||""}Object.defineProperty(t,"__esModule",{value:!0}),t.isTouch=t.getBrowserPrefix=t.checkSupportFullScreen=t.formatVideoTime=void 0,t.formatVideoTime=function(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},t.checkSupportFullScreen=function(){const e=s();return{requestFn:e?`${e}RequestFullScreen`:"requestFullscreen",cancelFn:e?`${e}ExitFullscreen`:"exitFullscreen",changeEvent:e?`${e}fullscreenchange`:"fullscreenchange",isFullScreen:e?`${e}FullscreenElement`:"fullscreenElement"}},t.getBrowserPrefix=s,t.isTouch=function(){return!!("ontouchstart"in document.documentElement)}}.apply(t,[s,t]),void 0===i||(e.exports=i)},296:(e,t,s)=>{"use strict";s.r(t)},244:(e,t,s)=>{"use strict";s.r(t)},798:(e,t,s)=>{"use strict";s.r(t)},395:(e,t,s)=>{"use strict";s.r(t)},100:(e,t,s)=>{"use strict";s.r(t)},7:(e,t,s)=>{"use strict";s.r(t)},341:e=>{ | ||
/** | ||
* @license MIT | ||
* @name validateTarget | ||
* @version 2.0.0 | ||
* @author: Yoriiis aka Joris DANIEL <joris.daniel@gmail.com> | ||
* @description: Easily validate target of an HTML element especially during event delegation | ||
* {@link https://github.com/yoriiis/validate-target} | ||
* @copyright 2020 Joris DANIEL | ||
**/ | ||
e.exports=function({target:e,selectorString:t,nodeName:s}){if("string"==typeof s&&(s=[s]),Array.isArray(s)&&s.length)return s.map((s=>e.nodeName.toLowerCase()===s&&e.matches(t))).includes(!0)}},566:e=>{"use strict";e.exports='<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>'},549:e=>{"use strict";e.exports='<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>'},80:e=>{"use strict";e.exports='<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>'},36:e=>{"use strict";e.exports='<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>'},323:e=>{"use strict";e.exports='<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>'},489:e=>{"use strict";e.exports='<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>'},903:e=>{"use strict";e.exports='<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>'}},t={};function s(i){var n=t[i];if(void 0!==n)return n.exports;var r=t[i]={exports:{}};return e[i].call(r.exports,r,r.exports,s),r.exports}s.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var i=s(668);return i=i.default})())); | ||
function e(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 t(){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 s({target:e,selectorString:t,nodeName:s}){if("string"==typeof s&&(s=[s]),Array.isArray(s))return s.some((s=>e.nodeName.toLowerCase()===s&&e.matches(t)))}var i='<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>',n='<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>',r='<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>',o='<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>',l='<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>',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>';function h({options:e,isMuted:t,isVideo:s}){return s?`<div class="v-controlBar">${e.playPause?u():""}${e.time?c():""}${e.progressBar?d():""}${e.volume?m({isMuted:t}):""}${e.fullscreen?`<button class="v-fullscreenButton v-controlButton" aria-label="Enter fullscreen">${l}${a}</span></button>`:""}</div>`:`<div class="v-controlBar">${e.playPause?u():""}${e.time?c():""}${e.progressBar?d():""}${e.volume?m({isMuted:t}):""}</div>`}function u(){return`<button class="v-playPauseButton v-controlButton" aria-label="Play">${i}${n}</button>`}function c(){return'<div class="v-time"><span class="v-currentTime">00:00</span> / <span class="v-duration"></span></div>'}function d(){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 m({isMuted:e}){return`<button class="v-volumeButton v-controlButton${e?" v-controlPressed":""}">${r}${o}</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((t=>{this.player.elements.progressBar&&this.player.elements.progressBar.setAttribute("aria-valuemax",`${Math.round(t)}`),this.player.elements.duration&&(this.player.elements.duration.innerHTML=e(t))}))}addEvents(){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)}))),this.player.elements.controlBar&&this.player.elements.controlBar.addEventListener("click",this.onClickOnControlBar)}onTouchEventProgressBar(e){e.preventDefault();const t=e.target,s=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(parseFloat(t.value)*e/100)}))}onClickOnControlBar(e){const t=e.target,i=s({target:t,selectorString:".v-playPauseButton",nodeName:["button"]}),n=s({target:t,selectorString:".v-volumeButton",nodeName:["button"]}),r=s({target:t,selectorString:".v-fullscreenButton",nodeName:["button"]});i?this.togglePlayPause(e):n?this.toggleVolume(e):r&&this.toggleFullscreen(e)}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){e.preventDefault(),this.player.isFullScreen?this.player.exitFullscreen():this.player.requestFullscreen()}getTemplate(){return`${h({options:this.player.options,isMuted:this.player.isMuted,isVideo:"video"===this.type})}`}removeEvents(){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)}))),this.player.elements.controlBar&&this.player.elements.controlBar.removeEventListener("click",this.onClickOnControlBar)}destroy(){this.removeEvents(),this.player.elements.controlBar&&this.player.elements.controlBar.remove()}}class v{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()}init(){throw new Error('You have to implement the function "init".')}waitUntilVideoIsReady(){throw new Error('You have to implement the function "waitUntilVideoIsReady".')}getInstance(){throw new Error('You have to implement the function "getInstance".')}getCurrentTime(){throw new Error('You have to implement the function "getCurrentTime".')}methodSeekTo(e){throw new Error('You have to implement the function "methodSeekTo".')}getDuration(){throw new Error('You have to implement the function "getDuration".')}methodPlay(){throw new Error('You have to implement the function "methodPlay".')}methodPause(){throw new Error('You have to implement the function "methodPause".')}methodSetVolume(e){throw new Error('You have to implement the function "methodSetVolume".')}methodGetVolume(){throw new Error('You have to implement the function "methodGetVolume".')}methodMute(){throw new Error('You have to implement the function "methodMute".')}methodUnMute(){throw new Error('You have to implement the function "methodUnMute".')}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),this.options.controls&&this.controlBar.onReady(),Object.keys(this.plugins).forEach((e=>{this.plugins[e].onReady instanceof Function&&this.plugins[e].onReady()})),this.loading(!1)}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:t,duration:s,isRemote:i=!1}){const n=Math.round(t);if(this.elements.progressBar){const e=100*n/s;this.elements.progressBar.value=`${e}`,this.elements.progressBar.style.setProperty("--vlite-progressValue",`${e}%`),this.elements.progressBar.setAttribute("aria-valuenow",`${Math.round(t)}`)}this.elements.currentTime&&(this.elements.currentTime.innerHTML=e(n)),!i&&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.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){e>1?e=1:e<=0?(e=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(e),this.dispatchEvent("volumechange",{volume:e})}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-fullscreenButtonDisplay"),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-fullscreenButtonDisplay"),this.elements.fullscreen&&(this.elements.fullscreen.classList.remove("v-controlPressed"),this.elements.fullscreen.setAttribute("aria-label","Enter fullscreen")),this.dispatchEvent("exitfullscreen"))}destroy(){this.controlBar&&this.controlBar.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 y={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?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()}}}},g={};const w={},f={};function P({plugins:e,provider:t,type:s,player:i}){(function(e){const t=[],s=Object.keys(w);return e.forEach((e=>{if(!s.includes(e))throw new Error(`vlitejs :: Unknown plugin "${e}".`);t.push({id:e,Plugin:w[e],options:f[e]})})),t})(e).forEach((({id:e,Plugin:n,options:r})=>{const o=new n({player:i,options:r});if(i.plugins[e]=o,!o.providers.includes(t)||!o.types.includes(s))throw new Error(`vlitejs :: The "${e}" plugin is only compatible with providers:"${o.providers}" and types:"${o.types}"`);o.init()}))}const E={audio:{controls:!0,autoplay:!1,playPause:!0,progressBar:!0,time:!0,volume:!0,loop:!1},video:{controls:!0,autoplay:!1,playPause:!0,progressBar:!0,time:!0,volume:!0,fullscreen:!0,poster:null,bigPlay:!0,playsinline:!0,loop:!1,muted:!1,autoHide:!1,autoHideDelay:3e3,providerParams:{}}};class b{constructor(e,{options:s={},provider:i="html5",plugins:n=[],onReady:r=(()=>{})}={}){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=i,this.onReady=r,this.type=this.media instanceof HTMLAudioElement?"audio":"video",this.supportFullScreen=t();["autoplay","playsinline","muted","loop"].forEach((e=>{this.media.hasAttribute(e)?s[e]=!0:s[e]&&this.media.setAttribute(e,"")})),this.options=Object.assign(Object.assign({},E[this.type]),s),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 o=function(e,t){const s=y[e];if(s)return s(t,g[e]);throw new Error(`vlitejs :: Unknown provider "${e}"`)}(i,v);this.wrapElement(),this.container=this.media.closest(".v-container"),this.outerContainer=this.container.closest(".v-vlite"),"video"===this.type&&this.renderLayout(),this.player=new o({type:this.type,Vlitejs:this}),this.player.build(),this.addEvents(),P({plugins:n,provider:i,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"><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;s({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){s({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-5:t+5)}))}increaseVolume(){this.player.isMuted&&this.player.unMute(),this.player.getVolume().then((e=>{this.player.setVolume(Math.round(10*(e+.1))/10)}))}decreaseVolume(){this.player.getVolume().then((e=>{this.player.setVolume(Math.round(10*(e-.1))/10)}))}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((()=>{this.player.elements.controlBar.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(y).includes(e))return y[e]=t,void(s&&(g[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(e,t,s){if(void 0!==t){if(!Object.keys(w).includes(e))return w[e]=t,void(s&&(f[e]=s));throw new Error(`vlitejs :: The plugin id "${e}" is already registered.`)}throw new Error(`vlitejs :: The plugin id "${e}" is undefined.`)};export{b as default}; |
{ | ||
"name": "vlitejs", | ||
"version": "5.0.2", | ||
"version": "6.0.0", | ||
"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)", | ||
@@ -35,3 +35,28 @@ "keywords": [ | ||
"author": "Joris DANIEL", | ||
"type": "module", | ||
"exports": { | ||
"./plugins/*": { | ||
"import": "./dist/plugins/*.js" | ||
}, | ||
"./plugins/*.js": { | ||
"import": "./dist/plugins/*.js" | ||
}, | ||
"./plugins/*.css": { | ||
"import": "./dist/plugins/*.css" | ||
}, | ||
"./providers/*": { | ||
"import": "./dist/providers/*.js" | ||
}, | ||
"./providers/*.js": { | ||
"import": "./dist/providers/*.js" | ||
}, | ||
"./vlite.css": { | ||
"import": "./dist/vlite.css" | ||
}, | ||
".": { | ||
"import": "./dist/vlite.js" | ||
} | ||
}, | ||
"main": "dist/vlite.js", | ||
"module": "dist/vlite.js", | ||
"files": [ | ||
@@ -42,3 +67,3 @@ "dist", | ||
"scripts": { | ||
"build": "rm -rf ./dist/ && webpack --mode=production --config config/webpack.config.js", | ||
"build": "rm -rf ./dist/ && rollup --config ./config/rollup.config.js --environment ENV:production", | ||
"build:example": "rm -rf ./examples/dist/ && webpack --mode=production --config=./examples/webpack.config.js", | ||
@@ -48,43 +73,20 @@ "clean": "rm -rf ./dist/ ./examples/dist/", | ||
"pre:publish": "npm run build && npm run build:example && npm run test", | ||
"start": "rm -rf ./dist/ && webpack --mode=development --config config/webpack.config.js", | ||
"start": "rm -rf ./dist/ && rollup --config ./config/rollup.config.js --environment ENV:development --watch --sourcemap", | ||
"start:example": "rm -rf ./examples/dist/ && webpack serve --mode=development --config=./examples/webpack.config.js", | ||
"test": "npm run test:eslint && npm run test:stylelint && npm run test:types && npm run test:markdown", | ||
"test:eslint": "eslint ./src --config config/.eslintrc.js --ignore-pattern dist", | ||
"test:eslint:fix": "eslint ./src --config config/.eslintrc.js --ignore-pattern dist --fix", | ||
"test:markdown": "markdownlint-cli2 '**/*.md' '.github/*.md'", | ||
"test:stylelint": "stylelint './src/**/*.css' './docs/theme/assets/stylesheets/**/*.css' --config ./config/stylelint.config.js", | ||
"test:stylelint:fix": "stylelint './src/**/*.css' './docs/theme/assets/stylesheets/**/*.css' --config ./config/stylelint.config.js --fix", | ||
"test:types": "tsc --noEmit" | ||
"test": "echo 'No local tests' && exit 0" | ||
}, | ||
"browserslist": [ | ||
"last 2 chrome version", | ||
"last 2 firefox version", | ||
"last 2 safari version", | ||
"last 2 opera version", | ||
"last 2 edge version", | ||
"last 2 ios_saf version" | ||
], | ||
"prettier": "./config/prettier.config.js", | ||
"prettier": "./config/prettier.config.cjs", | ||
"dependencies": { | ||
"validate-target": "^2.0.0" | ||
"validate-target": "^3.0.0" | ||
}, | ||
"devDependencies": { | ||
"@babel/core": "^7.21.4", | ||
"@babel/plugin-proposal-class-properties": "^7.18.6", | ||
"@babel/preset-env": "^7.21.4", | ||
"@typescript-eslint/eslint-plugin": "^5.59.0", | ||
"@typescript-eslint/parser": "^5.59.0", | ||
"@rollup/plugin-alias": "^5.0.0", | ||
"@rollup/plugin-buble": "^0.21.3", | ||
"@rollup/plugin-replace": "^5.0.2", | ||
"@rollup/plugin-typescript": "^8.3.0", | ||
"@types/chromecast-caf-sender": "^1.0.5", | ||
"babel-loader": "^9.1.2", | ||
"css-loader": "^6.7.3", | ||
"css-minimizer-webpack-plugin": "^5.0.0", | ||
"eslint": "^8.39.0", | ||
"eslint-config-prettier": "^8.8.0", | ||
"eslint-config-standard": "^17.0.0", | ||
"eslint-plugin-import": "^2.27.5", | ||
"eslint-plugin-n": "^15.7.0", | ||
"eslint-plugin-node": "^11.1.0", | ||
"eslint-plugin-prettier": "^4.2.1", | ||
"eslint-plugin-promise": "^6.1.1", | ||
"html-webpack-plugin": "^5.5.1", | ||
"markdownlint-cli2": "^0.7.0", | ||
"mini-css-extract-plugin": "^2.7.5", | ||
@@ -98,8 +100,7 @@ "postcss": "^8.4.23", | ||
"postcss-url": "^10.1.1", | ||
"prettier": "^2.8.7", | ||
"rollup": "^2.64.0", | ||
"rollup-plugin-postcss": "^4.0.2", | ||
"rollup-plugin-svg": "^2.0.0", | ||
"rollup-plugin-terser": "^7.0.2", | ||
"style-loader": "^3.3.2", | ||
"stylelint": "^14.10.0", | ||
"stylelint-config-prettier": "^9.0.5", | ||
"stylelint-config-standard": "^27.0.0", | ||
"stylelint-prettier": "^2.0.0", | ||
"terser-webpack-plugin": "^5.3.7", | ||
@@ -110,4 +111,3 @@ "ts-loader": "^9.4.2", | ||
"webpack-cli": "^5.0.2", | ||
"webpack-dev-server": "^4.13.3", | ||
"webpack-manifest-plugin": "^5.0.0" | ||
"webpack-dev-server": "^4.13.3" | ||
}, | ||
@@ -114,0 +114,0 @@ "engines": { |
@@ -92,2 +92,4 @@ # vLitejs | ||
> **Warning** vlitejs@6 is ESM and uses the [Node.js package `exports`](https://nodejs.org/api/packages.html#exports). | ||
> | ||
> **Note** Minimum supported `Node.js` version is `16.20.0`. | ||
@@ -145,3 +147,3 @@ | ||
```javascript | ||
import 'vlitejs/dist/vlite.css'; | ||
import 'vlitejs/vlite.css'; | ||
import Vlitejs from 'vlitejs'; | ||
@@ -358,3 +360,3 @@ ``` | ||
`vlitejs` supports the latest 2 versions of most modern browsers with the [.browserslistrc](https://github.com/vlitejs/vlite/blob/main/.browserslistrc) config. | ||
`vlitejs` supports the latest 2 versions of most modern browsers with the Browserslist config. | ||
@@ -361,0 +363,0 @@ | Browser | Supported | |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Major refactor
Supply chain riskPackage has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.
Found 1 instance in 1 package
28
-28.21%317
33.76%378
0.53%Yes
NaN99686
-11.99%1
Infinity%+ Added
- Removed
Updated