!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";var e,t,i,n,s={html5:"html5",youtube:"youtube",vimeo:"vimeo"},a={audio:"audio",video:"video"},o={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"],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"},googleIMA:{api:"https://imasdk.googleapis.com/js/sdkloader/ima3.js"}},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",error:"plyr--has-error",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}},l=(function(){function e(e){this.value=e}function t(t){var i,n;function s(i,n){try{var o=t[i](n),l=o.value;l instanceof e?Promise.resolve(l.value).then(function(e){s("next",e)},function(e){s("throw",e)}):a(o.done?"return":"normal",o.value)}catch(e){a("throw",e)}}function a(e,t){switch(e){case"return":i.resolve({value:t,done:!0});break;case"throw":i.reject(t);break;default:i.resolve({value:t,done:!1})}(i=i.next)?s(i.key,i.arg):n=null}this._invoke=function(e,t){return new Promise(function(a,o){var l={key:e,arg:t,resolve:a,reject:o,next:null};n?n=n.next=l:(i=n=l,s(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")}),r=function(){function e(e,t){for(var i=0;i0?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 d.is.object(t)&&d.setAttributes(n,t),d.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(d.createElement(e,i,n))},removeElement:function(e){return d.is.element(e)&&d.is.element(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},replaceElement:function(e,t){return d.is.element(t)&&d.is.element(t.parentNode)&&d.is.element(e)?(t.parentNode.replaceChild(e,t),e):null},setAttributes:function(e,t){d.is.element(e)&&!d.is.empty(t)&&Object.keys(t).forEach(function(i){e.setAttribute(i,t[i])})},getAttributesFromSelector:function(e,t){if(!d.is.string(e)||d.is.empty(e))return{};var i={},n=t;return e.split(",").forEach(function(e){var t=e.trim(),s=t.replace(".",""),a=t.replace(/[[\]]/g,"").split("="),o=a[0],l=a.length>1?a[1].replace(/["']/g,""):"";switch(t.charAt(0)){case".":d.is.object(n)&&d.is.string(n.class)&&(n.class+=" "+s),i.class=s;break;case"#":i.id=t.replace("#","");break;case"[":i[o]=l}}),i},toggleClass:function(e,t,i){if(d.is.element(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 d.is.element(e)&&e.classList.contains(t)},toggleHidden:function(e,t){d.is.element(e)&&(t?e.setAttribute("hidden",""):e.removeAttribute("hidden"))},matches:function(e,t){var i={Element:Element};var 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=d.getElement.call(this,this.config.selectors.controls.wrapper),this.elements.buttons={play:d.getElements.call(this,this.config.selectors.buttons.play),pause:d.getElement.call(this,this.config.selectors.buttons.pause),restart:d.getElement.call(this,this.config.selectors.buttons.restart),rewind:d.getElement.call(this,this.config.selectors.buttons.rewind),forward:d.getElement.call(this,this.config.selectors.buttons.forward),mute:d.getElement.call(this,this.config.selectors.buttons.mute),pip:d.getElement.call(this,this.config.selectors.buttons.pip),airplay:d.getElement.call(this,this.config.selectors.buttons.airplay),settings:d.getElement.call(this,this.config.selectors.buttons.settings),captions:d.getElement.call(this,this.config.selectors.buttons.captions),fullscreen:d.getElement.call(this,this.config.selectors.buttons.fullscreen)},this.elements.progress=d.getElement.call(this,this.config.selectors.progress),this.elements.inputs={seek:d.getElement.call(this,this.config.selectors.inputs.seek),volume:d.getElement.call(this,this.config.selectors.inputs.volume)},this.elements.display={buffer:d.getElement.call(this,this.config.selectors.display.buffer),duration:d.getElement.call(this,this.config.selectors.display.duration),currentTime:d.getElement.call(this,this.config.selectors.display.currentTime)},d.is.element(this.elements.progress)&&(this.elements.display.seekTooltip=this.elements.progress.querySelector("."+this.config.classNames.tooltip)),!0}catch(e){return this.debug.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=d.getElements.call(this,"button:not(:disabled), input:not(:disabled), [tabindex]"),i=t[0],n=t[t.length-1];d.on(this.elements.container,"keydown",function(t){if("Tab"===t.key&&9===t.keyCode&&e.fullscreen.active){var s=d.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,a){if(!d.is.nullOrUndefined(e))if(d.is.nodeList(e))Array.from(e).forEach(function(e){e instanceof Node&&d.toggleListener.call(null,e,t,i,n,s,a)});else{var o=t.split(" "),l=!!d.is.boolean(a)&&a;h.passiveListeners&&(l={passive:!d.is.boolean(s)||s,capture:!!d.is.boolean(a)&&a}),o.forEach(function(t){e[n?"addEventListener":"removeEventListener"](t,i,l)})}},on:function(e,t,i,n,s){d.toggleListener(e,t,i,!0,n,s)},off:function(e,t,i,n,s){d.toggleListener(e,t,i,!1,n,s)},dispatchEvent:function(e,t,i,n){if(e&&t){var s=new CustomEvent(t,{bubbles:!!d.is.boolean(i)&&i,detail:Object.assign({},n,{plyr:this instanceof Plyr?this:null})});e.dispatchEvent(s)}},toggleState:function(e,t){if(d.is.element(e)){var i="true"===e.getAttribute("aria-pressed"),n=d.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>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length,i=Array(t>1?t-1:0),n=1;n0&&void 0!==arguments[0]&&arguments[0];l(this,e),this.enabled=window.console&&t,this.enabled&&this.log("Debugging enabled")}return r(e,[{key:"log",get:function(){return this.enabled?Function.prototype.bind.call(console.log,console):p}},{key:"warn",get:function(){return this.enabled?Function.prototype.bind.call(console.warn,console):p}},{key:"error",get:function(){return this.enabled?Function.prototype.bind.call(console.error,console):p}}]),e}(),g=function(){function e(t){l(this,e),this.enabled=t.config.storage.enabled,this.key=t.config.storage.key}return r(e,[{key:"get",value:function(t){var i=window.localStorage.getItem(this.key);if(!e.supported||d.is.empty(i))return null;var n=JSON.parse(i);return d.is.string(t)&&t.length?n[t]:n}},{key:"set",value:function(t){if(e.supported&&this.enabled&&d.is.object(t)){var i=this.get();d.is.empty(i)&&(i={}),d.extend(i,t),window.localStorage.setItem(this.key,JSON.stringify(i))}}}],[{key:"supported",get:function(){if(!("localStorage"in window))return!1;var e="___test";try{return window.localStorage.setItem(e,e),window.localStorage.removeItem(e),!0}catch(e){return!1}}}]),e}(),f=function(){var e=["click"];return(navigator.userAgent.match(/iPhone/i)||navigator.userAgent.match(/iPad/i)||navigator.userAgent.match(/Android/i))&&(e=["touchstart","touchend","touchmove"]),e},y=function(){function e(t){if(l(this,e),!t.config.ads.adTagUrl)return this;d.is.object(window.google)||d.loadScript(t.config.urls.googleIMA.api),this.player=t,this.startEvents=f(),this.adDisplayContainer=null,this.adDisplayElement=null,this.adsManager=null,this.adsLoader=null,this.adCuePoints=null,this.currentAd=null,this.events={},this.videoElement=document.createElement("video"),this.setupAdDisplayContainer(),this.setupIMA()}return r(e,[{key:"setupIMA",value:function(){var e=this,t=this.player.elements.container;this.adsLoader=new window.google.ima.AdsLoader(this.adDisplayContainer,this.videoElement),this.adsLoader.getSettings().setAutoPlayAdBreaks(!1),this.adsLoader.addEventListener(window.google.ima.AdsManagerLoadedEvent.Type.ADS_MANAGER_LOADED,function(t){return e.onAdsManagerLoaded(t)},!1),this.adsLoader.addEventListener(window.google.ima.AdErrorEvent.Type.AD_ERROR,function(t){return e.onAdError(t)},!1);var i=new window.google.ima.AdsRequest;i.adTagUrl=this.player.config.ads.adTagUrl,i.linearAdSlotWidth=t.offsetWidth,i.linearAdSlotHeight=t.offsetHeight,i.nonLinearAdSlotWidth=t.offsetWidth,i.nonLinearAdSlotHeight=t.offsetHeight,this.adsLoader.requestAds(i)}},{key:"onAdsManagerLoaded",value:function(e){var t=this,i=this.videoElement,n=new window.google.ima.AdsRenderingSettings;n.restoreCustomPlaybackStateOnAdBreakComplete=!0,n.enablePreloading=!0,this.adsManager=e.getAdsManager(i,n),this.adsCuePoints=this.adsManager.getCuePoints().filter(function(e){return e>0&&-1!==e}),this.adsManager.addEventListener(window.google.ima.AdErrorEvent.Type.AD_ERROR,function(e){return t.onAdError(e)}),this.adsManager.addEventListener(window.google.ima.AdEvent.Type.CONTENT_PAUSE_REQUESTED,function(e){return t.onAdEvent(e)}),this.adsManager.addEventListener(window.google.ima.AdEvent.Type.CONTENT_RESUME_REQUESTED,function(e){return t.onAdEvent(e)}),this.adsManager.addEventListener(window.google.ima.AdEvent.Type.ALL_ADS_COMPLETED,function(e){return t.onAdEvent(e)}),this.adsManager.addEventListener(window.google.ima.AdEvent.Type.AD_BREAK_READY,function(e){return t.onAdEvent(e)}),this.adsManager.addEventListener(window.google.ima.AdEvent.Type.LOADED,function(e){return t.onAdEvent(e)}),this.adsManager.addEventListener(window.google.ima.AdEvent.Type.STARTED,function(e){return t.onAdEvent(e)}),this.adsManager.addEventListener(window.google.ima.AdEvent.Type.COMPLETE,function(e){return t.onAdEvent(e)})}},{key:"onAdEvent",value:function(e){var t=this.player.elements.container,i=e.getAd();switch(this.currentAd=i,e.type){case window.google.ima.AdEvent.Type.LOADED:this.adDisplayElement.style.display="block",this.handleEventListeners("LOADED"),i.isLinear()||(i.width=t.offsetWidth,i.height=t.offsetHeight);break;case window.google.ima.AdEvent.Type.STARTED:this.player.pause(),this.handleEventListeners("STARTED");break;case window.google.ima.AdEvent.Type.CONTENT_PAUSE_REQUESTED:this.handleEventListeners("CONTENT_PAUSE_REQUESTED");break;case window.google.ima.AdEvent.Type.CONTENT_RESUME_REQUESTED:this.handleEventListeners("CONTENT_RESUME_REQUESTED");break;case window.google.ima.AdEvent.Type.AD_BREAK_READY:this.player.pause(),this.adsManager.start(),this.handleEventListeners("AD_BREAK_READY");break;case window.google.ima.AdEvent.Type.COMPLETE:this.handleEventListeners("COMPLETE"),this.adDisplayElement.style.display="none",this.player.currentTime0)&&(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)}},k={addStyleHook:function(){d.toggleClass(this.elements.container,this.config.selectors.container.replace(".",""),!0),d.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(w.media.call(this),!this.supported.ui)return this.debug.warn("Basic support only for "+this.provider+" "+this.type),d.removeElement.call(this,"controls"),d.removeElement.call(this,"buttons.play"),void k.toggleNativeControls.call(this,!0);d.is.element(this.elements.controls)||(A.inject.call(this),w.controls.call(this)),d.is.element(this.elements.controls)&&(k.toggleNativeControls.call(this),b.setup.call(this),C.setup.call(this),this.volume=null,this.muted=null,this.speed=null,this.loop=null,this.options.quality=[],k.timeUpdate.call(this),k.checkPlaying.call(this),this.ready=!0,d.dispatchEvent.call(this,this.media,"ready"),k.setTitle.call(this))},setTitle:function(){var e=this.config.i18n.play;if(d.is.string(this.config.title)&&!d.is.empty(this.config.title)&&(e+=", "+this.config.title,this.elements.container.setAttribute("aria-label",this.config.title)),d.is.nodeList(this.elements.buttons.play)&&Array.from(this.elements.buttons.play).forEach(function(t){t.setAttribute("aria-label",e)}),this.isEmbed){var t=d.getElement.call(this,"iframe");if(!d.is.element(t))return;var i=d.is.empty(this.config.title)?"video":this.config.title;t.setAttribute("title",this.config.i18n.frameTitle.replace("{title}",i))}},checkPlaying:function(){var e=this;d.toggleClass(this.elements.container,this.config.classNames.playing,this.playing),d.toggleClass(this.elements.container,this.config.classNames.stopped,this.paused),d.is.nodeList(this.elements.buttons.play)&&Array.from(this.elements.buttons.play).forEach(function(t){return d.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(){d.toggleClass(t.elements.container,t.config.classNames.loading,t.loading),t.toggleControls(t.loading)},this.loading?250:0)},checkFailed:function(){var e=this;this.failed=3===this.media.networkState,this.failed&&(d.toggleClass(this.elements.container,this.config.classNames.loading,!1),d.toggleClass(this.elements.container,this.config.classNames.error,!0)),clearTimeout(this.timers.failed),this.timers.loading=setTimeout(function(){d.toggleClass(e.elements.container,e.config.classNames.loading,e.loading),e.toggleControls(e.loading)},this.loading?250:0)},updateVolume:function(){this.supported.ui&&(d.is.element(this.elements.inputs.volume)&&k.setRange.call(this,this.elements.inputs.volume,this.muted?0:this.volume),d.is.element(this.elements.buttons.mute)&&d.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;d.is.element(e)&&(e.value=t,A.updateRangeFill.call(this,e))},setProgress:function(e,t){var i=d.is.number(t)?t:0,n=d.is.element(e)?e:this.elements.display.buffer;if(d.is.element(n)){n.value=i;var s=n.getElementsByTagName("span")[0];d.is.element(s)&&(s.childNodes[0].nodeValue=i)}},updateProgress:function(e){var t=this;if(this.supported.ui&&d.is.event(e)){var i,n=0;if(e)switch(e.type){case"timeupdate":case"seeking":n=d.getPercentage(this.currentTime,this.duration),"timeupdate"===e.type&&k.setRange.call(this,this.elements.inputs.seek,n);break;case"playing":case"progress":n=(i=t.media.buffered)&&i.length?d.getPercentage(i.end(0),t.duration):d.is.number(i)?100*i:0,k.setProgress.call(this,this.elements.display.buffer,n)}}},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(d.is.element(e)&&d.is.number(t)){var n=function(e){return("0"+e).slice(-2)},s=function(e){return parseInt(e/60/60%60,10)},a=s(t),o=parseInt(t/60%60,10),l=parseInt(t%60,10);s(this.duration)>0?a+=":":a="",e.textContent=(i?"-":"")+a+n(o)+":"+n(l)}},timeUpdate:function(e){var t=!d.is.element(this.elements.display.duration)&&this.config.invertTime;k.updateTimeDisplay.call(this,this.elements.display.currentTime,t?this.duration-this.currentTime:this.currentTime,t),e&&"timeupdate"===e.type&&this.media.seeking||k.updateProgress.call(this,e)},durationUpdate:function(){this.supported.ui&&(!d.is.element(this.elements.display.duration)&&this.config.displayDuration&&this.paused&&k.updateTimeDisplay.call(this,this.elements.display.currentTime,this.duration),d.is.element(this.elements.display.duration)&&k.updateTimeDisplay.call(this,this.elements.display.duration,this.duration),A.updateSeekTooltip.call(this))}},T=d.getBrowser(),A={updateRangeFill:function(e){if(T.isWebkit){var t=d.is.event(e)?e.target:e;d.is.element(t)&&"range"===t.getAttribute("type")&&t.style.setProperty("--value",t.value/t.max*100+"%")}},getIconUrl:function(){return{url:this.config.iconUrl,absolute:0===this.config.iconUrl.indexOf("http")||T.isIE&&!window.svg4everybody}},createIcon:function(e,t){var i="http://www.w3.org/2000/svg",n=A.getIconUrl.call(this),s=(n.absolute?"":n.url)+"#"+this.config.iconPrefix,a=document.createElementNS(i,"svg");d.setAttributes(a,d.extend(t,{role:"presentation"}));var o=document.createElementNS(i,"use"),l=s+"-"+e;return"href"in o?o.setAttributeNS("http://www.w3.org/1999/xlink","href",l):o.setAttributeNS("http://www.w3.org/1999/xlink","xlink:href",l),a.appendChild(o),a},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,d.createElement("span",n,i)},createBadge:function(e){if(d.is.empty(e))return null;var t=d.createElement("span",{class:this.config.classNames.menu.value});return t.appendChild(d.createElement("span",{class:this.config.classNames.menu.badge},e)),t},createButton:function(e,t){var i=d.createElement("button"),n=Object.assign({},t),s=e,a=!1,o=void 0,l=void 0,r=void 0,c=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":a=!0,o="play",r="pause",l="play",c="pause";break;case"mute":a=!0,o="mute",r="unmute",l="volume",c="muted";break;case"captions":a=!0,o="enableCaptions",r="disableCaptions",l="captions-off",c="captions-on";break;case"fullscreen":a=!0,o="enterFullscreen",r="exitFullscreen",l="enter-fullscreen",c="exit-fullscreen";break;case"play-large":n.class+=" "+this.config.classNames.control+"--overlaid",s="play",o="play",l="play";break;default:o=s,l=s}return a?(i.appendChild(A.createIcon.call(this,c,{class:"icon--pressed"})),i.appendChild(A.createIcon.call(this,l,{class:"icon--not-pressed"})),i.appendChild(A.createLabel.call(this,r,{class:"label--pressed"})),i.appendChild(A.createLabel.call(this,o,{class:"label--not-pressed"})),n["aria-pressed"]=!1,n["aria-label"]=this.config.i18n[o]):(i.appendChild(A.createIcon.call(this,l)),i.appendChild(A.createLabel.call(this,o))),d.extend(n,d.getAttributesFromSelector(this.config.selectors.buttons[s],n)),d.setAttributes(i,n),this.elements.buttons[s]=i,i},createRange:function(e,t){var i=d.createElement("label",{for:t.id,class:this.config.classNames.hidden},this.config.i18n[e]),n=d.createElement("input",d.extend(d.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,A.updateRangeFill.call(this,n),{label:i,input:n}},createProgress:function(e,t){var i=d.createElement("progress",d.extend(d.getAttributesFromSelector(this.config.selectors.display[e]),{min:0,max:100,value:0},t));if("volume"!==e){i.appendChild(d.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=d.createElement("div",{class:"plyr__time"});return t.appendChild(d.createElement("span",{class:this.config.classNames.hidden},this.config.i18n[e])),t.appendChild(d.createElement("span",d.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,a=arguments.length>5&&void 0!==arguments[5]&&arguments[5],o=d.createElement("li"),l=d.createElement("label",{class:this.config.classNames.control}),r=d.createElement("input",d.extend(d.getAttributesFromSelector(this.config.selectors.inputs[i]),{type:"radio",name:"plyr-"+i,value:e,checked:a,class:"plyr__sr-only"})),c=d.createElement("span",{"aria-hidden":!0});l.appendChild(r),l.appendChild(c),l.insertAdjacentHTML("beforeend",n),d.is.element(s)&&l.appendChild(s),o.appendChild(l),t.appendChild(o)},updateSeekTooltip:function(e){if(this.config.tooltips.seek&&d.is.element(this.elements.inputs.seek)&&d.is.element(this.elements.display.seekTooltip)&&0!==this.duration){var t=0,i=this.elements.inputs.seek.getBoundingClientRect(),n=this.config.classNames.tooltip+"--visible";if(d.is.event(e))t=100/i.width*(e.pageX-i.left);else{if(!d.hasClass(this.elements.display.seekTooltip,n))return;t=parseFloat(this.elements.display.seekTooltip.style.left,10)}t<0?t=0:t>100&&(t=100),k.updateTimeDisplay.call(this,this.elements.display.seekTooltip,this.duration/100*t),this.elements.display.seekTooltip.style.left=t+"%",d.is.event(e)&&["mouseenter","mouseleave"].includes(e.type)&&d.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];d.toggleHidden(i,!t),d.toggleHidden(n,!t)},setQualityMenu:function(e){var t=this,i="quality",n=this.elements.settings.panes.quality.querySelector("ul");d.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 s=!d.is.empty(this.options.quality)&&this.isYouTube;if(A.toggleTab.call(this,i,s),s){d.emptyElement(n);this.options.quality.forEach(function(e){return A.createMenuItem.call(t,e,n,i,A.getLabel.call(t,"quality",e),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?A.createBadge.call(t,i):null}(e))}),A.updateSetting.call(this,i,n)}},getLabel:function(e,t){switch(e){case"speed":return 1===t?"Normal":t+"×";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 A.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.active?this.captions.language:"";break;default:if(n=this[e],d.is.empty(n)&&(n=this.config[e].default),!this.options[e].includes(n))return void this.debug.warn("Unsupported value of '"+n+"' for "+e);if(!this.config[e].options.includes(n))return void this.debug.warn("Disabled value of '"+n+"' for "+e)}(d.is.element(s)||(s=i&&i.querySelector("ul")),d.is.empty(n))||(this.elements.settings.tabs[e].querySelector("."+this.config.classNames.menu.value).innerHTML=A.getLabel.call(this,e,n));var a=s&&s.querySelector('input[value="'+n+'"]');d.is.element(a)&&(a.checked=!0)},getLanguage:function(){if(!this.supported.ui)return null;if(!h.textTracks||!C.getTracks.call(this).length)return this.config.i18n.none;if(this.captions.active){var e=C.getCurrentTrack.call(this);if(d.is.track(e))return e.label}return this.config.i18n.disabled},setCaptionsMenu:function(){var e=this,t="captions",i=this.elements.settings.panes.captions.querySelector("ul"),n=C.getTracks.call(this).length;if(A.toggleTab.call(this,t,n),d.emptyElement(i),n){var s=C.getTracks.call(this).map(function(e){return{language:e.language,label:d.is.empty(e.label)?e.language.toUpperCase():e.label}});s.unshift({language:"",label:this.config.i18n.none}),s.forEach(function(t){A.createMenuItem.call(e,t.language,i,"language",t.label||t.language,A.createBadge.call(e,t.language.toUpperCase()),t.language.toLowerCase()===e.captions.language.toLowerCase())}),A.updateSetting.call(this,t,i)}},setSpeedMenu:function(){var e=this,t="speed";d.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 i=!d.is.empty(this.options.speed);if(A.toggleTab.call(this,t,i),i){var n=this.elements.settings.panes.speed.querySelector("ul");d.toggleHidden(this.elements.settings.tabs.speed,!1),d.toggleHidden(this.elements.settings.panes.speed,!1),d.emptyElement(n),this.options.speed.forEach(function(i){return A.createMenuItem.call(e,i,n,t,A.getLabel.call(e,"speed",i))}),A.updateSetting.call(this,t,n)}},toggleMenu:function(e){var t=this.elements.settings.form,i=this.elements.buttons.settings,n=d.is.boolean(e)?e:d.is.element(t)&&"true"===t.getAttribute("aria-hidden");if(d.is.event(e)){var s=d.is.element(t)&&t.contains(e.target),a=e.target===this.elements.buttons.settings;if(s||!s&&!a&&n)return;a&&e.stopPropagation()}d.is.element(i)&&i.setAttribute("aria-expanded",n),d.is.element(t)&&(t.setAttribute("aria-hidden",!n),d.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 d.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(d.is.element(s)&&"tabpanel"===s.getAttribute("role")){var a=t.querySelector('[role="tabpanel"][aria-hidden="false"]'),o=a.parentNode;if(Array.from(t.querySelectorAll('[aria-controls="'+a.getAttribute("id")+'"]')).forEach(function(e){e.setAttribute("aria-expanded",!1)}),h.transitions&&!h.reducedMotion){o.style.width=a.scrollWidth+"px",o.style.height=a.scrollHeight+"px";var l=A.getTabSize.call(this,s);d.on(o,d.transitionEnd,function e(t){t.target===o&&["width","height"].includes(t.propertyName)&&(o.style.width="",o.style.height="",d.off(o,d.transitionEnd,e))}),o.style.width=l.width+"px",o.style.height=l.height+"px"}a.setAttribute("aria-hidden",!0),a.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(d.is.empty(this.config.controls))return null;var i=d.createElement("div",d.getAttributesFromSelector(this.config.selectors.controls.wrapper));if(this.config.controls.includes("restart")&&i.appendChild(A.createButton.call(this,"restart")),this.config.controls.includes("rewind")&&i.appendChild(A.createButton.call(this,"rewind")),this.config.controls.includes("play")&&i.appendChild(A.createButton.call(this,"play")),this.config.controls.includes("fast-forward")&&i.appendChild(A.createButton.call(this,"fast-forward")),this.config.controls.includes("progress")){var n=d.createElement("div",d.getAttributesFromSelector(this.config.selectors.progress)),s=A.createRange.call(this,"seek",{id:"plyr-seek-"+e.id});if(n.appendChild(s.label),n.appendChild(s.input),n.appendChild(A.createProgress.call(this,"buffer")),this.config.tooltips.seek){var a=d.createElement("span",{role:"tooltip",class:this.config.classNames.tooltip},"00:00");n.appendChild(a),this.elements.display.seekTooltip=a}this.elements.progress=n,i.appendChild(this.elements.progress)}if(this.config.controls.includes("current-time")&&i.appendChild(A.createTime.call(this,"currentTime")),this.config.controls.includes("duration")&&i.appendChild(A.createTime.call(this,"duration")),this.config.controls.includes("mute")&&i.appendChild(A.createButton.call(this,"mute")),this.config.controls.includes("volume")){var o=d.createElement("div",{class:"plyr__volume"}),l={max:1,step:.05,value:this.config.volume},r=A.createRange.call(this,"volume",d.extend(l,{id:"plyr-volume-"+e.id}));o.appendChild(r.label),o.appendChild(r.input),this.elements.volume=o,i.appendChild(o)}if(this.config.controls.includes("captions")&&i.appendChild(A.createButton.call(this,"captions")),this.config.controls.includes("settings")&&!d.is.empty(this.config.settings)){var c=d.createElement("div",{class:"plyr__menu"});c.appendChild(A.createButton.call(this,"settings",{id:"plyr-settings-toggle-"+e.id,"aria-haspopup":!0,"aria-controls":"plyr-settings-"+e.id,"aria-expanded":!1}));var u=d.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=d.createElement("div"),m=d.createElement("div",{id:"plyr-settings-"+e.id+"-home","aria-hidden":!1,"aria-labelled-by":"plyr-settings-toggle-"+e.id,role:"tabpanel"}),g=d.createElement("ul",{role:"tablist"});this.config.settings.forEach(function(i){var n=d.createElement("li",{role:"tab",hidden:""}),s=d.createElement("button",d.extend(d.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]),a=d.createElement("span",{class:t.config.classNames.menu.value});a.innerHTML=e[i],s.appendChild(a),n.appendChild(s),g.appendChild(n),t.elements.settings.tabs[i]=n}),m.appendChild(g),p.appendChild(m),this.config.settings.forEach(function(i){var n=d.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=d.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 a=d.createElement("ul");n.appendChild(a),p.appendChild(n),t.elements.settings.panes[i]=n}),u.appendChild(p),c.appendChild(u),i.appendChild(c),this.elements.settings.form=u,this.elements.settings.menu=c}return this.config.controls.includes("pip")&&h.pip&&i.appendChild(A.createButton.call(this,"pip")),this.config.controls.includes("airplay")&&h.airplay&&i.appendChild(A.createButton.call(this,"airplay")),this.config.controls.includes("fullscreen")&&i.appendChild(A.createButton.call(this,"fullscreen")),this.config.controls.includes("play-large")&&this.elements.container.appendChild(A.createButton.call(this,"play-large")),this.elements.controls=i,this.config.controls.includes("settings")&&this.config.settings.includes("speed")&&A.setSpeedMenu.call(this),i},inject:function(){var e=this;if(this.config.loadSprite){var t=A.getIconUrl.call(this);t.absolute&&d.loadSprite(t.url,"sprite-plyr")}this.id=Math.floor(1e4*Math.random());var i=null;i=d.is.string(this.config.controls)?this.config.controls:d.is.function(this.config.controls)?this.config.controls({id:this.id,seektime:this.config.seekTime,title:this.config.title}):A.create.call(this,{id:this.id,seektime:this.config.seekTime,speed:this.speed,quality:this.quality,captions:A.getLanguage.call(this)});var n=void 0;if(d.is.string(this.config.selectors.controls.container)&&(n=document.querySelector(this.config.selectors.controls.container)),d.is.element(n)||(n=this.elements.container),d.is.element(i)?n.appendChild(i):n.insertAdjacentHTML("beforeend",i),d.is.element(this.elements.controls)&&d.findElements.call(this),window.navigator.userAgent.includes("Edge")&&d.repaint(n),this.config.tooltips.controls){var s=d.getElements.call(this,[this.config.selectors.controls.wrapper," ",this.config.selectors.labels," .",this.config.classNames.hidden].join(""));Array.from(s).forEach(function(t){d.toggleClass(t,e.config.classNames.hidden,!1),d.toggleClass(t,e.config.classNames.tooltip,!0),t.setAttribute("role","tooltip")})}}},C={setup:function(){if(this.supported.ui){var e=this.storage.get("language");if(d.is.empty(e)||(this.captions.language=e),d.is.empty(this.captions.language)&&(this.captions.language=this.config.captions.language.toLowerCase()),!d.is.boolean(this.captions.active)){var t=this.storage.get("captions");d.is.boolean(t)?this.captions.active=t:this.captions.active=this.config.captions.active}!this.isVideo||this.isYouTube||this.isHTML5&&!h.textTracks?this.config.controls.includes("settings")&&this.config.settings.includes("captions")&&A.setCaptionsMenu.call(this):(d.is.element(this.elements.captions)||(this.elements.captions=d.createElement("div",d.getAttributesFromSelector(this.config.selectors.captions)),d.insertAfter(this.elements.captions,this.elements.wrapper)),d.toggleClass(this.elements.container,this.config.classNames.captions.enabled,!d.is.empty(C.getTracks.call(this))),d.is.empty(C.getTracks.call(this))||(C.setLanguage.call(this),C.show.call(this),this.config.controls.includes("settings")&&this.config.settings.includes("captions")&&A.setCaptionsMenu.call(this)))}},setLanguage:function(){var e=this;if(this.isHTML5&&this.isVideo){C.getTracks.call(this).forEach(function(t){d.on(t,"cuechange",function(t){return C.setCue.call(e,t)}),t.mode="hidden"});var t=C.getCurrentTrack.call(this);d.is.track(t)&&Array.from(t.activeCues||[]).length&&C.setCue.call(this,t)}else this.isVimeo&&this.captions.active&&this.embed.enableTextTrack(this.language)},getTracks:function(){return d.is.nullOrUndefined(this.media)?[]:Array.from(this.media.textTracks||[]).filter(function(e){return["captions","subtitles"].includes(e.kind)})},getCurrentTrack:function(){var e=this;return C.getTracks.call(this).find(function(t){return t.language.toLowerCase()===e.language})},setCue:function(e){var t=d.is.event(e)?e.target:e,i=t.activeCues[0];t===C.getCurrentTrack.call(this)&&(d.is.cue(i)?C.setText.call(this,i.getCueAsHTML()):C.setText.call(this,null),d.dispatchEvent.call(this,this.media,"cuechange"))},setText:function(e){if(this.supported.ui)if(d.is.element(this.elements.captions)){var t=d.createElement("span");d.emptyElement(this.elements.captions);var i=d.is.nullOrUndefined(e)?"":e;d.is.string(i)?t.textContent=i.trim():t.appendChild(i),this.elements.captions.appendChild(t)}else this.debug.warn("No captions element to render to")},show:function(){if(d.is.element(this.elements.buttons.captions)){var e=this.storage.get("captions");d.is.boolean(e)?this.captions.active=e:e=this.config.captions.active,e&&(d.toggleClass(this.elements.container,this.config.classNames.captions.active,!0),d.toggleState(this.elements.buttons.captions,!0))}}},S={setup:function(){var e=this;d.toggleClass(this.elements.wrapper,this.config.classNames.embed,!0),S.setAspectRatio.call(this),d.is.object(window.YT)&&d.is.function(window.YT.Player)?S.ready.call(this):(d.loadScript(this.config.urls.youtube.api),window.onYouTubeReadyCallbacks=window.onYouTubeReadyCallbacks||[],window.onYouTubeReadyCallbacks.push(function(){S.ready.call(e)}),window.onYouTubeIframeAPIReady=function(){window.onYouTubeReadyCallbacks.forEach(function(e){e()})})},getTitle:function(e){var t=this;if(d.is.function(this.embed.getVideoData)){var i=this.embed.getVideoData().title;if(d.is.empty(i))return this.config.title=i,void k.setTitle.call(this)}var n=this.config.keys.google;d.is.string(n)&&!d.is.empty(n)&&fetch("https://www.googleapis.com/youtube/v3/videos?id="+e+"&key="+n+"&fields=items(snippet(title))&part=snippet").then(function(e){return e.ok?e.json():null}).then(function(e){null!==e&&d.is.object(e)&&(t.config.title=e.items[0].snippet.title,k.setTitle.call(t))}).catch(function(){})},setAspectRatio:function(){var e=this.config.ratio.split(":");this.elements.wrapper.style.paddingBottom=100/e[0]*e[1]+"%"},ready:function(){var e=this,t=e.media.getAttribute("id");if(d.is.empty(t)||!t.startsWith("youtube-")){var i=d.parseYouTubeId(e.media.getAttribute("src")),n=d.generateId(e.provider),s=d.createElement("div",{id:n});e.media=d.replaceElement(s,e.media),e.embed=new window.YT.Player(n,{videoId:i,playerVars:{autoplay:e.config.autoplay?1:0,controls:e.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:e.captions.active?1:0,cc_lang_pref:e.config.captions.language},events:{onError:function(t){if(!d.is.object(e.media.error)){var i={code:t.data};switch(t.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"}e.media.error=i,d.dispatchEvent.call(e,e.media,"error")}},onPlaybackQualityChange:function(t){var i=t.target;e.media.quality=i.getPlaybackQuality(),d.dispatchEvent.call(e,e.media,"qualitychange")},onPlaybackRateChange:function(t){var i=t.target;e.media.playbackRate=i.getPlaybackRate(),d.dispatchEvent.call(e,e.media,"ratechange")},onReady:function(t){var n=t.target;S.getTitle.call(e,i),e.media.play=function(){n.playVideo(),e.media.paused=!1},e.media.pause=function(){n.pauseVideo(),e.media.paused=!0},e.media.stop=function(){n.stopVideo(),e.media.paused=!0},e.media.duration=n.getDuration(),e.media.paused=!0,e.media.currentTime=0,Object.defineProperty(e.media,"currentTime",{get:function(){return Number(n.getCurrentTime())},set:function(t){e.media.seeking=!0,d.dispatchEvent.call(e,e.media,"seeking"),n.seekTo(t)}}),Object.defineProperty(e.media,"playbackRate",{get:function(){return n.getPlaybackRate()},set:function(e){n.setPlaybackRate(e)}}),Object.defineProperty(e.media,"quality",{get:function(){return n.getPlaybackQuality()},set:function(t){d.dispatchEvent.call(e,e.media,"qualityrequested",!1,{quality:t}),n.setPlaybackQuality(t)}});var s=e.config.volume;Object.defineProperty(e.media,"volume",{get:function(){return s},set:function(t){s=t,n.setVolume(100*s),d.dispatchEvent.call(e,e.media,"volumechange")}});var a=e.config.muted;Object.defineProperty(e.media,"muted",{get:function(){return a},set:function(t){var i=d.is.boolean(t)?t:a;a=i,n[i?"mute":"unMute"](),d.dispatchEvent.call(e,e.media,"volumechange")}}),Object.defineProperty(e.media,"currentSrc",{get:function(){return n.getVideoUrl()}}),Object.defineProperty(e.media,"ended",{get:function(){return e.currentTime===e.duration}}),e.options.speed=n.getAvailablePlaybackRates(),e.supported.ui&&e.media.setAttribute("tabindex",-1),d.dispatchEvent.call(e,e.media,"timeupdate"),d.dispatchEvent.call(e,e.media,"durationchange"),window.clearInterval(e.timers.buffering),e.timers.buffering=window.setInterval(function(){e.media.buffered=n.getVideoLoadedFraction(),(null===e.media.lastBuffered||e.media.lastBuffered is missing");if(this.type=a.video,u=c.getAttribute("src"),this.provider=d.getProviderByUrl(u),p=d.getUrlParams(u),!d.is.empty(p)){var f=["1","true"];f.includes(p.autoplay)&&(this.config.autoplay=!0),f.includes(p.playsinline)&&(this.config.inline=!0),f.includes(p.loop)&&(this.config.loop.active=!0)}if(d.is.empty(this.provider)||!Object.keys(s).includes(this.provider))return void this.debug.error("Setup failed: Invalid provider");this.elements.container=this.media,this.media=c,this.elements.container.className="";break;case"video":case"audio":this.type=r,this.provider=s.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.debug.error("Setup failed: unsupported type")}this.storage=new g(this),this.supported=h.check(this.type,this.provider,this.config.inline),this.supported.api?(this.media.plyr=this,d.is.element(this.elements.container)||(this.elements.container=d.createElement("div"),d.wrap(this.media,this.elements.container)),this.elements.container.setAttribute("tabindex",0),w.global.call(this),k.addStyleHook.call(this),P.setup.call(this),this.config.debug&&d.on(this.elements.container,this.config.events.join(" "),function(e){n.debug.log("event: "+e.type)}),(this.isHTML5||this.isEmbed&&!this.supported.ui)&&k.build.call(this),this.ads=new y(this)):this.debug.error("Setup failed: no support")}else this.debug.error("Setup failed: no support");else this.debug.error("Setup failed: disabled by config");else this.debug.error("Setup failed: no suitable element passed")}return r(e,[{key:"play",value:function(){return this.media.play()}},{key:"pause",value:function(){this.playing&&this.media.pause()}},{key:"togglePlay",value:function(e){(d.is.boolean(e)?e:!this.playing)?this.play():this.pause()}},{key:"stop",value:function(){this.restart(),this.pause()}},{key:"restart",value:function(){this.currentTime=0}},{key:"rewind",value:function(e){this.currentTime=this.currentTime-(d.is.number(e)?e:this.config.seekTime)}},{key:"forward",value:function(e){this.currentTime=this.currentTime+(d.is.number(e)?e:this.config.seekTime)}},{key:"increaseVolume",value:function(e){var t=this.media.muted?0:this.volume;this.volume=t+(d.is.number(e)?e:1)}},{key:"decreaseVolume",value:function(e){var t=this.media.muted?0:this.volume;this.volume=t-(d.is.number(e)?e:1)}},{key:"toggleCaptions",value:function(e){if(this.supported.ui&&d.is.element(this.elements.buttons.captions)){var t=d.is.boolean(e)?e:-1===this.elements.container.className.indexOf(this.config.classNames.captions.active);this.captions.active!==t&&(this.captions.active=t,d.toggleState(this.elements.buttons.captions,this.captions.active),d.toggleClass(this.elements.container,this.config.classNames.captions.active,this.captions.active),d.dispatchEvent.call(this,this.media,this.captions.active?"captionsenabled":"captionsdisabled"))}}},{key:"toggleFullscreen",value:function(e){if(!this.isAudio){if(b.enabled){if(!d.is.event(e)||e.type!==b.eventType)return void(this.fullscreen.active?b.cancelFullScreen():b.requestFullScreen(this.elements.container));this.fullscreen.active=b.isFullScreen(this.elements.container)}else this.fullscreen.active=!this.fullscreen.active,d.toggleClass(this.elements.container,this.config.classNames.fullscreen.fallback,this.fullscreen.active),this.fullscreen.active?x={x:window.pageXOffset||0,y:window.pageYOffset||0}:window.scrollTo(x.x,x.y),document.body.style.overflow=this.fullscreen.active?"hidden":"";d.is.element(this.elements.buttons.fullscreen)&&d.toggleState(this.elements.buttons.fullscreen,this.fullscreen.active),d.dispatchEvent.call(this,this.media,this.fullscreen.active?"enterfullscreen":"exitfullscreen")}}},{key:"airplay",value:function(){h.airplay&&this.media.webkitShowPlaybackTargetPicker()}},{key:"toggleControls",value:function(e){var t=this;if(d.is.element(this.elements.controls)&&this.supported.ui&&!this.isAudio){var i=0,n=e,s=!1;if(d.is.boolean(e)||(d.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,d.toggleClass(this.elements.controls,this.config.classNames.noTransition,!0))):n=d.hasClass(this.elements.container,this.config.classNames.hideControls)),window.clearTimeout(this.timers.controls),n||this.paused||this.loading){if(d.toggleClass(this.elements.container,this.config.classNames.hideControls,!1)&&d.dispatchEvent.call(this,this.media,"controlsshown"),this.paused||this.loading)return;h.touch&&(i=3e3)}n&&!this.playing||(this.timers.controls=window.setTimeout(function(){(!t.elements.controls.pressed&&!t.elements.controls.hover||s)&&(d.hasClass(t.elements.container,t.config.classNames.hideControls)||d.toggleClass(t.elements.controls,t.config.classNames.noTransition,!1),d.toggleClass(t.elements.container,t.config.classNames.hideControls,!0)&&(d.dispatchEvent.call(t,t.media,"controlshidden"),t.config.controls.includes("settings")&&!d.is.empty(t.config.settings)&&A.toggleMenu.call(t,!1)))},i))}}},{key:"on",value:function(e,t){d.on(this.elements.container,e,t)}},{key:"off",value:function(e,t){d.off(this.elements.container,e,t)}},{key:"destroy",value:function(e){var t=this,i=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=function(){document.body.style.overflow="",t.embed=null,i?(Object.keys(t.elements).length&&(t.elements.buttons&&t.elements.buttons.play&&Array.from(t.elements.buttons.play).forEach(function(e){return d.removeElement(e)}),d.removeElement(t.elements.captions),d.removeElement(t.elements.controls),d.removeElement(t.elements.wrapper),t.elements.buttons.play=null,t.elements.captions=null,t.elements.controls=null,t.elements.wrapper=null),d.is.function(e)&&e()):(d.replaceElement(t.elements.original,t.elements.container),d.dispatchEvent.call(t,t.elements.original,"destroyed",!0),d.is.function(e)&&e.call(t.elements.original),t.elements=null)};switch(this.provider+":"+this.type){case"html5:video":case"html5:audio":k.toggleNativeControls.call(this,!0),n();break;case"youtube:video":window.clearInterval(this.timers.buffering),window.clearInterval(this.timers.playing),null!==this.embed&&this.embed.destroy(),n();break;case"vimeo:video":null!==this.embed&&this.embed.unload().then(n),window.setTimeout(n,200)}}},{key:"supports",value:function(e){return h.mime.call(this,e)}},{key:"isHTML5",get:function(){return this.provider===s.html5}},{key:"isEmbed",get:function(){return this.isYouTube||this.isVimeo}},{key:"isYouTube",get:function(){return this.provider===s.youtube}},{key:"isVimeo",get:function(){return this.provider===s.vimeo}},{key:"isVideo",get:function(){return this.type===a.video}},{key:"isAudio",get:function(){return this.type===a.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;d.is.number(e)&&(t=e),t<0?t=0:t>this.duration&&(t=this.duration),this.media.currentTime=t.toFixed(4),this.debug.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;d.is.string(t)&&(t=Number(t)),d.is.number(t)||(t=this.storage.get("volume")),d.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;d.is.boolean(t)||(t=this.storage.get("muted")),d.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;d.is.number(e)&&(t=e),d.is.number(t)||(t=this.storage.get("speed")),d.is.number(t)||(t=this.config.speed.selected),t<.1&&(t=.1),t>2&&(t=2),this.config.speed.options.includes(t)?(this.config.speed.selected=t,this.media.playbackRate=t):this.debug.warn("Unsupported speed ("+t+")")},get:function(){return this.media.playbackRate}},{key:"quality",set:function(e){var t=null;d.is.string(e)&&(t=e),d.is.string(t)||(t=this.storage.get("quality")),d.is.string(t)||(t=this.config.quality.selected),this.options.quality.includes(t)?(this.config.quality.selected=t,this.media.quality=t):this.debug.warn("Unsupported quality option ("+t+")")},get:function(){return this.media.quality}},{key:"loop",set:function(e){var t=d.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){M.change.call(this,e)},get:function(){return this.media.currentSrc}},{key:"poster",set:function(e){this.isHTML5&&this.isVideo?d.is.string(e)&&this.media.setAttribute("poster",e):this.debug.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=d.is.boolean(e)?e:this.config.autoplay;this.config.autoplay=t},get:function(){return this.config.autoplay}},{key:"language",set:function(e){if(d.is.string(e)&&(this.toggleCaptions(!d.is.empty(e)),!d.is.empty(e))){var t=e.toLowerCase();this.language!==t&&(this.captions.language=t,C.setText.call(this,null),C.setLanguage.call(this),d.dispatchEvent.call(this,this.media,"languagechange"))}},get:function(){return this.captions.language}},{key:"pip",set:function(e){var t="picture-in-picture",i="inline";if(h.pip){var n=d.is.boolean(e)?e:this.pip===i;this.media.webkitSetPresentationMode(n?t:i)}},get:function(){return h.pip?this.media.webkitPresentationMode:null}}],[{key:"supported",value:function(e,t,i){return h.check(e,t,i)}},{key:"loadSprite",value:function(e,t){return d.loadSprite(e,t)}}]),e}()}); //# sourceMappingURL=plyr.js.map