plyr/dist/plyr.js

4 lines
73 KiB
JavaScript

!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define("Plyr",t):e.Plyr=t()}(this,function(){"use strict";function e(){var e=window.localStorage.getItem(this.config.storage.key);return a.is.empty(e)?{}:JSON.parse(e)}function t(t){if(l.storage&&this.config.storage.enabled&&a.is.object(t)){var i=e.call(this);a.extend(i,t),window.localStorage.setItem(this.config.storage.key,JSON.stringify(i))}}var i={html5:"html5",youtube:"youtube",vimeo:"vimeo"},n={audio:"audio",video:"video"},s={enabled:!0,title:"",debug:!1,autoplay:!1,autopause:!0,seekTime:10,volume:1,muted:!1,duration:null,displayDuration:!0,invertTime:!0,toggleInvert:!0,ratio:"16:9",clickToPlay:!0,hideControls:!0,showPosterOnEnd:!1,disableContextMenu:!0,loadSprite:!0,iconPrefix:"plyr",iconUrl:"https://cdn.plyr.io/2.0.10/plyr.svg",blankVideo:"https://cdn.plyr.io/static/blank.mp4",quality:{default:"default",options:["hd2160","hd1440","hd1080","hd720","large","medium","small","tiny","default"]},loop:{active:!1},speed:{selected:1,options:[.5,.75,1,1.25,1.5,1.75,2]},keyboard:{focused:!0,global:!1},tooltips:{controls:!1,seek:!0},captions:{active:!1,language:window.navigator.language.split("-")[0]},fullscreen:{enabled:!0,fallback:!0},storage:{enabled:!0,key:"plyr"},controls:["play-large","play","progress","current-time","mute","volume","captions","settings","pip","airplay","fullscreen"],settings:["captions","quality","speed","loop"],i18n:{restart:"Restart",rewind:"Rewind {seektime} secs",play:"Play",pause:"Pause",forward:"Forward {seektime} secs",seek:"Seek",played:"Played",buffered:"Buffered",currentTime:"Current time",duration:"Duration",volume:"Volume",mute:"Mute",unmute:"Unmute",enableCaptions:"Enable captions",disableCaptions:"Disable captions",enterFullscreen:"Enter fullscreen",exitFullscreen:"Exit fullscreen",frameTitle:"Player for {title}",captions:"Captions",settings:"Settings",speed:"Speed",quality:"Quality",loop:"Loop",start:"Start",end:"End",all:"All",reset:"Reset",none:"None",disabled:"Disabled"},urls:{vimeo:{api:"https://player.vimeo.com/api/player.js"},youtube:{api:"https://www.youtube.com/iframe_api"}},listeners:{seek:null,play:null,pause:null,restart:null,rewind:null,forward:null,mute:null,volume:null,captions:null,fullscreen:null,pip:null,airplay:null,speed:null,quality:null,loop:null,language:null},events:["ended","progress","stalled","playing","waiting","canplay","canplaythrough","loadstart","loadeddata","loadedmetadata","timeupdate","volumechange","play","pause","error","seeking","seeked","emptied","ratechange","cuechange","enterfullscreen","exitfullscreen","captionsenabled","captionsdisabled","languagechange","controlshidden","controlsshown","ready","statechange","qualitychange","qualityrequested"],selectors:{editable:"input, textarea, select, [contenteditable]",container:".plyr",controls:{container:null,wrapper:".plyr__controls"},labels:"[data-plyr]",buttons:{play:'[data-plyr="play"]',pause:'[data-plyr="pause"]',restart:'[data-plyr="restart"]',rewind:'[data-plyr="rewind"]',forward:'[data-plyr="fast-forward"]',mute:'[data-plyr="mute"]',captions:'[data-plyr="captions"]',fullscreen:'[data-plyr="fullscreen"]',pip:'[data-plyr="pip"]',airplay:'[data-plyr="airplay"]',settings:'[data-plyr="settings"]',loop:'[data-plyr="loop"]'},inputs:{seek:'[data-plyr="seek"]',volume:'[data-plyr="volume"]',speed:'[data-plyr="speed"]',language:'[data-plyr="language"]',quality:'[data-plyr="quality"]'},display:{currentTime:".plyr__time--current",duration:".plyr__time--duration",buffer:".plyr__progress--buffer",played:".plyr__progress--played",loop:".plyr__progress--loop",volume:".plyr__volume--display"},progress:".plyr__progress",captions:".plyr__captions",menu:{quality:".js-plyr__menu__list--quality"}},classNames:{video:"plyr__video-wrapper",embed:"plyr__video-embed",control:"plyr__control",type:"plyr--{0}",provider:"plyr--{0}",stopped:"plyr--stopped",playing:"plyr--playing",loading:"plyr--loading",hover:"plyr--hover",tooltip:"plyr__tooltip",hidden:"plyr__sr-only",hideControls:"plyr--hide-controls",isIos:"plyr--is-ios",isTouch:"plyr--is-touch",uiSupported:"plyr--full-ui",noTransition:"plyr--no-transition",menu:{value:"plyr__menu__value",badge:"plyr__badge",open:"plyr--menu-open"},captions:{enabled:"plyr--captions-enabled",active:"plyr--captions-active"},fullscreen:{enabled:"plyr--fullscreen-enabled",fallback:"plyr--fullscreen-fallback"},pip:{supported:"plyr--pip-supported",active:"plyr--pip-active"},airplay:{supported:"plyr--airplay-supported",active:"plyr--airplay-active"},tabFocus:"plyr__tab-focus"},keys:{google:null}},a={is:{object:function(e){return this.getConstructor(e)===Object},number:function(e){return this.getConstructor(e)===Number&&!Number.isNaN(e)},string:function(e){return this.getConstructor(e)===String},boolean:function(e){return this.getConstructor(e)===Boolean},function:function(e){return this.getConstructor(e)===Function},array:function(e){return!this.nullOrUndefined(e)&&Array.isArray(e)},nodeList:function(e){return this.instanceof(e,window.NodeList)},htmlElement:function(e){return this.instanceof(e,window.HTMLElement)},textNode:function(e){return this.getConstructor(e)===Text},event:function(e){return this.instanceof(e,window.Event)},cue:function(e){return this.instanceof(e,window.TextTrackCue)||this.instanceof(e,window.VTTCue)},track:function(e){return this.instanceof(e,window.TextTrack)||!this.nullOrUndefined(e)&&this.string(e.kind)},nullOrUndefined:function(e){return null===e||void 0===e},empty:function(e){return this.nullOrUndefined(e)||(this.string(e)||this.array(e)||this.nodeList(e))&&!e.length||this.object(e)&&!Object.keys(e).length},instanceof:function(e,t){return Boolean(e&&t&&e instanceof t)},getConstructor:function(e){return this.nullOrUndefined(e)?null:e.constructor}},getBrowser:function(){return{isIE:!!document.documentMode,isWebkit:"WebkitAppearance"in document.documentElement.style&&!/Edge/.test(navigator.userAgent),isIPhone:/(iPhone|iPod)/gi.test(navigator.platform),isIos:/(iPad|iPhone|iPod)/gi.test(navigator.platform)}},loadScript:function(e,t){var i=document.querySelector('script[src="'+e+'"]');if(null!==i)return i.callbacks=i.callbacks||[],void i.callbacks.push(t);var n=document.createElement("script");n.callbacks=n.callbacks||[],n.callbacks.push(t),a.is.function(t)&&n.addEventListener("load",function(e){n.callbacks.forEach(function(t){return t.call(null,e)}),n.callbacks=null},!1),n.src=e;var s=document.getElementsByTagName("script")[0];s.parentNode.insertBefore(n,s)},loadSprite:function(e,t){function i(e){this.innerHTML=e,document.body.insertBefore(this,document.body.childNodes[0])}if(a.is.string(e)){var n=a.is.string(t);if(!n||!document.querySelectorAll("#"+t).length){var s=document.createElement("div");if(a.toggleHidden(s,!0),n&&s.setAttribute("id",t),l.storage){var o=window.localStorage.getItem("cache-"+t);if(null!==o){var r=JSON.parse(o);return void i.call(s,r.content)}}fetch(e).then(function(e){return e.ok?e.text():null}).then(function(e){null!==e&&(l.storage&&window.localStorage.setItem("cache-"+t,JSON.stringify({content:e})),i.call(s,e))}).catch(function(){})}}},generateId:function(e){return e+"-"+Math.floor(1e4*Math.random())},inFrame:function(){try{return window.self!==window.top}catch(e){return!0}},wrap:function(e,t){var i=e.length?e:[e];Array.from(i).reverse().forEach(function(e,i){var n=i>0?t.cloneNode(!0):t,s=e.parentNode,a=e.nextSibling;n.appendChild(e),a?s.insertBefore(n,a):s.appendChild(n)})},createElement:function(e,t,i){var n=document.createElement(e);return a.is.object(t)&&a.setAttributes(n,t),a.is.string(i)&&(n.textContent=i),n},insertAfter:function(e,t){t.parentNode.insertBefore(e,t.nextSibling)},insertElement:function(e,t,i,n){t.appendChild(a.createElement(e,i,n))},removeElement:function(e){return a.is.htmlElement(e)&&a.is.htmlElement(e.parentNode)?(e.parentNode.removeChild(e),e):null},emptyElement:function(e){for(var t=e.childNodes.length;t>0;)e.removeChild(e.lastChild),t-=1},setAttributes:function(e,t){Object.keys(t).forEach(function(i){e.setAttribute(i,t[i])})},getAttributesFromSelector:function(e,t){if(!a.is.string(e)||a.is.empty(e))return{};var i={},n=t;return e.split(",").forEach(function(e){var t=e.trim(),s=t.replace(".",""),l=t.replace(/[[\]]/g,"").split("="),o=l[0],r=l.length>1?l[1].replace(/["']/g,""):"";switch(t.charAt(0)){case".":a.is.object(n)&&a.is.string(n.class)&&(n.class+=" "+s),i.class=s;break;case"#":i.id=t.replace("#","");break;case"[":i[o]=r}}),i},toggleClass:function(e,t,i){if(a.is.htmlElement(e)){var n=e.classList.contains(t);return e.classList[i?"add":"remove"](t),i&&!n||!i&&n}return null},hasClass:function(e,t){return a.is.htmlElement(e)&&e.classList.contains(t)},toggleHidden:function(e,t){a.is.htmlElement(e)&&(t?e.setAttribute("hidden",""):e.removeAttribute("hidden"))},matches:function(e,t){var i={Element:Element},n=i.matches||i.webkitMatchesSelector||i.mozMatchesSelector||i.msMatchesSelector||function(){return Array.from(document.querySelectorAll(t)).includes(this)};return n.call(e,t)},getElements:function(e){return this.elements.container.querySelectorAll(e)},getElement:function(e){return this.elements.container.querySelector(e)},findElements:function(){try{return this.elements.controls=a.getElement.call(this,this.config.selectors.controls.wrapper),this.elements.buttons={play:a.getElements.call(this,this.config.selectors.buttons.play),pause:a.getElement.call(this,this.config.selectors.buttons.pause),restart:a.getElement.call(this,this.config.selectors.buttons.restart),rewind:a.getElement.call(this,this.config.selectors.buttons.rewind),forward:a.getElement.call(this,this.config.selectors.buttons.forward),mute:a.getElement.call(this,this.config.selectors.buttons.mute),pip:a.getElement.call(this,this.config.selectors.buttons.pip),airplay:a.getElement.call(this,this.config.selectors.buttons.airplay),settings:a.getElement.call(this,this.config.selectors.buttons.settings),captions:a.getElement.call(this,this.config.selectors.buttons.captions),fullscreen:a.getElement.call(this,this.config.selectors.buttons.fullscreen)},this.elements.progress=a.getElement.call(this,this.config.selectors.progress),this.elements.inputs={seek:a.getElement.call(this,this.config.selectors.inputs.seek),volume:a.getElement.call(this,this.config.selectors.inputs.volume)},this.elements.display={buffer:a.getElement.call(this,this.config.selectors.display.buffer),duration:a.getElement.call(this,this.config.selectors.display.duration),currentTime:a.getElement.call(this,this.config.selectors.display.currentTime)},a.is.htmlElement(this.elements.progress)&&(this.elements.display.seekTooltip=this.elements.progress.querySelector("."+this.config.classNames.tooltip)),!0}catch(e){return this.console.warn("It looks like there is a problem with your custom controls HTML",e),this.toggleNativeControls(!0),!1}},getFocusElement:function(){var e=document.activeElement;return e=e&&e!==document.body?document.querySelector(":focus"):null},trapFocus:function(){var e=this,t=a.getElements.call(this,"button:not(:disabled), input:not(:disabled), [tabindex]"),i=t[0],n=t[t.length-1];a.on(this.elements.container,"keydown",function(t){if("Tab"===t.key&&9===t.keyCode&&e.fullscreen.active){var s=a.getFocusElement();s!==n||t.shiftKey?s===i&&t.shiftKey&&(n.focus(),t.preventDefault()):(i.focus(),t.preventDefault())}},!1)},toggleListener:function(e,t,i,n,s,o){if(!a.is.nullOrUndefined(e))if(a.is.nodeList(e))Array.from(e).forEach(function(e){e instanceof Node&&a.toggleListener.call(null,e,t,i,n,s,o)});else{var r=t.split(" "),c=!!a.is.boolean(o)&&o;l.passiveListeners&&(c={passive:!a.is.boolean(s)||s,capture:!!a.is.boolean(o)&&o}),r.forEach(function(t){e[n?"addEventListener":"removeEventListener"](t,i,c)})}},on:function(e,t,i,n,s){a.toggleListener(e,t,i,!0,n,s)},off:function(e,t,i,n,s){a.toggleListener(e,t,i,!1,n,s)},dispatchEvent:function(e,t,i,n){if(e&&t){var s=new CustomEvent(t,{bubbles:!!a.is.boolean(i)&&i,detail:Object.assign({},n,{plyr:this instanceof Plyr?this:null})});e.dispatchEvent(s)}},toggleState:function(e,t){if(a.is.htmlElement(e)){var i="true"===e.getAttribute("aria-pressed"),n=a.is.boolean(t)?t:!i;e.setAttribute("aria-pressed",n)}},getPercentage:function(e,t){return 0===e||0===t||Number.isNaN(e)||Number.isNaN(t)?0:(e/t*100).toFixed(2)},extend:function(){for(var e=arguments.length,t=Array(e),i=0;i<e;i++)t[i]=arguments[i];var n=t.length;if(!n)return null;if(1===n)return t[0];var s=Array.prototype.shift.call(t);return a.is.object(s)||(s={}),t.forEach(function(e){a.is.object(e)&&Object.keys(e).forEach(function(t){e[t]&&e[t].constructor&&e[t].constructor===Object?(s[t]=s[t]||{},a.extend(s[t],e[t])):s[t]=e[t]})}),s},parseYouTubeId:function(e){return e.match(/^.*(youtu.be\/|v\/|u\/\w\/|embed\/|watch\?v=|&v=)([^#&?]*).*/)?RegExp.$2:e},parseVimeoId:function(e){if(a.is.number(Number(e)))return e;return e.match(/^.*(vimeo.com\/|video\/)(\d+).*/)?RegExp.$2:e},buildUrlParameters:function(e){return a.is.object(e)?Object.keys(e).map(function(t){return encodeURIComponent(t)+"="+encodeURIComponent(e[t])}).join("&"):""},stripHTML:function(e){var t=document.createDocumentFragment(),i=document.createElement("div");return t.appendChild(i),i.innerHTML=e,t.firstChild.innerText},getAspectRatio:function(e,t){var i=function e(t,i){return 0===i?t:e(i,t%i)}(e,t);return e/i+":"+t/i},transitionEnd:function(){var e=document.createElement("span"),t=Object.keys({WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd otransitionend",transition:"transitionend"}).find(function(t){return void 0!==e.style[t]});return"string"==typeof t&&t}()},l={audio:"canPlayType"in document.createElement("audio"),video:"canPlayType"in document.createElement("video"),check:function(e,t,i){var n=!1,s=!1,o=a.getBrowser(),r=o.isIPhone&&i&&l.inline;switch(t+":"+e){case"html5:video":s=(n=l.video)&&l.rangeInput&&(!o.isIPhone||r);break;case"html5:audio":s=(n=l.audio)&&l.rangeInput;break;case"youtube:video":n=!0,s=l.rangeInput&&(!o.isIPhone||r);break;case"vimeo:video":n=!0,s=l.rangeInput&&!o.isIPhone;break;default:s=(n=l.audio&&l.video)&&l.rangeInput}return{api:n,ui:s}},storage:function(){if(!("localStorage"in window))return!1;try{return window.localStorage.setItem("___test","___test"),window.localStorage.removeItem("___test"),!0}catch(e){return!1}}(),pip:!a.getBrowser().isIPhone&&a.is.function(a.createElement("video").webkitSetPresentationMode),airplay:a.is.function(window.WebKitPlaybackTargetAvailabilityEvent),inline:"playsInline"in document.createElement("video"),mime:function(e){var t=this.media;try{if(!this.isHTML5||!a.is.function(t.canPlayType))return!1;if(this.isVideo)switch(e){case"video/webm":return t.canPlayType('video/webm; codecs="vp8, vorbis"').replace(/no/,"");case"video/mp4":return t.canPlayType('video/mp4; codecs="avc1.42E01E, mp4a.40.2"').replace(/no/,"");case"video/ogg":return t.canPlayType('video/ogg; codecs="theora"').replace(/no/,"");default:return!1}else if(this.isAudio)switch(e){case"audio/mpeg":return t.canPlayType("audio/mpeg;").replace(/no/,"");case"audio/ogg":return t.canPlayType('audio/ogg; codecs="vorbis"').replace(/no/,"");case"audio/wav":return t.canPlayType('audio/wav; codecs="1"').replace(/no/,"");default:return!1}}catch(e){return!1}return!1},textTracks:"textTracks"in document.createElement("video"),passiveListeners:function(){var e=!1;try{var t=Object.defineProperty({},"passive",{get:function(){return e=!0,null}});window.addEventListener("test",null,t)}catch(e){}return e}(),rangeInput:function(){var e=document.createElement("input");return e.type="range","range"===e.type}(),touch:"ontouchstart"in document.documentElement,transitions:!1!==a.transitionEnd,reducedMotion:"matchMedia"in window&&window.matchMedia("(prefers-reduced-motion)").matches},o=function(){var e=!1;return a.is.function(document.cancelFullScreen)?e="":["webkit","o","moz","ms","khtml"].some(function(t){return a.is.function(document[t+"CancelFullScreen"])?(e=t,!0):!(!a.is.function(document.msExitFullscreen)||!document.msFullscreenEnabled)&&(e="ms",!0)}),e}(),r={prefix:o,enabled:document.fullscreenEnabled||document.webkitFullscreenEnabled||document.mozFullScreenEnabled||document.msFullscreenEnabled,eventType:"ms"===o?"MSFullscreenChange":o+"fullscreenchange",isFullScreen:function(e){if(!r.enabled)return!1;var t=a.is.nullOrUndefined(e)?document.body:e;switch(o){case"":return document.fullscreenElement===t;case"moz":return document.mozFullScreenElement===t;default:return document[o+"FullscreenElement"]===t}},requestFullScreen:function(e){if(!r.enabled)return!1;var t=a.is.nullOrUndefined(e)?document.body:e;return o.length?t[o+("ms"===o?"RequestFullscreen":"RequestFullScreen")]():t.requestFullScreen()},cancelFullScreen:function(){return!!r.enabled&&(o.length?document[o+("ms"===o?"ExitFullscreen":"CancelFullScreen")]():document.cancelFullScreen())},element:function(){return r.enabled?o.length?document[o+"FullscreenElement"]:document.fullscreenElement:null},setup:function(){if(this.supported.ui&&!this.isAudio&&this.config.fullscreen.enabled){var e=r.enabled;e||this.config.fullscreen.fallback&&!a.inFrame()?(this.console.log((e?"Native":"Fallback")+" fullscreen enabled"),a.toggleClass(this.elements.container,this.config.classNames.fullscreen.enabled,!0)):this.console.log("Fullscreen not supported and fallback disabled"),this.elements.buttons&&this.elements.buttons.fullscreen&&a.toggleState(this.elements.buttons.fullscreen,!1),a.trapFocus.call(this)}}},c={setup:function(){var e=null,i={};return l.storage&&this.config.storage.enabled?(window.localStorage.removeItem("plyr-volume"),(e=window.localStorage.getItem(this.config.storage.key))&&(/^\d+(\.\d+)?$/.test(e)?t({volume:parseFloat(e)}):i=JSON.parse(e)),i):i},set:t,get:e},u=a.getBrowser(),d={global:function(){var e=this,t=null,i=function(e){return e.keyCode?e.keyCode:e.which},n=function(n){var s=i(n),l="keydown"===n.type,o=l&&s===t;if(!(n.altKey||n.ctrlKey||n.metaKey||n.shiftKey)&&a.is.number(s)){if(l){var c=[48,49,50,51,52,53,54,56,57,32,75,38,40,77,39,37,70,67,73,76,79],u=a.getFocusElement();if(a.is.htmlElement(u)&&a.matches(u,e.config.selectors.editable))return;switch(c.includes(s)&&(n.preventDefault(),n.stopPropagation()),s){case 48:case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 57:o||(e.currentTime=e.duration/10*(s-48));break;case 32:case 75:o||e.togglePlay();break;case 38:e.increaseVolume(.1);break;case 40:e.decreaseVolume(.1);break;case 77:o||(e.muted=!e.muted);break;case 39:e.forward();break;case 37:e.rewind();break;case 70:e.toggleFullscreen();break;case 67:o||e.toggleCaptions();break;case 76:e.loop=!e.loop}!r.enabled&&e.fullscreen.active&&27===s&&e.toggleFullscreen(),t=s}else t=null}};this.config.keyboard.global?a.on(window,"keydown keyup",n,!1):this.config.keyboard.focused&&a.on(this.elements.container,"keydown keyup",n,!1),a.on(this.elements.container,"focusout",function(t){a.toggleClass(t.target,e.config.classNames.tabFocus,!1)}),a.on(this.elements.container,"keydown",function(t){9===t.keyCode&&window.setTimeout(function(){a.toggleClass(a.getFocusElement(),e.config.classNames.tabFocus,!0)},0)}),this.config.hideControls&&a.on(this.elements.container,"mouseenter mouseleave mousemove touchstart touchend touchmove enterfullscreen exitfullscreen",function(t){e.toggleControls(t)}),r.enabled&&a.on(document,r.eventType,function(t){e.toggleFullscreen(t)})},media:function(){var e=this;if(a.on(this.media,"timeupdate seeking",function(t){return h.timeUpdate.call(e,t)}),a.on(this.media,"durationchange loadedmetadata",function(t){return h.durationUpdate.call(e,t)}),a.on(this.media,"loadeddata",function(){a.toggleHidden(e.elements.volume,!e.hasAudio),a.toggleHidden(e.elements.buttons.mute,!e.hasAudio)}),a.on(this.media,"ended",function(){e.isHTML5&&e.isVideo&&e.config.showPosterOnEnd&&(e.restart(),e.media.load())}),a.on(this.media,"progress playing",function(t){return h.updateProgress.call(e,t)}),a.on(this.media,"volumechange",function(t){return h.updateVolume.call(e,t)}),a.on(this.media,"playing play pause ended",function(t){return h.checkPlaying.call(e,t)}),a.on(this.media,"stalled waiting canplay seeked playing",function(t){return h.checkLoading.call(e,t)}),this.supported.ui&&this.config.clickToPlay&&!this.isAudio){var t=a.getElement.call(this,"."+this.config.classNames.video);if(!a.is.htmlElement(t))return;a.on(t,"click",function(){e.config.hideControls&&l.touch&&!e.paused||(e.paused?e.play():e.ended?(e.restart(),e.play()):e.pause())})}this.config.disableContextMenu&&a.on(this.media,"contextmenu",function(e){e.preventDefault()},!1),a.on(this.media,"ratechange",function(){m.updateSetting.call(e,"speed"),c.set.call(e,{speed:e.speed})}),a.on(this.media,"qualitychange",function(){m.updateSetting.call(e,"quality"),c.set.call(e,{quality:e.quality})}),a.on(this.media,"languagechange",function(){c.set.call(e,{language:e.language})}),a.on(this.media,"volumechange",function(){c.set.call(e,{volume:e.volume,muted:e.muted})}),a.on(this.media,"captionsenabled captionsdisabled",function(){m.updateSetting.call(e,"captions"),c.set.call(e,{captions:e.captions.enabled})}),a.on(this.media,this.config.events.concat(["keyup","keydown"]).join(" "),function(t){var i={};"error"===t.type&&(i=e.media.error),a.dispatchEvent.call(e,e.elements.container,t.type,!0,i)})},controls:function(){var e=this,t=u.isIE?"change":"input",i=function(t,i,n){var s=e.config.listeners[i];a.is.function(s)&&s.call(e,t),!t.defaultPrevented&&a.is.function(n)&&n.call(e,t)};a.on(this.elements.buttons.play,"click",function(t){return i(t,"play",function(){e.togglePlay()})}),a.on(this.elements.buttons.restart,"click",function(t){return i(t,"restart",function(){e.restart()})}),a.on(this.elements.buttons.rewind,"click",function(t){return i(t,"rewind",function(){e.rewind()})}),a.on(this.elements.buttons.forward,"click",function(t){return i(t,"forward",function(){e.forward()})}),a.on(this.elements.buttons.mute,"click",function(t){return i(t,"mute",function(){e.muted=!e.muted})}),a.on(this.elements.buttons.captions,"click",function(t){return i(t,"captions",function(){e.toggleCaptions()})}),a.on(this.elements.buttons.fullscreen,"click",function(t){return i(t,"fullscreen",function(){e.toggleFullscreen()})}),a.on(this.elements.buttons.pip,"click",function(t){return i(t,"pip",function(){e.pip="toggle"})}),a.on(this.elements.buttons.airplay,"click",function(t){return i(t,"airplay",function(){e.airplay()})}),a.on(this.elements.buttons.settings,"click",function(t){m.toggleMenu.call(e,t)}),a.on(document.documentElement,"click",function(t){m.toggleMenu.call(e,t)}),a.on(this.elements.settings.form,"click",function(t){t.stopPropagation(),a.matches(t.target,e.config.selectors.inputs.language)?i(t,"language",function(){e.language=t.target.value}):a.matches(t.target,e.config.selectors.inputs.quality)?i(t,"quality",function(){e.quality=t.target.value}):a.matches(t.target,e.config.selectors.inputs.speed)?i(t,"speed",function(){e.speed=parseFloat(t.target.value)}):m.showTab.call(e,t)}),a.on(this.elements.inputs.seek,t,function(t){return i(t,"seek",function(){e.currentTime=t.target.value/t.target.max*e.duration})}),this.config.toggleInvert&&!a.is.htmlElement(this.elements.display.duration)&&a.on(this.elements.display.currentTime,"click",function(){0!==e.currentTime&&(e.config.invertTime=!e.config.invertTime,h.timeUpdate.call(e))}),a.on(this.elements.inputs.volume,t,function(t){return i(t,"volume",function(){e.volume=t.target.value})}),u.isWebkit&&a.on(a.getElements.call(this,'input[type="range"]'),"input",function(t){m.updateRangeFill.call(e,t.target)}),a.on(this.elements.progress,"mouseenter mouseleave mousemove",function(t){return m.updateSeekTooltip.call(e,t)}),this.config.hideControls&&(a.on(this.elements.controls,"mouseenter mouseleave",function(t){e.elements.controls.hover="mouseenter"===t.type}),a.on(this.elements.controls,"mousedown mouseup touchstart touchend touchcancel",function(t){e.elements.controls.pressed=["mousedown","touchstart"].includes(t.type)}),a.on(this.elements.controls,"focusin focusout",function(t){e.toggleControls(t)})),a.on(this.elements.inputs.volume,"wheel",function(t){return i(t,"volume",function(){var i=t.webkitDirectionInvertedFromDevice,n=0;(t.deltaY<0||t.deltaX>0)&&(i?(e.decreaseVolume(.02),n=-1):(e.increaseVolume(.02),n=1)),(t.deltaY>0||t.deltaX<0)&&(i?(e.increaseVolume(.02),n=1):(e.decreaseVolume(.02),n=-1)),(1===n&&e.media.volume<1||-1===n&&e.media.volume>0)&&t.preventDefault()})},!1)}},h={addStyleHook:function(){a.toggleClass(this.elements.container,this.config.selectors.container.replace(".",""),!0),a.toggleClass(this.elements.container,this.config.classNames.uiSupported,this.supported.ui)},toggleNativeControls:function(){arguments.length>0&&void 0!==arguments[0]&&arguments[0]&&this.isHTML5?this.media.setAttribute("controls",""):this.media.removeAttribute("controls")},build:function(){if(d.media.call(this),!this.supported.ui)return this.console.warn("Basic support only for "+this.provider+" "+this.type),a.removeElement.call(this,"controls"),a.removeElement.call(this,"buttons.play"),void h.toggleNativeControls.call(this,!0);a.is.htmlElement(this.elements.controls)||(m.inject.call(this),d.controls.call(this)),a.is.htmlElement(this.elements.controls)&&(h.toggleNativeControls.call(this),r.setup.call(this),g.setup.call(this),this.volume=null,this.muted=null,this.speed=null,this.loop=null,this.options.quality=[],h.timeUpdate.call(this),h.checkPlaying.call(this),this.ready=!0,a.dispatchEvent.call(this,this.media,"ready"),h.setTitle.call(this))},setTitle:function(){var e=this.config.i18n.play;if(a.is.string(this.config.title)&&!a.is.empty(this.config.title)&&(e+=", "+this.config.title,this.elements.container.setAttribute("aria-label",this.config.title)),a.is.nodeList(this.elements.buttons.play)&&Array.from(this.elements.buttons.play).forEach(function(t){t.setAttribute("aria-label",e)}),this.isEmbed){var t=a.getElement.call(this,"iframe");if(!a.is.htmlElement(t))return;var i=a.is.empty(this.config.title)?"video":this.config.title;t.setAttribute("title",this.config.i18n.frameTitle.replace("{title}",i))}},checkPlaying:function(){var e=this;a.toggleClass(this.elements.container,this.config.classNames.playing,this.playing),a.toggleClass(this.elements.container,this.config.classNames.stopped,this.paused),a.is.nodeList(this.elements.buttons.play)&&Array.from(this.elements.buttons.play).forEach(function(t){return a.toggleState(t,e.playing)}),this.toggleControls(!this.playing)},checkLoading:function(e){var t=this;this.loading=["stalled","waiting"].includes(e.type),clearTimeout(this.timers.loading),this.timers.loading=setTimeout(function(){a.toggleClass(t.elements.container,t.config.classNames.loading,t.loading),t.toggleControls(t.loading)},this.loading?250:0)},updateVolume:function(){this.supported.ui&&(a.is.htmlElement(this.elements.inputs.volume)&&h.setRange.call(this,this.elements.inputs.volume,this.muted?0:this.volume),a.is.htmlElement(this.elements.buttons.mute)&&a.toggleState(this.elements.buttons.mute,this.muted||0===this.volume))},setRange:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;a.is.htmlElement(e)&&(e.value=t,m.updateRangeFill.call(this,e))},setProgress:function(e,t){var i=a.is.number(t)?t:0,n=a.is.htmlElement(e)?e:this.elements.display.buffer;if(a.is.htmlElement(n)){n.value=i;var s=n.getElementsByTagName("span")[0];a.is.htmlElement(s)&&(s.childNodes[0].nodeValue=i)}},updateProgress:function(e){var t=this;if(this.supported.ui&&a.is.event(e)){var i=0;if(e)switch(e.type){case"timeupdate":case"seeking":i=a.getPercentage(this.currentTime,this.duration),"timeupdate"===e.type&&h.setRange.call(this,this.elements.inputs.seek,i);break;case"playing":case"progress":i=function(){var e=t.media.buffered;return e&&e.length?a.getPercentage(e.end(0),t.duration):a.is.number(e)?100*e:0}(),h.setProgress.call(this,this.elements.display.buffer,i)}}},updateTimeDisplay:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,i=arguments.length>2&&void 0!==arguments[2]&&arguments[2];if(a.is.htmlElement(e)&&a.is.number(t)){var n=function(e){return("0"+e).slice(-2)},s=function(e){return parseInt(e/60/60%60,10)},l=s(t),o=function(e){return parseInt(e/60%60,10)}(t),r=function(e){return parseInt(e%60,10)}(t);s(this.duration)>0?l+=":":l="",e.textContent=(i?"-":"")+l+n(o)+":"+n(r)}},timeUpdate:function(e){var t=!a.is.htmlElement(this.elements.display.duration)&&this.config.invertTime;h.updateTimeDisplay.call(this,this.elements.display.currentTime,t?this.duration-this.currentTime:this.currentTime,t),e&&"timeupdate"===e.type&&this.media.seeking||h.updateProgress.call(this,e)},durationUpdate:function(){this.supported.ui&&(!a.is.htmlElement(this.elements.display.duration)&&this.config.displayDuration&&this.paused&&h.updateTimeDisplay.call(this,this.elements.display.currentTime,this.duration),a.is.htmlElement(this.elements.display.duration)&&h.updateTimeDisplay.call(this,this.elements.display.duration,this.duration),m.updateSeekTooltip.call(this))}},p=a.getBrowser(),m={updateRangeFill:function(e){if(p.isWebkit){var t=a.is.event(e)?e.target:e;if(a.is.htmlElement(t)&&"range"===t.getAttribute("type")){a.is.htmlElement(this.elements.styleSheet)||(this.elements.styleSheet=a.createElement("style"),this.elements.container.appendChild(this.elements.styleSheet));var i=this.elements.styleSheet.sheet,n=t.value/t.max*100,s="#"+t.id+"::-webkit-slider-runnable-track",l="{ background-image: linear-gradient(to right, currentColor "+n+"%, transparent "+n+"%) }",o=Array.from(i.rules).findIndex(function(e){return e.selectorText===s});-1!==o&&i.deleteRule(o),i.insertRule([s,l].join(" "))}}},getIconUrl:function(){return{url:this.config.iconUrl,absolute:0===this.config.iconUrl.indexOf("http")||p.isIE&&!window.svg4everybody}},createIcon:function(e,t){var i=m.getIconUrl.call(this),n=(i.absolute?"":i.url)+"#"+this.config.iconPrefix,s=document.createElementNS("http://www.w3.org/2000/svg","svg");a.setAttributes(s,a.extend(t,{role:"presentation"}));var l=document.createElementNS("http://www.w3.org/2000/svg","use"),o=n+"-"+e;return"href"in l?l.setAttributeNS("http://www.w3.org/1999/xlink","href",o):l.setAttributeNS("http://www.w3.org/1999/xlink","xlink:href",o),s.appendChild(l),s},createLabel:function(e,t){var i=this.config.i18n[e],n=Object.assign({},t);switch(e){case"pip":i="PIP";break;case"airplay":i="AirPlay"}return"class"in n?n.class+=" "+this.config.classNames.hidden:n.class=this.config.classNames.hidden,a.createElement("span",n,i)},createBadge:function(e){if(a.is.empty(e))return null;var t=a.createElement("span",{class:this.config.classNames.menu.value});return t.appendChild(a.createElement("span",{class:this.config.classNames.menu.badge},e)),t},createButton:function(e,t){var i=a.createElement("button"),n=Object.assign({},t),s=e,l=!1,o=void 0,r=void 0,c=void 0,u=void 0;switch("type"in n||(n.type="button"),"class"in n?n.class.includes(this.config.classNames.control)&&(n.class+=" "+this.config.classNames.control):n.class=this.config.classNames.control,s){case"play":l=!0,o="play",c="pause",r="play",u="pause";break;case"mute":l=!0,o="mute",c="unmute",r="volume",u="muted";break;case"captions":l=!0,o="enableCaptions",c="disableCaptions",r="captions-off",u="captions-on";break;case"fullscreen":l=!0,o="enterFullscreen",c="exitFullscreen",r="enter-fullscreen",u="exit-fullscreen";break;case"play-large":n.class+=" "+this.config.classNames.control+"--overlaid",s="play",o="play",r="play";break;default:o=s,r=s}return l?(i.appendChild(m.createIcon.call(this,u,{class:"icon--pressed"})),i.appendChild(m.createIcon.call(this,r,{class:"icon--not-pressed"})),i.appendChild(m.createLabel.call(this,c,{class:"label--pressed"})),i.appendChild(m.createLabel.call(this,o,{class:"label--not-pressed"})),n["aria-pressed"]=!1,n["aria-label"]=this.config.i18n[o]):(i.appendChild(m.createIcon.call(this,r)),i.appendChild(m.createLabel.call(this,o))),a.extend(n,a.getAttributesFromSelector(this.config.selectors.buttons[s],n)),a.setAttributes(i,n),this.elements.buttons[s]=i,i},createRange:function(e,t){var i=a.createElement("label",{for:t.id,class:this.config.classNames.hidden},this.config.i18n[e]),n=a.createElement("input",a.extend(a.getAttributesFromSelector(this.config.selectors.inputs[e]),{type:"range",min:0,max:100,step:.01,value:0,autocomplete:"off"},t));return this.elements.inputs[e]=n,m.updateRangeFill.call(this,n),{label:i,input:n}},createProgress:function(e,t){var i=a.createElement("progress",a.extend(a.getAttributesFromSelector(this.config.selectors.display[e]),{min:0,max:100,value:0},t));if("volume"!==e){i.appendChild(a.createElement("span",null,"0"));var n="";switch(e){case"played":n=this.config.i18n.played;break;case"buffer":n=this.config.i18n.buffered}i.textContent="% "+n.toLowerCase()}return this.elements.display[e]=i,i},createTime:function(e){var t=a.createElement("span",{class:"plyr__time"});return t.appendChild(a.createElement("span",{class:this.config.classNames.hidden},this.config.i18n[e])),t.appendChild(a.createElement("span",a.getAttributesFromSelector(this.config.selectors.display[e]),"00:00")),this.elements.display[e]=t,t},createMenuItem:function(e,t,i,n){var s=arguments.length>4&&void 0!==arguments[4]?arguments[4]:null,l=arguments.length>5&&void 0!==arguments[5]&&arguments[5],o=a.createElement("li"),r=a.createElement("label",{class:this.config.classNames.control}),c=a.createElement("input",a.extend(a.getAttributesFromSelector(this.config.selectors.inputs[i]),{type:"radio",name:"plyr-"+i,value:e,checked:l,class:"plyr__sr-only"})),u=a.createElement("span",{"aria-hidden":!0});r.appendChild(c),r.appendChild(u),r.insertAdjacentHTML("beforeend",n),a.is.htmlElement(s)&&r.appendChild(s),o.appendChild(r),t.appendChild(o)},updateSeekTooltip:function(e){if(this.config.tooltips.seek&&a.is.htmlElement(this.elements.inputs.seek)&&a.is.htmlElement(this.elements.display.seekTooltip)&&0!==this.duration){var t=0,i=this.elements.inputs.seek.getBoundingClientRect(),n=this.config.classNames.tooltip+"--visible";if(a.is.event(e))t=100/i.width*(e.pageX-i.left);else{if(!a.hasClass(this.elements.display.seekTooltip,n))return;t=this.elements.display.seekTooltip.style.left.replace("%","")}t<0?t=0:t>100&&(t=100),h.updateTimeDisplay.call(this,this.elements.display.seekTooltip,this.duration/100*t),this.elements.display.seekTooltip.style.left=t+"%",a.is.event(e)&&["mouseenter","mouseleave"].includes(e.type)&&a.toggleClass(this.elements.display.seekTooltip,n,"mouseenter"===e.type)}},toggleTab:function(e,t){var i=this.elements.settings.tabs[e],n=this.elements.settings.panes[e];a.toggleHidden(i,!t),a.toggleHidden(n,!t)},setQualityMenu:function(e){var t=this,i=this.elements.settings.panes.quality.querySelector("ul");a.is.array(e)?this.options.quality=e.filter(function(e){return t.config.quality.options.includes(e)}):this.options.quality=this.config.quality.options;var n=!a.is.empty(this.options.quality)&&this.isYouTube;if(m.toggleTab.call(this,"quality",n),n){a.emptyElement(i);var s=function(e){var i="";switch(e){case"hd2160":i="4K";break;case"hd1440":i="WQHD";break;case"hd1080":case"hd720":i="HD"}return i.length?m.createBadge.call(t,i):null};this.options.quality.forEach(function(e){return m.createMenuItem.call(t,e,i,"quality",m.getLabel.call(t,"quality",e),s(e))}),m.updateSetting.call(this,"quality",i)}},getLabel:function(e,t){switch(e){case"speed":return 1===t?"Normal":t+"&times;";case"quality":switch(t){case"hd2160":return"2160P";case"hd1440":return"1440P";case"hd1080":return"1080P";case"hd720":return"720P";case"large":return"480P";case"medium":return"360P";case"small":return"240P";case"tiny":return"Tiny";case"default":return"Auto";default:return t}case"captions":return m.getLanguage.call(this);default:return null}},updateSetting:function(e,t){var i=this.elements.settings.panes[e],n=null,s=t;switch(e){case"captions":n=this.captions.language,this.captions.enabled||(n="");break;default:if(n=this[e],a.is.empty(n)&&(n=this.config[e].default),!this.options[e].includes(n))return void this.console.warn("Unsupported value of '"+n+"' for "+e);if(!this.config[e].options.includes(n))return void this.console.warn("Disabled value of '"+n+"' for "+e)}a.is.htmlElement(s)||(s=i&&i.querySelector("ul"));var l=s&&s.querySelector('input[value="'+n+'"]');a.is.htmlElement(l)&&(l.checked=!0,this.elements.settings.tabs[e].querySelector("."+this.config.classNames.menu.value).innerHTML=m.getLabel.call(this,e,n))},getLanguage:function(){if(!this.supported.ui)return null;if(!l.textTracks||!g.getTracks.call(this).length)return this.config.i18n.none;if(this.captions.enabled){var e=g.getCurrentTrack.call(this);if(a.is.track(e))return e.label}return this.config.i18n.disabled},setCaptionsMenu:function(){var e=this,t=this.elements.settings.panes.captions.querySelector("ul"),i=g.getTracks.call(this).length;if(m.toggleTab.call(this,"captions",i),a.emptyElement(t),i){var n=g.getTracks.call(this).map(function(e){return{language:e.language,label:a.is.empty(e.label)?e.language.toUpperCase():e.label}});n.unshift({language:"",label:this.config.i18n.none}),n.forEach(function(i){m.createMenuItem.call(e,i.language,t,"language",i.label||i.language,m.createBadge.call(e,i.language.toUpperCase()),i.language.toLowerCase()===e.captions.language.toLowerCase())}),m.updateSetting.call(this,"captions",t)}},setSpeedMenu:function(){var e=this;a.is.object(this.options.speed)&&Object.keys(this.options.speed).length||(this.options.speed=[.5,.75,1,1.25,1.5,1.75,2]),this.options.speed=this.options.speed.filter(function(t){return e.config.speed.options.includes(t)});var t=!a.is.empty(this.options.speed);if(m.toggleTab.call(this,"speed",t),t){var i=this.elements.settings.panes.speed.querySelector("ul");a.toggleHidden(this.elements.settings.tabs.speed,!1),a.toggleHidden(this.elements.settings.panes.speed,!1),a.emptyElement(i),this.options.speed.forEach(function(t){return m.createMenuItem.call(e,t,i,"speed",m.getLabel.call(e,"speed",t))}),m.updateSetting.call(this,"speed",i)}},toggleMenu:function(e){var t=this.elements.settings.form,i=this.elements.buttons.settings,n=a.is.boolean(e)?e:a.is.htmlElement(t)&&"true"===t.getAttribute("aria-hidden");if(a.is.event(e)){var s=a.is.htmlElement(t)&&t.contains(e.target),l=e.target===this.elements.buttons.settings;if(s||!s&&!l&&n)return;l&&e.stopPropagation()}a.is.htmlElement(i)&&i.setAttribute("aria-expanded",n),a.is.htmlElement(t)&&(t.setAttribute("aria-hidden",!n),a.toggleClass(this.elements.container,this.config.classNames.menu.open,n),n?t.removeAttribute("tabindex"):t.setAttribute("tabindex",-1))},getTabSize:function(e){var t=e.cloneNode(!0);t.style.position="absolute",t.style.opacity=0,t.setAttribute("aria-hidden",!1),Array.from(t.querySelectorAll("input[name]")).forEach(function(e){var t=e.getAttribute("name");e.setAttribute("name",t+"-clone")}),e.parentNode.appendChild(t);var i=t.scrollWidth,n=t.scrollHeight;return a.removeElement(t),{width:i,height:n}},showTab:function(e){var t=this.elements.settings.menu,i=e.target,n="false"===i.getAttribute("aria-expanded"),s=document.getElementById(i.getAttribute("aria-controls"));if(a.is.htmlElement(s)&&"tabpanel"===s.getAttribute("role")){var o=t.querySelector('[role="tabpanel"][aria-hidden="false"]'),r=o.parentNode;if(Array.from(t.querySelectorAll('[aria-controls="'+o.getAttribute("id")+'"]')).forEach(function(e){e.setAttribute("aria-expanded",!1)}),l.transitions&&!l.reducedMotion){r.style.width=o.scrollWidth+"px",r.style.height=o.scrollHeight+"px";var c=m.getTabSize.call(this,s),u=function e(t){t.target===r&&["width","height"].includes(t.propertyName)&&(r.style.width="",r.style.height="",a.off(r,a.transitionEnd,e))};a.on(r,a.transitionEnd,u),r.style.width=c.width+"px",r.style.height=c.height+"px"}o.setAttribute("aria-hidden",!0),o.setAttribute("tabindex",-1),s.setAttribute("aria-hidden",!n),i.setAttribute("aria-expanded",n),s.removeAttribute("tabindex"),s.querySelectorAll("button:not(:disabled), input:not(:disabled), [tabindex]")[0].focus()}},create:function(e){var t=this;if(a.is.empty(this.config.controls))return null;var i=a.createElement("div",a.getAttributesFromSelector(this.config.selectors.controls.wrapper));if(this.config.controls.includes("restart")&&i.appendChild(m.createButton.call(this,"restart")),this.config.controls.includes("rewind")&&i.appendChild(m.createButton.call(this,"rewind")),this.config.controls.includes("play")&&i.appendChild(m.createButton.call(this,"play")),this.config.controls.includes("fast-forward")&&i.appendChild(m.createButton.call(this,"fast-forward")),this.config.controls.includes("progress")){var n=a.createElement("span",a.getAttributesFromSelector(this.config.selectors.progress)),s=m.createRange.call(this,"seek",{id:"plyr-seek-"+e.id});if(n.appendChild(s.label),n.appendChild(s.input),n.appendChild(m.createProgress.call(this,"buffer")),this.config.tooltips.seek){var o=a.createElement("span",{role:"tooltip",class:this.config.classNames.tooltip},"00:00");n.appendChild(o),this.elements.display.seekTooltip=o}this.elements.progress=n,i.appendChild(this.elements.progress)}if(this.config.controls.includes("current-time")&&i.appendChild(m.createTime.call(this,"currentTime")),this.config.controls.includes("duration")&&i.appendChild(m.createTime.call(this,"duration")),this.config.controls.includes("mute")&&i.appendChild(m.createButton.call(this,"mute")),this.config.controls.includes("volume")){var r=a.createElement("span",{class:"plyr__volume"}),c={max:1,step:.05,value:this.config.volume},u=m.createRange.call(this,"volume",a.extend(c,{id:"plyr-volume-"+e.id}));r.appendChild(u.label),r.appendChild(u.input),this.elements.volume=r,i.appendChild(r)}if(this.config.controls.includes("captions")&&i.appendChild(m.createButton.call(this,"captions")),this.config.controls.includes("settings")&&!a.is.empty(this.config.settings)){var d=a.createElement("div",{class:"plyr__menu"});d.appendChild(m.createButton.call(this,"settings",{id:"plyr-settings-toggle-"+e.id,"aria-haspopup":!0,"aria-controls":"plyr-settings-"+e.id,"aria-expanded":!1}));var h=a.createElement("form",{class:"plyr__menu__container",id:"plyr-settings-"+e.id,"aria-hidden":!0,"aria-labelled-by":"plyr-settings-toggle-"+e.id,role:"tablist",tabindex:-1}),p=a.createElement("div"),g=a.createElement("div",{id:"plyr-settings-"+e.id+"-home","aria-hidden":!1,"aria-labelled-by":"plyr-settings-toggle-"+e.id,role:"tabpanel"}),f=a.createElement("ul",{role:"tablist"});this.config.settings.forEach(function(i){var n=a.createElement("li",{role:"tab",hidden:""}),s=a.createElement("button",a.extend(a.getAttributesFromSelector(t.config.selectors.buttons.settings),{type:"button",class:t.config.classNames.control+" "+t.config.classNames.control+"--forward",id:"plyr-settings-"+e.id+"-"+i+"-tab","aria-haspopup":!0,"aria-controls":"plyr-settings-"+e.id+"-"+i,"aria-expanded":!1}),t.config.i18n[i]),l=a.createElement("span",{class:t.config.classNames.menu.value});l.innerHTML=e[i],s.appendChild(l),n.appendChild(s),f.appendChild(n),t.elements.settings.tabs[i]=n}),g.appendChild(f),p.appendChild(g),this.config.settings.forEach(function(i){var n=a.createElement("div",{id:"plyr-settings-"+e.id+"-"+i,"aria-hidden":!0,"aria-labelled-by":"plyr-settings-"+e.id+"-"+i+"-tab",role:"tabpanel",tabindex:-1,hidden:""}),s=a.createElement("button",{type:"button",class:t.config.classNames.control+" "+t.config.classNames.control+"--back","aria-haspopup":!0,"aria-controls":"plyr-settings-"+e.id+"-home","aria-expanded":!1},t.config.i18n[i]);n.appendChild(s);var l=a.createElement("ul");n.appendChild(l),p.appendChild(n),t.elements.settings.panes[i]=n}),h.appendChild(p),d.appendChild(h),i.appendChild(d),this.elements.settings.form=h,this.elements.settings.menu=d}return this.config.controls.includes("pip")&&l.pip&&i.appendChild(m.createButton.call(this,"pip")),this.config.controls.includes("airplay")&&l.airplay&&i.appendChild(m.createButton.call(this,"airplay")),this.config.controls.includes("fullscreen")&&i.appendChild(m.createButton.call(this,"fullscreen")),this.config.controls.includes("play-large")&&this.elements.container.appendChild(m.createButton.call(this,"play-large")),this.elements.controls=i,this.config.controls.includes("settings")&&this.config.settings.includes("speed")&&m.setSpeedMenu.call(this),i},inject:function(){var e=this;if(this.config.loadSprite){var t=m.getIconUrl.call(this);t.absolute&&a.loadSprite(t.url,"sprite-plyr")}this.id=Math.floor(1e4*Math.random());var i=null;i=a.is.string(this.config.controls)?this.config.controls:a.is.function(this.config.controls)?this.config.controls({id:this.id,seektime:this.config.seekTime,title:this.config.title}):m.create.call(this,{id:this.id,seektime:this.config.seekTime,speed:this.speed,quality:this.quality,captions:m.getLanguage.call(this)});var n=void 0;if(a.is.string(this.config.selectors.controls.container)&&(n=document.querySelector(this.config.selectors.controls.container)),a.is.htmlElement(n)||(n=this.elements.container),a.is.htmlElement(i)?n.appendChild(i):n.insertAdjacentHTML("beforeend",i),a.is.htmlElement(this.elements.controls)&&a.findElements.call(this),this.config.tooltips.controls){var s=a.getElements.call(this,[this.config.selectors.controls.wrapper," ",this.config.selectors.labels," .",this.config.classNames.hidden].join(""));Array.from(s).forEach(function(t){a.toggleClass(t,e.config.classNames.hidden,!1),a.toggleClass(t,e.config.classNames.tooltip,!0),t.setAttribute("role","tooltip")})}}},g={setup:function(){this.supported.ui&&(a.is.empty(c.get.call(this).language)?a.is.empty(this.captions.language)&&(this.captions.language=this.config.captions.language.toLowerCase()):this.captions.language=c.get.call(this).language,a.is.boolean(this.captions.enabled)||(a.is.empty(c.get.call(this).language)?this.captions.enabled=this.config.captions.active:this.captions.enabled=c.get.call(this).captions),!this.isVideo||this.isYouTube||this.isHTML5&&!l.textTracks?this.config.controls.includes("settings")&&this.config.settings.includes("captions")&&m.setCaptionsMenu.call(this):(a.is.htmlElement(this.elements.captions)||(this.elements.captions=a.createElement("div",a.getAttributesFromSelector(this.config.selectors.captions)),a.insertAfter(this.elements.captions,this.elements.wrapper)),a.toggleClass(this.elements.container,this.config.classNames.captions.enabled,!a.is.empty(g.getTracks.call(this))),a.is.empty(g.getTracks.call(this))||(g.setLanguage.call(this),g.show.call(this),this.config.controls.includes("settings")&&this.config.settings.includes("captions")&&m.setCaptionsMenu.call(this))))},setLanguage:function(){var e=this;if(this.isHTML5&&this.isVideo){g.getTracks.call(this).forEach(function(t){a.on(t,"cuechange",function(t){return g.setCue.call(e,t)}),t.mode="hidden"});var t=g.getCurrentTrack.call(this);a.is.track(t)&&Array.from(t.activeCues||[]).length&&g.setCue.call(this,t)}else this.isVimeo&&this.captions.active&&this.embed.enableTextTrack(this.language)},getTracks:function(){return a.is.nullOrUndefined(this.media)?[]:Array.from(this.media.textTracks||[]).filter(function(e){return["captions","subtitles"].includes(e.kind)})},getCurrentTrack:function(){var e=this;return g.getTracks.call(this).find(function(t){return t.language.toLowerCase()===e.language})},setCue:function(e){var t=a.is.event(e)?e.target:e,i=t.activeCues[0];t===g.getCurrentTrack.call(this)&&(a.is.cue(i)?g.setText.call(this,i.getCueAsHTML()):g.setText.call(this,null),a.dispatchEvent.call(this,this.media,"cuechange"))},setText:function(e){if(this.supported.ui)if(a.is.htmlElement(this.elements.captions)){var t=a.createElement("span");a.emptyElement(this.elements.captions);var i=a.is.nullOrUndefined(e)?"":e;a.is.string(i)?t.textContent=i.trim():t.appendChild(i),this.elements.captions.appendChild(t)}else this.console.warn("No captions element to render to")},show:function(){if(a.is.htmlElement(this.elements.buttons.captions)){var e=c.get.call(this).captions;a.is.boolean(e)?this.captions.active=e:e=this.config.captions.active,e&&(a.toggleClass(this.elements.container,this.config.classNames.captions.active,!0),a.toggleState(this.elements.buttons.captions,!0))}}},f={setup:function(){var e=this,t=a.parseYouTubeId(this.embedId),i=a.getElements.call(this,'[id^="'+this.provider+'-"]');Array.from(i).forEach(a.removeElement),a.toggleClass(this.elements.wrapper,this.config.classNames.embed,!0),f.setAspectRatio.call(this),this.media.setAttribute("id",a.generateId(this.provider)),a.is.object(window.YT)?f.ready.call(this,t):(a.loadScript(this.config.urls.youtube.api),window.onYouTubeReadyCallbacks=window.onYouTubeReadyCallbacks||[],window.onYouTubeReadyCallbacks.push(function(){f.ready.call(e,t)}),window.onYouTubeIframeAPIReady=function(){window.onYouTubeReadyCallbacks.forEach(function(e){e()})})},getTitle:function(){var e=this;if(a.is.function(this.embed.getVideoData)){var t=this.embed.getVideoData().title;if(a.is.empty(t))return this.config.title=t,void h.setTitle.call(this)}var i=this.config.keys.google,n=a.parseYouTubeId(this.embedId);if(a.is.string(i)&&!a.is.empty(i)){var s="https://www.googleapis.com/youtube/v3/videos?id="+n+"&key="+i+"&fields=items(snippet(title))&part=snippet";fetch(s).then(function(e){return e.ok?e.json():null}).then(function(t){null!==t&&a.is.object(t)&&(e.config.title=t.items[0].snippet.title,h.setTitle.call(e))}).catch(function(){})}},setAspectRatio:function(){var e=this.config.ratio.split(":");this.elements.wrapper.style.paddingBottom=100/e[0]*e[1]+"%"},ready:function(e){var t=this;t.embed=new window.YT.Player(t.media.id,{videoId:e,playerVars:{autoplay:t.config.autoplay?1:0,controls:t.supported.ui?0:1,rel:0,showinfo:0,iv_load_policy:3,modestbranding:1,disablekb:1,playsinline:1,origin:window&&window.location.hostname,widget_referrer:window&&window.location.href,cc_load_policy:this.captions.active?1:0,cc_lang_pref:this.config.captions.language},events:{onError:function(e){if(!a.is.object(t.media.error)){var i={code:e.data};switch(e.data){case 2:i.message="The request contains an invalid parameter value. For example, this error occurs if you specify a video ID that does not have 11 characters, or if the video ID contains invalid characters, such as exclamation points or asterisks.";break;case 5:i.message="The requested content cannot be played in an HTML5 player or another error related to the HTML5 player has occurred.";break;case 100:i.message="The video requested was not found. This error occurs when a video has been removed (for any reason) or has been marked as private.";break;case 101:case 150:i.message="The owner of the requested video does not allow it to be played in embedded players.";break;default:i.message="An unknown error occured"}t.media.error=i,a.dispatchEvent.call(t,t.media,"error")}},onPlaybackQualityChange:function(e){var i=e.target;t.media.quality=i.getPlaybackQuality(),a.dispatchEvent.call(t,t.media,"qualitychange")},onPlaybackRateChange:function(e){var i=e.target;t.media.playbackRate=i.getPlaybackRate(),a.dispatchEvent.call(t,t.media,"ratechange")},onReady:function(e){var i=e.target;f.getTitle.call(t),t.media.play=function(){i.playVideo(),t.media.paused=!1},t.media.pause=function(){i.pauseVideo(),t.media.paused=!0},t.media.stop=function(){i.stopVideo(),t.media.paused=!0},t.media.duration=i.getDuration(),t.media.paused=!0,t.media.currentTime=0,Object.defineProperty(t.media,"currentTime",{get:function(){return Number(i.getCurrentTime())},set:function(e){t.media.seeking=!0,a.dispatchEvent.call(t,t.media,"seeking"),i.seekTo(e)}}),Object.defineProperty(t.media,"playbackRate",{get:function(){return i.getPlaybackRate()},set:function(e){i.setPlaybackRate(e)}}),Object.defineProperty(t.media,"quality",{get:function(){return i.getPlaybackQuality()},set:function(e){a.dispatchEvent.call(t,t.media,"qualityrequested",!1,{quality:e}),i.setPlaybackQuality(e)}});var n=t.config.volume;Object.defineProperty(t.media,"volume",{get:function(){return n},set:function(e){n=e,i.setVolume(100*n),a.dispatchEvent.call(t,t.media,"volumechange")}});var s=t.config.muted;Object.defineProperty(t.media,"muted",{get:function(){return s},set:function(e){var n=a.is.boolean(e)?e:s;s=n,i[n?"mute":"unMute"](),a.dispatchEvent.call(t,t.media,"volumechange")}}),Object.defineProperty(t.media,"currentSrc",{get:function(){return i.getVideoUrl()}}),Object.defineProperty(t.media,"ended",{get:function(){return t.currentTime===t.duration}}),t.options.speed=i.getAvailablePlaybackRates(),t.supported.ui&&t.media.setAttribute("tabindex",-1),a.dispatchEvent.call(t,t.media,"timeupdate"),a.dispatchEvent.call(t,t.media,"durationchange"),window.clearInterval(t.timers.buffering),t.timers.buffering=window.setInterval(function(){t.media.buffered=i.getVideoLoadedFraction(),(null===t.media.lastBuffered||t.media.lastBuffered<t.media.buffered)&&a.dispatchEvent.call(t,t.media,"progress"),t.media.lastBuffered=t.media.buffered,1===t.media.buffered&&(window.clearInterval(t.timers.buffering),a.dispatchEvent.call(t,t.media,"canplaythrough"))},200),window.setTimeout(function(){return h.build.call(t)},50)},onStateChange:function(e){var i=e.target;switch(window.clearInterval(t.timers.playing),e.data){case 0:t.media.paused=!0,t.media.loop?(i.stopVideo(),i.playVideo()):a.dispatchEvent.call(t,t.media,"ended");break;case 1:t.media.seeking&&a.dispatchEvent.call(t,t.media,"seeked"),t.media.seeking=!1,t.media.paused&&a.dispatchEvent.call(t,t.media,"play"),t.media.paused=!1,a.dispatchEvent.call(t,t.media,"playing"),t.timers.playing=window.setInterval(function(){a.dispatchEvent.call(t,t.media,"timeupdate")},50),t.media.duration!==i.getDuration()&&(t.media.duration=i.getDuration(),a.dispatchEvent.call(t,t.media,"durationchange")),m.setQualityMenu.call(t,i.getAvailableQualityLevels());break;case 2:t.media.paused=!0,a.dispatchEvent.call(t,t.media,"pause")}a.dispatchEvent.call(t,t.elements.container,"statechange",!1,{code:e.data})}}})}},y={setup:function(){var e=this,t=a.getElements.call(this,'[id^="'+this.provider+'-"]');Array.from(t).forEach(a.removeElement),a.toggleClass(this.elements.wrapper,this.config.classNames.embed,!0),y.setAspectRatio.call(this),this.media.setAttribute("id",a.generateId(this.provider)),a.is.object(window.Vimeo)?y.ready.call(this):a.loadScript(this.config.urls.vimeo.api,function(){y.ready.call(e)})},setAspectRatio:function(e){var t=a.is.string(e)?e.split(":"):this.config.ratio.split(":"),i=100/t[0]*t[1],n=(200-i)/4;this.elements.wrapper.style.paddingBottom=i+"%",this.media.style.transform="translateY(-"+n+"%)"},ready:function(){var e=this,t=this,i={loop:t.config.loop.active,autoplay:t.autoplay,byline:!1,portrait:!1,title:!1,speed:!0,transparent:0,gesture:"media"},n=a.buildUrlParameters(i),s=a.parseVimeoId(t.embedId),l=a.createElement("iframe"),o="https://player.vimeo.com/video/"+s+"?"+n;l.setAttribute("src",o),l.setAttribute("allowfullscreen",""),t.media.appendChild(l),t.embed=new window.Vimeo.Player(l),t.media.paused=!0,t.media.currentTime=0,t.media.play=function(){t.embed.play().then(function(){t.media.paused=!1})},t.media.pause=function(){t.embed.pause().then(function(){t.media.paused=!0})},t.media.stop=function(){t.embed.stop().then(function(){t.media.paused=!0,t.currentTime=0})};var r=t.media.currentTime;Object.defineProperty(t.media,"currentTime",{get:function(){return r},set:function(e){var i=t.media.paused;t.media.seeking=!0,a.dispatchEvent.call(t,t.media,"seeking"),t.embed.setCurrentTime(e),i&&t.pause()}});var c=t.config.speed.selected;Object.defineProperty(t.media,"playbackRate",{get:function(){return c},set:function(e){t.embed.setPlaybackRate(e).then(function(){c=e,a.dispatchEvent.call(t,t.media,"ratechange")})}});var u=t.config.volume;Object.defineProperty(t.media,"volume",{get:function(){return u},set:function(e){t.embed.setVolume(e).then(function(){u=e,a.dispatchEvent.call(t,t.media,"volumechange")})}});var d=t.config.muted;Object.defineProperty(t.media,"muted",{get:function(){return d},set:function(e){var i=!!a.is.boolean(e)&&e;t.embed.setVolume(i?0:t.config.volume).then(function(){d=i,a.dispatchEvent.call(t,t.media,"volumechange")})}});var p=t.config.loop;Object.defineProperty(t.media,"loop",{get:function(){return p},set:function(e){var i=a.is.boolean(e)?e:t.config.loop.active;t.embed.setLoop(i).then(function(){p=i})}});var m=void 0;t.embed.getVideoUrl().then(function(e){m=e}),Object.defineProperty(t.media,"currentSrc",{get:function(){return m}}),Object.defineProperty(t.media,"ended",{get:function(){return t.currentTime===t.duration}}),Promise.all([t.embed.getVideoWidth(),t.embed.getVideoHeight()]).then(function(t){var i=a.getAspectRatio(t[0],t[1]);y.setAspectRatio.call(e,i)}),t.embed.setAutopause(t.config.autopause).then(function(e){t.config.autopause=e}),t.embed.getVideoTitle().then(function(i){t.config.title=i,h.setTitle.call(e)}),t.embed.getCurrentTime().then(function(e){r=e,a.dispatchEvent.call(t,t.media,"timeupdate")}),t.embed.getDuration().then(function(e){t.media.duration=e,a.dispatchEvent.call(t,t.media,"durationchange")}),t.embed.getTextTracks().then(function(e){t.media.textTracks=e,g.setup.call(t)}),t.embed.on("cuechange",function(e){var i=null;e.cues.length&&(i=a.stripHTML(e.cues[0].text)),g.setText.call(t,i)}),t.embed.on("loaded",function(){a.is.htmlElement(t.embed.element)&&t.supported.ui&&t.embed.element.setAttribute("tabindex",-1)}),t.embed.on("play",function(){t.media.paused&&a.dispatchEvent.call(t,t.media,"play"),t.media.paused=!1,a.dispatchEvent.call(t,t.media,"playing")}),t.embed.on("pause",function(){t.media.paused=!0,a.dispatchEvent.call(t,t.media,"pause")}),t.embed.on("timeupdate",function(e){t.media.seeking=!1,r=e.seconds,a.dispatchEvent.call(t,t.media,"timeupdate")}),t.embed.on("progress",function(e){t.media.buffered=e.percent,a.dispatchEvent.call(t,t.media,"progress"),1===parseInt(e.percent,10)&&a.dispatchEvent.call(t,t.media,"canplaythrough")}),t.embed.on("seeked",function(){t.media.seeking=!1,a.dispatchEvent.call(t,t.media,"seeked"),a.dispatchEvent.call(t,t.media,"play")}),t.embed.on("ended",function(){t.media.paused=!0,a.dispatchEvent.call(t,t.media,"ended")}),t.embed.on("error",function(e){t.media.error=e,a.dispatchEvent.call(t,t.media,"error")}),window.setTimeout(function(){return h.build.call(t)},0)}},b=a.getBrowser(),v={setup:function(){if(this.media)if(a.toggleClass(this.elements.container,this.config.classNames.type.replace("{0}",this.type),!0),a.toggleClass(this.elements.container,this.config.classNames.provider.replace("{0}",this.provider),!0),this.isEmbed&&a.toggleClass(this.elements.container,this.config.classNames.type.replace("{0}","video"),!0),this.supported.ui&&(a.toggleClass(this.elements.container,this.config.classNames.pip.supported,l.pip&&this.isHTML5&&this.isVideo),a.toggleClass(this.elements.container,this.config.classNames.airplay.supported,l.airplay&&this.isHTML5),a.toggleClass(this.elements.container,this.config.classNames.stopped,this.config.autoplay),a.toggleClass(this.elements.container,this.config.classNames.isIos,b.isIos),a.toggleClass(this.elements.container,this.config.classNames.isTouch,l.touch)),(this.isVideo||this.isYouTube||this.isVimeo)&&(this.elements.wrapper=a.createElement("div",{class:this.config.classNames.video}),a.wrap(this.media,this.elements.wrapper)),this.isEmbed)switch(this.provider){case"youtube":f.setup.call(this);break;case"vimeo":y.setup.call(this)}else this.isHTML5&&h.setTitle.call(this);else this.console.warn("No media element found!")},cancelRequests:function(){this.isHTML5&&(Array.from(this.media.querySelectorAll("source")).forEach(a.removeElement),this.media.setAttribute("src",this.config.blankVideo),this.media.load(),this.console.log("Cancelled network requests"))}},k={insertElements:function(e,t){var i=this;a.is.string(t)?a.insertElement(e,this.media,{src:t}):a.is.array(t)&&t.forEach(function(t){a.insertElement(e,i.media,t)})},change:function(e){var t=this;a.is.object(e)&&"sources"in e&&e.sources.length?(v.cancelRequests.call(this),this.destroy.call(this,function(){switch(a.removeElement(t.media),t.media=null,a.is.htmlElement(t.elements.container)&&t.elements.container.removeAttribute("class"),t.type=e.type,t.provider=a.is.empty(e.sources[0].provider)?i.html5:e.sources[0].provider,t.supported=l.check(t.type,t.provider,t.config.inline),t.provider+":"+t.type){case"html5:video":t.media=a.createElement("video");break;case"html5:audio":t.media=a.createElement("audio");break;case"youtube:video":case"vimeo:video":t.media=a.createElement("div"),t.embedId=e.sources[0].src}t.elements.container.appendChild(t.media),a.is.boolean(e.autoplay)&&(t.config.autoplay=e.autoplay),t.isHTML5&&(t.config.crossorigin&&t.media.setAttribute("crossorigin",""),t.config.autoplay&&t.media.setAttribute("autoplay",""),"poster"in e&&t.media.setAttribute("poster",e.poster),t.config.loop.active&&t.media.setAttribute("loop",""),t.config.muted&&t.media.setAttribute("muted",""),t.config.inline&&t.media.setAttribute("playsinline","")),a.toggleClass(t.elements.container,t.config.classNames.captions.active,t.supported.ui&&t.captions.enabled),h.addStyleHook.call(t),t.isHTML5&&k.insertElements.call(t,"source",e.sources),t.config.title=e.title,v.setup.call(t),t.isHTML5&&("tracks"in e&&k.insertElements.call(t,"track",e.tracks),t.media.load()),(t.isHTML5||t.isEmbed&&!t.supported.ui)&&h.build.call(t)},!0)):this.console.warn("Invalid source format")}},w=(function(){function e(e){this.value=e}function t(t){function i(s,a){try{var l=t[s](a),o=l.value;o instanceof e?Promise.resolve(o.value).then(function(e){i("next",e)},function(e){i("throw",e)}):n(l.done?"return":"normal",l.value)}catch(e){n("throw",e)}}function n(e,t){switch(e){case"return":s.resolve({value:t,done:!0});break;case"throw":s.reject(t);break;default:s.resolve({value:t,done:!1})}(s=s.next)?i(s.key,s.arg):a=null}var s,a;this._invoke=function(e,t){return new Promise(function(n,l){var o={key:e,arg:t,resolve:n,reject:l,next:null};a?a=a.next=o:(s=a=o,i(e,t))})},"function"!=typeof t.return&&(this.return=void 0)}"function"==typeof Symbol&&Symbol.asyncIterator&&(t.prototype[Symbol.asyncIterator]=function(){return this}),t.prototype.next=function(e){return this._invoke("next",e)},t.prototype.throw=function(e){return this._invoke("throw",e)},t.prototype.return=function(e){return this._invoke("return",e)}}(),function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}),E=function(){function e(e,t){for(var i=0;i<t.length;i++){var n=t[i];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,i,n){return i&&e(t.prototype,i),n&&e(t,n),t}}(),T={x:0,y:0};return function(){function e(t,o){var r=this;if(w(this,e),this.timers={},this.ready=!1,this.media=t,a.is.string(this.media)&&(this.media=document.querySelectorAll(this.media)),(window.jQuery&&this.media instanceof jQuery||a.is.nodeList(this.media)||a.is.array(this.media))&&(this.media=this.media[0]),this.config=a.extend({},s,o,function(){try{return JSON.parse(r.media.getAttribute("data-plyr-config"))}catch(e){return null}}()),this.elements={container:null,buttons:{},display:{},progress:{},inputs:{},settings:{menu:null,panes:{},tabs:{}},captions:null},this.captions={enabled:null,currentTrack:null},this.fullscreen={active:!1},this.options={speed:[],quality:[]},this.console={log:function(){},warn:function(){},error:function(){}},this.config.debug&&"console"in window&&(this.console={log:console.log,warn:console.warn,error:console.error},this.console.log("Debugging enabled")),this.console.log("Config",this.config),this.console.log("Support",l),!a.is.nullOrUndefined(this.media)&&a.is.htmlElement(this.media))if(this.media.plyr)this.console.warn("Target already setup");else if(this.config.enabled)if(l.check().api){this.elements.original=this.media.cloneNode(!0);var u=this.media.tagName.toLowerCase(),p={provider:"data-plyr-provider",id:"data-plyr-embed-id"};switch(u){case"div":if(this.type=n.video,this.provider=this.media.getAttribute(p.provider),this.embedId=this.media.getAttribute(p.id),a.is.empty(this.provider)||!Object.keys(i).includes(this.provider))return void this.console.error("Setup failed: Invalid provider");if(a.is.empty(this.embedId))return void this.console.error("Setup failed: Embed ID or URL missing");this.media.removeAttribute(p.provider),this.media.removeAttribute(p.id);break;case"video":case"audio":this.type=u,this.provider=i.html5,this.media.hasAttribute("crossorigin")&&(this.config.crossorigin=!0),this.media.hasAttribute("autoplay")&&(this.config.autoplay=!0),this.media.hasAttribute("playsinline")&&(this.config.inline=!0),this.media.hasAttribute("muted")&&(this.config.muted=!0),this.media.hasAttribute("loop")&&(this.config.loop.active=!0);break;default:return void this.console.error("Setup failed: unsupported type")}c.setup.call(this),this.supported=l.check(this.type,this.provider,this.config.inline),this.supported.api?(this.media.plyr=this,this.elements.container=a.createElement("div"),a.wrap(this.media,this.elements.container),this.elements.container.setAttribute("tabindex",0),d.global.call(this),h.addStyleHook.call(this),v.setup.call(this),this.config.debug&&a.on(this.elements.container,this.config.events.join(" "),function(e){r.console.log("event: "+e.type)}),(this.isHTML5||this.isEmbed&&!this.supported.ui)&&h.build.call(this)):this.console.error("Setup failed: no support")}else this.console.error("Setup failed: no support");else this.console.error("Setup failed: disabled by config");else this.console.error("Setup failed: no suitable element passed")}return E(e,[{key:"play",value:function(){return"play"in this.media&&this.media.play(),this}},{key:"pause",value:function(){return"pause"in this.media&&this.media.pause(),this}},{key:"togglePlay",value:function(e){return!a.is.boolean(e)&&this.media.paused||e?this.play():this.pause()}},{key:"stop",value:function(){return this.restart().pause()}},{key:"restart",value:function(){return this.currentTime=0,this}},{key:"rewind",value:function(e){return this.currentTime=this.currentTime-(a.is.number(e)?e:this.config.seekTime),this}},{key:"forward",value:function(e){return this.currentTime=this.currentTime+(a.is.number(e)?e:this.config.seekTime),this}},{key:"increaseVolume",value:function(e){var t=this.media.muted?0:this.volume;return this.volume=t+a.is.number(e)?e:1,this}},{key:"decreaseVolume",value:function(e){var t=this.media.muted?0:this.volume;return this.volume=t-a.is.number(e)?e:1,this}},{key:"toggleCaptions",value:function(e){if(!this.supported.ui||!a.is.htmlElement(this.elements.buttons.captions))return this;var t=a.is.boolean(e)?e:-1===this.elements.container.className.indexOf(this.config.classNames.captions.active);return this.captions.enabled===t?this:(this.captions.enabled=t,a.toggleState(this.elements.buttons.captions,this.captions.enabled),a.toggleClass(this.elements.container,this.config.classNames.captions.active,this.captions.enabled),a.dispatchEvent.call(this,this.media,this.captions.enabled?"captionsenabled":"captionsdisabled"),this)}},{key:"toggleFullscreen",value:function(e){if(r.enabled){if(!a.is.event(e)||e.type!==r.eventType)return this.fullscreen.active?r.cancelFullScreen():r.requestFullScreen(this.elements.container),this;this.fullscreen.active=r.isFullScreen(this.elements.container)}else this.fullscreen.active=!this.fullscreen.active,a.toggleClass(this.elements.container,this.config.classNames.fullscreen.fallback,this.fullscreen.active),this.fullscreen.active?T={x:window.pageXOffset||0,y:window.pageYOffset||0}:window.scrollTo(T.x,T.y),document.body.style.overflow=this.fullscreen.active?"hidden":"";return a.is.htmlElement(this.elements.buttons.fullscreen)&&a.toggleState(this.elements.buttons.fullscreen,this.fullscreen.active),a.dispatchEvent.call(this,this.media,this.fullscreen.active?"enterfullscreen":"exitfullscreen"),this}},{key:"airplay",value:function(){return l.airplay?(this.media.webkitShowPlaybackTargetPicker(),this):this}},{key:"toggleControls",value:function(e){var t=this;if(!a.is.htmlElement(this.elements.controls))return this;if(!this.supported.ui||this.isAudio)return this;var i=0,n=e,s=!1;if(a.is.boolean(e)||(a.is.event(e)?(s="enterfullscreen"===e.type,n=["mouseenter","mousemove","touchstart","touchmove","focusin"].includes(e.type),["mousemove","touchmove","touchend"].includes(e.type)&&(i=2e3),"focusin"===e.type&&(i=3e3,a.toggleClass(this.elements.controls,this.config.classNames.noTransition,!0))):n=a.hasClass(this.elements.container,this.config.classNames.hideControls)),window.clearTimeout(this.timers.controls),n||this.paused||this.loading){if(a.toggleClass(this.elements.container,this.config.classNames.hideControls,!1)&&a.dispatchEvent.call(this,this.media,"controlsshown"),this.paused||this.loading)return this;l.touch&&(i=3e3)}return n&&!this.playing||(this.timers.controls=window.setTimeout(function(){(!t.elements.controls.pressed&&!t.elements.controls.hover||s)&&(a.hasClass(t.elements.container,t.config.classNames.hideControls)||a.toggleClass(t.elements.controls,t.config.classNames.noTransition,!1),a.toggleClass(t.elements.container,t.config.classNames.hideControls,!0)&&(a.dispatchEvent.call(t,t.media,"controlshidden"),t.config.controls.includes("settings")&&!a.is.empty(t.config.settings)&&m.toggleMenu.call(t,!1)))},i)),this}},{key:"on",value:function(e,t){return a.on(this.elements.container,e,t),this}},{key:"off",value:function(e,t){return a.off(this.elements.container,e,t),this}},{key:"supports",value:function(e){return l.mime.call(this,e)}},{key:"destroy",value:function(e){var t=this,i=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=function(){if(document.body.style.overflow="",t.embed=null,t.embedId=null,i)Object.keys(t.elements).length&&(t.elements.buttons&&t.elements.buttons.play&&Array.from(t.elements.buttons.play).forEach(function(e){return a.removeElement(e)}),a.removeElement(t.elements.captions),a.removeElement(t.elements.controls),a.removeElement(t.elements.wrapper),t.elements.buttons.play=null,t.elements.captions=null,t.elements.controls=null,t.elements.wrapper=null),a.is.function(e)&&e();else{var n=t.elements.container.parentNode;a.is.htmlElement(n)&&n.replaceChild(t.elements.original,t.elements.container),a.dispatchEvent.call(t,t.elements.original,"destroyed",!0),a.is.function(e)&&e.call(t.elements.original),t.elements=null}};switch(this.provider+":"+this.type){case"html5:video":case"html5:audio":h.toggleNativeControls.call(this,!0),n();break;case"youtube:video":window.clearInterval(this.timers.buffering),window.clearInterval(this.timers.playing),this.embed.destroy(),n();break;case"vimeo:video":this.embed.unload().then(n),window.setTimeout(n,200)}}},{key:"isHTML5",get:function(){return this.provider===i.html5}},{key:"isEmbed",get:function(){return this.isYouTube||this.isVimeo}},{key:"isYouTube",get:function(){return this.provider===i.youtube}},{key:"isVimeo",get:function(){return this.provider===i.vimeo}},{key:"isVideo",get:function(){return this.type===n.video}},{key:"isAudio",get:function(){return this.type===n.audio}},{key:"paused",get:function(){return this.media.paused}},{key:"playing",get:function(){return!this.paused&&!this.ended&&(!this.isHTML5||this.media.readyState>2)}},{key:"ended",get:function(){return this.media.ended}},{key:"currentTime",set:function(e){var t=0;a.is.number(e)&&(t=e),t<0?t=0:t>this.duration&&(t=this.duration),this.media.currentTime=t.toFixed(4),this.console.log("Seeking to "+this.currentTime+" seconds")},get:function(){return Number(this.media.currentTime)}},{key:"seeking",get:function(){return this.media.seeking}},{key:"duration",get:function(){var e=parseInt(this.config.duration,10),t=Number(this.media.duration);return Number.isNaN(e)?t:e}},{key:"volume",set:function(e){var t=e;a.is.string(t)&&(t=Number(t)),a.is.number(t)||(t=c.get.call(this).volume),a.is.number(t)||(t=this.config.volume),t>1&&(t=1),t<0&&(t=0),this.config.volume=t,this.media.volume=t,this.muted&&t>0&&(this.muted=!1)},get:function(){return this.media.volume}},{key:"muted",set:function(e){var t=e;a.is.boolean(t)||(t=c.get.call(this).muted),a.is.boolean(t)||(t=this.config.muted),this.config.muted=t,this.media.muted=t},get:function(){return this.media.muted}},{key:"hasAudio",get:function(){return!this.isHTML5||(this.media.mozHasAudio||Boolean(this.media.webkitAudioDecodedByteCount)||Boolean(this.media.audioTracks&&this.media.audioTracks.length))}},{key:"speed",set:function(e){var t=null;(t=a.is.number(e)?e:a.is.number(c.get.call(this).speed)?c.get.call(this).speed:this.config.speed.selected)<.1&&(t=.1),t>2&&(t=2),this.config.speed.options.includes(t)?(this.config.speed.selected=t,this.media.playbackRate=t):this.console.warn("Unsupported speed ("+t+")")},get:function(){return this.media.playbackRate}},{key:"quality",set:function(e){var t=null;t=a.is.string(e)?e:a.is.number(c.get.call(this).quality)?c.get.call(this).quality:this.config.quality.selected,this.options.quality.includes(t)?(this.config.quality.selected=t,this.media.quality=t):this.console.warn("Unsupported quality option ("+t+")")},get:function(){return this.media.quality}},{key:"loop",set:function(e){var t=a.is.boolean(e)?e:this.config.loop.active;this.config.loop.active=t,this.media.loop=t},get:function(){return this.media.loop}},{key:"source",set:function(e){k.change.call(this,e)},get:function(){return this.media.currentSrc}},{key:"poster",set:function(e){this.isHTML5&&this.isVideo?a.is.string(e)&&this.media.setAttribute("poster",e):this.console.warn("Poster can only be set on HTML5 video")},get:function(){return this.isHTML5&&this.isVideo?this.media.getAttribute("poster"):null}},{key:"autoplay",set:function(e){var t=a.is.boolean(e)?e:this.config.autoplay;this.config.autoplay=t},get:function(){return this.config.autoplay}},{key:"language",set:function(e){if(a.is.string(e)&&(this.toggleCaptions(!a.is.empty(e)),!a.is.empty(e))){var t=e.toLowerCase();this.language!==t&&(this.captions.language=t,g.setText.call(this,null),g.setLanguage.call(this),a.dispatchEvent.call(this,this.media,"languagechange"))}},get:function(){return this.captions.language}},{key:"pip",set:function(e){var t={pip:"picture-in-picture",inline:"inline"};if(l.pip){var i=a.is.boolean(e)?e:this.pip===t.inline;this.media.webkitSetPresentationMode(i?t.pip:t.inline)}},get:function(){return l.pip?this.media.webkitPresentationMode:null}}]),e}()});
//# sourceMappingURL=plyr.js.map