From 857dfe838c8b977abbb9ca9189f840852f42ec52 Mon Sep 17 00:00:00 2001 From: Sam Potts Date: Sun, 21 May 2017 17:50:07 +1000 Subject: [PATCH] Menu toggle --- .github/issue_template.md | 25 ++---- demo/dist/demo.js | 2 +- demo/src/js/main.js | 1 + dist/plyr.js | 4 +- notes.md | 15 ++-- src/js/plyr.js | 164 +++++++++++++++++++++++++++----------- src/less/plyr.less | 7 +- 7 files changed, 141 insertions(+), 77 deletions(-) diff --git a/.github/issue_template.md b/.github/issue_template.md index 8e3b85b7..f503b944 100644 --- a/.github/issue_template.md +++ b/.github/issue_template.md @@ -1,28 +1,17 @@ - -- [ ] Issue does not already exist -- [ ] Issue observed on https://plyr.io - -### Expected behaviour +### Expected behaviour ### Actual behaviour ### Environment - Browser: -- Version: +- Version: - Operating System: -- Version: +- Version: -Players affected: -- [ ] HTML5 Video -- [ ] HTML5 Audio -- [ ] YouTube -- [ ] Vimeo - -### Steps to reproduce -- - -### Relevant links +### Steps to reproduce +- \ No newline at end of file diff --git a/demo/dist/demo.js b/demo/dist/demo.js index 5418f747..52bc77bb 100644 --- a/demo/dist/demo.js +++ b/demo/dist/demo.js @@ -1 +1 @@ -"document"in self&&("classList"in document.createElement("_")?!function(){"use strict";var e=document.createElement("_");if(e.classList.add("c1","c2"),!e.classList.contains("c2")){var t=function(e){var t=DOMTokenList.prototype[e];DOMTokenList.prototype[e]=function(e){var i,n=arguments.length;for(i=0;i=0;a--)e(n[a].parentElement,"active",!1);e(document.querySelector('[data-source="'+t+'"]').parentElement,"active",!0)}}document.body.addEventListener("ready",function(e){console.log(e)});var i=new Plyr("#player",{debug:!0,title:"View From A Blue Moon",iconUrl:"../dist/plyr.svg",tooltips:{controls:!0},captions:{defaultActive:!0},controls:["play-large","play","progress","current-time","mute","volume","captions","settings","fullscreen","pip","airplay"]});window.loadSprite("dist/demo.svg","demo-sprite");var n=document.querySelectorAll("[data-source]"),o={video:"video",audio:"audio",youtube:"youtube",vimeo:"vimeo"},r=window.location.hash.replace("#",""),s=window.history&&window.history.pushState;if([].forEach.call(n,function(e){e.addEventListener("click",function(){var e=this.getAttribute("data-source");t(e),s&&history.pushState({type:e},"","#"+e)})}),window.addEventListener("popstate",function(e){e.state&&"type"in e.state&&t(e.state.type)}),s){var a=!r.length;a&&(r=o.video),r in o&&history.replaceState({type:r},"",a?"":"#"+r),r!==o.video&&t(r,!0)}}(),document.domain.indexOf("plyr.io")>-1&&(!function(e,t,i,n,o,r,s){e.GoogleAnalyticsObject=o,e[o]=e[o]||function(){(e[o].q=e[o].q||[]).push(arguments)},e[o].l=1*new Date,r=t.createElement(i),s=t.getElementsByTagName(i)[0],r.async=1,r.src=n,s.parentNode.insertBefore(r,s)}(window,document,"script","//www.google-analytics.com/analytics.js","ga"),window.ga("create","UA-40881672-11","auto"),window.ga("send","pageview")); \ No newline at end of file +"document"in self&&("classList"in document.createElement("_")?!function(){"use strict";var e=document.createElement("_");if(e.classList.add("c1","c2"),!e.classList.contains("c2")){var t=function(e){var t=DOMTokenList.prototype[e];DOMTokenList.prototype[e]=function(e){var i,n=arguments.length;for(i=0;i=0;a--)e(n[a].parentElement,"active",!1);e(document.querySelector('[data-source="'+t+'"]').parentElement,"active",!0)}}var i=new Plyr("#player",{debug:!0,title:"View From A Blue Moon",iconUrl:"../dist/plyr.svg",tooltips:{controls:!0},captions:{defaultActive:!0},controls:["play-large","play","progress","current-time","mute","volume","captions","settings","fullscreen","pip","airplay"]});window.loadSprite("dist/demo.svg","demo-sprite");var n=document.querySelectorAll("[data-source]"),o={video:"video",audio:"audio",youtube:"youtube",vimeo:"vimeo"},r=window.location.hash.replace("#",""),s=window.history&&window.history.pushState;if([].forEach.call(n,function(e){e.addEventListener("click",function(){var e=this.getAttribute("data-source");t(e),s&&history.pushState({type:e},"","#"+e)})}),window.addEventListener("popstate",function(e){e.state&&"type"in e.state&&t(e.state.type)}),s){var a=!r.length;a&&(r=o.video),r in o&&history.replaceState({type:r},"",a?"":"#"+r),r!==o.video&&t(r,!0)}}(),document.domain.indexOf("plyr.io")>-1&&(!function(e,t,i,n,o,r,s){e.GoogleAnalyticsObject=o,e[o]=e[o]||function(){(e[o].q=e[o].q||[]).push(arguments)},e[o].l=1*new Date,r=t.createElement(i),s=t.getElementsByTagName(i)[0],r.async=1,r.src=n,s.parentNode.insertBefore(r,s)}(window,document,"script","//www.google-analytics.com/analytics.js","ga"),window.ga("create","UA-40881672-11","auto"),window.ga("send","pageview")); \ No newline at end of file diff --git a/demo/src/js/main.js b/demo/src/js/main.js index d8586685..2a94195d 100644 --- a/demo/src/js/main.js +++ b/demo/src/js/main.js @@ -37,6 +37,7 @@ 'airplay' ] }); + window.loadSprite('dist/demo.svg', 'demo-sprite'); // Setup type toggle diff --git a/dist/plyr.js b/dist/plyr.js index 569d3673..dc28f5d8 100644 --- a/dist/plyr.js +++ b/dist/plyr.js @@ -1,2 +1,2 @@ -!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=t(e,document):"function"==typeof define&&define.amd?define([],function(){return t(e,document)}):e.Plyr=t(e,document)}("undefined"!=typeof window?window:this,function(e,t){"use strict";function n(n,u){function c(e,t,n,s){r.event(e,t,n,r.extend({},s,{plyr:Me}))}function d(e){return Oe.elements.container.querySelectorAll(e)}function p(e){return d(e)[0]}function m(e){r.is.string(e)?(r.removeElement(Oe.elements[e]),Oe.elements[e]=null):r.removeElement(e)}function f(){function e(e){9===e.which&&Oe.fullscreen.active&&(e.target!==s||e.shiftKey?e.target===n&&e.shiftKey&&(e.preventDefault(),s.focus()):(e.preventDefault(),n.focus()))}var t=d("input:not([disabled]), button:not([disabled])"),n=t[0],s=t[t.length-1];r.on(Oe.elements.container,"keydown",e,!1)}function y(e,t){r.is.string(t)?r.insertElement(e,Oe.elements.media,{src:t}):r.is.array(t)&&t.forEach(function(t){r.insertElement(e,Oe.elements.media,t)})}function g(){return{url:Ve.iconUrl,absolute:0===Ve.iconUrl.indexOf("http")||Oe.browser.isIE}}function b(e,n){var s="http://www.w3.org/2000/svg",a=g(),l=(a.absolute?"":a.url)+"#"+Ve.iconPrefix,i=t.createElementNS(s,"svg");r.setAttributes(i,r.extend(n,{role:"presentation"}));var o=t.createElementNS(s,"use");return o.setAttributeNS("http://www.w3.org/1999/xlink","xlink:href",l+"-"+e),i.appendChild(o),i}function v(e){var t=Ve.i18n[e];switch(e){case"pip":t="PIP";break;case"airplay":t="AirPlay"}return r.createElement("span",{class:Ve.classes.hidden},t)}function h(e){var t=r.createElement("span",{class:Ve.classes.menu.value});return t.appendChild(r.createElement("span",{class:Ve.classes.menu.badge},e)),t}function k(e,t){var n,s,a,l=r.createElement("button");switch(r.is.object(t)||(t={}),"class"in t?t.class.indexOf(Ve.classes.control)===-1&&(t.class+=" "+Ve.classes.control):t.class=Ve.classes.control,e){case"mute":a="toggleMute",n="volume",s="muted";break;case"captions":a="toggleCaptions",n="captions-off",s="captions-on";break;case"fullscreen":a="toggleFullscreen",n="enter-fullscreen",s="exit-fullscreen";break;case"play-large":t.class="plyr__play-large",e="play",a="play",n="play";break;default:a=e,n=e}return r.extend(t,r.getAttributesFromSelector(Ve.selectors.buttons[e],t)),r.is.string(s)&&l.appendChild(b(s,{class:"icon--"+s})),l.appendChild(b(n)),l.appendChild(v(a)),r.setAttributes(l,t),Oe.elements.buttons[e]=l,l}function C(e,t){var n=r.createElement("label",{for:t.id,class:Ve.classes.hidden},Ve.i18n[e]),s=r.createElement("input",r.extend(r.getAttributesFromSelector(Ve.selectors.inputs[e]),{type:"range",min:0,max:100,step:.1,value:0,autocomplete:"off"},t));return Oe.elements.inputs[e]=s,{label:n,input:s}}function E(e,t){var n=r.createElement("progress",r.extend(r.getAttributesFromSelector(Ve.selectors.display[e]),{min:0,max:100,value:0},t));if("volume"!==e){n.appendChild(r.createElement("span",null,"0"));var s="";switch(e){case"played":s=Ve.i18n.played;break;case"buffer":s=Ve.i18n.buffered}n.textContent="% "+s.toLowerCase()}return Oe.elements.display[e]=n,n}function A(e){var t=r.createElement("span",{class:"plyr__time"});return t.appendChild(r.createElement("span",{class:Ve.classes.hidden},Ve.i18n[e])),t.appendChild(r.createElement("span",r.getAttributesFromSelector(Ve.selectors.display[e]),"00:00")),Oe.elements.display[e]=t,t}function w(e){var t=r.createElement("div",r.getAttributesFromSelector(Ve.selectors.controls.wrapper));if(r.inArray(Ve.controls,"restart")&&t.appendChild(k("restart")),r.inArray(Ve.controls,"rewind")&&t.appendChild(k("rewind")),r.inArray(Ve.controls,"play")&&(t.appendChild(k("play")),t.appendChild(k("pause"))),r.inArray(Ve.controls,"fast-forward")&&t.appendChild(k("fast-forward")),r.inArray(Ve.controls,"progress")){var n=r.createElement("span",r.getAttributesFromSelector(Ve.selectors.progress)),s=C("seek",{id:"plyr-seek-"+e.id});if(n.appendChild(s.label),n.appendChild(s.input),n.appendChild(E("played")),n.appendChild(E("buffer")),Ve.tooltips.seek){var a=r.createElement("span",{role:"tooltip",class:Ve.classes.tooltip},"00:00");n.appendChild(a),Oe.elements.display.seekTooltip=a}Oe.elements.progress=n,t.appendChild(Oe.elements.progress)}if(r.inArray(Ve.controls,"current-time")&&t.appendChild(A("currentTime")),r.inArray(Ve.controls,"duration")&&t.appendChild(A("duration")),r.inArray(Ve.controls,"mute")&&t.appendChild(k("mute")),r.inArray(Ve.controls,"volume")){var l=r.createElement("span",{class:"plyr__volume"}),i={max:10,value:Ve.volume},u=C("volume",r.extend(i,{id:"plyr-volume-"+e.id}));l.appendChild(u.label),l.appendChild(u.input);var c=E("volume",i);l.appendChild(c),t.appendChild(l)}if(r.inArray(Ve.controls,"captions")&&t.appendChild(k("captions")),r.inArray(Ve.controls,"settings")){var d=r.createElement("span",r.extend(r.getAttributesFromSelector(Ve.selectors.buttons.settings),{class:"plyr__menu"}));d.appendChild(k("settings",{id:"plyr-settings-toggle-"+e.id,"aria-haspopup":!0,"aria-controls":"plyr-settings-"+e.id,"aria-expanded":!1}));var p=r.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}),m=r.createElement("div"),f=r.createElement("div",{id:"plyr-settings-"+e.id+"-home","aria-hidden":!1,"aria-labelled-by":"plyr-settings-toggle-"+e.id,role:"tabpanel"}),y=r.createElement("ul",{role:"tablist"});["captions","quality","speed","loop"].forEach(function(t){var n=r.createElement("li",{role:"tab"}),s=r.createElement("button",r.extend(r.getAttributesFromSelector(Ve.selectors.buttons.settings),{type:"button",class:Ve.classes.control+" "+Ve.classes.control+"--forward",id:"plyr-settings-"+e.id+"-"+t+"-tab","aria-haspopup":!0,"aria-controls":"plyr-settings-"+e.id+"-"+t,"aria-expanded":!1}),Ve.i18n[t]),a=r.createElement("span",{class:Ve.classes.menu.value});a.innerHTML=e[t],s.appendChild(a),n.appendChild(s),y.appendChild(n),Oe.elements.settings.tabs[t]=n}),f.appendChild(y),m.appendChild(f),["captions","quality","speed","loop"].forEach(function(t){var n=r.createElement("div",{id:"plyr-settings-"+e.id+"-"+t,"aria-hidden":!0,"aria-labelled-by":"plyr-settings-"+e.id+"-"+t+"-tab",role:"tabpanel",tabindex:-1}),s=r.createElement("button",{type:"button",class:Ve.classes.control+" "+Ve.classes.control+"--back","aria-haspopup":!0,"aria-controls":"plyr-settings-"+e.id+"-home","aria-expanded":!1},Ve.i18n[t]);n.appendChild(s);var a=r.createElement("ul");n.appendChild(a),m.appendChild(n),Oe.elements.settings.panes[t]=n}),p.appendChild(m),d.appendChild(p),t.appendChild(d),Oe.elements.settings.menu=d}return r.inArray(Ve.controls,"pip")&&o.pip&&t.appendChild(k("pip")),r.inArray(Ve.controls,"airplay")&&o.airplay&&t.appendChild(k("airplay")),r.inArray(Ve.controls,"fullscreen")&&t.appendChild(k("fullscreen")),Oe.elements.controls=t,T(),F(),t}function S(e,n){function s(e){var t="";switch(e){case"hd2160":t="4K";break;case"hd1440":t="WQHD";break;case"hd1080":t="HD";break;case"hd720":t="HD"}return t.length?h(t):null}function a(e){switch(e){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";default:return"Auto"}}var l=Oe.elements.settings.panes.quality.querySelector("ul");r.emptyElement(l),r.is.array(e)&&!r.is.empty(e)&&e.filter(function(e){return!r.inArray(["tiny","small"],e)}).forEach(function(e){var n=r.createElement("li"),i=r.createElement("label",{class:Ve.classes.control,for:"plyr-quality-"+e}),o=r.createElement("input",r.extend(r.getAttributesFromSelector(Ve.selectors.inputs.quality),{type:"radio",id:"plyr-quality-"+e,name:"plyr-quality",value:e}));e===Ve.quality.selected&&o.setAttribute("checked",""),i.appendChild(o),i.appendChild(t.createTextNode(a(e)));var u=s(e);r.is.htmlElement(u)&&i.appendChild(u),n.appendChild(i),l.appendChild(n)})}function T(){var e=["start","end","all","reset"],t=Oe.elements.settings.panes.loop.querySelector("ul");r.emptyElement(t),e.forEach(function(e){var n=r.createElement("li"),s=r.createElement("button",r.extend(r.getAttributesFromSelector(Ve.selectors.buttons.loop),{type:"button",class:Ve.classes.control,"data-plyr-loop-action":e}),Ve.i18n[e]);if(r.inArray(["start","end"],e)){var a=h("0:00");s.appendChild(a)}n.appendChild(s),t.appendChild(n)})}function x(){var e=Oe.elements.settings.panes.captions.querySelector("ul");if(r.emptyElement(e),!r.is.empty(Oe.captions.tracks)){var n=[].map.call(Oe.captions.tracks,function(e){return{language:e.language,badge:!0,label:r.is.empty(e.label)?e.language.toUpperCase():e.label}});n.unshift({language:"off",label:Ve.i18n.none}),n.forEach(function(n){var s=r.createElement("li"),a=r.createElement("label",{class:Ve.classes.control,for:"plyr-language-"+n.language}),l=r.createElement("input",r.extend(r.getAttributesFromSelector(Ve.selectors.inputs.language),{type:"radio",id:"plyr-language-"+n.language,name:"plyr-language",value:n.language}));n.language===Ve.captions.language.toLowerCase()&&l.setAttribute("checked",""),a.appendChild(l),a.appendChild(t.createTextNode(n.label||n.language)),n.badge&&a.appendChild(h(n.language.toUpperCase())),s.appendChild(a),e.appendChild(s)})}}function F(e){var t=Oe.elements.settings.panes.speed.querySelector("ul");r.emptyElement(t),r.is.array(e)||(e=Ve.speed.options),e.forEach(function(e){var n=r.createElement("li"),s=r.createElement("label",{class:Ve.classes.control,for:"plyr-speed-"+e.toString().replace(".","-")}),a=r.createElement("input",r.extend(r.getAttributesFromSelector(Ve.selectors.inputs.speed),{type:"radio",id:"plyr-speed-"+e.toString().replace(".","-"),name:"plyr-speed",value:e}));e===Ve.speed.selected&&a.setAttribute("checked",""),s.appendChild(a),s.insertAdjacentHTML("beforeend","×"+e),n.appendChild(s),t.appendChild(n)})}function I(){if(Oe.supported.full&&("audio"!==Oe.type||Ve.fullscreen.allowAudio)&&Ve.fullscreen.enabled){var e=o.fullscreen;e||Ve.fullscreen.fallback&&!r.inFrame()?(De((e?"Native":"Fallback")+" fullscreen enabled"),r.toggleClass(Oe.elements.container,Ve.classes.fullscreen.enabled,!0)):De("Fullscreen not supported and fallback disabled"),Oe.elements.buttons&&Oe.elements.buttons.fullscreen&&r.toggleState(Oe.elements.buttons.fullscreen,!1),f()}}function P(e){if(r.inArray(["video","vimeo"],Oe.type)&&("video"!==Oe.type||o.textTracks)&&(r.is.htmlElement(Oe.elements.captions)||(Oe.elements.captions=r.createElement("div",r.getAttributesFromSelector(Ve.selectors.captions)),r.insertAfter(Oe.elements.captions,Oe.elements.wrapper)),Oe.captions.tracks=r.is.array(e)?e:Oe.elements.media.textTracks,r.toggleClass(Oe.elements.container,Ve.classes.captions.enabled,!r.is.empty(Oe.captions.tracks)),!r.is.empty(Oe.captions.tracks))){if(O(),"video"===Oe.type){var t=Ve.captions.language.toLowerCase();[].forEach.call(Oe.captions.tracks,function(e){r.off(e,"cuechange",N),e.mode="hidden",e.language===t&&(Oe.captions.currentTrack=e)}),r.is.track(Oe.captions.currentTrack)||(Re("No language found to match "+t+" in tracks"),Oe.captions.currentTrack=Oe.captions.tracks[0]);var n=Oe.captions.currentTrack;r.is.track(n)&&r.inArray(["captions","subtitles"],n.kind)&&(r.on(n,"cuechange",N),n.activeCues&&n.activeCues.length>0&&N(n))}x()}}function _(){return!o.textTracks||r.is.empty(Oe.captions.tracks)?"No Subs":Oe.captions.enabled?Oe.captions.currentTrack.label:"Disabled"}function N(e){r.is.event(e)&&(e=e.target);var t=e.activeCues[0];r.is.cue(t)?q(t.getCueAsHTML()):q()}function L(e){r.is.string(e)?Ve.captions.language=e.toLowerCase():r.is.event(e)&&(Ve.captions.language=e.target.value.toLowerCase()),q(),P()}function q(e){if(r.is.htmlElement(Oe.elements.captions)){var t=r.createElement("span");r.emptyElement(Oe.elements.captions),r.is.undefined(e)&&(e=""),r.is.string(e)?t.textContent=e.trim():t.appendChild(e),Oe.elements.captions.appendChild(t)}else Re("No captions element to render to")}function O(){if(Oe.elements.buttons.captions){var e=Oe.storage.captions;r.is.boolean(e)?Ve.captions.active=e:e=Ve.captions.active,e&&(r.toggleClass(Oe.elements.container,Ve.classes.captions.active,!0),r.toggleState(Oe.elements.buttons.captions,!0))}}function j(e){Oe.supported.full&&Oe.elements.buttons.captions&&(r.is.boolean(e)||(e=Oe.elements.container.className.indexOf(Ve.classes.captions.active)===-1),Oe.captions.enabled=e,r.toggleState(Oe.elements.buttons.captions,Oe.captions.enabled),r.toggleClass(Oe.elements.container,Ve.classes.captions.active,Oe.captions.enabled),c(Oe.elements.container,Oe.captions.enabled?"captionsenabled":"captionsdisabled",!0),W({captions:Oe.captions.enabled}))}function M(){if(Ve.loadSprite){var e=g();e.absolute?(De("AJAX loading absolute SVG sprite"+(Oe.browser.isIE?" (due to IE)":"")),r.loadSprite(e.url,"sprite-plyr")):De("Sprite will be used as external resource directly")}r.inArray(Ve.controls,"play-large")&&(Oe.elements.buttons.playLarge=k("play-large"),Oe.elements.container.appendChild(Oe.elements.buttons.playLarge)),Oe.id=Math.floor(1e4*Math.random());var n=null;n=r.is.string(Ve.controls)?Ve.controls:r.is.function(Ve.controls)?Ve.controls({id:Oe.id,seektime:Ve.seekTime}):w({id:Oe.id,seektime:Ve.seekTime,speed:te(),quality:"HD",captions:_(),loop:"None"});var s;if(r.is.string(Ve.selectors.controls.container)&&(s=t.querySelector(Ve.selectors.controls.container)),r.is.htmlElement(s)||(s=Oe.elements.container),r.is.htmlElement(n)?s.appendChild(n):s.insertAdjacentHTML("beforeend",n),r.is.htmlElement(Oe.elements.controls)&&V(),Ve.tooltips.controls)for(var a=d([Ve.selectors.controls.wrapper," ",Ve.selectors.labels," .",Ve.classes.hidden].join("")),l=a.length-1;l>=0;l--){var i=a[l];r.toggleClass(i,Ve.classes.hidden,!1),r.toggleClass(i,Ve.classes.tooltip,!0)}}function V(){try{return Oe.elements.controls=p(Ve.selectors.controls.wrapper),Oe.elements.buttons={play:d(Ve.selectors.buttons.play),pause:p(Ve.selectors.buttons.pause),restart:p(Ve.selectors.buttons.restart),rewind:p(Ve.selectors.buttons.rewind),forward:p(Ve.selectors.buttons.forward),mute:p(Ve.selectors.buttons.mute),pip:p(Ve.selectors.buttons.pip),airplay:p(Ve.selectors.buttons.airplay),settings:p(Ve.selectors.buttons.settings),captions:p(Ve.selectors.buttons.captions),fullscreen:p(Ve.selectors.buttons.fullscreen)},Oe.elements.progress=p(Ve.selectors.progress),Oe.elements.inputs={seek:p(Ve.selectors.inputs.seek),volume:p(Ve.selectors.inputs.volume)},Oe.elements.display={buffer:p(Ve.selectors.display.buffer),played:p(Ve.selectors.display.played),volume:p(Ve.selectors.display.volume),duration:p(Ve.selectors.display.duration),currentTime:p(Ve.selectors.display.currentTime)},r.is.htmlElement(Oe.elements.progress)&&(Oe.elements.display.seekTooltip=Oe.elements.progress.querySelector("."+Ve.classes.tooltip)),!0}catch(e){return Re("It looks like there is a problem with your custom controls HTML",e),R(!0),!1}}function D(){r.toggleClass(Oe.elements.container,Ve.selectors.container.replace(".",""),Oe.supported.full)}function R(e){e&&r.inArray(l.html5,Oe.type)?Oe.elements.media.setAttribute("controls",""):Oe.elements.media.removeAttribute("controls")}function B(e){var t=Ve.i18n.play;if(r.is.string(Ve.title)&&!r.is.empty(Ve.title)&&(t+=", "+Ve.title,Oe.elements.container.setAttribute("aria-label",Ve.title)),Oe.supported.full&&(r.is.htmlElement(Oe.elements.buttons.play)&&Oe.elements.buttons.play.setAttribute("aria-label",t),r.is.htmlElement(Oe.elements.buttons.playLarge)&&Oe.elements.buttons.playLarge.setAttribute("aria-label",t)),r.is.htmlElement(e)){var n=r.is.string(Ve.title)&&!r.is.empty(Ve.title)?Ve.title:"video";e.setAttribute("title",Ve.i18n.frameTitle.replace("{title}",n))}}function H(){var t=null;Oe.storage={},o.storage&&Ve.storage.enabled&&(e.localStorage.removeItem("plyr-volume"),t=e.localStorage.getItem(Ve.storage.key),t&&(/^\d+(\.\d+)?$/.test(t)?W({volume:parseFloat(t)}):Oe.storage=JSON.parse(t)))}function W(t){o.storage&&Ve.storage.enabled&&(r.extend(Oe.storage,t),e.localStorage.setItem(Ve.storage.key,JSON.stringify(Oe.storage)))}function Y(){return Oe.elements.media?(Oe.supported.full&&(r.toggleClass(Oe.elements.container,Ve.classes.type.replace("{0}",Oe.type),!0),r.inArray(l.embed,Oe.type)&&r.toggleClass(Oe.elements.container,Ve.classes.type.replace("{0}","video"),!0),r.toggleClass(Oe.elements.container,Ve.classes.pip.enabled,o.pip&&"video"===Oe.type),r.toggleClass(Oe.elements.container,Ve.classes.airplay.enabled,o.airplay&&r.inArray(l.html5,Oe.type)),r.toggleClass(Oe.elements.container,Ve.classes.stopped,Ve.autoplay),r.toggleClass(Oe.elements.container,Ve.classes.isIos,Oe.browser.isIos),r.toggleClass(Oe.elements.container,Ve.classes.isTouch,o.touch)),r.inArray(["video","youtube","vimeo"],Oe.type)&&(Oe.elements.wrapper=r.createElement("div",{class:Ve.classes.videoWrapper}),r.wrap(Oe.elements.media,Oe.elements.wrapper)),void(r.inArray(l.embed,Oe.type)&&U())):void Re("No media element found!")}function U(){var t,n=Oe.type+"-"+Math.floor(1e4*Math.random());switch(Oe.type){case"youtube":t=r.parseYouTubeId(Oe.embedId);break;default:t=Oe.embedId}for(var s=d('[id^="'+Oe.type+'-"]'),a=s.length-1;a>=0;a--)r.removeElement(s[a]);if(r.toggleClass(Oe.elements.wrapper,Ve.classes.embedWrapper,!0),"youtube"===Oe.type)Oe.elements.media.setAttribute("id",n),r.is.object(e.YT)?J(t):(r.injectScript(Ve.urls.youtube.api),e.onYouTubeReadyCallbacks=e.onYouTubeReadyCallbacks||[],e.onYouTubeReadyCallbacks.push(function(){J(t)}),e.onYouTubeIframeAPIReady=function(){e.onYouTubeReadyCallbacks.forEach(function(e){e()})});else if("vimeo"===Oe.type)if(Oe.elements.media.setAttribute("id",n),r.is.object(e.Vimeo))X(t);else{r.injectScript(Ve.urls.vimeo.api);var l=e.setInterval(function(){r.is.object(e.Vimeo)&&(e.clearInterval(l),X(t))},50)}else if("soundcloud"===Oe.type){var i=r.createElement("iframe");i.loaded=!1,r.on(i,"load",function(){i.loaded=!0}),r.setAttributes(i,{src:"https://w.soundcloud.com/player/?url=https://api.soundcloud.com/tracks/"+t,id:n}),Oe.elements.media.appendChild(i),e.SC||r.injectScript(Ve.urls.soundcloud.api);var o=e.setInterval(function(){e.SC&&i.loaded&&(e.clearInterval(o),z.call(i))},50)}}function Q(){Oe.supported.full&&(Ne(),Le()),B(p("iframe"))}function J(t){Oe.embed=new e.YT.Player(Oe.elements.media.id,{videoId:t,playerVars:{autoplay:Ve.autoplay?1:0,controls:Oe.supported.full?0:1,rel:0,showinfo:0,iv_load_policy:3,cc_load_policy:Ve.captions.active?1:0,cc_lang_pref:"en",wmode:"transparent",modestbranding:1,disablekb:1,playsinline:1,origin:e.location.href},events:{onError:function(e){c(Oe.elements.container,"error",!0,{code:e.data,embed:e.target})},onPlaybackQualityChange:function(e){var t=e.target,n=t.getPlaybackQuality();console.warn(n)},onReady:function(t){var n=t.target;Oe.elements.media.play=function(){n.playVideo(),Oe.elements.media.paused=!1},Oe.elements.media.pause=function(){n.pauseVideo(),Oe.elements.media.paused=!0},Oe.elements.media.stop=function(){n.stopVideo(),Oe.elements.media.paused=!0},Oe.elements.media.duration=n.getDuration(),Oe.elements.media.paused=!0,Oe.elements.media.currentTime=0,Oe.elements.media.muted=n.isMuted();var s=n.getPlaybackRate(),a=n.getAvailablePlaybackRates();console.warn(s,a),Ve.title=n.getVideoData().title,Oe.supported.full&&Oe.elements.media.setAttribute("tabindex",-1),Q(),c(Oe.elements.media,"timeupdate"),c(Oe.elements.media,"durationchange"),e.clearInterval(je.buffering),je.buffering=e.setInterval(function(){Oe.elements.media.buffered=n.getVideoLoadedFraction(),(null===Oe.elements.media.lastBuffered||Oe.elements.media.lastBuffered=n)return;Ve.loop.end=n,Ve.loop.indicator.end=Oe.elements.display.played.value;break;case"all":Ve.loop.start=0,Ve.loop.end=Oe.elements.media.duration-2,Ve.loop.indicator.start=0,Ve.loop.indicator.end=100;break;case"toggle":Ve.loop.active?(Ve.loop.start=0,Ve.loop.end=null):(Ve.loop.start=0,Ve.loop.end=Oe.elements.media.duration-2);break;default:Ve.loop.start=0,Ve.loop.end=null}Ve.loop.active=r.is.number(Ve.loop.start)&&r.is.number(Ve.loop.end);var s=(he(Ve.loop.start,p('[data-plyr-loop="start"]')),null);r.is.number(Ve.loop.end)&&(s=he(Ve.loop.end,t.querySelector('[data-loop__value="loopout"]'))),Ve.loop.active}function ee(e){return r.is.event(e)?e=parseFloat(e.target.value):r.is.number(e)||(e=parseFloat(Oe.storage.speed||Ve.speed.selected)),e<.1&&(e=.1),e>2&&(e=2),r.is.array(Ve.speed.options)?(Ve.speed.selected=e,Oe.elements.media.playbackRate=e,void W({speed:e})):void Re("Invalid speeds format")}function te(){return Ve.speed.selected.toFixed(1).toString().replace(".0","")+"×"}function ne(e){r.is.number(e)||(e=Ve.seekTime),ae(Oe.elements.media.currentTime-e)}function se(e){r.is.number(e)||(e=Ve.seekTime),ae(Oe.elements.media.currentTime+e)}function ae(e){var t=0,n=Oe.elements.media.paused,s=le();r.is.number(e)?t=e:r.is.event(e)&&r.inArray(["input","change"],e.type)&&(t=e.target.value/e.target.max*s),t<0?t=0:t>s&&(t=s),Ee(t);try{Oe.elements.media.currentTime=t.toFixed(4)}catch(e){}if(r.inArray(l.embed,Oe.type)){switch(Oe.type){case"youtube":Oe.embed.seekTo(t);break;case"vimeo":Oe.embed.setCurrentTime(t.toFixed(0));break;case"soundcloud":Oe.embed.seekTo(1e3*t)}n&&G(),c(Oe.elements.media,"timeupdate"),Oe.elements.media.seeking=!0,c(Oe.elements.media,"seeking")}De("Seeking to "+Oe.elements.media.currentTime+" seconds")}function le(){var e=parseInt(Ve.duration),t=0;return null===Oe.elements.media.duration||isNaN(Oe.elements.media.duration)||(t=Oe.elements.media.duration),isNaN(e)?t:e}function re(){r.toggleClass(Oe.elements.container,Ve.classes.playing,!Oe.elements.media.paused),r.toggleClass(Oe.elements.container,Ve.classes.stopped,Oe.elements.media.paused),we(Oe.elements.media.paused)}function ie(){s={x:e.pageXOffset||0,y:e.pageYOffset||0}}function oe(){e.scrollTo(s.x,s.y)}function ue(e){var n=o.fullscreen;if(n){if(!e||e.type!==i.eventType)return i.isFullScreen(Oe.elements.container)?i.cancelFullScreen():(ie(),i.requestFullScreen(Oe.elements.container)),void(Oe.fullscreen.active=i.isFullScreen(Oe.elements.container));Oe.fullscreen.active=i.isFullScreen(Oe.elements.container)}else Oe.fullscreen.active=!Oe.fullscreen.active,t.body.style.overflow=Oe.fullscreen.active?"hidden":"";r.toggleClass(Oe.elements.container,Ve.classes.fullscreen.active,Oe.fullscreen.active),f(Oe.fullscreen.active),Oe.elements.buttons&&Oe.elements.buttons.fullscreen&&r.toggleState(Oe.elements.buttons.fullscreen,Oe.fullscreen.active),c(Oe.elements.container,Oe.fullscreen.active?"enterfullscreen":"exitfullscreen",!0),!Oe.fullscreen.active&&n&&oe()}function ce(n){var s=Oe.elements.settings.menu.parentNode,a=n.target,l=t.getElementById(a.getAttribute("aria-controls")),i="false"===a.getAttribute("aria-expanded");if(r.is.htmlElement(l)){var o,u,c,d="tabpanel"===l.getAttribute("role");if(d){var p=s.querySelector('[role="tabpanel"][aria-hidden="false"]');c=p.parentNode,[].forEach.call(s.querySelectorAll('[aria-controls="'+p.getAttribute("id")+'"]'),function(e){e.setAttribute("aria-expanded",!1)}),c.style.width=p.scrollWidth+"px",c.style.height=p.scrollHeight+"px",p.setAttribute("aria-hidden",!0),p.setAttribute("tabindex",-1);var m=l.cloneNode(!0);m.style.position="absolute",m.style.opacity=0,m.setAttribute("aria-hidden",!1),c.appendChild(m),o=m.scrollWidth,u=m.scrollHeight,r.removeElement(m)}l.setAttribute("aria-hidden",!i),a.setAttribute("aria-expanded",i),l.removeAttribute("tabindex"),d&&(c.style.width=o+"px",c.style.height=u+"px",e.setTimeout(function(){c.style.width="",c.style.height=""},300))}}function de(e){if(r.is.boolean(e)||(e=!Oe.elements.media.muted),r.toggleState(Oe.elements.buttons.mute,e),Oe.elements.media.muted=e,0===Oe.elements.media.volume&&pe(Ve.volume),r.inArray(l.embed,Oe.type)){switch(Oe.type){case"youtube":Oe.embed[Oe.elements.media.muted?"mute":"unMute"]();break;case"vimeo":case"soundcloud":Oe.embed.setVolume(Oe.elements.media.muted?0:parseFloat(Ve.volume/10))}c(Oe.elements.media,"volumechange")}}function pe(e){var t=10,n=0;if(r.is.event(e)&&(e=e.target.value),r.is.undefined(e)&&(e=Oe.storage.volume),(null===e||isNaN(e))&&(e=Ve.volume),e>t&&(e=t),e0&&de()}function me(e){var t=Oe.elements.media.muted?0:10*Oe.elements.media.volume;r.is.number(e)||(e=1),pe(t+e)}function fe(e){var t=Oe.elements.media.muted?0:10*Oe.elements.media.volume;r.is.number(e)||(e=1),pe(t-e)}function ye(){var e=Oe.elements.media.muted?0:10*Oe.elements.media.volume;Oe.supported.full&&(Oe.elements.inputs.volume&&(Oe.elements.inputs.volume.value=e),Oe.elements.display.volume&&(Oe.elements.display.volume.value=e)),W({volume:e}),r.toggleClass(Oe.elements.container,Ve.classes.muted,0===e),Oe.supported.full&&Oe.elements.buttons.mute&&r.toggleState(Oe.elements.buttons.mute,0===e)}function ge(e){var t="waiting"===e.type;clearTimeout(je.loading),je.loading=setTimeout(function(){r.toggleClass(Oe.elements.container,Ve.classes.loading,t),we(t)},t?250:0)}function be(e){if(Oe.supported.full){var t=Oe.elements.display.played,n=0,s=le();if(e)switch(e.type){case"timeupdate":case"seeking":if(Oe.elements.controls.pressed)return;n=r.getPercentage(Oe.elements.media.currentTime,s),"timeupdate"===e.type&&Oe.elements.inputs.seek&&(Oe.elements.inputs.seek.value=n);break;case"playing":case"progress":t=Oe.elements.display.buffer,n=function(){var e=Oe.elements.media.buffered;return e&&e.length?r.getPercentage(e.end(0),s):r.is.number(e)?100*e:0}()}r.is.number(Ve.loop.start)&&r.is.number(Ve.loop.end)&&Oe.elements.media.currentTime>=Ve.loop.end&&ae(Ve.loop.start),ve(t,n)}}function ve(e,t){if(Oe.supported.full){if(r.is.undefined(t)&&(t=0),r.is.undefined(e)){if(!r.is.htmlElement(Oe.elements.display.buffer))return;e=Oe.elements.display.buffer}if(r.is.htmlElement(e)){e.value=t;var n=e.getElementsByTagName("span")[0];r.is.htmlElement(n)&&(n.childNodes[0].nodeValue=t)}}}function he(e,t){if(t){isNaN(e)&&(e=0);var n=parseInt(e%60),s=parseInt(e/60%60),a=parseInt(e/60/60%60),l=parseInt(le()/60/60%60)>0;n=("0"+n).slice(-2),s=("0"+s).slice(-2);var r=(l?a+":":"")+s+":"+n;return t.textContent=r,r}}function ke(){if(Oe.supported.full){var e=le()||0;!Oe.elements.display.duration&&Ve.displayDuration&&Oe.elements.media.paused&&he(e,Oe.elements.display.currentTime),Oe.elements.display.duration&&he(e,Oe.elements.display.duration),Ae()}}function Ce(e){he(Oe.elements.media.currentTime,Oe.elements.display.currentTime),e&&"timeupdate"===e.type&&Oe.elements.media.seeking||be(e)}function Ee(e){r.is.number(e)||(e=0);var t=le(),n=r.getPercentage(e,t);Oe.elements.progress&&Oe.elements.display.played&&(Oe.elements.display.played.value=n),Oe.elements.buttons&&Oe.elements.inputs.seek&&(Oe.elements.inputs.seek.value=n)}function Ae(e){var t=le();if(Ve.tooltips.seek&&r.is.htmlElement(Oe.elements.inputs.seek)&&r.is.htmlElement(Oe.elements.display.seekTooltip)&&0!==t){var n=Oe.elements.inputs.seek.getBoundingClientRect(),s=0,a=Ve.classes.tooltip+"--visible";if(r.is.event(e))s=100/n.width*(e.pageX-n.left);else{if(!r.hasClass(Oe.elements.display.seekTooltip,a))return;s=Oe.elements.display.seekTooltip.style.left.replace("%",""); -}s<0?s=0:s>100&&(s=100),he(t/100*s,Oe.elements.display.seekTooltip),Oe.elements.display.seekTooltip.style.left=s+"%",r.is.event(e)&&r.inArray(["mouseenter","mouseleave"],e.type)&&r.toggleClass(Oe.elements.display.seekTooltip,a,"mouseenter"===e.type)}}function we(t){if(Ve.hideControls&&"audio"!==Oe.type){var n=0,s=!1,a=t,l=r.hasClass(Oe.elements.container,Ve.classes.loading);if(r.is.boolean(t)||(t&&t.type?(s="enterfullscreen"===t.type,a=r.inArray(["mousemove","touchstart","mouseenter","focus"],t.type),r.inArray(["mousemove","touchmove"],t.type)&&(n=2e3),"focus"===t.type&&(n=3e3)):a=r.hasClass(Oe.elements.container,Ve.classes.hideControls)),e.clearTimeout(je.hover),a||Oe.elements.media.paused||l){if(r.toggleClass(Oe.elements.container,Ve.classes.hideControls,!1),Oe.elements.media.paused||l)return;o.touch&&(n=3e3)}a&&Oe.elements.media.paused||(je.hover=e.setTimeout(function(){(!Oe.elements.controls.pressed&&!Oe.elements.controls.hover||s)&&r.toggleClass(Oe.elements.container,Ve.classes.hideControls,!0)},n))}}function Se(e){if(!r.is.undefined(e))return void Te(e);var t;switch(Oe.type){case"youtube":t=Oe.embed.getVideoUrl();break;case"vimeo":Oe.embed.getVideoUrl.then(function(e){t=e});break;case"soundcloud":Oe.embed.getCurrentSound(function(e){t=e.permalink_url});break;default:t=Oe.elements.media.currentSrc}return t||""}function Te(e){function t(){if(Oe.embed=null,m("media"),m("captions"),m("wrapper"),Oe.elements.container&&Oe.elements.container.removeAttribute("class"),"type"in e&&(Oe.type=e.type,"video"===Oe.type)){var t=e.sources[0];"type"in t&&r.inArray(l.embed,t.type)&&(Oe.type=t.type)}switch(Oe.supported=r.checkSupport(Oe.type,Ve.inline),Oe.type){case"video":Oe.elements.media=r.createElement("video");break;case"audio":Oe.elements.media=r.createElement("audio");break;case"youtube":case"vimeo":case"soundcloud":Oe.elements.media=r.createElement("div"),Oe.embedId=e.sources[0].src}r.prependChild(Oe.elements.container,Oe.elements.media),r.is.boolean(e.autoplay)&&(Ve.autoplay=e.autoplay),r.inArray(l.html5,Oe.type)&&(Ve.crossorigin&&Oe.elements.media.setAttribute("crossorigin",""),Ve.autoplay&&Oe.elements.media.setAttribute("autoplay",""),"poster"in e&&Oe.elements.media.setAttribute("poster",e.poster),Ve.loop.active&&Oe.elements.media.setAttribute("loop",""),Ve.inline&&Oe.elements.media.setAttribute("playsinline","")),r.toggleClass(Oe.elements.container,Ve.classes.fullscreen.active,Oe.fullscreen.active),r.toggleClass(Oe.elements.container,Ve.classes.captions.active,Oe.captions.enabled),D(),r.inArray(l.html5,Oe.type)&&y("source",e.sources),Y(),r.inArray(l.html5,Oe.type)&&("tracks"in e&&y("track",e.tracks),Oe.elements.media.load()),(r.inArray(l.html5,Oe.type)||r.inArray(l.embed,Oe.type)&&!Oe.supported.full)&&(Ne(),Le()),Ve.title=e.title,B()}return r.is.object(e)&&"sources"in e&&e.sources.length?(r.toggleClass(Oe.elements.container,Ve.classes.ready,!1),G(),Ee(),ve(),Pe(),void _e(t,!1)):void Re("Invalid source format")}function xe(e){"video"===Oe.type&&Oe.elements.media.setAttribute("poster",e)}function Fe(){function n(){var e=K(),t=Oe.elements.buttons[e?"play":"pause"],n=Oe.elements.buttons[e?"pause":"play"];if(n){var s=r.hasClass(t,Ve.classes.tabFocus);setTimeout(function(){r.is.htmlElement(n)&&n.focus(),s&&(r.toggleClass(t,Ve.classes.tabFocus,!1),r.toggleClass(n,Ve.classes.tabFocus,!0))},100)}}function s(e){return e.keyCode?e.keyCode:e.which}function a(e){r.toggleClass(d("."+Ve.classes.tabFocus),Ve.classes.tabFocus,!1),Oe.elements.container.contains(e)&&r.toggleClass(e,Ve.classes.tabFocus,!0)}function l(e){function t(){var e=Oe.elements.media.duration;r.is.number(e)&&ae(e/10*(a-48))}var a=s(e),l="keydown"===e.type,i=l&&a===c;if(r.is.number(a))if(l){var u=[48,49,50,51,52,53,54,56,57,32,75,38,40,77,39,37,70,67,73,76,79],d=[38,40];if(r.inArray(d,a)){var p=r.getFocusElement();if(r.is.htmlElement(p)&&"radio"===r.getFocusElement().type)return}switch(r.inArray(u,a)&&(e.preventDefault(),e.stopPropagation()),a){case 48:case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 57:i||t();break;case 32:case 75:i||n();break;case 38:me();break;case 40:fe();break;case 77:i||de();break;case 39:se();break;case 37:ne();break;case 70:ue();break;case 67:i||j();break;case 73:Z("start");break;case 76:Z();break;case 79:Z("end")}!o.fullscreen&&Oe.fullscreen.active&&27===a&&ue(),c=a}else c=null}var u=Oe.browser.isIE?"change":"input";if(Ve.keyboardShortcuts.focused){var c=null;Ve.keyboardShortcuts.global&&r.on(e,"keydown keyup",function(e){var t=s(e),n=r.getFocusElement(),a=[48,49,50,51,52,53,54,56,57,75,77,70,67,73,76,79];!r.inArray(a,t)||r.is.htmlElement(n)&&r.matches(n,Ve.selectors.editable)||l(e)},!1),r.on(Oe.elements.container,"keydown keyup",l,!1)}r.on(e,"keyup",function(e){var t=s(e),n=r.getFocusElement();9===t&&a(n)}),r.on(t.body,"click",function(){r.toggleClass(p("."+Ve.classes.tabFocus),Ve.classes.tabFocus,!1)});for(var m in Oe.elements.buttons){var f=Oe.elements.buttons[m];r.on(f,"blur",function(){r.toggleClass(f,"tab-focus",!1)})}var y=function(e,t,n){r.is.function(t)&&t.call(this,e),r.is.function(n)&&n.call(this,e)};r.proxy(Oe.elements.buttons.play,"click",Ve.listeners.play,n),r.proxy(Oe.elements.buttons.playLarge,"click",Ve.listeners.play,n),r.proxy(Oe.elements.buttons.pause,"click",Ve.listeners.pause,n),r.proxy(Oe.elements.buttons.restart,"click",Ve.listeners.restart,ae),r.proxy(Oe.elements.buttons.rewind,"click",Ve.listeners.rewind,ne),r.proxy(Oe.elements.buttons.forward,"click",Ve.listeners.forward,se),r.proxy(Oe.elements.buttons.mute,"click",Ve.listeners.mute,de),r.proxy(Oe.elements.buttons.captions,"click",Ve.listeners.captions,j),r.proxy(Oe.elements.buttons.fullscreen,"click",Ve.listeners.fullscreen,ue),r.proxy(Oe.elements.buttons.pip,"click",Ve.listeners.pip,function(e){o.pip&&Oe.elements.media.webkitSetPresentationMode("picture-in-picture"===Oe.elements.media.webkitPresentationMode?"inline":"picture-in-picture")}),r.proxy(Oe.elements.buttons.airplay,"click",Ve.listeners.airplay,function(e){o.airplay&&Oe.elements.media.webkitShowPlaybackTargetPicker()}),r.on(Oe.elements.settings.menu,"click",ce),r.on(t.body,"click",function(e){var t=Oe.elements.settings.menu,n=t.querySelector("form");"true"===n.getAttribute("aria-hidden")||t.contains(e.target)||n.setAttribute("aria-hidden",!0)}),r.on(Oe.elements.settings.menu,"click",function(e){r.matches(e.target,Ve.selectors.inputs.language)?y.call(this,e,Ve.listeners.language,L):r.matches(e.target,Ve.selectors.inputs.quality)?y.call(this,e,Ve.listeners.quality,function(){Re("Set quality")}):r.matches(e.target,Ve.selectors.inputs.speed)?y.call(this,e,Ve.listeners.speed,ee):r.matches(e.target,Ve.selectors.buttons.loop)&&y.call(this,e,Ve.listeners.loop,function(){var t=e.target.getAttribute("data-loop__value")||e.target.getAttribute("data-loop__type");r.inArray(["start","end","all","none"],t)&&Z(t)})}),r.proxy(Oe.elements.inputs.seek,u,Ve.listeners.seek,ae),r.proxy(Oe.elements.inputs.volume,u,Ve.listeners.volume,pe),r.on(Oe.elements.progress,"mouseenter mouseleave mousemove",Ae),Ve.hideControls&&(r.on(Oe.elements.container,"mouseenter mouseleave mousemove touchstart touchend touchcancel touchmove enterfullscreen",we),r.on(Oe.elements.controls,"mouseenter mouseleave",function(e){Oe.elements.controls.hover="mouseenter"===e.type}),r.on(Oe.elements.controls,"mousedown mouseup touchstart touchend touchcancel",function(e){Oe.elements.controls.pressed=r.inArray(["mousedown","touchstart"],e.type)}),r.on(Oe.elements.controls,"focus blur",we,!0,!0)),r.proxy(Oe.elements.inputs.volume,"wheel",Ve.listeners.volume,function(e){var t=e.webkitDirectionInvertedFromDevice,n=.2,s=0;(e.deltaY<0||e.deltaX>0)&&(t?(fe(n),s=-1):(me(n),s=1)),(e.deltaY>0||e.deltaX<0)&&(t?(me(n),s=1):(fe(n),s=-1)),(1===s&&Oe.elements.media.volume<1||s===-1&&Oe.elements.media.volume>0)&&e.preventDefault()},!1),o.fullscreen&&r.on(t,i.eventType,ue)}function Ie(){if(r.on(Oe.elements.media,"timeupdate seeking",Ce),r.on(Oe.elements.media,"durationchange loadedmetadata",ke),r.on(Oe.elements.media,"ended",function(){"video"===Oe.type&&Ve.showPosterOnEnd&&("video"===Oe.type&&q(),ae(),Oe.elements.media.load())}),r.on(Oe.elements.media,"progress playing",be),r.on(Oe.elements.media,"volumechange",ye),r.on(Oe.elements.media,"play pause ended",re),r.on(Oe.elements.media,"waiting canplay seeked",ge),Ve.clickToPlay&&"audio"!==Oe.type){var e=p("."+Ve.classes.videoWrapper);if(!e)return;e.style.cursor="pointer",r.on(e,"click",function(){Ve.hideControls&&o.touch&&!Oe.elements.media.paused||(Oe.elements.media.paused?$():Oe.elements.media.ended?(ae(),$()):G())})}Ve.disableContextMenu&&r.on(Oe.elements.media,"contextmenu",function(e){e.preventDefault()},!1),r.on(Oe.elements.media,Ve.events.concat(["keyup","keydown"]).join(" "),function(e){c(Oe.elements.container,e.type,!0)})}function Pe(){if(r.inArray(l.html5,Oe.type)){for(var e=Oe.elements.media.querySelectorAll("source"),t=0;t=0;n--){var s=n>0?t.cloneNode(!0):t,a=e[n],l=a.parentNode,r=a.nextSibling;return s.appendChild(a),r?l.insertBefore(s,r):l.appendChild(s),s}},removeElement:function(e){r.is.htmlElement(e)&&r.is.htmlElement(e.parentNode)&&e.parentNode.removeChild(e)},prependChild:function(e,t){e.insertBefore(t,e.firstChild)},insertAfter:function(e,t){t.parentNode.insertBefore(e,t.nextSibling)},createElement:function(e,n,s){var a=t.createElement(e);return r.is.object(n)&&r.setAttributes(a,n),r.is.string(s)&&(a.textContent=s),a},insertElement:function(e,t,n,s){var a=r.createElement(e,n,s);r.prependChild(t,a)},emptyElement:function(e){for(var t=e.childNodes.length;t--;)e.removeChild(e.lastChild)},setAttributes:function(e,t){for(var n in t)e.setAttribute(n,t[n])},getAttributesFromSelector:function(e,t){if(!r.is.string(e)||r.is.empty(e))return{};var n={};return e.split(",").forEach(function(e){e=e.trim();var s=e.charAt(0);switch(s){case".":var a=e.replace(".","");r.is.object(t)&&r.is.string(t.class)&&(t.class+=" "+a),n.class=a;break;case"#":n.id=e.replace("#","");break;case"[":e=e.replace(/[\[\]]/g,"");var l=e.split("="),i=l[0],o=l.length>1?l[1].replace(/[\"\']/g,""):"";n[i]=o}}),n},toggleClass:function(e,t,n){if(e)if(e.classList)e.classList[n?"add":"remove"](t);else{var s=(" "+e.className+" ").replace(/\s+/g," ").replace(" "+t+" ","");e.className=s+(n?" "+t:"")}},hasClass:function(e,t){return!!e&&(e.classList?e.classList.contains(t):new RegExp("(\\s|^)"+t+"(\\s|$)").test(e.className))},matches:function(e,n){var s=Element.prototype,a=s.matches||s.webkitMatchesSelector||s.mozMatchesSelector||s.msMatchesSelector||function(e){return[].indexOf.call(t.querySelectorAll(e),this)!==-1};return a.call(e,n)},getFocusElement:function(){var e=t.activeElement;return e=e&&e!==t.body?t.querySelector(":focus"):null},proxy:function(e,t,n,s,a,l){r.on(e,t,function(t){n&&n.apply(e,[t]),s.apply(e,[t])},a,l)},toggleListener:function(e,t,n,s,a,l){if(t=t.split(" "),r.is.boolean(l)||(l=!1),r.is.boolean(a)||(a=!0),e instanceof NodeList){var i=1===arguments.length?[arguments[0]]:Array.apply(null,arguments);return i.shift(),void[].forEach.call(e,function(e){e instanceof Node&&r.toggleListener.apply(null,[e].concat(i))})}var u=l;o.passiveListeners&&(u={passive:a,capture:l}),t.forEach(function(t){e[s?"addEventListener":"removeEventListener"](t,n,u)})},on:function(e,t,n,s,a){r.is.undefined(e)||r.toggleListener(e,t,n,!0,s,a)},off:function(e,t,n,s,a){r.is.undefined(e)||r.toggleListener(e,t,n,!1,s,a)},event:function(n,s,a,l){if(n&&s){r.is.boolean(a)||(a=!1);var i;r.is.function(e.CustomEvent)?i=e.CustomEvent:(i=function(e,n){n=n||{bubbles:!1,cancelable:!1,detail:void 0};var s=t.createEvent("CustomEvent");return s.initCustomEvent(e,n.bubbles,n.cancelable,n.detail),s},i.prototype=e.Event.prototype);var o=new i(s,{bubbles:a,detail:l});n.dispatchEvent(o)}},toggleState:function(e,t){if(e)return t=r.is.boolean(t)?t:!e.getAttribute("aria-pressed"),e.setAttribute("aria-pressed",t),t},getPercentage:function(e,t){return 0===e||0===t||isNaN(e)||isNaN(t)?0:(e/t*100).toFixed(2)},extend:function(){var e=arguments;if(e.length){if(1===e.length)return e[0];var t=Array.prototype.shift.call(e);r.is.object(t)||(t={});for(var n=e.length,s=0;s0&&N(n))}x()}}function _(){return!o.textTracks||i.is.empty(Me.captions.tracks)?"No Subs":Me.captions.enabled?Me.captions.currentTrack.label:"Disabled"}function N(e){i.is.event(e)&&(e=e.target);var t=e.activeCues[0];i.is.cue(t)?q(t.getCueAsHTML()):q()}function L(e){i.is.string(e)?De.captions.language=e.toLowerCase():i.is.event(e)&&(De.captions.language=e.target.value.toLowerCase()),q(),P()}function q(e){if(i.is.htmlElement(Me.elements.captions)){var t=i.createElement("span");i.emptyElement(Me.elements.captions),i.is.undefined(e)&&(e=""),i.is.string(e)?t.textContent=e.trim():t.appendChild(e),Me.elements.captions.appendChild(t)}else Be("No captions element to render to")}function O(){if(Me.elements.buttons.captions){var e=Me.storage.captions;i.is.boolean(e)?De.captions.active=e:e=De.captions.active,e&&(i.toggleClass(Me.elements.container,De.classes.captions.active,!0),i.toggleState(Me.elements.buttons.captions,!0))}}function M(e){Me.supported.full&&Me.elements.buttons.captions&&(i.is.boolean(e)||(e=Me.elements.container.className.indexOf(De.classes.captions.active)===-1),Me.captions.enabled=e,i.toggleState(Me.elements.buttons.captions,Me.captions.enabled),i.toggleClass(Me.elements.container,De.classes.captions.active,Me.captions.enabled),c(Me.elements.container,Me.captions.enabled?"captionsenabled":"captionsdisabled",!0),W({captions:Me.captions.enabled}))}function j(){if(De.loadSprite){var e=g();e.absolute?(Re("AJAX loading absolute SVG sprite"+(Me.browser.isIE?" (due to IE)":"")),i.loadSprite(e.url,"sprite-plyr")):Re("Sprite will be used as external resource directly")}i.inArray(De.controls,"play-large")&&(Me.elements.buttons.playLarge=k("play-large"),Me.elements.container.appendChild(Me.elements.buttons.playLarge)),Me.id=Math.floor(1e4*Math.random());var n=null;n=i.is.string(De.controls)?De.controls:i.is.function(De.controls)?De.controls({id:Me.id,seektime:De.seekTime}):w({id:Me.id,seektime:De.seekTime,speed:te(),quality:"HD",captions:_(),loop:"None"});var s;if(i.is.string(De.selectors.controls.container)&&(s=t.querySelector(De.selectors.controls.container)),i.is.htmlElement(s)||(s=Me.elements.container),i.is.htmlElement(n)?s.appendChild(n):s.insertAdjacentHTML("beforeend",n),i.is.htmlElement(Me.elements.controls)&&V(),De.tooltips.controls)for(var a=d([De.selectors.controls.wrapper," ",De.selectors.labels," .",De.classes.hidden].join("")),l=a.length-1;l>=0;l--){var r=a[l];i.toggleClass(r,De.classes.hidden,!1),i.toggleClass(r,De.classes.tooltip,!0)}}function V(){try{return Me.elements.controls=p(De.selectors.controls.wrapper),Me.elements.buttons={play:d(De.selectors.buttons.play),pause:p(De.selectors.buttons.pause),restart:p(De.selectors.buttons.restart),rewind:p(De.selectors.buttons.rewind),forward:p(De.selectors.buttons.forward),mute:p(De.selectors.buttons.mute),pip:p(De.selectors.buttons.pip),airplay:p(De.selectors.buttons.airplay),settings:p(De.selectors.buttons.settings),captions:p(De.selectors.buttons.captions),fullscreen:p(De.selectors.buttons.fullscreen)},Me.elements.progress=p(De.selectors.progress),Me.elements.inputs={seek:p(De.selectors.inputs.seek),volume:p(De.selectors.inputs.volume)},Me.elements.display={buffer:p(De.selectors.display.buffer),played:p(De.selectors.display.played),volume:p(De.selectors.display.volume),duration:p(De.selectors.display.duration),currentTime:p(De.selectors.display.currentTime)},i.is.htmlElement(Me.elements.progress)&&(Me.elements.display.seekTooltip=Me.elements.progress.querySelector("."+De.classes.tooltip)),!0}catch(e){return Be("It looks like there is a problem with your custom controls HTML",e),R(!0),!1}}function D(){i.toggleClass(Me.elements.container,De.selectors.container.replace(".",""),Me.supported.full)}function R(e){e&&i.inArray(l.html5,Me.type)?Me.elements.media.setAttribute("controls",""):Me.elements.media.removeAttribute("controls")}function B(e){var t=De.i18n.play;if(i.is.string(De.title)&&!i.is.empty(De.title)&&(t+=", "+De.title,Me.elements.container.setAttribute("aria-label",De.title)),Me.supported.full&&(i.is.htmlElement(Me.elements.buttons.play)&&Me.elements.buttons.play.setAttribute("aria-label",t),i.is.htmlElement(Me.elements.buttons.playLarge)&&Me.elements.buttons.playLarge.setAttribute("aria-label",t)),i.is.htmlElement(e)){var n=i.is.string(De.title)&&!i.is.empty(De.title)?De.title:"video";e.setAttribute("title",De.i18n.frameTitle.replace("{title}",n))}}function H(){var t=null;Me.storage={},o.storage&&De.storage.enabled&&(e.localStorage.removeItem("plyr-volume"),t=e.localStorage.getItem(De.storage.key),t&&(/^\d+(\.\d+)?$/.test(t)?W({volume:parseFloat(t)}):Me.storage=JSON.parse(t)))}function W(t){o.storage&&De.storage.enabled&&(i.extend(Me.storage,t),e.localStorage.setItem(De.storage.key,JSON.stringify(Me.storage)))}function Y(){return Me.elements.media?(Me.supported.full&&(i.toggleClass(Me.elements.container,De.classes.type.replace("{0}",Me.type),!0),i.inArray(l.embed,Me.type)&&i.toggleClass(Me.elements.container,De.classes.type.replace("{0}","video"),!0),i.toggleClass(Me.elements.container,De.classes.pip.enabled,o.pip&&"video"===Me.type),i.toggleClass(Me.elements.container,De.classes.airplay.enabled,o.airplay&&i.inArray(l.html5,Me.type)),i.toggleClass(Me.elements.container,De.classes.stopped,De.autoplay),i.toggleClass(Me.elements.container,De.classes.isIos,Me.browser.isIos),i.toggleClass(Me.elements.container,De.classes.isTouch,o.touch)),i.inArray(["video","youtube","vimeo"],Me.type)&&(Me.elements.wrapper=i.createElement("div",{class:De.classes.videoWrapper}),i.wrap(Me.elements.media,Me.elements.wrapper)),void(i.inArray(l.embed,Me.type)&&U())):void Be("No media element found!")}function U(){var t,n=Me.type+"-"+Math.floor(1e4*Math.random());switch(Me.type){case"youtube":t=i.parseYouTubeId(Me.embedId);break;default:t=Me.embedId}for(var s=d('[id^="'+Me.type+'-"]'),a=s.length-1;a>=0;a--)i.removeElement(s[a]);if(i.toggleClass(Me.elements.wrapper,De.classes.embedWrapper,!0),"youtube"===Me.type)Me.elements.media.setAttribute("id",n),i.is.object(e.YT)?z(t):(i.injectScript(De.urls.youtube.api),e.onYouTubeReadyCallbacks=e.onYouTubeReadyCallbacks||[],e.onYouTubeReadyCallbacks.push(function(){z(t)}),e.onYouTubeIframeAPIReady=function(){e.onYouTubeReadyCallbacks.forEach(function(e){e()})});else if("vimeo"===Me.type)if(Me.elements.media.setAttribute("id",n),i.is.object(e.Vimeo))J(t);else{i.injectScript(De.urls.vimeo.api);var l=e.setInterval(function(){i.is.object(e.Vimeo)&&(e.clearInterval(l),J(t))},50)}else if("soundcloud"===Me.type){var r=i.createElement("iframe");r.loaded=!1,i.on(r,"load",function(){r.loaded=!0}),i.setAttributes(r,{src:"https://w.soundcloud.com/player/?url=https://api.soundcloud.com/tracks/"+t,id:n}),Me.elements.media.appendChild(r),e.SC||i.injectScript(De.urls.soundcloud.api);var o=e.setInterval(function(){e.SC&&r.loaded&&(e.clearInterval(o),X.call(r))},50)}}function Q(){Me.supported.full&&(Le(),qe()),B(p("iframe"))}function z(t){Me.embed=new e.YT.Player(Me.elements.media.id,{videoId:t,playerVars:{autoplay:De.autoplay?1:0,controls:Me.supported.full?0:1,rel:0,showinfo:0,iv_load_policy:3,cc_load_policy:De.captions.active?1:0,cc_lang_pref:"en",wmode:"transparent",modestbranding:1,disablekb:1,playsinline:1,origin:e.location.href},events:{onError:function(e){c(Me.elements.container,"error",!0,{code:e.data,embed:e.target})},onPlaybackQualityChange:function(e){var t=e.target,n=t.getPlaybackQuality();console.warn(n)},onReady:function(t){var n=t.target;Me.elements.media.play=function(){n.playVideo(),Me.elements.media.paused=!1},Me.elements.media.pause=function(){n.pauseVideo(),Me.elements.media.paused=!0},Me.elements.media.stop=function(){n.stopVideo(),Me.elements.media.paused=!0},Me.elements.media.duration=n.getDuration(),Me.elements.media.paused=!0,Me.elements.media.currentTime=0,Me.elements.media.muted=n.isMuted();var s=n.getPlaybackRate(),a=n.getAvailablePlaybackRates();console.warn(s,a),De.title=n.getVideoData().title,Me.supported.full&&Me.elements.media.setAttribute("tabindex",-1),Q(),c(Me.elements.media,"timeupdate"),c(Me.elements.media,"durationchange"),e.clearInterval(je.buffering),je.buffering=e.setInterval(function(){Me.elements.media.buffered=n.getVideoLoadedFraction(),(null===Me.elements.media.lastBuffered||Me.elements.media.lastBuffered=n)return;De.loop.end=n,De.loop.indicator.end=Me.elements.display.played.value;break;case"all":De.loop.start=0,De.loop.end=Me.elements.media.duration-2,De.loop.indicator.start=0,De.loop.indicator.end=100;break;case"toggle":De.loop.active?(De.loop.start=0,De.loop.end=null):(De.loop.start=0,De.loop.end=Me.elements.media.duration-2);break;default:De.loop.start=0,De.loop.end=null}De.loop.active=i.is.number(De.loop.start)&&i.is.number(De.loop.end);var s=(ke(De.loop.start,p('[data-plyr-loop="start"]')),null);i.is.number(De.loop.end)&&(s=ke(De.loop.end,t.querySelector('[data-loop__value="loopout"]'))),De.loop.active}function ee(e){return i.is.event(e)?e=parseFloat(e.target.value):i.is.number(e)||(e=parseFloat(Me.storage.speed||De.speed.selected)),e<.1&&(e=.1),e>2&&(e=2),i.is.array(De.speed.options)?(De.speed.selected=e,Me.elements.media.playbackRate=e,void W({speed:e})):void Be("Invalid speeds format")}function te(){return De.speed.selected.toFixed(1).toString().replace(".0","")+"×"}function ne(e){i.is.number(e)||(e=De.seekTime),ae(Me.elements.media.currentTime-e)}function se(e){i.is.number(e)||(e=De.seekTime),ae(Me.elements.media.currentTime+e)}function ae(e){var t=0,n=Me.elements.media.paused,s=le();i.is.number(e)?t=e:i.is.event(e)&&i.inArray(["input","change"],e.type)&&(t=e.target.value/e.target.max*s),t<0?t=0:t>s&&(t=s),Ae(t);try{Me.elements.media.currentTime=t.toFixed(4)}catch(e){}if(i.inArray(l.embed,Me.type)){switch(Me.type){case"youtube":Me.embed.seekTo(t);break;case"vimeo":Me.embed.setCurrentTime(t.toFixed(0));break;case"soundcloud":Me.embed.seekTo(1e3*t)}n&&G(),c(Me.elements.media,"timeupdate"),Me.elements.media.seeking=!0,c(Me.elements.media,"seeking")}Re("Seeking to "+Me.elements.media.currentTime+" seconds")}function le(){var e=parseInt(De.duration),t=0;return null===Me.elements.media.duration||isNaN(Me.elements.media.duration)||(t=Me.elements.media.duration),isNaN(e)?t:e}function ie(){i.toggleClass(Me.elements.container,De.classes.playing,!Me.elements.media.paused),i.toggleClass(Me.elements.container,De.classes.stopped,Me.elements.media.paused),Se(Me.elements.media.paused)}function re(){s={x:e.pageXOffset||0,y:e.pageYOffset||0}}function oe(){e.scrollTo(s.x,s.y)}function ue(e){var n=o.fullscreen;if(n){if(!e||e.type!==r.eventType)return r.isFullScreen(Me.elements.container)?r.cancelFullScreen():(re(),r.requestFullScreen(Me.elements.container)),void(Me.fullscreen.active=r.isFullScreen(Me.elements.container));Me.fullscreen.active=r.isFullScreen(Me.elements.container)}else Me.fullscreen.active=!Me.fullscreen.active,t.body.style.overflow=Me.fullscreen.active?"hidden":"";i.toggleClass(Me.elements.container,De.classes.fullscreen.active,Me.fullscreen.active),f(Me.fullscreen.active),Me.elements.buttons&&Me.elements.buttons.fullscreen&&i.toggleState(Me.elements.buttons.fullscreen,Me.fullscreen.active),c(Me.elements.container,Me.fullscreen.active?"enterfullscreen":"exitfullscreen",!0),!Me.fullscreen.active&&n&&oe()}function ce(e){var t=Me.elements.settings.form,n=Me.elements.buttons.settings;if(!t.contains(e.target)){e.target===Me.elements.buttons.settings&&e.stopPropagation();var s="true"===t.getAttribute("aria-hidden");t.setAttribute("aria-hidden",!s),n.setAttribute("aria-expanded",s),s?t.removeAttribute("tabindex"):t.setAttribute("tabindex",-1)}}function de(e){var n=Me.elements.settings.menu,s=e.target,a="false"===s.getAttribute("aria-expanded"),l=t.getElementById(s.getAttribute("aria-controls"));if(i.is.htmlElement(l)){var r="tabpanel"===l.getAttribute("role");if(r){var u,c,d,p=n.querySelector('[role="tabpanel"][aria-hidden="false"]');if(d=p.parentNode,[].forEach.call(n.querySelectorAll('[aria-controls="'+p.getAttribute("id")+'"]'),function(e){e.setAttribute("aria-expanded",!1)}),o.transitions){d.style.width=p.scrollWidth+"px",d.style.height=p.scrollHeight+"px";var m=l.cloneNode(!0);m.style.position="absolute",m.style.opacity=0,m.setAttribute("aria-hidden",!1),d.appendChild(m),u=m.scrollWidth,c=m.scrollHeight,i.removeElement(m);var f=function(e){e.target===d&&i.inArray(["width","height"],e.propertyName)&&(d.style.width="",d.style.height="",i.off(d,i.transitionEnd,f))};i.on(d,i.transitionEnd,f),d.style.width=u+"px",d.style.height=c+"px"}p.setAttribute("aria-hidden",!0),p.setAttribute("tabindex",-1),l.setAttribute("aria-hidden",!a),s.setAttribute("aria-expanded",a),l.removeAttribute("tabindex")}}}function pe(e){if(i.is.boolean(e)||(e=!Me.elements.media.muted),i.toggleState(Me.elements.buttons.mute,e),Me.elements.media.muted=e,0===Me.elements.media.volume&&me(De.volume),i.inArray(l.embed,Me.type)){switch(Me.type){case"youtube":Me.embed[Me.elements.media.muted?"mute":"unMute"]();break;case"vimeo":case"soundcloud":Me.embed.setVolume(Me.elements.media.muted?0:parseFloat(De.volume/10))}c(Me.elements.media,"volumechange")}}function me(e){var t=10,n=0;if(i.is.event(e)&&(e=e.target.value),i.is.undefined(e)&&(e=Me.storage.volume),(null===e||isNaN(e))&&(e=De.volume),e>t&&(e=t),e0&&pe()}function fe(e){var t=Me.elements.media.muted?0:10*Me.elements.media.volume;i.is.number(e)||(e=1),me(t+e)}function ye(e){var t=Me.elements.media.muted?0:10*Me.elements.media.volume;i.is.number(e)||(e=1),me(t-e)}function ge(){var e=Me.elements.media.muted?0:10*Me.elements.media.volume;Me.supported.full&&(Me.elements.inputs.volume&&(Me.elements.inputs.volume.value=e),Me.elements.display.volume&&(Me.elements.display.volume.value=e)),W({volume:e}),i.toggleClass(Me.elements.container,De.classes.muted,0===e),Me.supported.full&&Me.elements.buttons.mute&&i.toggleState(Me.elements.buttons.mute,0===e)}function be(e){var t="waiting"===e.type;clearTimeout(je.loading),je.loading=setTimeout(function(){i.toggleClass(Me.elements.container,De.classes.loading,t),Se(t)},t?250:0)}function ve(e){if(Me.supported.full){var t=Me.elements.display.played,n=0,s=le();if(e)switch(e.type){case"timeupdate":case"seeking":if(Me.elements.controls.pressed)return;n=i.getPercentage(Me.elements.media.currentTime,s),"timeupdate"===e.type&&Me.elements.inputs.seek&&(Me.elements.inputs.seek.value=n);break;case"playing":case"progress":t=Me.elements.display.buffer,n=function(){var e=Me.elements.media.buffered;return e&&e.length?i.getPercentage(e.end(0),s):i.is.number(e)?100*e:0}()}i.is.number(De.loop.start)&&i.is.number(De.loop.end)&&Me.elements.media.currentTime>=De.loop.end&&ae(De.loop.start),he(t,n)}}function he(e,t){if(Me.supported.full){if(i.is.undefined(t)&&(t=0),i.is.undefined(e)){if(!i.is.htmlElement(Me.elements.display.buffer))return;e=Me.elements.display.buffer}if(i.is.htmlElement(e)){e.value=t;var n=e.getElementsByTagName("span")[0];i.is.htmlElement(n)&&(n.childNodes[0].nodeValue=t)}}}function ke(e,t){if(t){isNaN(e)&&(e=0);var n=parseInt(e%60),s=parseInt(e/60%60),a=parseInt(e/60/60%60),l=parseInt(le()/60/60%60)>0;n=("0"+n).slice(-2),s=("0"+s).slice(-2);var i=(l?a+":":"")+s+":"+n;return t.textContent=i,i}}function Ce(){if(Me.supported.full){var e=le()||0;!Me.elements.display.duration&&De.displayDuration&&Me.elements.media.paused&&ke(e,Me.elements.display.currentTime),Me.elements.display.duration&&ke(e,Me.elements.display.duration),we()}}function Ee(e){ke(Me.elements.media.currentTime,Me.elements.display.currentTime),e&&"timeupdate"===e.type&&Me.elements.media.seeking||ve(e)}function Ae(e){i.is.number(e)||(e=0);var t=le(),n=i.getPercentage(e,t);Me.elements.progress&&Me.elements.display.played&&(Me.elements.display.played.value=n),Me.elements.buttons&&Me.elements.inputs.seek&&(Me.elements.inputs.seek.value=n); +}function we(e){var t=le();if(De.tooltips.seek&&i.is.htmlElement(Me.elements.inputs.seek)&&i.is.htmlElement(Me.elements.display.seekTooltip)&&0!==t){var n=Me.elements.inputs.seek.getBoundingClientRect(),s=0,a=De.classes.tooltip+"--visible";if(i.is.event(e))s=100/n.width*(e.pageX-n.left);else{if(!i.hasClass(Me.elements.display.seekTooltip,a))return;s=Me.elements.display.seekTooltip.style.left.replace("%","")}s<0?s=0:s>100&&(s=100),ke(t/100*s,Me.elements.display.seekTooltip),Me.elements.display.seekTooltip.style.left=s+"%",i.is.event(e)&&i.inArray(["mouseenter","mouseleave"],e.type)&&i.toggleClass(Me.elements.display.seekTooltip,a,"mouseenter"===e.type)}}function Se(t){if(De.hideControls&&"audio"!==Me.type){var n=0,s=!1,a=t,l=i.hasClass(Me.elements.container,De.classes.loading);if(i.is.boolean(t)||(t&&t.type?(s="enterfullscreen"===t.type,a=i.inArray(["mousemove","touchstart","mouseenter","focus"],t.type),i.inArray(["mousemove","touchmove"],t.type)&&(n=2e3),"focus"===t.type&&(n=3e3)):a=i.hasClass(Me.elements.container,De.classes.hideControls)),e.clearTimeout(je.hover),a||Me.elements.media.paused||l){if(i.toggleClass(Me.elements.container,De.classes.hideControls,!1),Me.elements.media.paused||l)return;o.touch&&(n=3e3)}a&&Me.elements.media.paused||(je.hover=e.setTimeout(function(){(!Me.elements.controls.pressed&&!Me.elements.controls.hover||s)&&i.toggleClass(Me.elements.container,De.classes.hideControls,!0)},n))}}function Te(e){if(!i.is.undefined(e))return void xe(e);var t;switch(Me.type){case"youtube":t=Me.embed.getVideoUrl();break;case"vimeo":Me.embed.getVideoUrl.then(function(e){t=e});break;case"soundcloud":Me.embed.getCurrentSound(function(e){t=e.permalink_url});break;default:t=Me.elements.media.currentSrc}return t||""}function xe(e){function t(){if(Me.embed=null,m("media"),m("captions"),m("wrapper"),Me.elements.container&&Me.elements.container.removeAttribute("class"),"type"in e&&(Me.type=e.type,"video"===Me.type)){var t=e.sources[0];"type"in t&&i.inArray(l.embed,t.type)&&(Me.type=t.type)}switch(Me.supported=i.checkSupport(Me.type,De.inline),Me.type){case"video":Me.elements.media=i.createElement("video");break;case"audio":Me.elements.media=i.createElement("audio");break;case"youtube":case"vimeo":case"soundcloud":Me.elements.media=i.createElement("div"),Me.embedId=e.sources[0].src}i.prependChild(Me.elements.container,Me.elements.media),i.is.boolean(e.autoplay)&&(De.autoplay=e.autoplay),i.inArray(l.html5,Me.type)&&(De.crossorigin&&Me.elements.media.setAttribute("crossorigin",""),De.autoplay&&Me.elements.media.setAttribute("autoplay",""),"poster"in e&&Me.elements.media.setAttribute("poster",e.poster),De.loop.active&&Me.elements.media.setAttribute("loop",""),De.inline&&Me.elements.media.setAttribute("playsinline","")),i.toggleClass(Me.elements.container,De.classes.fullscreen.active,Me.fullscreen.active),i.toggleClass(Me.elements.container,De.classes.captions.active,Me.captions.enabled),D(),i.inArray(l.html5,Me.type)&&y("source",e.sources),Y(),i.inArray(l.html5,Me.type)&&("tracks"in e&&y("track",e.tracks),Me.elements.media.load()),(i.inArray(l.html5,Me.type)||i.inArray(l.embed,Me.type)&&!Me.supported.full)&&(Le(),qe()),De.title=e.title,B()}return i.is.object(e)&&"sources"in e&&e.sources.length?(i.toggleClass(Me.elements.container,De.classes.ready,!1),G(),Ae(),he(),_e(),void Ne(t,!1)):void Be("Invalid source format")}function Fe(e){"video"===Me.type&&Me.elements.media.setAttribute("poster",e)}function Ie(){function n(){var e=K(),t=Me.elements.buttons[e?"play":"pause"],n=Me.elements.buttons[e?"pause":"play"];if(n){var s=i.hasClass(t,De.classes.tabFocus);setTimeout(function(){i.is.htmlElement(n)&&n.focus(),s&&(i.toggleClass(t,De.classes.tabFocus,!1),i.toggleClass(n,De.classes.tabFocus,!0))},100)}}function s(e){return e.keyCode?e.keyCode:e.which}function a(e){i.toggleClass(d("."+De.classes.tabFocus),De.classes.tabFocus,!1),Me.elements.container.contains(e)&&i.toggleClass(e,De.classes.tabFocus,!0)}function l(e){function t(){var e=Me.elements.media.duration;i.is.number(e)&&ae(e/10*(a-48))}var a=s(e),l="keydown"===e.type,r=l&&a===c;if(i.is.number(a))if(l){var u=[48,49,50,51,52,53,54,56,57,32,75,38,40,77,39,37,70,67,73,76,79],d=[38,40];if(i.inArray(d,a)){var p=i.getFocusElement();if(i.is.htmlElement(p)&&"radio"===i.getFocusElement().type)return}switch(i.inArray(u,a)&&(e.preventDefault(),e.stopPropagation()),a){case 48:case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 57:r||t();break;case 32:case 75:r||n();break;case 38:fe();break;case 40:ye();break;case 77:r||pe();break;case 39:se();break;case 37:ne();break;case 70:ue();break;case 67:r||M();break;case 73:Z("start");break;case 76:Z();break;case 79:Z("end")}!o.fullscreen&&Me.fullscreen.active&&27===a&&ue(),c=a}else c=null}var u=Me.browser.isIE?"change":"input";if(De.keyboardShortcuts.focused){var c=null;De.keyboardShortcuts.global&&i.on(e,"keydown keyup",function(e){var t=s(e),n=i.getFocusElement(),a=[48,49,50,51,52,53,54,56,57,75,77,70,67,73,76,79];!i.inArray(a,t)||i.is.htmlElement(n)&&i.matches(n,De.selectors.editable)||l(e)},!1),i.on(Me.elements.container,"keydown keyup",l,!1)}i.on(e,"keyup",function(e){var t=s(e),n=i.getFocusElement();9===t&&a(n)}),i.on(t.body,"click",function(){i.toggleClass(p("."+De.classes.tabFocus),De.classes.tabFocus,!1)});for(var m in Me.elements.buttons){var f=Me.elements.buttons[m];i.on(f,"blur",function(){i.toggleClass(f,"tab-focus",!1)})}var y=function(e,t,n){i.is.function(t)&&t.call(this,e),i.is.function(n)&&n.call(this,e)};i.proxy(Me.elements.buttons.play,"click",De.listeners.play,n),i.proxy(Me.elements.buttons.playLarge,"click",De.listeners.play,n),i.proxy(Me.elements.buttons.pause,"click",De.listeners.pause,n),i.proxy(Me.elements.buttons.restart,"click",De.listeners.restart,ae),i.proxy(Me.elements.buttons.rewind,"click",De.listeners.rewind,ne),i.proxy(Me.elements.buttons.forward,"click",De.listeners.forward,se),i.proxy(Me.elements.buttons.mute,"click",De.listeners.mute,pe),i.proxy(Me.elements.buttons.captions,"click",De.listeners.captions,M),i.proxy(Me.elements.buttons.fullscreen,"click",De.listeners.fullscreen,ue),i.proxy(Me.elements.buttons.pip,"click",De.listeners.pip,function(e){o.pip&&Me.elements.media.webkitSetPresentationMode("picture-in-picture"===Me.elements.media.webkitPresentationMode?"inline":"picture-in-picture")}),i.proxy(Me.elements.buttons.airplay,"click",De.listeners.airplay,function(e){o.airplay&&Me.elements.media.webkitShowPlaybackTargetPicker()}),i.on(Me.elements.buttons.settings,"click",ce),i.on(t.body,"click",ce),i.on(Me.elements.settings.form,"click",de),i.on(Me.elements.settings.form,"click",function(e){i.matches(e.target,De.selectors.inputs.language)?y.call(this,e,De.listeners.language,L):i.matches(e.target,De.selectors.inputs.quality)?y.call(this,e,De.listeners.quality,function(){Be("Set quality")}):i.matches(e.target,De.selectors.inputs.speed)?y.call(this,e,De.listeners.speed,ee):i.matches(e.target,De.selectors.buttons.loop)&&y.call(this,e,De.listeners.loop,function(){var t=e.target.getAttribute("data-loop__value")||e.target.getAttribute("data-loop__type");i.inArray(["start","end","all","none"],t)&&Z(t)})}),i.proxy(Me.elements.inputs.seek,u,De.listeners.seek,ae),i.proxy(Me.elements.inputs.volume,u,De.listeners.volume,me),i.on(Me.elements.progress,"mouseenter mouseleave mousemove",we),De.hideControls&&(i.on(Me.elements.container,"mouseenter mouseleave mousemove touchstart touchend touchcancel touchmove enterfullscreen",Se),i.on(Me.elements.controls,"mouseenter mouseleave",function(e){Me.elements.controls.hover="mouseenter"===e.type}),i.on(Me.elements.controls,"mousedown mouseup touchstart touchend touchcancel",function(e){Me.elements.controls.pressed=i.inArray(["mousedown","touchstart"],e.type)}),i.on(Me.elements.controls,"focus blur",Se,!0,!0)),i.proxy(Me.elements.inputs.volume,"wheel",De.listeners.volume,function(e){var t=e.webkitDirectionInvertedFromDevice,n=.2,s=0;(e.deltaY<0||e.deltaX>0)&&(t?(ye(n),s=-1):(fe(n),s=1)),(e.deltaY>0||e.deltaX<0)&&(t?(fe(n),s=1):(ye(n),s=-1)),(1===s&&Me.elements.media.volume<1||s===-1&&Me.elements.media.volume>0)&&e.preventDefault()},!1),o.fullscreen&&i.on(t,r.eventType,ue)}function Pe(){if(i.on(Me.elements.media,"timeupdate seeking",Ee),i.on(Me.elements.media,"durationchange loadedmetadata",Ce),i.on(Me.elements.media,"ended",function(){"video"===Me.type&&De.showPosterOnEnd&&("video"===Me.type&&q(),ae(),Me.elements.media.load())}),i.on(Me.elements.media,"progress playing",ve),i.on(Me.elements.media,"volumechange",ge),i.on(Me.elements.media,"play pause ended",ie),i.on(Me.elements.media,"waiting canplay seeked",be),De.clickToPlay&&"audio"!==Me.type){var e=p("."+De.classes.videoWrapper);if(!e)return;e.style.cursor="pointer",i.on(e,"click",function(){De.hideControls&&o.touch&&!Me.elements.media.paused||(Me.elements.media.paused?$():Me.elements.media.ended?(ae(),$()):G())})}De.disableContextMenu&&i.on(Me.elements.media,"contextmenu",function(e){e.preventDefault()},!1),i.on(Me.elements.media,De.events.concat(["keyup","keydown"]).join(" "),function(e){c(Me.elements.container,e.type,!0)})}function _e(){if(i.inArray(l.html5,Me.type)){for(var e=Me.elements.media.querySelectorAll("source"),t=0;t=0;n--){var s=n>0?t.cloneNode(!0):t,a=e[n],l=a.parentNode,i=a.nextSibling;return s.appendChild(a),i?l.insertBefore(s,i):l.appendChild(s),s}},removeElement:function(e){i.is.htmlElement(e)&&i.is.htmlElement(e.parentNode)&&e.parentNode.removeChild(e)},prependChild:function(e,t){e.insertBefore(t,e.firstChild)},insertAfter:function(e,t){t.parentNode.insertBefore(e,t.nextSibling)},createElement:function(e,n,s){var a=t.createElement(e);return i.is.object(n)&&i.setAttributes(a,n),i.is.string(s)&&(a.textContent=s),a},insertElement:function(e,t,n,s){var a=i.createElement(e,n,s);i.prependChild(t,a)},emptyElement:function(e){for(var t=e.childNodes.length;t--;)e.removeChild(e.lastChild)},setAttributes:function(e,t){for(var n in t)e.setAttribute(n,t[n])},getAttributesFromSelector:function(e,t){if(!i.is.string(e)||i.is.empty(e))return{};var n={};return e.split(",").forEach(function(e){e=e.trim();var s=e.charAt(0);switch(s){case".":var a=e.replace(".","");i.is.object(t)&&i.is.string(t.class)&&(t.class+=" "+a),n.class=a;break;case"#":n.id=e.replace("#","");break;case"[":e=e.replace(/[\[\]]/g,"");var l=e.split("="),r=l[0],o=l.length>1?l[1].replace(/[\"\']/g,""):"";n[r]=o}}),n},toggleClass:function(e,t,n){if(e)if(e.classList)e.classList[n?"add":"remove"](t);else{var s=(" "+e.className+" ").replace(/\s+/g," ").replace(" "+t+" ","");e.className=s+(n?" "+t:"")}},hasClass:function(e,t){return!!e&&(e.classList?e.classList.contains(t):new RegExp("(\\s|^)"+t+"(\\s|$)").test(e.className))},matches:function(e,n){var s=Element.prototype,a=s.matches||s.webkitMatchesSelector||s.mozMatchesSelector||s.msMatchesSelector||function(e){return[].indexOf.call(t.querySelectorAll(e),this)!==-1};return a.call(e,n)},getFocusElement:function(){var e=t.activeElement;return e=e&&e!==t.body?t.querySelector(":focus"):null},proxy:function(e,t,n,s,a,l){i.on(e,t,function(t){n&&n.apply(e,[t]),s.apply(e,[t])},a,l)},toggleListener:function(e,t,n,s,a,l){if(t=t.split(" "),i.is.boolean(l)||(l=!1),i.is.boolean(a)||(a=!0),e instanceof NodeList){var r=1===arguments.length?[arguments[0]]:Array.apply(null,arguments);return r.shift(),void[].forEach.call(e,function(e){e instanceof Node&&i.toggleListener.apply(null,[e].concat(r))})}var u=l;o.passiveListeners&&(u={passive:a,capture:l}),t.forEach(function(t){e[s?"addEventListener":"removeEventListener"](t,n,u)})},on:function(e,t,n,s,a){i.is.undefined(e)||i.toggleListener(e,t,n,!0,s,a)},off:function(e,t,n,s,a){i.is.undefined(e)||i.toggleListener(e,t,n,!1,s,a)},event:function(n,s,a,l){if(n&&s){i.is.boolean(a)||(a=!1);var r;i.is.function(e.CustomEvent)?r=e.CustomEvent:(r=function(e,n){n=n||{bubbles:!1,cancelable:!1,detail:void 0};var s=t.createEvent("CustomEvent");return s.initCustomEvent(e,n.bubbles,n.cancelable,n.detail),s},r.prototype=e.Event.prototype);var o=new r(s,{bubbles:a,detail:l});n.dispatchEvent(o)}},toggleState:function(e,t){if(e)return t=i.is.boolean(t)?t:!e.getAttribute("aria-pressed"),e.setAttribute("aria-pressed",t),t},getPercentage:function(e,t){return 0===e||0===t||isNaN(e)||isNaN(t)?0:(e/t*100).toFixed(2)},extend:function(){var e=arguments;if(e.length){if(1===e.length)return e[0];var t=Array.prototype.shift.call(e);i.is.object(t)||(t={});for(var n=e.length,s=0;s div { overflow: hidden; - transition: height .35s cubic-bezier(.4,0,.2,1), width .35s cubic-bezier(.4,0,.2,1); + transition: height .35s cubic-bezier(.4, 0, .2, 1), + width .35s cubic-bezier(.4, 0, .2, 1); } // Arrow