From 7daa08c32f9a85512e4ff946fcbb572bf4bb1c7b Mon Sep 17 00:00:00 2001 From: Sam Potts Date: Sun, 4 Jun 2017 15:27:37 +1000 Subject: [PATCH] Change to proper constructor + prototypes --- demo/dist/demo.js | 2 +- demo/src/js/main.js | 4 + dist/plyr.js | 4 +- notes.md | 30 +- src/js/plyr.js | 2487 +++++++++++++++++++++++-------------------- 5 files changed, 1344 insertions(+), 1183 deletions(-) diff --git a/demo/dist/demo.js b/demo/dist/demo.js index 322d73bc..bf26da52 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)}}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)}}(),"plyr.io"===window.location.host&&(!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.player=i,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)}}(),"plyr.io"===window.location.host&&(!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 87c71756..ee45d118 100644 --- a/demo/src/js/main.js +++ b/demo/src/js/main.js @@ -37,6 +37,10 @@ ] }); + // Expose for testing + window.player = player; + + // Load demo sprite window.loadSprite('dist/demo.svg', 'demo-sprite'); // Setup type toggle diff --git a/dist/plyr.js b/dist/plyr.js index 36a8f22c..16e19d21 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){i.event(e,t,n,i.extend({},s,{plyr:De}))}function d(e){return je.elements.container.querySelectorAll(e)}function p(e){return d(e)[0]}function m(e){i.is.string(e)?(i.removeElement(je.elements[e]),je.elements[e]=null):i.removeElement(e)}function f(){function e(e){9===e.which&&je.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];i.on(je.elements.container,"keydown",e,!1)}function y(e,t){i.is.string(t)?i.insertElement(e,je.elements.media,{src:t}):i.is.array(t)&&t.forEach(function(t){i.insertElement(e,je.elements.media,t)})}function g(){return{url:Re.iconUrl,absolute:0===Re.iconUrl.indexOf("http")||je.browser.isIE}}function b(e,n){var s="http://www.w3.org/2000/svg",a=g(),l=(a.absolute?"":a.url)+"#"+Re.iconPrefix,r=t.createElementNS(s,"svg");i.setAttributes(r,i.extend(n,{role:"presentation"}));var o=t.createElementNS(s,"use");return o.setAttributeNS("http://www.w3.org/1999/xlink","xlink:href",l+"-"+e),r.appendChild(o),r}function v(e){var t=Re.i18n[e];switch(e){case"pip":t="PIP";break;case"airplay":t="AirPlay"}return i.createElement("span",{class:Re.classes.hidden},t)}function h(e){var t=i.createElement("span",{class:Re.classes.menu.value});return t.appendChild(i.createElement("span",{class:Re.classes.menu.badge},e)),t}function k(e,t){var n,s,a,l=i.createElement("button");switch(i.is.object(t)||(t={}),"class"in t?t.class.indexOf(Re.classes.control)===-1&&(t.class+=" "+Re.classes.control):t.class=Re.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 i.extend(t,i.getAttributesFromSelector(Re.selectors.buttons[e],t)),i.is.string(s)&&l.appendChild(b(s,{class:"icon--"+s})),l.appendChild(b(n)),l.appendChild(v(a)),i.setAttributes(l,t),je.elements.buttons[e]=l,l}function C(e,t){var n=i.createElement("label",{for:t.id,class:Re.classes.hidden},Re.i18n[e]),s=i.createElement("input",i.extend(i.getAttributesFromSelector(Re.selectors.inputs[e]),{type:"range",min:0,max:100,step:.1,value:0,autocomplete:"off"},t));return je.elements.inputs[e]=s,{label:n,input:s}}function E(e,t){var n=i.createElement("progress",i.extend(i.getAttributesFromSelector(Re.selectors.display[e]),{min:0,max:100,value:0},t));if("volume"!==e){n.appendChild(i.createElement("span",null,"0"));var s="";switch(e){case"played":s=Re.i18n.played;break;case"buffer":s=Re.i18n.buffered}n.textContent="% "+s.toLowerCase()}return je.elements.display[e]=n,n}function A(e){var t=i.createElement("span",{class:"plyr__time"});return t.appendChild(i.createElement("span",{class:Re.classes.hidden},Re.i18n[e])),t.appendChild(i.createElement("span",i.getAttributesFromSelector(Re.selectors.display[e]),"00:00")),je.elements.display[e]=t,t}function w(e){var t=i.createElement("div",i.getAttributesFromSelector(Re.selectors.controls.wrapper));if(i.inArray(Re.controls,"restart")&&t.appendChild(k("restart")),i.inArray(Re.controls,"rewind")&&t.appendChild(k("rewind")),i.inArray(Re.controls,"play")&&(t.appendChild(k("play")),t.appendChild(k("pause"))),i.inArray(Re.controls,"fast-forward")&&t.appendChild(k("fast-forward")),i.inArray(Re.controls,"progress")){var n=i.createElement("span",i.getAttributesFromSelector(Re.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")),Re.tooltips.seek){var a=i.createElement("span",{role:"tooltip",class:Re.classes.tooltip},"00:00");n.appendChild(a),je.elements.display.seekTooltip=a}je.elements.progress=n,t.appendChild(je.elements.progress)}if(i.inArray(Re.controls,"current-time")&&t.appendChild(A("currentTime")),i.inArray(Re.controls,"duration")&&t.appendChild(A("duration")),i.inArray(Re.controls,"mute")&&t.appendChild(k("mute")),i.inArray(Re.controls,"volume")){var l=i.createElement("span",{class:"plyr__volume"}),r={max:10,value:Re.volume},u=C("volume",i.extend(r,{id:"plyr-volume-"+e.id}));l.appendChild(u.label),l.appendChild(u.input);var c=E("volume",r);l.appendChild(c),t.appendChild(l)}if(i.inArray(Re.controls,"captions")&&t.appendChild(k("captions")),i.inArray(Re.controls,"settings")){var d=i.createElement("div",{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=i.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=i.createElement("div"),f=i.createElement("div",{id:"plyr-settings-"+e.id+"-home","aria-hidden":!1,"aria-labelled-by":"plyr-settings-toggle-"+e.id,role:"tabpanel"}),y=i.createElement("ul",{role:"tablist"});Re.settings.forEach(function(t){var n=i.createElement("li",{role:"tab",hidden:""}),s=i.createElement("button",i.extend(i.getAttributesFromSelector(Re.selectors.buttons.settings),{type:"button",class:Re.classes.control+" "+Re.classes.control+"--forward",id:"plyr-settings-"+e.id+"-"+t+"-tab","aria-haspopup":!0,"aria-controls":"plyr-settings-"+e.id+"-"+t,"aria-expanded":!1}),Re.i18n[t]),a=i.createElement("span",{class:Re.classes.menu.value});a.innerHTML=e[t],s.appendChild(a),n.appendChild(s),y.appendChild(n),je.elements.settings.tabs[t]=n}),f.appendChild(y),m.appendChild(f),Re.settings.forEach(function(t){var n=i.createElement("div",{id:"plyr-settings-"+e.id+"-"+t,"aria-hidden":!0,"aria-labelled-by":"plyr-settings-"+e.id+"-"+t+"-tab",role:"tabpanel",tabindex:-1,hidden:""}),s=i.createElement("button",{type:"button",class:Re.classes.control+" "+Re.classes.control+"--back","aria-haspopup":!0,"aria-controls":"plyr-settings-"+e.id+"-home","aria-expanded":!1},Re.i18n[t]);n.appendChild(s);var a=i.createElement("ul");n.appendChild(a),m.appendChild(n),je.elements.settings.panes[t]=n}),p.appendChild(m),d.appendChild(p),t.appendChild(d),je.elements.settings.form=p,je.elements.settings.menu=d}return i.inArray(Re.controls,"pip")&&o.pip&&t.appendChild(k("pip")),i.inArray(Re.controls,"airplay")&&o.airplay&&t.appendChild(k("airplay")),i.inArray(Re.controls,"fullscreen")&&t.appendChild(k("fullscreen")),je.elements.controls=t,S(),F(),t}function T(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=je.elements.settings.panes.quality.querySelector("ul");je.elements.settings.tabs.quality.removeAttribute("hidden"),je.elements.settings.panes.quality.removeAttribute("hidden"),i.emptyElement(l),i.is.array(e)&&!i.is.empty(e)&&e.filter(function(e){return!i.inArray(["tiny","small"],e)}).forEach(function(e){var n=i.createElement("li"),r=i.createElement("label",{class:Re.classes.control}),o=i.createElement("input",i.extend(i.getAttributesFromSelector(Re.selectors.inputs.quality),{type:"radio",name:"plyr-quality",value:e}));e===Re.quality.selected&&(o.setAttribute("checked",""),o.checked=!0),r.appendChild(o),r.appendChild(t.createTextNode(a(e)));var u=s(e);i.is.htmlElement(u)&&r.appendChild(u),n.appendChild(r),l.appendChild(n)})}function S(){var e=["start","end","all","reset"],t=je.elements.settings.panes.loop.querySelector("ul");je.elements.settings.tabs.loop.removeAttribute("hidden"),je.elements.settings.panes.loop.removeAttribute("hidden"),i.emptyElement(t),e.forEach(function(e){var n=i.createElement("li"),s=i.createElement("button",i.extend(i.getAttributesFromSelector(Re.selectors.buttons.loop),{type:"button",class:Re.classes.control,"data-plyr-loop-action":e}),Re.i18n[e]);if(i.inArray(["start","end"],e)){var a=h("00:00");s.appendChild(a)}n.appendChild(s),t.appendChild(n)})}function x(){var e=je.elements.settings.panes.captions.querySelector("ul");if(je.elements.settings.tabs.captions.removeAttribute("hidden"),je.elements.settings.panes.captions.removeAttribute("hidden"),i.emptyElement(e),!i.is.empty(je.captions.tracks)){var n=[].map.call(je.captions.tracks,function(e){return{language:e.language,badge:!0,label:i.is.empty(e.label)?e.language.toUpperCase():e.label}});n.unshift({language:"off",label:Re.i18n.none}),n.forEach(function(n){var s=i.createElement("li"),a=i.createElement("label",{class:Re.classes.control}),l=i.createElement("input",i.extend(i.getAttributesFromSelector(Re.selectors.inputs.language),{type:"radio",name:"plyr-language",value:n.language}));n.language.toLowerCase()===Re.captions.language.toLowerCase()&&(l.setAttribute("checked",""),l.checked=!0),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=je.elements.settings.panes.speed.querySelector("ul");je.elements.settings.tabs.speed.removeAttribute("hidden"),je.elements.settings.panes.speed.removeAttribute("hidden"),i.emptyElement(t),i.is.array(e)||(e=Re.speed.options),e.forEach(function(e){var n=i.createElement("li"),s=i.createElement("label",{class:Re.classes.control}),a=i.createElement("input",i.extend(i.getAttributesFromSelector(Re.selectors.inputs.speed),{type:"radio",name:"plyr-speed",value:e}));e===Re.speed.selected&&(a.setAttribute("checked",""),a.checked=!0),s.appendChild(a),s.insertAdjacentHTML("beforeend",te(e)),n.appendChild(s),t.appendChild(n)})}function I(){if(je.supported.full&&("audio"!==je.type||Re.fullscreen.allowAudio)&&Re.fullscreen.enabled){var e=o.fullscreen;e||Re.fullscreen.fallback&&!i.inFrame()?(Be((e?"Native":"Fallback")+" fullscreen enabled"),i.toggleClass(je.elements.container,Re.classes.fullscreen.enabled,!0)):Be("Fullscreen not supported and fallback disabled"),je.elements.buttons&&je.elements.buttons.fullscreen&&i.toggleState(je.elements.buttons.fullscreen,!1),f()}}function P(e){if(i.inArray(["video","vimeo"],je.type)&&("video"!==je.type||o.textTracks)&&(i.is.htmlElement(je.elements.captions)||(je.elements.captions=i.createElement("div",i.getAttributesFromSelector(Re.selectors.captions)),i.insertAfter(je.elements.captions,je.elements.wrapper)),je.captions.tracks=i.is.array(e)?e:je.elements.media.textTracks,i.toggleClass(je.elements.container,Re.classes.captions.enabled,!i.is.empty(je.captions.tracks)),!i.is.empty(je.captions.tracks))){if(O(),"video"===je.type){var t=Re.captions.language.toLowerCase();[].forEach.call(je.captions.tracks,function(e){i.off(e,"cuechange",N),e.mode="hidden",e.language===t&&(je.captions.currentTrack=e)}),i.is.track(je.captions.currentTrack)||(He("No language found to match "+t+" in tracks"),je.captions.currentTrack=je.captions.tracks[0]);var n=je.captions.currentTrack;i.is.track(n)&&i.inArray(["captions","subtitles"],n.kind)&&(i.on(n,"cuechange",N),n.activeCues&&n.activeCues.length>0&&N(n))}x()}}function _(){return!o.textTracks||i.is.empty(je.captions.tracks)?"No Subs":je.captions.enabled?je.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)?Re.captions.language=e.toLowerCase():i.is.event(e)&&(Re.captions.language=e.target.value.toLowerCase()),q(),P()}function q(e){if(i.is.htmlElement(je.elements.captions)){var t=i.createElement("span");i.emptyElement(je.elements.captions),i.is.undefined(e)&&(e=""),i.is.string(e)?t.textContent=e.trim():t.appendChild(e),je.elements.captions.appendChild(t)}else He("No captions element to render to")}function O(){if(je.elements.buttons.captions){var e=je.storage.captions;i.is.boolean(e)?Re.captions.active=e:e=Re.captions.active,e&&(i.toggleClass(je.elements.container,Re.classes.captions.active,!0),i.toggleState(je.elements.buttons.captions,!0))}}function M(e){je.supported.full&&je.elements.buttons.captions&&(i.is.boolean(e)||(e=je.elements.container.className.indexOf(Re.classes.captions.active)===-1),je.captions.enabled=e,i.toggleState(je.elements.buttons.captions,je.captions.enabled),i.toggleClass(je.elements.container,Re.classes.captions.active,je.captions.enabled),c(je.elements.container,je.captions.enabled?"captionsenabled":"captionsdisabled",!0),W({captions:je.captions.enabled}))}function j(){if(Re.loadSprite){var e=g();e.absolute?(Be("AJAX loading absolute SVG sprite"+(je.browser.isIE?" (due to IE)":"")),i.loadSprite(e.url,"sprite-plyr")):Be("Sprite will be used as external resource directly")}i.inArray(Re.controls,"play-large")&&(je.elements.buttons.playLarge=k("play-large"),je.elements.container.appendChild(je.elements.buttons.playLarge)),je.id=Math.floor(1e4*Math.random());var n=null;n=i.is.string(Re.controls)?Re.controls:i.is.function(Re.controls)?Re.controls({id:je.id,seektime:Re.seekTime}):w({id:je.id,seektime:Re.seekTime,speed:te(),quality:"HD",captions:_(),loop:"None"});var s;if(i.is.string(Re.selectors.controls.container)&&(s=t.querySelector(Re.selectors.controls.container)),i.is.htmlElement(s)||(s=je.elements.container),i.is.htmlElement(n)?s.appendChild(n):s.insertAdjacentHTML("beforeend",n),i.is.htmlElement(je.elements.controls)&&V(),Re.tooltips.controls)for(var a=d([Re.selectors.controls.wrapper," ",Re.selectors.labels," .",Re.classes.hidden].join("")),l=a.length-1;l>=0;l--){var r=a[l];i.toggleClass(r,Re.classes.hidden,!1),i.toggleClass(r,Re.classes.tooltip,!0)}}function V(){try{return je.elements.controls=p(Re.selectors.controls.wrapper),je.elements.buttons={play:d(Re.selectors.buttons.play),pause:p(Re.selectors.buttons.pause),restart:p(Re.selectors.buttons.restart),rewind:p(Re.selectors.buttons.rewind),forward:p(Re.selectors.buttons.forward),mute:p(Re.selectors.buttons.mute),pip:p(Re.selectors.buttons.pip),airplay:p(Re.selectors.buttons.airplay),settings:p(Re.selectors.buttons.settings),captions:p(Re.selectors.buttons.captions),fullscreen:p(Re.selectors.buttons.fullscreen)},je.elements.progress=p(Re.selectors.progress),je.elements.inputs={seek:p(Re.selectors.inputs.seek),volume:p(Re.selectors.inputs.volume)},je.elements.display={buffer:p(Re.selectors.display.buffer),played:p(Re.selectors.display.played),volume:p(Re.selectors.display.volume),duration:p(Re.selectors.display.duration),currentTime:p(Re.selectors.display.currentTime)},i.is.htmlElement(je.elements.progress)&&(je.elements.display.seekTooltip=je.elements.progress.querySelector("."+Re.classes.tooltip)),!0}catch(e){return He("It looks like there is a problem with your custom controls HTML",e),R(!0),!1}}function D(){i.toggleClass(je.elements.container,Re.selectors.container.replace(".",""),je.supported.full)}function R(e){e&&i.inArray(l.html5,je.type)?je.elements.media.setAttribute("controls",""):je.elements.media.removeAttribute("controls")}function B(e){var t=Re.i18n.play;if(i.is.string(Re.title)&&!i.is.empty(Re.title)&&(t+=", "+Re.title,je.elements.container.setAttribute("aria-label",Re.title)),je.supported.full&&(i.is.htmlElement(je.elements.buttons.play)&&je.elements.buttons.play.setAttribute("aria-label",t),i.is.htmlElement(je.elements.buttons.playLarge)&&je.elements.buttons.playLarge.setAttribute("aria-label",t)),i.is.htmlElement(e)){var n=i.is.string(Re.title)&&!i.is.empty(Re.title)?Re.title:"video";e.setAttribute("title",Re.i18n.frameTitle.replace("{title}",n))}}function H(){var t=null;je.storage={},o.storage&&Re.storage.enabled&&(e.localStorage.removeItem("plyr-volume"),t=e.localStorage.getItem(Re.storage.key),t&&(/^\d+(\.\d+)?$/.test(t)?W({volume:parseFloat(t)}):je.storage=JSON.parse(t)))}function W(t){o.storage&&Re.storage.enabled&&(i.extend(je.storage,t),e.localStorage.setItem(Re.storage.key,JSON.stringify(je.storage)))}function Y(){return je.elements.media?(je.supported.full&&(i.toggleClass(je.elements.container,Re.classes.type.replace("{0}",je.type),!0),i.inArray(l.embed,je.type)&&i.toggleClass(je.elements.container,Re.classes.type.replace("{0}","video"),!0),i.toggleClass(je.elements.container,Re.classes.pip.enabled,o.pip&&"video"===je.type),i.toggleClass(je.elements.container,Re.classes.airplay.enabled,o.airplay&&i.inArray(l.html5,je.type)),i.toggleClass(je.elements.container,Re.classes.stopped,Re.autoplay),i.toggleClass(je.elements.container,Re.classes.isIos,je.browser.isIos),i.toggleClass(je.elements.container,Re.classes.isTouch,o.touch)),i.inArray(["video","youtube","vimeo"],je.type)&&(je.elements.wrapper=i.createElement("div",{class:Re.classes.videoWrapper}),i.wrap(je.elements.media,je.elements.wrapper)),void(i.inArray(l.embed,je.type)&&U())):void He("No media element found!")}function U(){var t,n=je.type+"-"+Math.floor(1e4*Math.random());switch(je.type){case"youtube":t=i.parseYouTubeId(je.embedId);break;default:t=je.embedId}for(var s=d('[id^="'+je.type+'-"]'),a=s.length-1;a>=0;a--)i.removeElement(s[a]);if(i.toggleClass(je.elements.wrapper,Re.classes.embedWrapper,!0),"youtube"===je.type)je.elements.media.setAttribute("id",n),i.is.object(e.YT)?z(t):(i.injectScript(Re.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"===je.type)if(je.elements.media.setAttribute("id",n),i.is.object(e.Vimeo))J(t);else{i.injectScript(Re.urls.vimeo.api);var l=e.setInterval(function(){i.is.object(e.Vimeo)&&(e.clearInterval(l),J(t))},50)}else if("soundcloud"===je.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}),je.elements.media.appendChild(r),e.SC||i.injectScript(Re.urls.soundcloud.api);var o=e.setInterval(function(){e.SC&&r.loaded&&(e.clearInterval(o),X.call(r))},50)}}function Q(){je.supported.full&&(qe(),Oe()),B(p("iframe"))}function z(t){je.embed=new e.YT.Player(je.elements.media.id,{videoId:t,playerVars:{autoplay:Re.autoplay?1:0,controls:je.supported.full?0:1,rel:0,showinfo:0,iv_load_policy:3,cc_load_policy:Re.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(je.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;je.elements.media.play=function(){n.playVideo(),je.elements.media.paused=!1},je.elements.media.pause=function(){n.pauseVideo(),je.elements.media.paused=!0},je.elements.media.stop=function(){n.stopVideo(),je.elements.media.paused=!0},je.elements.media.duration=n.getDuration(),je.elements.media.paused=!0,je.elements.media.currentTime=0,je.elements.media.muted=n.isMuted();var s=n.getPlaybackRate(),a=n.getAvailablePlaybackRates();console.warn(s,a),Re.title=n.getVideoData().title,je.supported.full&&je.elements.media.setAttribute("tabindex",-1),Q(),c(je.elements.media,"timeupdate"),c(je.elements.media,"durationchange"),e.clearInterval(Ve.buffering),Ve.buffering=e.setInterval(function(){je.elements.media.buffered=n.getVideoLoadedFraction(),(null===je.elements.media.lastBuffered||je.elements.media.lastBuffered=n)return;Re.loop.end=n,Re.loop.indicator.end=je.elements.display.played.value;break;case"all":Re.loop.start=0,Re.loop.end=je.elements.media.duration-2,Re.loop.indicator.start=0,Re.loop.indicator.end=100;break;case"toggle":Re.loop.active?(Re.loop.start=0,Re.loop.end=null):(Re.loop.start=0,Re.loop.end=je.elements.media.duration-2);break;default:Re.loop.start=0,Re.loop.end=null}Re.loop.active=i.is.number(Re.loop.start)&&i.is.number(Re.loop.end);var s=(Ce(Re.loop.start,p('[data-plyr-loop="start"]')),null);i.is.number(Re.loop.end)&&(s=Ce(Re.loop.end,t.querySelector('[data-loop__value="loopout"]'))),Re.loop.active}function ee(e){return i.is.event(e)?e=parseFloat(e.target.value):i.is.number(e)||(e=parseFloat(je.storage.speed||Re.speed.selected)),e<.1&&(e=.1),e>2&&(e=2),i.is.array(Re.speed.options)?(Re.speed.selected=e,je.elements.media.playbackRate=e,void W({speed:e})):void He("Invalid speeds format")}function te(e){return i.is.number(e)||(e=Re.speed.selected),1===e?"Normal":e+"×"}function ne(e){i.is.number(e)||(e=Re.seekTime),ae(je.elements.media.currentTime-e)}function se(e){i.is.number(e)||(e=Re.seekTime),ae(je.elements.media.currentTime+e)}function ae(e){var t=0,n=je.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),we(t);try{je.elements.media.currentTime=t.toFixed(4)}catch(e){}if(i.inArray(l.embed,je.type)){switch(je.type){case"youtube":je.embed.seekTo(t);break;case"vimeo":je.embed.setCurrentTime(t.toFixed(0));break;case"soundcloud":je.embed.seekTo(1e3*t)}n&&G(),c(je.elements.media,"timeupdate"),je.elements.media.seeking=!0,c(je.elements.media,"seeking")}Be("Seeking to "+je.elements.media.currentTime+" seconds")}function le(){var e=parseInt(Re.duration),t=0;return null===je.elements.media.duration||isNaN(je.elements.media.duration)||(t=je.elements.media.duration),isNaN(e)?t:e}function ie(){i.toggleClass(je.elements.container,Re.classes.playing,!je.elements.media.paused),i.toggleClass(je.elements.container,Re.classes.stopped,je.elements.media.paused),Se(je.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(je.elements.container)?r.cancelFullScreen():(re(),r.requestFullScreen(je.elements.container)),void(je.fullscreen.active=r.isFullScreen(je.elements.container));je.fullscreen.active=r.isFullScreen(je.elements.container)}else je.fullscreen.active=!je.fullscreen.active,t.body.style.overflow=je.fullscreen.active?"hidden":"";i.toggleClass(je.elements.container,Re.classes.fullscreen.active,je.fullscreen.active),f(je.fullscreen.active),je.elements.buttons&&je.elements.buttons.fullscreen&&i.toggleState(je.elements.buttons.fullscreen,je.fullscreen.active),c(je.elements.container,je.fullscreen.active?"enterfullscreen":"exitfullscreen",!0),!je.fullscreen.active&&n&&oe()}function ce(e){var t=je.elements.settings.form,n=je.elements.buttons.settings,s=i.is.boolean(e)?e:"true"===t.getAttribute("aria-hidden");if(i.is.event(e)){var a=t.contains(e.target),l=e.target===je.elements.buttons.settings;if(a||!a&&!l&&s)return;l&&e.stopPropagation()}t.setAttribute("aria-hidden",!s),n.setAttribute("aria-expanded",s),s?t.removeAttribute("tabindex"):t.setAttribute("tabindex",-1)}function de(e){var t,n,s=e.cloneNode(!0);return s.style.position="absolute",s.style.opacity=0,s.setAttribute("aria-hidden",!1),[].forEach.call(s.querySelectorAll("input[name]"),function(e){var t=e.getAttribute("name");e.setAttribute("name",t+"-clone")}),e.parentNode.appendChild(s),t=s.scrollWidth,n=s.scrollHeight,i.removeElement(s),{width:t,height:n}}function pe(e){var n=je.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=n.querySelector('[role="tabpanel"][aria-hidden="false"]'),c=u.parentNode;if([].forEach.call(n.querySelectorAll('[aria-controls="'+u.getAttribute("id")+'"]'),function(e){e.setAttribute("aria-expanded",!1)}),o.transitions){c.style.width=u.scrollWidth+"px",c.style.height=u.scrollHeight+"px";var d=de(l),p=function(e){e.target===c&&i.inArray(["width","height"],e.propertyName)&&(c.style.width="",c.style.height="",i.off(c,i.transitionEnd,p))};i.on(c,i.transitionEnd,p),c.style.width=d.width+"px",c.style.height=d.height+"px"}u.setAttribute("aria-hidden",!0),u.setAttribute("tabindex",-1),l.setAttribute("aria-hidden",!a),s.setAttribute("aria-expanded",a),l.removeAttribute("tabindex")}}}function me(e){if(i.is.boolean(e)||(e=!je.elements.media.muted),i.toggleState(je.elements.buttons.mute,e),je.elements.media.muted=e,0===je.elements.media.volume&&fe(Re.volume),i.inArray(l.embed,je.type)){switch(je.type){case"youtube":je.embed[je.elements.media.muted?"mute":"unMute"]();break;case"vimeo":case"soundcloud":je.embed.setVolume(je.elements.media.muted?0:parseFloat(Re.volume/10))}c(je.elements.media,"volumechange")}}function fe(e){var t=10,n=0;if(i.is.event(e)&&(e=e.target.value),i.is.undefined(e)&&(e=je.storage.volume),(null===e||isNaN(e))&&(e=Re.volume),e>t&&(e=t),e0&&me()}function ye(e){var t=je.elements.media.muted?0:10*je.elements.media.volume;i.is.number(e)||(e=1),fe(t+e)}function ge(e){var t=je.elements.media.muted?0:10*je.elements.media.volume;i.is.number(e)||(e=1),fe(t-e)}function be(){var e=je.elements.media.muted?0:10*je.elements.media.volume;je.supported.full&&(je.elements.inputs.volume&&(je.elements.inputs.volume.value=e),je.elements.display.volume&&(je.elements.display.volume.value=e)),W({volume:e}),i.toggleClass(je.elements.container,Re.classes.muted,0===e),je.supported.full&&je.elements.buttons.mute&&i.toggleState(je.elements.buttons.mute,0===e)}function ve(e){var t="waiting"===e.type;clearTimeout(Ve.loading),Ve.loading=setTimeout(function(){i.toggleClass(je.elements.container,Re.classes.loading,t),Se(t)},t?250:0)}function he(e){if(je.supported.full){var t=je.elements.display.played,n=0,s=le();if(e)switch(e.type){case"timeupdate":case"seeking":if(je.elements.controls.pressed)return;n=i.getPercentage(je.elements.media.currentTime,s),"timeupdate"===e.type&&je.elements.inputs.seek&&(je.elements.inputs.seek.value=n);break;case"playing":case"progress":t=je.elements.display.buffer,n=function(){var e=je.elements.media.buffered;return e&&e.length?i.getPercentage(e.end(0),s):i.is.number(e)?100*e:0}()}i.is.number(Re.loop.start)&&i.is.number(Re.loop.end)&&je.elements.media.currentTime>=Re.loop.end&&ae(Re.loop.start),ke(t,n)}}function ke(e,t){if(je.supported.full){if(i.is.undefined(t)&&(t=0),i.is.undefined(e)){if(!i.is.htmlElement(je.elements.display.buffer))return;e=je.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 Ce(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 Ee(){if(je.supported.full){var e=le()||0; -!je.elements.display.duration&&Re.displayDuration&&je.elements.media.paused&&Ce(e,je.elements.display.currentTime),je.elements.display.duration&&Ce(e,je.elements.display.duration),Te()}}function Ae(e){Ce(je.elements.media.currentTime,je.elements.display.currentTime),e&&"timeupdate"===e.type&&je.elements.media.seeking||he(e)}function we(e){i.is.number(e)||(e=0);var t=le(),n=i.getPercentage(e,t);je.elements.progress&&je.elements.display.played&&(je.elements.display.played.value=n),je.elements.buttons&&je.elements.inputs.seek&&(je.elements.inputs.seek.value=n)}function Te(e){var t=le();if(Re.tooltips.seek&&i.is.htmlElement(je.elements.inputs.seek)&&i.is.htmlElement(je.elements.display.seekTooltip)&&0!==t){var n=je.elements.inputs.seek.getBoundingClientRect(),s=0,a=Re.classes.tooltip+"--visible";if(i.is.event(e))s=100/n.width*(e.pageX-n.left);else{if(!i.hasClass(je.elements.display.seekTooltip,a))return;s=je.elements.display.seekTooltip.style.left.replace("%","")}s<0?s=0:s>100&&(s=100),Ce(t/100*s,je.elements.display.seekTooltip),je.elements.display.seekTooltip.style.left=s+"%",i.is.event(e)&&i.inArray(["mouseenter","mouseleave"],e.type)&&i.toggleClass(je.elements.display.seekTooltip,a,"mouseenter"===e.type)}}function Se(t){if(Re.hideControls&&"audio"!==je.type){var n=0,s=!1,a=t,l=i.hasClass(je.elements.container,Re.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(je.elements.container,Re.classes.hideControls)),e.clearTimeout(Ve.hover),a||je.elements.media.paused||l){if(i.toggleClass(je.elements.container,Re.classes.hideControls,!1),je.elements.media.paused||l)return;o.touch&&(n=3e3)}a&&je.elements.media.paused||(Ve.hover=e.setTimeout(function(){(!je.elements.controls.pressed&&!je.elements.controls.hover||s)&&i.toggleClass(je.elements.container,Re.classes.hideControls,!0)},n))}}function xe(e){if(!i.is.undefined(e))return void Fe(e);var t;switch(je.type){case"youtube":t=je.embed.getVideoUrl();break;case"vimeo":je.embed.getVideoUrl.then(function(e){t=e});break;case"soundcloud":je.embed.getCurrentSound(function(e){t=e.permalink_url});break;default:t=je.elements.media.currentSrc}return t||""}function Fe(e){function t(){if(je.embed=null,m("media"),m("captions"),m("wrapper"),je.elements.container&&je.elements.container.removeAttribute("class"),"type"in e&&(je.type=e.type,"video"===je.type)){var t=e.sources[0];"type"in t&&i.inArray(l.embed,t.type)&&(je.type=t.type)}switch(je.supported=i.checkSupport(je.type,Re.inline),je.type){case"video":je.elements.media=i.createElement("video");break;case"audio":je.elements.media=i.createElement("audio");break;case"youtube":case"vimeo":case"soundcloud":je.elements.media=i.createElement("div"),je.embedId=e.sources[0].src}i.prependChild(je.elements.container,je.elements.media),i.is.boolean(e.autoplay)&&(Re.autoplay=e.autoplay),i.inArray(l.html5,je.type)&&(Re.crossorigin&&je.elements.media.setAttribute("crossorigin",""),Re.autoplay&&je.elements.media.setAttribute("autoplay",""),"poster"in e&&je.elements.media.setAttribute("poster",e.poster),Re.loop.active&&je.elements.media.setAttribute("loop",""),Re.inline&&je.elements.media.setAttribute("playsinline","")),i.toggleClass(je.elements.container,Re.classes.fullscreen.active,je.fullscreen.active),i.toggleClass(je.elements.container,Re.classes.captions.active,je.captions.enabled),D(),i.inArray(l.html5,je.type)&&y("source",e.sources),Y(),i.inArray(l.html5,je.type)&&("tracks"in e&&y("track",e.tracks),je.elements.media.load()),(i.inArray(l.html5,je.type)||i.inArray(l.embed,je.type)&&!je.supported.full)&&(qe(),Oe()),Re.title=e.title,B()}return i.is.object(e)&&"sources"in e&&e.sources.length?(i.toggleClass(je.elements.container,Re.classes.ready,!1),G(),we(),ke(),Ne(),void Le(t,!1)):void He("Invalid source format")}function Ie(e){"video"===je.type&&je.elements.media.setAttribute("poster",e)}function Pe(){function n(){var e=K(),t=je.elements.buttons[e?"play":"pause"],n=je.elements.buttons[e?"pause":"play"];if(n){var s=i.hasClass(t,Re.classes.tabFocus);setTimeout(function(){i.is.htmlElement(n)&&n.focus(),s&&(i.toggleClass(t,Re.classes.tabFocus,!1),i.toggleClass(n,Re.classes.tabFocus,!0))},100)}}function s(e){return e.keyCode?e.keyCode:e.which}function a(e){i.toggleClass(d("."+Re.classes.tabFocus),Re.classes.tabFocus,!1),je.elements.container.contains(e)&&i.toggleClass(e,Re.classes.tabFocus,!0)}function l(e){function t(){var e=je.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:ye();break;case 40:ge();break;case 77:r||me();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&&je.fullscreen.active&&27===a&&ue(),c=a}else c=null}var u=je.browser.isIE?"change":"input";if(Re.keyboardShortcuts.focused){var c=null;Re.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,Re.selectors.editable)||l(e)},!1),i.on(je.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("."+Re.classes.tabFocus),Re.classes.tabFocus,!1)});for(var m in je.elements.buttons){var f=je.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(je.elements.buttons.play,"click",Re.listeners.play,n),i.proxy(je.elements.buttons.playLarge,"click",Re.listeners.play,n),i.proxy(je.elements.buttons.pause,"click",Re.listeners.pause,n),i.proxy(je.elements.buttons.restart,"click",Re.listeners.restart,ae),i.proxy(je.elements.buttons.rewind,"click",Re.listeners.rewind,ne),i.proxy(je.elements.buttons.forward,"click",Re.listeners.forward,se),i.proxy(je.elements.buttons.mute,"click",Re.listeners.mute,me),i.proxy(je.elements.buttons.captions,"click",Re.listeners.captions,M),i.proxy(je.elements.buttons.fullscreen,"click",Re.listeners.fullscreen,ue),i.proxy(je.elements.buttons.pip,"click",Re.listeners.pip,function(e){o.pip&&je.elements.media.webkitSetPresentationMode("picture-in-picture"===je.elements.media.webkitPresentationMode?"inline":"picture-in-picture")}),i.proxy(je.elements.buttons.airplay,"click",Re.listeners.airplay,function(e){o.airplay&&je.elements.media.webkitShowPlaybackTargetPicker()}),i.on(je.elements.buttons.settings,"click",ce),i.on(t.documentElement,"click",ce),i.on(je.elements.settings.form,"click",pe),i.on(je.elements.settings.form,"click",function(e){i.matches(e.target,Re.selectors.inputs.language)?y.call(this,e,Re.listeners.language,L):i.matches(e.target,Re.selectors.inputs.quality)?y.call(this,e,Re.listeners.quality,function(){He("Set quality")}):i.matches(e.target,Re.selectors.inputs.speed)?y.call(this,e,Re.listeners.speed,ee):i.matches(e.target,Re.selectors.buttons.loop)&&y.call(this,e,Re.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(je.elements.inputs.seek,u,Re.listeners.seek,ae),i.proxy(je.elements.inputs.volume,u,Re.listeners.volume,fe),i.on(je.elements.progress,"mouseenter mouseleave mousemove",Te),Re.hideControls&&(i.on(je.elements.container,"mouseenter mouseleave mousemove touchstart touchend touchcancel touchmove enterfullscreen",Se),i.on(je.elements.controls,"mouseenter mouseleave",function(e){je.elements.controls.hover="mouseenter"===e.type}),i.on(je.elements.controls,"mousedown mouseup touchstart touchend touchcancel",function(e){je.elements.controls.pressed=i.inArray(["mousedown","touchstart"],e.type)}),i.on(je.elements.controls,"focus blur",Se,!0,!0)),i.proxy(je.elements.inputs.volume,"wheel",Re.listeners.volume,function(e){var t=e.webkitDirectionInvertedFromDevice,n=.2,s=0;(e.deltaY<0||e.deltaX>0)&&(t?(ge(n),s=-1):(ye(n),s=1)),(e.deltaY>0||e.deltaX<0)&&(t?(ye(n),s=1):(ge(n),s=-1)),(1===s&&je.elements.media.volume<1||s===-1&&je.elements.media.volume>0)&&e.preventDefault()},!1),o.fullscreen&&i.on(t,r.eventType,ue)}function _e(){if(i.on(je.elements.media,"timeupdate seeking",Ae),i.on(je.elements.media,"durationchange loadedmetadata",Ee),i.on(je.elements.media,"ended",function(){"video"===je.type&&Re.showPosterOnEnd&&("video"===je.type&&q(),ae(),je.elements.media.load())}),i.on(je.elements.media,"progress playing",he),i.on(je.elements.media,"volumechange",be),i.on(je.elements.media,"play pause ended",ie),i.on(je.elements.media,"waiting canplay seeked",ve),Re.clickToPlay&&"audio"!==je.type){var e=p("."+Re.classes.videoWrapper);if(!e)return;e.style.cursor="pointer",i.on(e,"click",function(){Re.hideControls&&o.touch&&!je.elements.media.paused||(je.elements.media.paused?$():je.elements.media.ended?(ae(),$()):G())})}Re.disableContextMenu&&i.on(je.elements.media,"contextmenu",function(e){e.preventDefault()},!1),i.on(je.elements.media,Re.events.concat(["keyup","keydown"]).join(" "),function(e){c(je.elements.container,e.type,!0)})}function Ne(){if(i.inArray(l.html5,je.type)){for(var e=je.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;s0&&F(n))}A()}}function P(){return!r.textTracks||a.is.empty(pe.captions.tracks)?"No Subs":pe.captions.enabled?pe.captions.currentTrack.label:"Disabled"}function F(e){a.is.event(e)&&(e=e.target);var t=e.activeCues[0];a.is.cue(t)?I(t.getCueAsHTML()):I()}function I(e){if(a.is.htmlElement(pe.elements.captions)){var t=a.createElement("span");a.emptyElement(pe.elements.captions),a.is.undefined(e)&&(e=""),a.is.string(e)?t.textContent=e.trim():t.appendChild(e),pe.elements.captions.appendChild(t)}else ge("No captions element to render to")}function _(){if(pe.elements.buttons.captions){var e=pe.storage.captions;a.is.boolean(e)?pe.config.captions.active=e:e=pe.config.captions.active,e&&(a.toggleClass(pe.elements.container,pe.config.classes.captions.active,!0),a.toggleState(pe.elements.buttons.captions,!0))}}function N(){if(pe.config.loadSprite){var e=m();e.absolute?(fe("AJAX loading absolute SVG sprite"+(pe.browser.isIE?" (due to IE)":"")),a.loadSprite(e.url,"sprite-plyr")):fe("Sprite will be used as external resource directly")}pe.id=Math.floor(1e4*Math.random());var t=null;t=a.is.string(pe.config.controls)?pe.config.controls:a.is.function(pe.config.controls)?pe.config.controls({id:pe.id,seektime:pe.config.seekTime}):k({id:pe.id,seektime:pe.config.seekTime,speed:U(),quality:"HD",captions:P(),loop:"None"});var n;if(a.is.string(pe.config.selectors.controls.container)&&(n=document.querySelector(pe.config.selectors.controls.container)),a.is.htmlElement(n)||(n=pe.elements.container),a.is.htmlElement(t)?n.appendChild(t):n.insertAdjacentHTML("beforeend",t),a.is.htmlElement(pe.elements.controls)&&L(),pe.config.tooltips.controls)for(var i=l([pe.config.selectors.controls.wrapper," ",pe.config.selectors.labels," .",pe.config.classes.hidden].join("")),o=i.length-1;o>=0;o--){var s=i[o];a.toggleClass(s,pe.config.classes.hidden,!1),a.toggleClass(s,pe.config.classes.tooltip,!0)}}function L(){try{return pe.elements.controls=c(pe.config.selectors.controls.wrapper),pe.elements.buttons={play:l(pe.config.selectors.buttons.play),pause:c(pe.config.selectors.buttons.pause),restart:c(pe.config.selectors.buttons.restart),rewind:c(pe.config.selectors.buttons.rewind),forward:c(pe.config.selectors.buttons.forward),mute:c(pe.config.selectors.buttons.mute),pip:c(pe.config.selectors.buttons.pip),airplay:c(pe.config.selectors.buttons.airplay),settings:c(pe.config.selectors.buttons.settings),captions:c(pe.config.selectors.buttons.captions),fullscreen:c(pe.config.selectors.buttons.fullscreen)},pe.elements.progress=c(pe.config.selectors.progress),pe.elements.inputs={seek:c(pe.config.selectors.inputs.seek),volume:c(pe.config.selectors.inputs.volume)},pe.elements.display={buffer:c(pe.config.selectors.display.buffer),played:c(pe.config.selectors.display.played),volume:c(pe.config.selectors.display.volume),duration:c(pe.config.selectors.display.duration),currentTime:c(pe.config.selectors.display.currentTime)},a.is.htmlElement(pe.elements.progress)&&(pe.elements.display.seekTooltip=pe.elements.progress.querySelector("."+pe.config.classes.tooltip)),!0}catch(e){return ge("It looks like there is a problem with your custom controls HTML",e),M(!0),!1}}function q(){a.toggleClass(pe.elements.container,pe.config.selectors.container.replace(".",""),pe.supported.full)}function M(e){e&&a.inArray(o.html5,pe.type)?pe.media.setAttribute("controls",""):pe.media.removeAttribute("controls")}function V(e){var t=pe.config.i18n.play;if(a.is.string(pe.config.title)&&!a.is.empty(pe.config.title)&&(t+=", "+pe.config.title,pe.elements.container.setAttribute("aria-label",pe.config.title)),pe.supported.full&&(a.is.htmlElement(pe.elements.buttons.play)&&pe.elements.buttons.play.setAttribute("aria-label",t),a.is.htmlElement(pe.elements.buttons.playLarge)&&pe.elements.buttons.playLarge.setAttribute("aria-label",t)),a.is.htmlElement(e)){var n=a.is.string(pe.config.title)&&!a.is.empty(pe.config.title)?pe.config.title:"video";e.setAttribute("title",pe.config.i18n.frameTitle.replace("{title}",n))}}function O(){var e=null;pe.storage={},r.storage&&pe.config.storage.enabled&&(window.localStorage.removeItem("plyr-volume"),e=window.localStorage.getItem(pe.config.storage.key),e&&(/^\d+(\.\d+)?$/.test(e)?D({volume:parseFloat(e)}):pe.storage=JSON.parse(e)))}function D(e){r.storage&&pe.config.storage.enabled&&(a.extend(pe.storage,e),window.localStorage.setItem(pe.config.storage.key,JSON.stringify(pe.storage)))}function j(){return pe.media?(pe.supported.full&&(a.toggleClass(pe.elements.container,pe.config.classes.type.replace("{0}",pe.type),!0),a.inArray(o.embed,pe.type)&&a.toggleClass(pe.elements.container,pe.config.classes.type.replace("{0}","video"),!0),a.toggleClass(pe.elements.container,pe.config.classes.pip.enabled,r.pip&&"video"===pe.type),a.toggleClass(pe.elements.container,pe.config.classes.airplay.enabled,r.airplay&&a.inArray(o.html5,pe.type)),a.toggleClass(pe.elements.container,pe.config.classes.stopped,pe.config.autoplay),a.toggleClass(pe.elements.container,pe.config.classes.isIos,pe.browser.isIos),a.toggleClass(pe.elements.container,pe.config.classes.isTouch,r.touch)),a.inArray(["video","youtube","vimeo"],pe.type)&&(pe.elements.wrapper=a.createElement("div",{class:pe.config.classes.video}),a.wrap(pe.media,pe.elements.wrapper)),void(a.inArray(o.embed,pe.type)&&R())):void ge("No media element found!")}function R(){var e,t=pe.type+"-"+Math.floor(1e4*Math.random());switch(pe.type){case"youtube":e=a.parseYouTubeId(pe.embedId);break;default:e=pe.embedId}for(var n=l('[id^="'+pe.type+'-"]'),i=n.length-1;i>=0;i--)a.removeElement(n[i]);if(a.toggleClass(pe.elements.wrapper,pe.config.classes.embed,!0),"youtube"===pe.type)pe.media.setAttribute("id",t),a.is.object(window.YT)?B(e):(a.injectScript(pe.config.urls.youtube.api),window.onYouTubeReadyCallbacks=window.onYouTubeReadyCallbacks||[],window.onYouTubeReadyCallbacks.push(function(){B(e)}),window.onYouTubeIframeAPIReady=function(){window.onYouTubeReadyCallbacks.forEach(function(e){e()})});else if("vimeo"===pe.type)if(pe.media.setAttribute("id",t),a.is.object(window.Vimeo))Y(e);else{a.injectScript(pe.config.urls.vimeo.api);var o=window.setInterval(function(){a.is.object(window.Vimeo)&&(window.clearInterval(o),Y(e))},50)}else if("soundcloud"===pe.type){var s=a.createElement("iframe");s.loaded=!1,a.on(s,"load",function(){s.loaded=!0}),a.setAttributes(s,{src:"https://w.soundcloud.com/player/?url=https://api.soundcloud.com/tracks/"+e,id:t}),pe.media.appendChild(s),window.SC||a.injectScript(pe.config.urls.soundcloud.api);var r=window.setInterval(function(){window.SC&&s.loaded&&(window.clearInterval(r),W.call(s))},50)}}function H(){pe.supported.full&&(ce(),ue()),V(c("iframe"))}function B(e){pe.embed=new window.YT.Player(pe.media.id,{videoId:e,playerVars:{autoplay:pe.config.autoplay?1:0,controls:pe.supported.full?0:1,rel:0,showinfo:0,iv_load_policy:3,cc_load_policy:pe.config.captions.active?1:0,cc_lang_pref:"en",wmode:"transparent",modestbranding:1,disablekb:1,playsinline:1,origin:window.location.href},events:{onError:function(e){n(pe.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(e){var t=e.target;pe.media.play=function(){t.playVideo(),pe.media.paused=!1},pe.media.pause=function(){t.pauseVideo(),pe.media.paused=!0},pe.media.stop=function(){t.stopVideo(),pe.media.paused=!0},pe.media.duration=t.getDuration(),pe.media.paused=!0,pe.media.currentTime=0,pe.media.muted=t.isMuted();var i=t.getPlaybackRate(),o=t.getAvailablePlaybackRates();console.warn(i,o),pe.config.title=t.getVideoData().title,pe.supported.full&&pe.media.setAttribute("tabindex",-1),H(),n(pe.media,"timeupdate"),n(pe.media,"durationchange"),window.clearInterval(me.buffering),me.buffering=window.setInterval(function(){pe.media.buffered=t.getVideoLoadedFraction(),(null===pe.media.lastBuffered||pe.media.lastBuffered=pe.config.loop.end&&pe.seek(pe.config.loop.start),Z(t,n)}}function Z(e,t){if(pe.supported.full){if(a.is.undefined(t)&&(t=0),a.is.undefined(e)){if(!a.is.htmlElement(pe.elements.display.buffer))return;e=pe.elements.display.buffer}if(a.is.htmlElement(e)){e.value=t;var n=e.getElementsByTagName("span")[0];a.is.htmlElement(n)&&(n.childNodes[0].nodeValue=t)}}}function ee(e,t){if(t){isNaN(e)&&(e=0);var n=parseInt(e%60),i=parseInt(e/60%60),o=parseInt(e/60/60%60),a=pe.getDuration(),s=parseInt(a/60/60%60)>0;n=("0"+n).slice(-2),i=("0"+i).slice(-2);var r=(s?o+":":"")+i+":"+n;return t.textContent=r,r}}function te(){if(pe.supported.full){var e=pe.getDuration()||0;!pe.elements.display.duration&&pe.config.displayDuration&&pe.media.paused&&ee(e,pe.elements.display.currentTime),pe.elements.display.duration&&ee(e,pe.elements.display.duration),oe()}}function ne(e){ee(pe.media.currentTime,pe.elements.display.currentTime),e&&"timeupdate"===e.type&&pe.media.seeking||K(e)}function ie(e){a.is.number(e)||(e=0);var t=pe.getDuration(),n=a.getPercentage(e,t);pe.elements.progress&&pe.elements.display.played&&(pe.elements.display.played.value=n),pe.elements.buttons&&pe.elements.inputs.seek&&(pe.elements.inputs.seek.value=n)}function oe(e){var t=pe.getDuration();if(pe.config.tooltips.seek&&a.is.htmlElement(pe.elements.inputs.seek)&&a.is.htmlElement(pe.elements.display.seekTooltip)&&0!==t){var n=pe.elements.inputs.seek.getBoundingClientRect(),i=0,o=pe.config.classes.tooltip+"--visible";if(a.is.event(e))i=100/n.width*(e.pageX-n.left);else{if(!a.hasClass(pe.elements.display.seekTooltip,o))return;i=pe.elements.display.seekTooltip.style.left.replace("%","")}i<0?i=0:i>100&&(i=100),ee(t/100*i,pe.elements.display.seekTooltip),pe.elements.display.seekTooltip.style.left=i+"%",a.is.event(e)&&a.inArray(["mouseenter","mouseleave"],e.type)&&a.toggleClass(pe.elements.display.seekTooltip,o,"mouseenter"===e.type)}}function ae(e){function t(){if(pe.embed=null,u("media"),u("captions"),u("wrapper"),pe.elements.container&&pe.elements.container.removeAttribute("class"),"type"in e&&(pe.type=e.type,"video"===pe.type)){var t=e.sources[0];"type"in t&&a.inArray(o.embed,t.type)&&(pe.type=t.type)}switch(pe.supported=a.checkSupport(pe.type,pe.config.inline),pe.type){case"video":pe.media=a.createElement("video");break;case"audio":pe.media=a.createElement("audio");break;case"youtube":case"vimeo":case"soundcloud":pe.media=a.createElement("div"),pe.embedId=e.sources[0].src}a.prependChild(pe.elements.container,pe.media),a.is.boolean(e.autoplay)&&(pe.config.autoplay=e.autoplay),a.inArray(o.html5,pe.type)&&(pe.config.crossorigin&&pe.media.setAttribute("crossorigin",""),pe.config.autoplay&&pe.media.setAttribute("autoplay",""),"poster"in e&&pe.media.setAttribute("poster",e.poster),pe.config.loop.active&&pe.media.setAttribute("loop",""),pe.config.inline&&pe.media.setAttribute("playsinline","")),a.toggleClass(pe.elements.container,pe.config.classes.fullscreen.active,pe.fullscreen.active),a.toggleClass(pe.elements.container,pe.config.classes.captions.active,pe.captions.enabled),q(),a.inArray(o.html5,pe.type)&&p("source",e.sources),j(),a.inArray(o.html5,pe.type)&&("tracks"in e&&p("track",e.tracks),pe.media.load()),(a.inArray(o.html5,pe.type)||a.inArray(o.embed,pe.type)&&!pe.supported.full)&&(ce(),ue()),pe.config.title=e.title,V()}return a.is.object(e)&&"sources"in e&&e.sources.length?(pe.ready=!1,pe.stop(),ie(),Z(),le(),void pe.destroy(t,!1)):void ge("Invalid source format")}function se(){function e(){var e=pe.togglePlay(),t=pe.elements.buttons[e?"play":"pause"],n=pe.elements.buttons[e?"pause":"play"];if(n){var i=a.hasClass(t,pe.config.classes.tabFocus);setTimeout(function(){a.is.htmlElement(n)&&n.focus(),i&&(a.toggleClass(t,pe.config.classes.tabFocus,!1),a.toggleClass(n,pe.config.classes.tabFocus,!0))},100)}}function t(e){return e.keyCode?e.keyCode:e.which}function n(e){a.toggleClass(l("."+pe.config.classes.tabFocus),pe.config.classes.tabFocus,!1),pe.elements.container.contains(e)&&a.toggleClass(e,pe.config.classes.tabFocus,!0)}function i(n){function i(){var e=pe.media.duration;a.is.number(e)&&pe.seek(e/10*(o-48))}var o=t(n),s="keydown"===n.type,l=s&&o===u;if(a.is.number(o))if(s){var c=[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(a.inArray(d,o)){var p=a.getFocusElement();if(a.is.htmlElement(p)&&"radio"===a.getFocusElement().type)return}switch(a.inArray(c,o)&&(n.preventDefault(),n.stopPropagation()),o){case 48:case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 57:l||i();break;case 32:case 75:l||e();break;case 38:pe.increaseVolume();break;case 40:pe.decreaseVolume();break;case 77:l||pe.toggleMute();break;case 39:pe.forward();break;case 37:pe.rewind();break;case 70:pe.toggleFullscreen();break;case 67:l||pe.toggleCaptions();break;case 73:pe.loop("start");break;case 76:pe.loop();break;case 79:pe.loop("end")}!r.fullscreen&&pe.fullscreen.active&&27===o&&pe.toggleFullscreen(),u=o}else u=null}var o=pe.browser.isIE?"change":"input";if(pe.config.keyboardShortcuts.focused){var u=null;pe.config.keyboardShortcuts.global&&a.on(window,"keydown keyup",function(e){var n=t(e),o=a.getFocusElement(),s=[48,49,50,51,52,53,54,56,57,75,77,70,67,73,76,79];!a.inArray(s,n)||a.is.htmlElement(o)&&a.matches(o,pe.config.selectors.editable)||i(e)},!1),a.on(pe.elements.container,"keydown keyup",i,!1)}a.on(window,"keyup",function(e){var i=t(e),o=a.getFocusElement();9===i&&n(o); +}),a.on(document.body,"click",function(){a.toggleClass(c("."+pe.config.classes.tabFocus),pe.config.classes.tabFocus,!1)});for(var d in pe.elements.buttons){var p=pe.elements.buttons[d];a.on(p,"blur",function(){a.toggleClass(p,"tab-focus",!1)})}var m=function(e,t,n){a.is.function(t)&&t.call(this,e),a.is.function(n)&&n.call(this,e)};a.proxy(pe.elements.buttons.play,"click",pe.config.listeners.play,e),a.proxy(pe.elements.buttons.playLarge,"click",pe.config.listeners.play,e),a.proxy(pe.elements.buttons.pause,"click",pe.config.listeners.pause,e),a.proxy(pe.elements.buttons.restart,"click",pe.config.listeners.restart,function(){pe.restart()}),a.proxy(pe.elements.buttons.rewind,"click",pe.config.listeners.rewind,function(){pe.rewind()}),a.proxy(pe.elements.buttons.forward,"click",pe.config.listeners.forward,function(){pe.forward()}),a.proxy(pe.elements.buttons.mute,"click",pe.config.listeners.mute,function(){pe.toggleMute()}),a.proxy(pe.elements.buttons.captions,"click",pe.config.listeners.captions,function(){pe.toggleCaptions()}),a.proxy(pe.elements.buttons.fullscreen,"click",pe.config.listeners.fullscreen,function(e){pe.toggleFullscreen(e)}),a.proxy(pe.elements.buttons.pip,"click",pe.config.listeners.pip,function(){pe.togglePictureInPicture()}),a.proxy(pe.elements.buttons.airplay,"click",pe.config.listeners.airplay,function(){pe.airPlay()}),a.on(pe.elements.buttons.settings,"click",z),a.on(document.documentElement,"click",z),a.on(pe.elements.settings.form,"click",X),a.on(pe.elements.settings.form,"click",function(e){a.matches(e.target,pe.config.selectors.inputs.language)?m.call(this,e,pe.config.listeners.language,function(){pe.language(e.target.value.toLowerCase())}):a.matches(e.target,pe.config.selectors.inputs.quality)?m.call(this,e,pe.config.listeners.quality,function(){ge("Set quality")}):a.matches(e.target,pe.config.selectors.inputs.speed)?m.call(this,e,pe.config.listeners.speed,function(){pe.setSpeed(parseFloat(e.target.value))}):a.matches(e.target,pe.config.selectors.buttons.loop)&&m.call(this,e,pe.config.listeners.loop,function(){var t=e.target.getAttribute("data-loop__value")||e.target.getAttribute("data-loop__type");a.inArray(["start","end","all","none"],t)&&pe.loop(t)})}),a.proxy(pe.elements.inputs.seek,o,pe.config.listeners.seek,function(e){var t=pe.getDuration();pe.seek(e.target.value/e.target.max*t)}),a.proxy(pe.elements.inputs.volume,o,pe.config.listeners.volume,function(){pe.setVolume(event.target.value)}),a.on(pe.elements.progress,"mouseenter mouseleave mousemove",oe),pe.config.hideControls&&(a.on(pe.elements.container,"mouseenter mouseleave mousemove touchstart touchend touchcancel touchmove enterfullscreen",function(e){pe.toggleControls(e)}),a.on(pe.elements.controls,"mouseenter mouseleave",function(e){pe.elements.controls.hover="mouseenter"===e.type}),a.on(pe.elements.controls,"mousedown mouseup touchstart touchend touchcancel",function(e){pe.elements.controls.pressed=a.inArray(["mousedown","touchstart"],e.type)}),a.on(pe.elements.controls,"focus blur",function(e){pe.toggleControls(e)},!0,!0)),a.proxy(pe.elements.inputs.volume,"wheel",pe.config.listeners.volume,function(e){var t=e.webkitDirectionInvertedFromDevice,n=.2,i=0;(e.deltaY<0||e.deltaX>0)&&(t?(pe.decreaseVolume(n),i=-1):(pe.increaseVolume(n),i=1)),(e.deltaY>0||e.deltaX<0)&&(t?(pe.increaseVolume(n),i=1):(pe.decreaseVolume(n),i=-1)),(1===i&&pe.media.volume<1||i===-1&&pe.media.volume>0)&&e.preventDefault()},!1),r.fullscreen&&a.on(document,s.eventType,function(e){pe.toggleFullscreen(e)})}function re(){if(a.on(pe.media,"timeupdate seeking",ne),a.on(pe.media,"durationchange loadedmetadata",te),a.on(pe.media,"ended",function(){"video"===pe.type&&pe.config.showPosterOnEnd&&("video"===pe.type&&I(),pe.restart(),pe.media.load())}),a.on(pe.media,"progress playing",K),a.on(pe.media,"volumechange",$),a.on(pe.media,"play pause ended",Q),a.on(pe.media,"waiting canplay seeked",G),pe.config.clickToPlay&&"audio"!==pe.type){var e=c("."+pe.config.classes.video);if(!e)return;e.style.cursor="pointer",a.on(e,"click",function(){pe.config.hideControls&&r.touch&&!pe.media.paused||(pe.media.paused?pe.play():pe.media.ended?(pe.restart(),pe.play()):pe.pause())})}pe.config.disableContextMenu&&a.on(pe.media,"contextmenu",function(e){e.preventDefault()},!1),a.on(pe.media,pe.config.events.concat(["keyup","keydown"]).join(" "),function(e){n(pe.elements.container,e.type,!0)})}function le(){if(a.inArray(o.html5,pe.type)){for(var e=pe.media.querySelectorAll("source"),t=0;t=0;n--){var i=n>0?t.cloneNode(!0):t,o=e[n],a=o.parentNode,s=o.nextSibling;return i.appendChild(o),s?a.insertBefore(i,s):a.appendChild(i),i}},removeElement:function(e){a.is.htmlElement(e)&&a.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,t,n){var i=document.createElement(e);return a.is.object(t)&&a.setAttributes(i,t),a.is.string(n)&&(i.textContent=n),i},insertElement:function(e,t,n,i){var o=a.createElement(e,n,i);a.prependChild(t,o)},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(!a.is.string(e)||a.is.empty(e))return{};var n={};return e.split(",").forEach(function(e){e=e.trim();var i=e.charAt(0);switch(i){case".":var o=e.replace(".","");a.is.object(t)&&a.is.string(t.class)&&(t.class+=" "+o),n.class=o;break;case"#":n.id=e.replace("#","");break;case"[":e=e.replace(/[\[\]]/g,"");var s=e.split("="),r=s[0],l=s.length>1?s[1].replace(/[\"\']/g,""):"";n[r]=l}}),n},toggleClass:function(e,t,n){if(e)if(e.classList)e.classList[n?"add":"remove"](t);else{var i=(" "+e.className+" ").replace(/\s+/g," ").replace(" "+t+" ","");e.className=i+(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,t){var n=Element.prototype,i=n.matches||n.webkitMatchesSelector||n.mozMatchesSelector||n.msMatchesSelector||function(e){return[].indexOf.call(document.querySelectorAll(e),this)!==-1};return i.call(e,t)},getFocusElement:function(){var e=document.activeElement;return e=e&&e!==document.body?document.querySelector(":focus"):null},proxy:function(e,t,n,i,o,s){a.on(e,t,function(t){n&&n.apply(e,[t]),i.apply(e,[t])},o,s)},toggleListener:function(e,t,n,i,o,s){if(t=t.split(" "),a.is.boolean(s)||(s=!1),a.is.boolean(o)||(o=!0),e instanceof NodeList){var l=1===arguments.length?[arguments[0]]:Array.apply(null,arguments);return l.shift(),void[].forEach.call(e,function(e){e instanceof Node&&a.toggleListener.apply(null,[e].concat(l))})}var c=s;r.passiveListeners&&(c={passive:o,capture:s}),t.forEach(function(t){e[i?"addEventListener":"removeEventListener"](t,n,c)})},on:function(e,t,n,i,o){a.is.undefined(e)||a.toggleListener(e,t,n,!0,i,o)},off:function(e,t,n,i,o){a.is.undefined(e)||a.toggleListener(e,t,n,!1,i,o)},event:function(e,t,n,i){if(e&&t){a.is.boolean(n)||(n=!1);var o;a.is.function(window.CustomEvent)?o=window.CustomEvent:(o=function(e,t){t=t||{bubbles:!1,cancelable:!1,detail:void 0};var n=document.createEvent("CustomEvent");return n.initCustomEvent(e,t.bubbles,t.cancelable,t.detail),n},o.prototype=window.Event.prototype);var s=new o(t,{bubbles:n,detail:i});e.dispatchEvent(s)}},toggleState:function(e,t){if(e)return t=a.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);a.is.object(t)||(t={});for(var n=e.length,i=0;is&&(n=s),t.core.updateSeekDisplay(n);try{t.media.currentTime=n.toFixed(4)}catch(e){}if(a.inArray(o.embed,t.type)){switch(t.type){case"youtube":t.embed.seekTo(n);break;case"vimeo":t.embed.setCurrentTime(n.toFixed(0));break;case"soundcloud":t.embed.seekTo(1e3*n)}i&&t.pause(),t.core.trigger(t.media,"timeupdate"),t.media.seeking=!0,t.core.trigger(t.media,"seeking")}return t.core.log("Seeking to "+t.media.currentTime+" seconds"),t},t.prototype.setVolume=function(e){var t=this,n=10,i=0;if(a.is.undefined(e)&&(e=t.storage.volume),(null===e||isNaN(e))&&(e=t.config.volume),e>n&&(e=n),e0&&t.toggleMute(),t},t.prototype.increaseVolume=function(e){var t=this,n=t.media.muted?0:10*t.media.volume;return a.is.number(e)||(e=1),t.setVolume(n+e),t},t.prototype.decreaseVolume=function(e){var t=this,n=t.media.muted?0:10*t.media.volume;return a.is.number(e)||(e=1),t.setVolume(n-e),t},t.prototype.toggleMute=function(e){var t=this;if(a.is.boolean(e)||(e=!t.media.muted),a.toggleState(t.elements.buttons.mute,e),t.media.muted=e,0===t.media.volume&&t.volume(t.config.volume),a.inArray(o.embed,t.type)){switch(t.type){case"youtube":t.embed[t.media.muted?"mute":"unMute"]();break;case"vimeo":case"soundcloud":t.embed.setVolume(t.media.muted?0:parseFloat(t.config.volume/10))}t.core.trigger(t.media,"volumechange")}return t},t.prototype.setSpeed=function(e){var t=this;return a.is.number(e)||(e=parseFloat(t.storage.speed||t.config.speed.selected)),e<.1&&(e=.1),e>2&&(e=2),a.is.array(t.config.speed.options)?(t.config.speed.selected=e,t.media.playbackRate=e,t.core.updateStorage({speed:e}),t):void t.core.warn("Invalid speeds format")},t.prototype.loop=function(e){var t=this;a.inArray(["start","end","all","none","toggle"],e)||(e="toggle");var n=Number(t.media.currentTime);switch(e){case"start":t.config.loop.end&&t.config.loop.end<=n&&(t.config.loop.end=null),t.config.loop.start=n,t.config.loop.indicator.start=t.elements.display.played.value;break;case"end":if(t.config.loop.start>=n)return;t.config.loop.end=n,t.config.loop.indicator.end=t.elements.display.played.value;break;case"all":t.config.loop.start=0,t.config.loop.end=t.media.duration-2,t.config.loop.indicator.start=0,t.config.loop.indicator.end=100;break;case"toggle":t.config.loop.active?(t.config.loop.start=0,t.config.loop.end=null):(t.config.loop.start=0,t.config.loop.end=t.media.duration-2);break;default:t.config.loop.start=0,t.config.loop.end=null}t.config.loop.active=a.is.number(t.config.loop.start)&&a.is.number(t.config.loop.end);var i=(t.core.updateTimeDisplay(t.config.loop.start,t.core.getElement('[data-plyr-loop="start"]')),null);return a.is.number(t.config.loop.end)&&(i=t.core.updateTimeDisplay(t.config.loop.end,t.core.getElement('[data-loop__value="loopout"]'))),t.config.loop.active,t},t.prototype.source=function(e){var t=this;if(a.is.object(e))return t.core.updateSource(e),t;var n;switch(t.type){case"youtube":n=t.embed.getVideoUrl();break;case"vimeo":t.embed.getVideoUrl.then(function(e){n=e});break;case"soundcloud":t.embed.getCurrentSound(function(e){n=e.permalink_url});break;default:n=t.media.currentSrc}return n},t.prototype.poster=function(e){var t=this;return a.is.string(e)?("video"===t.type?t.media.setAttribute("poster",e):t.core.warn("Poster can only be set on HTML5 video"),t):t.media.getAttribute("poster")},t.prototype.toggleCaptions=function(e){var t=this;if(t.supported.full&&t.elements.buttons.captions)return a.is.boolean(e)||(e=t.elements.container.className.indexOf(t.config.classes.captions.active)===-1),t.captions.enabled=e,a.toggleState(t.elements.buttons.captions,t.captions.enabled),a.toggleClass(t.elements.container,t.config.classes.captions.active,t.captions.enabled),t.core.trigger(t.elements.container,t.captions.enabled?"captionsenabled":"captionsdisabled",!0),t.core.updateStorage({captions:t.captions.enabled}),t},t.prototype.language=function(e){var t=this;return a.is.string(e)?(t.config.captions.language=e.toLowerCase(),t.core.setCaption(),t.core.setupCaptions(),t):t.config.captions.language},t.prototype.toggleFullscreen=function(e){function t(){n={x:window.pageXOffset||0,y:window.pageYOffset||0}}function i(){window.scrollTo(n.x,n.y)}var o=this,l=r.fullscreen;if(l){if(!a.is.event(e)||e.type!==s.eventType)return s.isFullScreen(o.elements.container)?s.cancelFullScreen():(t(),s.requestFullScreen(o.elements.container)),void(o.fullscreen.active=s.isFullScreen(o.elements.container));o.fullscreen.active=s.isFullScreen(o.elements.container)}else o.fullscreen.active=!o.fullscreen.active,document.body.style.overflow=o.fullscreen.active?"hidden":"";return a.toggleClass(o.elements.container,o.config.classes.fullscreen.active,o.fullscreen.active),o.elements.buttons&&o.elements.buttons.fullscreen&&a.toggleState(o.elements.buttons.fullscreen,o.fullscreen.active),o.core.trigger(o.elements.container,o.fullscreen.active?"enterfullscreen":"exitfullscreen",!0),!o.fullscreen.active&&l&&i(),o},t.prototype.togglePictureInPicture=function(e){var t=this,n={pip:"picture-in-picture",inline:"inline"};if(t.core.support.pip)return a.is.boolean(e)||(e=t.media.webkitPresentationMode===n.inline),t.media.webkitSetPresentationMode(e?n.pip:n.inline),t},t.prototype.airPlay=function(){var e=this;if(e.core.support.airplay)return e.media.webkitShowPlaybackTargetPicker(),e},t.prototype.toggleControls=function(e){var t=this;if(t.config.hideControls&&"audio"!==t.type){var n=0,i=e,o=!1,s=a.hasClass(t.elements.container,t.config.classes.loading);if(a.is.boolean(e)||(a.is.event(e)?(o="enterfullscreen"===e.type,i=a.inArray(["mousemove","touchstart","mouseenter","focus"],e.type),a.inArray(["mousemove","touchmove"],e.type)&&(n=2e3),"focus"===e.type&&(n=3e3)):i=a.hasClass(t.elements.container,t.config.classes.hideControls)),window.clearTimeout(t.core.timers.hover),i||t.media.paused||s){if(a.toggleClass(t.elements.container,t.config.classes.hideControls,!1),t.media.paused||s)return;r.touch&&(n=3e3)}return i&&t.media.paused||(t.core.timers.hover=window.setTimeout(function(){(!t.elements.controls.pressed&&!t.elements.controls.hover||o)&&a.toggleClass(t.elements.container,t.config.classes.hideControls,!0)},n)),t}},t.prototype.on=function(e,t){var n=this;return a.on(n.elements.container,e,t),n},t.prototype.supports=function(e){return r.mime(this,e)},t.prototype.destroy=function(e,t){function n(){a.is.boolean(t)||(t=!0),a.is.function(e)&&e.call(i.original),t&&(i.elements.container.parentNode.replaceChild(i.original,i.elements.container),document.body.style.overflow="",i.core.trigger(i.original,"destroyed",!0))}var i=this;switch(i.type){case"youtube":window.clearInterval(i.timers.buffering),window.clearInterval(i.timers.playing),i.embed.destroy(),n();break;case"vimeo":i.embed.unload().then(n),window.setTimeout(n,200);break;case"video":case"audio":i.core.toggleNativeControls(!0),n()}return i},t.prototype.getDuration=function(){var e=this,t=parseInt(e.config.duration),n=0;return null===e.media.duration||isNaN(e.media.duration)||(n=e.media.duration),isNaN(t)?n:t},t}); \ No newline at end of file diff --git a/notes.md b/notes.md index c71bfc0f..3adf38c9 100644 --- a/notes.md +++ b/notes.md @@ -40,7 +40,35 @@ - Added `playsinline` support for iOS 10 - Embed setup now accepts an