aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.prettierrc2
-rw-r--r--bundles.json2
-rw-r--r--demo/dist/demo.css2
-rw-r--r--demo/dist/error.css2
-rw-r--r--demo/src/less/components/buttons.less3
-rw-r--r--demo/src/less/components/header.less2
-rw-r--r--demo/src/less/components/players.less1
-rw-r--r--demo/src/less/lib/animation.less1
-rw-r--r--demo/src/less/lib/fontface.less18
-rw-r--r--demo/src/less/lib/normalize.less20
-rw-r--r--demo/src/less/settings/breakpoints.less4
-rw-r--r--demo/src/less/type/base.less3
-rw-r--r--demo/src/less/utilities/color.less1
-rw-r--r--dist/plyr.css2
-rw-r--r--dist/plyr.js2
-rw-r--r--src/js/plyr.js169
-rw-r--r--src/less/base.less48
-rw-r--r--src/less/bundle.less29
-rw-r--r--src/less/components/badges.less11
-rw-r--r--src/less/components/buttons.less89
-rw-r--r--src/less/components/captions.less57
-rw-r--r--src/less/components/controls.less127
-rw-r--r--src/less/components/embed.less23
-rw-r--r--src/less/components/menus.less155
-rw-r--r--src/less/components/progress.less110
-rw-r--r--src/less/components/sliders.less140
-rw-r--r--src/less/components/times.less28
-rw-r--r--src/less/components/tooltips.less87
-rw-r--r--src/less/components/video.less12
-rw-r--r--src/less/components/volume.less30
-rw-r--r--src/less/lib/animation.less21
-rw-r--r--src/less/lib/mixins.less (renamed from src/less/mixins.less)4
-rw-r--r--src/less/plyr.less957
-rw-r--r--src/less/settings.less (renamed from src/less/variables.less)0
-rw-r--r--src/less/states/fullscreen.less31
-rw-r--r--src/less/utils/hidden.less33
36 files changed, 1171 insertions, 1055 deletions
diff --git a/.prettierrc b/.prettierrc
index 223a51a5..79c01567 100644
--- a/.prettierrc
+++ b/.prettierrc
@@ -1,7 +1,7 @@
{
"useTabs": false,
"tabWidth": 4,
- "printWidth": 160,
+ "printWidth": 120,
"singleQuote": true,
"trailingComma": "es5"
}
diff --git a/bundles.json b/bundles.json
index 49cb036d..2cc379c6 100644
--- a/bundles.json
+++ b/bundles.json
@@ -1,7 +1,7 @@
{
"plyr": {
"less": {
- "plyr.css": "src/less/plyr.less"
+ "plyr.css": "src/less/bundle.less"
},
"scss": {
"plyr.css": "src/scss/plyr.scss"
diff --git a/demo/dist/demo.css b/demo/dist/demo.css
index b99e61c9..ee3c5e5a 100644
--- a/demo/dist/demo.css
+++ b/demo/dist/demo.css
@@ -1 +1 @@
-@-webkit-keyframes fadein{0%{opacity:0}100%{opacity:1}}@keyframes fadein{0%{opacity:0}100%{opacity:1}}@font-face{font-family:Avenir;src:url(https://cdn.plyr.io/static/fonts/avenir-medium.woff2) format("woff2"),url(https://cdn.plyr.io/static/fonts/avenir-medium.woff) format("woff");font-style:normal;font-weight:500;font-display:swap}@font-face{font-family:Avenir;src:url(https://cdn.plyr.io/static/fonts/avenir-bold.woff2) format("woff2"),url(https://cdn.plyr.io/static/fonts/avenir-bold.woff) format("woff");font-style:normal;font-weight:700;font-display:swap}@font-face{font-family:Avenir;src:url(https://cdn.plyr.io/static/fonts/avenir-black.woff2?v=3) format("woff2"),url(https://cdn.plyr.io/static/fonts/avenir-black.woff?v=3) format("woff");font-style:normal;font-weight:900;font-display:swap}/*! normalize.css v2.1.3 | MIT License | git.io/normalize */article,aside,details,figcaption,figure,footer,header,hgroup,main,nav,section,summary{display:block}audio,canvas,video{display:inline-block}audio:not([controls]){display:none;height:0}[hidden],template{display:none}html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}a,button.faux-link{background:0 0}a:focus,button.faux-link:focus{outline:thin dotted}a:active,a:hover,button.faux-link:active,button.faux-link:hover{outline:0}h1{font-size:2em;margin:.67em 0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:700}dfn{font-style:italic}hr{-webkit-box-sizing:content-box;box-sizing:content-box;height:0}mark{background:#ff0;color:#000}code,kbd,pre,samp{font-family:monospace,serif;font-size:1em}pre{white-space:pre-wrap}q{quotes:"\201C" "\201D" "\2018" "\2019"}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:0}fieldset{border:1px solid silver;margin:0 2px;padding:.35em .625em .75em}legend{border:0;padding:0}button,input,select,textarea{font-family:inherit;font-size:100%;margin:0}button,input{line-height:normal}button,select{text-transform:none}button,html input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}input[type=checkbox],input[type=radio]{-webkit-box-sizing:border-box;box-sizing:border-box;padding:0}input[type=search]{-webkit-appearance:textfield;-webkit-box-sizing:content-box;box-sizing:content-box}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}textarea{overflow:auto;vertical-align:top}table{border-collapse:collapse;border-spacing:0}html{background:-webkit-gradient(linear,right bottom,left top,from(#67caff),to(#0085cd));background:linear-gradient(to left top,#67caff,#0085cd);background-attachment:fixed}html{height:100%}body{display:-webkit-box;display:-ms-flexbox;display:flex;min-height:100%;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}main{text-align:center}.grid{-webkit-box-flex:1;-ms-flex:1;flex:1}aside{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;width:100%;padding:15px;background:#fff;text-align:center;color:#55646b;text-shadow:none}aside .icon{margin-right:10px;fill:#4baaf4}aside p{margin:0}aside a,aside button.faux-link{color:#4baaf4}aside a.tab-focus,aside button.faux-link.tab-focus{outline:0;-webkit-box-shadow:0 0 0 3px rgba(75,170,244,.35);box-shadow:0 0 0 3px rgba(75,170,244,.35)}.grid{margin:0 auto;padding:20px}@media only screen and (min-width:768px){.grid{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;width:100%;max-width:1280px}.grid>*{-webkit-box-flex:1;-ms-flex:1;flex:1}}html{font-size:100%}body{font-family:Avenir,'Helvetica Neue',sans-serif;line-height:1.5;color:#fff;font-weight:500;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;text-shadow:0 1px 1px rgba(0,0,0,.15)}button,input,select,textarea{font:inherit}p,small{margin:0 0 20px}small{display:block;font-size:14px;font-size:.875rem}h1{margin:0 0 10px;font-size:64px;font-size:4rem;font-weight:900;letter-spacing:-.025em}.button,.button__count{position:relative;display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;vertical-align:middle;-webkit-box-align:center;-ms-flex-align:center;align-items:center;padding:15px;border-radius:4px;-webkit-box-shadow:0 1px 1px rgba(0,0,0,.1);box-shadow:0 1px 1px rgba(0,0,0,.1);background:#fff;border:0;color:#55646b;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;font-weight:700;text-shadow:none}.button{padding-left:20px;padding-right:20px;-webkit-transition:all .2s ease;transition:all .2s ease}.button:focus,.button:hover{color:#343f4a;outline:0}.button:focus::after,.button:hover::after{display:none}.button.tab-focus{outline:0;-webkit-box-shadow:0 0 0 3px rgba(255,255,255,.35);box-shadow:0 0 0 3px rgba(255,255,255,.35)}.button__count{margin-left:10px;-webkit-animation:fadein .2s ease;animation:fadein .2s ease}.button__count::before{content:'';position:absolute;width:0;height:0;right:100%;top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%);border:5px solid transparent;border-right-color:#fff;border-left-width:0}header{padding-bottom:20px;text-align:center}header p{font-size:18px;font-size:1.125rem;margin-bottom:30px}@media only screen and (min-width:768px){header{max-width:400px;margin-right:40px;padding-bottom:40px;text-align:left}}.icon{fill:currentColor;width:16px;height:16px}a svg,button svg,button.faux-link svg,label svg{pointer-events:none}.btn .icon,a .icon,button.faux-link .icon{margin-right:10px}button.faux-link{position:relative;margin:0;padding:0;width:auto;border:0;background:0 0;vertical-align:baseline;text-align:inherit;font:inherit;line-height:1.5;cursor:pointer;-moz-user-select:text;text-shadow:inherit;border-radius:0}a,button.faux-link{position:relative;border-bottom:1px dotted currentColor;-webkit-transition:all .2s ease;transition:all .2s ease;text-decoration:none;color:#fff;font-weight:700}a::after,button.faux-link::after{content:'';position:absolute;top:100%;left:50%;-webkit-transform:translateX(-50%);transform:translateX(-50%);width:0;height:1px;-webkit-transition:width .2s ease;transition:width .2s ease;background:currentColor}a:focus,a:hover,button.faux-link:focus,button.faux-link:hover{border-bottom-color:transparent;outline:0}a:focus::after,a:hover::after,button.faux-link:focus::after,button.faux-link:hover::after{width:100%}a.tab-focus,button.faux-link.tab-focus{outline:0;-webkit-box-shadow:0 0 0 3px rgba(255,255,255,.35);box-shadow:0 0 0 3px rgba(255,255,255,.35)}li,ul{list-style:none;margin:0;padding:0}nav{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;margin-bottom:20px}video{max-width:100%;vertical-align:middle}.plyr{margin:0 auto;border-radius:4px;-webkit-box-shadow:0 2px 5px rgba(0,0,0,.2);box-shadow:0 2px 5px rgba(0,0,0,.2)}.plyr__video-wrapper::after{content:'';pointer-events:none;position:absolute;top:0;bottom:0;left:0;right:0;border:1px solid rgba(0,0,0,.15);border-radius:inherit}.plyr__cite{display:none;margin-top:20px}.plyr__cite .icon{margin-right:5px}.plyr--audio~ul .plyr__cite--audio,.plyr--video:not(.plyr--youtube):not(.plyr--vimeo)~ul .plyr__cite--video,.plyr--vimeo~ul .plyr__cite--vimeo,.plyr--youtube~ul .plyr__cite--youtube{display:block} \ No newline at end of file
+@-webkit-keyframes fadein{0%{opacity:0}100%{opacity:1}}@keyframes fadein{0%{opacity:0}100%{opacity:1}}@font-face{font-family:Avenir;src:url(https://cdn.plyr.io/static/fonts/avenir-medium.woff2) format('woff2'),url(https://cdn.plyr.io/static/fonts/avenir-medium.woff) format('woff');font-style:normal;font-weight:500;font-display:swap}@font-face{font-family:Avenir;src:url(https://cdn.plyr.io/static/fonts/avenir-bold.woff2) format('woff2'),url(https://cdn.plyr.io/static/fonts/avenir-bold.woff) format('woff');font-style:normal;font-weight:700;font-display:swap}@font-face{font-family:Avenir;src:url(https://cdn.plyr.io/static/fonts/avenir-black.woff2?v=3) format('woff2'),url(https://cdn.plyr.io/static/fonts/avenir-black.woff?v=3) format('woff');font-style:normal;font-weight:900;font-display:swap}/*! normalize.css v2.1.3 | MIT License | git.io/normalize */article,aside,details,figcaption,figure,footer,header,hgroup,main,nav,section,summary{display:block}audio,canvas,video{display:inline-block}audio:not([controls]){display:none;height:0}[hidden],template{display:none}html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}a,button.faux-link{background:0 0}a:focus,button.faux-link:focus{outline:thin dotted}a:active,a:hover,button.faux-link:active,button.faux-link:hover{outline:0}h1{font-size:2em;margin:.67em 0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:700}dfn{font-style:italic}hr{-webkit-box-sizing:content-box;box-sizing:content-box;height:0}mark{background:#ff0;color:#000}code,kbd,pre,samp{font-family:monospace,serif;font-size:1em}pre{white-space:pre-wrap}q{quotes:'\201C' '\201D' '\2018' '\2019'}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:0}fieldset{border:1px solid silver;margin:0 2px;padding:.35em .625em .75em}legend{border:0;padding:0}button,input,select,textarea{font-family:inherit;font-size:100%;margin:0}button,input{line-height:normal}button,select{text-transform:none}button,html input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}input[type=checkbox],input[type=radio]{-webkit-box-sizing:border-box;box-sizing:border-box;padding:0}input[type=search]{-webkit-appearance:textfield;-webkit-box-sizing:content-box;box-sizing:content-box}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}textarea{overflow:auto;vertical-align:top}table{border-collapse:collapse;border-spacing:0}html{background:-webkit-gradient(linear,right bottom,left top,from(#67caff),to(#0085cd));background:linear-gradient(to left top,#67caff,#0085cd);background-attachment:fixed}html{height:100%}body{display:-webkit-box;display:-ms-flexbox;display:flex;min-height:100%;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}main{text-align:center}.grid{-webkit-box-flex:1;-ms-flex:1;flex:1}aside{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;width:100%;padding:15px;background:#fff;text-align:center;color:#55646b;text-shadow:none}aside .icon{margin-right:10px;fill:#4baaf4}aside p{margin:0}aside a,aside button.faux-link{color:#4baaf4}aside a.tab-focus,aside button.faux-link.tab-focus{outline:0;-webkit-box-shadow:0 0 0 3px rgba(75,170,244,.35);box-shadow:0 0 0 3px rgba(75,170,244,.35)}.grid{margin:0 auto;padding:20px}@media only screen and (min-width:768px){.grid{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;width:100%;max-width:1280px}.grid>*{-webkit-box-flex:1;-ms-flex:1;flex:1}}html{font-size:100%}body{font-family:Avenir,'Helvetica Neue',sans-serif;line-height:1.5;color:#fff;font-weight:500;text-shadow:0 1px 1px rgba(0,0,0,.15);-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased}button,input,select,textarea{font:inherit}p,small{margin:0 0 20px}small{display:block;font-size:14px;font-size:.875rem}h1{margin:0 0 10px;font-weight:900;letter-spacing:-.025em;font-size:64px;font-size:4rem}.button,.button__count{position:relative;display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;vertical-align:middle;-webkit-box-align:center;-ms-flex-align:center;align-items:center;padding:15px;border-radius:4px;-webkit-box-shadow:0 1px 1px rgba(0,0,0,.1);box-shadow:0 1px 1px rgba(0,0,0,.1);background:#fff;border:0;color:#55646b;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;font-weight:700;text-shadow:none}.button{padding-left:20px;padding-right:20px;-webkit-transition:all .2s ease;transition:all .2s ease}.button:focus,.button:hover{color:#343f4a;outline:0}.button:focus::after,.button:hover::after{display:none}.button.tab-focus{outline:0;-webkit-box-shadow:0 0 0 3px rgba(255,255,255,.35);box-shadow:0 0 0 3px rgba(255,255,255,.35)}.button__count{margin-left:10px;-webkit-animation:fadein .2s ease;animation:fadein .2s ease}.button__count::before{content:'';position:absolute;width:0;height:0;right:100%;top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%);border:5px solid transparent;border-right-color:#fff;border-left-width:0}header{padding-bottom:20px;text-align:center}header p{margin-bottom:30px;font-size:18px;font-size:1.125rem}@media only screen and (min-width:768px){header{max-width:400px;margin-right:40px;padding-bottom:40px;text-align:left}}.icon{fill:currentColor;width:16px;height:16px}a svg,button svg,button.faux-link svg,label svg{pointer-events:none}.btn .icon,a .icon,button.faux-link .icon{margin-right:10px}button.faux-link{position:relative;margin:0;padding:0;width:auto;border:0;background:0 0;vertical-align:baseline;text-align:inherit;font:inherit;line-height:1.5;cursor:pointer;-moz-user-select:text;text-shadow:inherit;border-radius:0}a,button.faux-link{position:relative;border-bottom:1px dotted currentColor;-webkit-transition:all .2s ease;transition:all .2s ease;text-decoration:none;color:#fff;font-weight:700}a::after,button.faux-link::after{content:'';position:absolute;top:100%;left:50%;-webkit-transform:translateX(-50%);transform:translateX(-50%);width:0;height:1px;-webkit-transition:width .2s ease;transition:width .2s ease;background:currentColor}a:focus,a:hover,button.faux-link:focus,button.faux-link:hover{border-bottom-color:transparent;outline:0}a:focus::after,a:hover::after,button.faux-link:focus::after,button.faux-link:hover::after{width:100%}a.tab-focus,button.faux-link.tab-focus{outline:0;-webkit-box-shadow:0 0 0 3px rgba(255,255,255,.35);box-shadow:0 0 0 3px rgba(255,255,255,.35)}li,ul{list-style:none;margin:0;padding:0}nav{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;margin-bottom:20px}video{max-width:100%;vertical-align:middle}.plyr{margin:0 auto;border-radius:4px;-webkit-box-shadow:0 2px 5px rgba(0,0,0,.2);box-shadow:0 2px 5px rgba(0,0,0,.2)}.plyr__video-wrapper::after{content:'';pointer-events:none;position:absolute;top:0;bottom:0;left:0;right:0;border:1px solid rgba(0,0,0,.15);border-radius:inherit}.plyr__cite{display:none;margin-top:20px}.plyr__cite .icon{margin-right:5px}.plyr--audio~ul .plyr__cite--audio,.plyr--video:not(.plyr--youtube):not(.plyr--vimeo)~ul .plyr__cite--video,.plyr--vimeo~ul .plyr__cite--vimeo,.plyr--youtube~ul .plyr__cite--youtube{display:block} \ No newline at end of file
diff --git a/demo/dist/error.css b/demo/dist/error.css
index cfbcc97e..f6573e72 100644
--- a/demo/dist/error.css
+++ b/demo/dist/error.css
@@ -1 +1 @@
-@font-face{font-family:Avenir;src:url(https://cdn.plyr.io/static/fonts/avenir-medium.woff2) format("woff2"),url(https://cdn.plyr.io/static/fonts/avenir-medium.woff) format("woff");font-style:normal;font-weight:500;font-display:swap}@font-face{font-family:Avenir;src:url(https://cdn.plyr.io/static/fonts/avenir-bold.woff2) format("woff2"),url(https://cdn.plyr.io/static/fonts/avenir-bold.woff) format("woff");font-style:normal;font-weight:700;font-display:swap}@font-face{font-family:Avenir;src:url(https://cdn.plyr.io/static/fonts/avenir-black.woff2?v=3) format("woff2"),url(https://cdn.plyr.io/static/fonts/avenir-black.woff?v=3) format("woff");font-style:normal;font-weight:900;font-display:swap}/*! normalize.css v2.1.3 | MIT License | git.io/normalize */article,aside,details,figcaption,figure,footer,header,hgroup,main,nav,section,summary{display:block}audio,canvas,video{display:inline-block}audio:not([controls]){display:none;height:0}[hidden],template{display:none}html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}a,button.faux-link{background:0 0}a:focus,button.faux-link:focus{outline:thin dotted}a:active,a:hover,button.faux-link:active,button.faux-link:hover{outline:0}h1{font-size:2em;margin:.67em 0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:700}dfn{font-style:italic}hr{-webkit-box-sizing:content-box;box-sizing:content-box;height:0}mark{background:#ff0;color:#000}code,kbd,pre,samp{font-family:monospace,serif;font-size:1em}pre{white-space:pre-wrap}q{quotes:"\201C" "\201D" "\2018" "\2019"}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:0}fieldset{border:1px solid silver;margin:0 2px;padding:.35em .625em .75em}legend{border:0;padding:0}button,input,select,textarea{font-family:inherit;font-size:100%;margin:0}button,input{line-height:normal}button,select{text-transform:none}button,html input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}input[type=checkbox],input[type=radio]{-webkit-box-sizing:border-box;box-sizing:border-box;padding:0}input[type=search]{-webkit-appearance:textfield;-webkit-box-sizing:content-box;box-sizing:content-box}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}textarea{overflow:auto;vertical-align:top}table{border-collapse:collapse;border-spacing:0}.error body,html.error{height:100%}html.error{background:-webkit-gradient(linear,right bottom,left top,from(#67caff),to(#0085cd));background:linear-gradient(to left top,#67caff,#0085cd);background-attachment:fixed}.error body{width:100%;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.error main{width:100%;padding:20px;text-align:center}.error main p{font-size:18px;font-size:1.125rem}html{font-size:100%}body{font-family:Avenir,'Helvetica Neue',sans-serif;line-height:1.5;color:#fff;font-weight:500;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;text-shadow:0 1px 1px rgba(0,0,0,.15)}button,input,select,textarea{font:inherit}p,small{margin:0 0 20px}small{display:block;font-size:14px;font-size:.875rem}h1{margin:0 0 10px;font-size:64px;font-size:4rem;font-weight:900;letter-spacing:-.025em}.button,.button__count{position:relative;display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;vertical-align:middle;-webkit-box-align:center;-ms-flex-align:center;align-items:center;padding:15px;border-radius:4px;-webkit-box-shadow:0 1px 1px rgba(0,0,0,.1);box-shadow:0 1px 1px rgba(0,0,0,.1);background:#fff;border:0;color:#55646b;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;font-weight:700;text-shadow:none}.button{padding-left:20px;padding-right:20px;-webkit-transition:all .2s ease;transition:all .2s ease}.button:focus,.button:hover{color:#343f4a;outline:0}.button:focus::after,.button:hover::after{display:none}.button.tab-focus{outline:0;-webkit-box-shadow:0 0 0 3px rgba(255,255,255,.35);box-shadow:0 0 0 3px rgba(255,255,255,.35)}.button__count{margin-left:10px;-webkit-animation:fadein .2s ease;animation:fadein .2s ease}.button__count::before{content:'';position:absolute;width:0;height:0;right:100%;top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%);border:5px solid transparent;border-right-color:#fff;border-left-width:0}button.faux-link{position:relative;margin:0;padding:0;width:auto;border:0;background:0 0;vertical-align:baseline;text-align:inherit;font:inherit;line-height:1.5;cursor:pointer;-moz-user-select:text;text-shadow:inherit;border-radius:0}a,button.faux-link{position:relative;border-bottom:1px dotted currentColor;-webkit-transition:all .2s ease;transition:all .2s ease;text-decoration:none;color:#fff;font-weight:700}a::after,button.faux-link::after{content:'';position:absolute;top:100%;left:50%;-webkit-transform:translateX(-50%);transform:translateX(-50%);width:0;height:1px;-webkit-transition:width .2s ease;transition:width .2s ease;background:currentColor}a:focus,a:hover,button.faux-link:focus,button.faux-link:hover{border-bottom-color:transparent;outline:0}a:focus::after,a:hover::after,button.faux-link:focus::after,button.faux-link:hover::after{width:100%}a.tab-focus,button.faux-link.tab-focus{outline:0;-webkit-box-shadow:0 0 0 3px rgba(255,255,255,.35);box-shadow:0 0 0 3px rgba(255,255,255,.35)} \ No newline at end of file
+@font-face{font-family:Avenir;src:url(https://cdn.plyr.io/static/fonts/avenir-medium.woff2) format('woff2'),url(https://cdn.plyr.io/static/fonts/avenir-medium.woff) format('woff');font-style:normal;font-weight:500;font-display:swap}@font-face{font-family:Avenir;src:url(https://cdn.plyr.io/static/fonts/avenir-bold.woff2) format('woff2'),url(https://cdn.plyr.io/static/fonts/avenir-bold.woff) format('woff');font-style:normal;font-weight:700;font-display:swap}@font-face{font-family:Avenir;src:url(https://cdn.plyr.io/static/fonts/avenir-black.woff2?v=3) format('woff2'),url(https://cdn.plyr.io/static/fonts/avenir-black.woff?v=3) format('woff');font-style:normal;font-weight:900;font-display:swap}/*! normalize.css v2.1.3 | MIT License | git.io/normalize */article,aside,details,figcaption,figure,footer,header,hgroup,main,nav,section,summary{display:block}audio,canvas,video{display:inline-block}audio:not([controls]){display:none;height:0}[hidden],template{display:none}html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}a,button.faux-link{background:0 0}a:focus,button.faux-link:focus{outline:thin dotted}a:active,a:hover,button.faux-link:active,button.faux-link:hover{outline:0}h1{font-size:2em;margin:.67em 0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:700}dfn{font-style:italic}hr{-webkit-box-sizing:content-box;box-sizing:content-box;height:0}mark{background:#ff0;color:#000}code,kbd,pre,samp{font-family:monospace,serif;font-size:1em}pre{white-space:pre-wrap}q{quotes:'\201C' '\201D' '\2018' '\2019'}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:0}fieldset{border:1px solid silver;margin:0 2px;padding:.35em .625em .75em}legend{border:0;padding:0}button,input,select,textarea{font-family:inherit;font-size:100%;margin:0}button,input{line-height:normal}button,select{text-transform:none}button,html input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}input[type=checkbox],input[type=radio]{-webkit-box-sizing:border-box;box-sizing:border-box;padding:0}input[type=search]{-webkit-appearance:textfield;-webkit-box-sizing:content-box;box-sizing:content-box}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}textarea{overflow:auto;vertical-align:top}table{border-collapse:collapse;border-spacing:0}.error body,html.error{height:100%}html.error{background:-webkit-gradient(linear,right bottom,left top,from(#67caff),to(#0085cd));background:linear-gradient(to left top,#67caff,#0085cd);background-attachment:fixed}.error body{width:100%;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.error main{width:100%;padding:20px;text-align:center}.error main p{font-size:18px;font-size:1.125rem}html{font-size:100%}body{font-family:Avenir,'Helvetica Neue',sans-serif;line-height:1.5;color:#fff;font-weight:500;text-shadow:0 1px 1px rgba(0,0,0,.15);-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased}button,input,select,textarea{font:inherit}p,small{margin:0 0 20px}small{display:block;font-size:14px;font-size:.875rem}h1{margin:0 0 10px;font-weight:900;letter-spacing:-.025em;font-size:64px;font-size:4rem}.button,.button__count{position:relative;display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;vertical-align:middle;-webkit-box-align:center;-ms-flex-align:center;align-items:center;padding:15px;border-radius:4px;-webkit-box-shadow:0 1px 1px rgba(0,0,0,.1);box-shadow:0 1px 1px rgba(0,0,0,.1);background:#fff;border:0;color:#55646b;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;font-weight:700;text-shadow:none}.button{padding-left:20px;padding-right:20px;-webkit-transition:all .2s ease;transition:all .2s ease}.button:focus,.button:hover{color:#343f4a;outline:0}.button:focus::after,.button:hover::after{display:none}.button.tab-focus{outline:0;-webkit-box-shadow:0 0 0 3px rgba(255,255,255,.35);box-shadow:0 0 0 3px rgba(255,255,255,.35)}.button__count{margin-left:10px;-webkit-animation:fadein .2s ease;animation:fadein .2s ease}.button__count::before{content:'';position:absolute;width:0;height:0;right:100%;top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%);border:5px solid transparent;border-right-color:#fff;border-left-width:0}button.faux-link{position:relative;margin:0;padding:0;width:auto;border:0;background:0 0;vertical-align:baseline;text-align:inherit;font:inherit;line-height:1.5;cursor:pointer;-moz-user-select:text;text-shadow:inherit;border-radius:0}a,button.faux-link{position:relative;border-bottom:1px dotted currentColor;-webkit-transition:all .2s ease;transition:all .2s ease;text-decoration:none;color:#fff;font-weight:700}a::after,button.faux-link::after{content:'';position:absolute;top:100%;left:50%;-webkit-transform:translateX(-50%);transform:translateX(-50%);width:0;height:1px;-webkit-transition:width .2s ease;transition:width .2s ease;background:currentColor}a:focus,a:hover,button.faux-link:focus,button.faux-link:hover{border-bottom-color:transparent;outline:0}a:focus::after,a:hover::after,button.faux-link:focus::after,button.faux-link:hover::after{width:100%}a.tab-focus,button.faux-link.tab-focus{outline:0;-webkit-box-shadow:0 0 0 3px rgba(255,255,255,.35);box-shadow:0 0 0 3px rgba(255,255,255,.35)} \ No newline at end of file
diff --git a/demo/src/less/components/buttons.less b/demo/src/less/components/buttons.less
index 32b2570d..530addc2 100644
--- a/demo/src/less/components/buttons.less
+++ b/demo/src/less/components/buttons.less
@@ -10,12 +10,10 @@
vertical-align: middle;
align-items: center;
padding: (@spacing-base * 0.75);
-
border-radius: @border-radius-base;
box-shadow: 0 1px 1px fade(#000, 10%);
background: #fff;
border: 0;
-
color: @gray;
user-select: none;
font-weight: @font-weight-bold;
@@ -56,7 +54,6 @@
right: 100%;
top: 50%;
transform: translateY(-50%);
-
border: @arrow-size solid transparent;
border-right-color: #fff;
border-left-width: 0;
diff --git a/demo/src/less/components/header.less b/demo/src/less/components/header.less
index 0cdbfc57..0cc3ecaa 100644
--- a/demo/src/less/components/header.less
+++ b/demo/src/less/components/header.less
@@ -7,8 +7,8 @@ header {
text-align: center;
p {
- .font-size(@font-size-large);
margin-bottom: (@spacing-base * 1.5);
+ .font-size(@font-size-large);
}
@media @mq-md {
diff --git a/demo/src/less/components/players.less b/demo/src/less/components/players.less
index c0f3e965..f932ae5b 100644
--- a/demo/src/less/components/players.less
+++ b/demo/src/less/components/players.less
@@ -14,6 +14,7 @@ video {
border-radius: @border-radius-base;
box-shadow: 0 2px 5px fade(#000, 20%);
}
+
.plyr__video-wrapper::after {
content: '';
pointer-events: none;
diff --git a/demo/src/less/lib/animation.less b/demo/src/less/lib/animation.less
index 3c14b0a7..c8c05548 100644
--- a/demo/src/less/lib/animation.less
+++ b/demo/src/less/lib/animation.less
@@ -7,6 +7,7 @@
0% {
opacity: 0;
}
+
100% {
opacity: 1;
}
diff --git a/demo/src/less/lib/fontface.less b/demo/src/less/lib/fontface.less
index 7fa06a63..c6720210 100644
--- a/demo/src/less/lib/fontface.less
+++ b/demo/src/less/lib/fontface.less
@@ -3,27 +3,27 @@
// ==========================================================================
@font-face {
- font-family: "Avenir";
- src: url("https://cdn.plyr.io/static/fonts/avenir-medium.woff2") format("woff2"),
- url("https://cdn.plyr.io/static/fonts/avenir-medium.woff") format("woff");
+ font-family: 'Avenir';
+ src: url('https://cdn.plyr.io/static/fonts/avenir-medium.woff2') format('woff2'),
+ url('https://cdn.plyr.io/static/fonts/avenir-medium.woff') format('woff');
font-style: normal;
font-weight: @font-weight-base;
font-display: swap;
}
@font-face {
- font-family: "Avenir";
- src: url("https://cdn.plyr.io/static/fonts/avenir-bold.woff2") format("woff2"),
- url("https://cdn.plyr.io/static/fonts/avenir-bold.woff") format("woff");
+ font-family: 'Avenir';
+ src: url('https://cdn.plyr.io/static/fonts/avenir-bold.woff2') format('woff2'),
+ url('https://cdn.plyr.io/static/fonts/avenir-bold.woff') format('woff');
font-style: normal;
font-weight: @font-weight-bold;
font-display: swap;
}
@font-face {
- font-family: "Avenir";
- src: url("https://cdn.plyr.io/static/fonts/avenir-black.woff2?v=3") format("woff2"),
- url("https://cdn.plyr.io/static/fonts/avenir-black.woff?v=3") format("woff");
+ font-family: 'Avenir';
+ src: url('https://cdn.plyr.io/static/fonts/avenir-black.woff2?v=3') format('woff2'),
+ url('https://cdn.plyr.io/static/fonts/avenir-black.woff?v=3') format('woff');
font-style: normal;
font-weight: @font-weight-heavy;
font-display: swap;
diff --git a/demo/src/less/lib/normalize.less b/demo/src/less/lib/normalize.less
index 562891ab..34743e73 100644
--- a/demo/src/less/lib/normalize.less
+++ b/demo/src/less/lib/normalize.less
@@ -189,7 +189,7 @@ pre {
*/
q {
- quotes: "\201C" "\201D" "\2018" "\2019";
+ quotes: '\201C' '\201D' '\2018' '\2019';
}
/**
@@ -322,9 +322,9 @@ select {
*/
button,
-html input[type="button"], /* 1 */
-input[type="reset"],
-input[type="submit"] {
+html input[type='button'],
+input[type='reset'],
+input[type='submit'] {
-webkit-appearance: button; /* 2 */
cursor: pointer; /* 3 */
}
@@ -343,8 +343,8 @@ html input[disabled] {
* 2. Remove excess padding in IE 8/9/10.
*/
-input[type="checkbox"],
-input[type="radio"] {
+input[type='checkbox'],
+input[type='radio'] {
box-sizing: border-box; /* 1 */
padding: 0; /* 2 */
}
@@ -355,7 +355,7 @@ input[type="radio"] {
* (include `-moz` to future-proof).
*/
-input[type="search"] {
+input[type='search'] {
-webkit-appearance: textfield; /* 1 */
-moz-box-sizing: content-box;
-webkit-box-sizing: content-box; /* 2 */
@@ -367,8 +367,8 @@ input[type="search"] {
* on OS X.
*/
-input[type="search"]::-webkit-search-cancel-button,
-input[type="search"]::-webkit-search-decoration {
+input[type='search']::-webkit-search-cancel-button,
+input[type='search']::-webkit-search-decoration {
-webkit-appearance: none;
}
@@ -403,4 +403,4 @@ textarea {
table {
border-collapse: collapse;
border-spacing: 0;
-} \ No newline at end of file
+}
diff --git a/demo/src/less/settings/breakpoints.less b/demo/src/less/settings/breakpoints.less
index b0ce9896..ed078e21 100644
--- a/demo/src/less/settings/breakpoints.less
+++ b/demo/src/less/settings/breakpoints.less
@@ -5,5 +5,5 @@
@screen-sm: 480px;
@screen-md: 768px;
-@mq-sm: ~"only screen and (min-width: @{screen-sm}) ";
-@mq-md: ~"only screen and (min-width: @{screen-md}) ";
+@mq-sm: ~'only screen and (min-width: @{screen-sm}) ';
+@mq-md: ~'only screen and (min-width: @{screen-md}) ';
diff --git a/demo/src/less/type/base.less b/demo/src/less/type/base.less
index 4aea149d..f65fb634 100644
--- a/demo/src/less/type/base.less
+++ b/demo/src/less/type/base.less
@@ -12,8 +12,8 @@ body {
line-height: @line-height-base;
color: @color-text;
font-weight: @font-weight-base;
- .font-smoothing();
text-shadow: 0 1px 1px fade(#000, 15%);
+ .font-smoothing();
}
button,
@@ -27,6 +27,7 @@ p,
small {
margin: 0 0 @spacing-base;
}
+
small {
display: block;
.font-size(@font-size-small);
diff --git a/demo/src/less/utilities/color.less b/demo/src/less/utilities/color.less
index 923a3f67..8d6b1c4f 100644
--- a/demo/src/less/utilities/color.less
+++ b/demo/src/less/utilities/color.less
@@ -5,6 +5,7 @@
.color--vimeo {
color: @color-vimeo;
}
+
.color--youtube {
color: @color-youtube;
}
diff --git a/dist/plyr.css b/dist/plyr.css
index dc0a0c86..552c4b7a 100644
--- a/dist/plyr.css
+++ b/dist/plyr.css
@@ -1 +1 @@
-@-webkit-keyframes plyr-progress{to{background-position:25px 0}}@keyframes plyr-progress{to{background-position:25px 0}}@-webkit-keyframes plyr-popup{from{-webkit-transform:translateY(10px);transform:translateY(10px);opacity:.5}to{-webkit-transform:translateY(0);transform:translateY(0);opacity:1}}@keyframes plyr-popup{from{-webkit-transform:translateY(10px);transform:translateY(10px);opacity:.5}to{-webkit-transform:translateY(0);transform:translateY(0);opacity:1}}.plyr{position:relative;max-width:100%;min-width:200px;overflow:hidden;font-family:inherit;font-weight:500;direction:ltr;text-shadow:none}.plyr,.plyr *,.plyr ::after,.plyr ::before{-webkit-box-sizing:border-box;box-sizing:border-box}.plyr a,.plyr button,.plyr input,.plyr label{-ms-touch-action:manipulation;touch-action:manipulation}.plyr [aria-hidden=true]{display:none}.plyr:focus{outline:0}.plyr audio,.plyr video{width:100%;height:auto;vertical-align:middle;border-radius:inherit}.plyr input[type=range]{display:block;height:20px;width:100%;margin:0;padding:0;cursor:pointer;border:none;background:0 0;color:#1aafff;-webkit-appearance:none}.plyr input[type=range]::-webkit-slider-runnable-track{height:8px;background:0 0;border:0;border-radius:4px;-webkit-user-select:none;user-select:none}.plyr input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;margin-top:-4px;position:relative;height:16px;width:16px;background:#fff;border:2px solid transparent;border-radius:100%;-webkit-transition:background .2s ease,border .2s ease,-webkit-transform .2s ease;transition:background .2s ease,border .2s ease,-webkit-transform .2s ease;transition:background .2s ease,border .2s ease,transform .2s ease;transition:background .2s ease,border .2s ease,transform .2s ease,-webkit-transform .2s ease;-webkit-box-shadow:0 1px 1px rgba(0,0,0,.15),0 0 0 1px rgba(52,63,74,.2);box-shadow:0 1px 1px rgba(0,0,0,.15),0 0 0 1px rgba(52,63,74,.2);-webkit-box-sizing:border-box;box-sizing:border-box}.plyr input[type=range]::-moz-range-track{height:8px;background:0 0;border:0;border-radius:4px;-moz-user-select:none;user-select:none}.plyr input[type=range]::-moz-range-thumb{position:relative;height:16px;width:16px;background:#fff;border:2px solid transparent;border-radius:100%;-webkit-transition:background .2s ease,border .2s ease,-webkit-transform .2s ease;transition:background .2s ease,border .2s ease,-webkit-transform .2s ease;transition:background .2s ease,border .2s ease,transform .2s ease;transition:background .2s ease,border .2s ease,transform .2s ease,-webkit-transform .2s ease;box-shadow:0 1px 1px rgba(0,0,0,.15),0 0 0 1px rgba(52,63,74,.2);box-sizing:border-box}.plyr input[type=range]::-moz-range-progress{height:8px;background:currentColor;border-radius:4px}.plyr input[type=range]::-ms-track{height:8px;background:0 0;border:0;color:transparent}.plyr input[type=range]::-ms-fill-upper{height:8px;background:0 0;border:0;border-radius:4px;-ms-user-select:none;user-select:none}.plyr input[type=range]::-ms-fill-lower{height:8px;background:0 0;border:0;border-radius:4px;-ms-user-select:none;user-select:none;background:currentColor}.plyr input[type=range]::-ms-thumb{position:relative;height:16px;width:16px;background:#fff;border:2px solid transparent;border-radius:100%;-webkit-transition:background .2s ease,border .2s ease,-webkit-transform .2s ease;transition:background .2s ease,border .2s ease,-webkit-transform .2s ease;transition:background .2s ease,border .2s ease,transform .2s ease;transition:background .2s ease,border .2s ease,transform .2s ease,-webkit-transform .2s ease;box-shadow:0 1px 1px rgba(0,0,0,.15),0 0 0 1px rgba(52,63,74,.2);box-sizing:border-box;margin-top:0}.plyr input[type=range]::-ms-tooltip{display:none}.plyr input[type=range]:focus{outline:0}.plyr input[type=range]::-moz-focus-outer{border:0}.plyr input[type=range].tab-focus{outline-offset:3px}.plyr input[type=range]:active::-webkit-slider-thumb{background:#1aafff;border-color:#fff;-webkit-transform:scale(1.25);transform:scale(1.25)}.plyr input[type=range]:active::-moz-range-thumb{background:#1aafff;border-color:#fff;transform:scale(1.25)}.plyr input[type=range]:active::-ms-thumb{background:#1aafff;border-color:#fff;transform:scale(1.25)}.plyr--video input[type=range]::-webkit-slider-runnable-track{background:rgba(255,255,255,.25)}.plyr--video input[type=range]::-moz-range-track{background:rgba(255,255,255,.25)}.plyr--video input[type=range]::-ms-track{background:rgba(255,255,255,.25)}.plyr--video input[type=range].tab-focus{outline:1px dotted rgba(255,255,255,.5)}.plyr--audio input[type=range]::-webkit-slider-runnable-track{background:rgba(198,214,219,.66)}.plyr--audio input[type=range]::-moz-range-track{background:rgba(198,214,219,.66)}.plyr--audio input[type=range]::-ms-track{background:rgba(198,214,219,.66)}.plyr--audio input[type=range].tab-focus{outline:1px dotted rgba(86,93,100,.5)}.plyr__sr-only{clip:rect(1px,1px,1px,1px);overflow:hidden;position:absolute!important;padding:0!important;border:0!important;height:1px!important;width:1px!important}.plyr__video-wrapper{position:relative;background:#000;border-radius:inherit;z-index:0;overflow:hidden}.plyr__video-embed{padding-bottom:56.25%;height:0}.plyr__video-embed iframe{position:absolute;top:0;left:0;width:100%;height:100%;border:0;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.plyr__video-embed>div{position:relative;padding-bottom:200%;-webkit-transform:translateY(-35.95%);transform:translateY(-35.95%)}.plyr .plyr__video-embed iframe{pointer-events:none}.plyr video::-webkit-media-text-track-container{display:none}.plyr__captions{display:none;position:absolute;bottom:0;left:0;width:100%;padding:10px;-webkit-transform:translateY(-40px);transform:translateY(-40px);-webkit-transition:-webkit-transform .3s ease;transition:-webkit-transform .3s ease;transition:transform .3s ease;transition:transform .3s ease,-webkit-transform .3s ease;color:#fff;font-size:14px;text-align:center}.plyr__captions span{border-radius:2px;padding:.2em .5em;background:rgba(0,0,0,.8);-webkit-box-decoration-break:clone;box-decoration-break:clone;line-height:170%;white-space:pre-wrap}.plyr__captions span div{display:inline}.plyr__captions span:empty{display:none}@media (min-width:480px){.plyr__captions{padding:20px;font-size:16px}}@media (min-width:768px){.plyr__captions{font-size:20px}}.plyr--captions-active .plyr__captions{display:block}.plyr--hide-controls .plyr__captions{-webkit-transform:translateY(-15px);transform:translateY(-15px)}.plyr ::-webkit-media-controls{display:none}.plyr__controls{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;text-align:center}.plyr__controls .plyr__menu,.plyr__controls .plyr__progress,.plyr__controls .plyr__time,.plyr__controls>.plyr__control{margin-left:5px}.plyr__controls .plyr__menu:first-child,.plyr__controls .plyr__menu:first-child+[data-plyr=pause],.plyr__controls .plyr__progress:first-child,.plyr__controls .plyr__progress:first-child+[data-plyr=pause],.plyr__controls .plyr__time:first-child,.plyr__controls .plyr__time:first-child+[data-plyr=pause],.plyr__controls>.plyr__control:first-child,.plyr__controls>.plyr__control:first-child+[data-plyr=pause]{margin-left:0}.plyr__controls .plyr__volume{margin-left:5px}@media (min-width:480px){.plyr__controls .plyr__menu,.plyr__controls .plyr__progress,.plyr__controls .plyr__time,.plyr__controls>.plyr__control{margin-left:10px}.plyr__controls .plyr__menu+.plyr__control,.plyr__controls>.plyr__control+.plyr__control,.plyr__controls>.plyr__control+.plyr__menu{margin-left:5px}}.plyr__control{position:relative;display:inline-block;-ms-flex-negative:0;flex-shrink:0;overflow:visible;vertical-align:middle;padding:7px;border:0;background:0 0;border-radius:3px;cursor:pointer;-webkit-transition:background .3s ease,color .3s ease,opacity .3s ease;transition:background .3s ease,color .3s ease,opacity .3s ease;color:inherit}.plyr__control svg{width:18px;height:18px;display:block;fill:currentColor;pointer-events:none}.plyr__control .icon--captions-on,.plyr__control .icon--exit-fullscreen,.plyr__control .icon--muted{display:none}.plyr__control:focus{outline:0}.plyr--video .plyr__controls{position:absolute;left:0;right:0;bottom:0;z-index:2;padding:35px 12px 10px;background:-webkit-gradient(linear,left top,left bottom,from(rgba(0,0,0,0)),to(rgba(0,0,0,.7)));background:linear-gradient(rgba(0,0,0,0),rgba(0,0,0,.7));border-bottom-left-radius:inherit;border-bottom-right-radius:inherit;color:#fff;-webkit-transition:all .4s ease-in-out;transition:all .4s ease-in-out}.plyr--video .plyr__controls .plyr__control svg{-webkit-filter:drop-shadow(0 1px 1px rgba(0, 0, 0, .15));filter:drop-shadow(0 1px 1px rgba(0, 0, 0, .15))}.plyr--video .plyr__controls .plyr__control.tab-focus,.plyr--video .plyr__controls .plyr__control:hover,.plyr--video .plyr__controls .plyr__control[aria-expanded=true]{background:#1aafff;color:#fff}.plyr--video.plyr--hide-controls .plyr__controls{opacity:0;-webkit-transform:translateY(100%);transform:translateY(100%);pointer-events:none}.plyr--audio .plyr__controls{padding:10px;border-radius:inherit;background:#fff;border:1px solid #dbe3e8;color:#565d64}.plyr--audio .plyr__controls .plyr__control.tab-focus,.plyr--audio .plyr__controls .plyr__control:hover,.plyr--audio .plyr__controls .plyr__control[aria-expanded=true]{background:#1aafff;color:#fff}.plyr__play-large{display:none;position:absolute;z-index:1;top:50%;left:50%;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%);padding:13px;background:rgba(26,175,255,.8);border:3px solid currentColor;border-radius:100%;-webkit-box-shadow:0 1px 1px rgba(0,0,0,.15);box-shadow:0 1px 1px rgba(0,0,0,.15);color:#fff;-webkit-transition:all .3s ease;transition:all .3s ease}.plyr__play-large svg{position:relative;left:2px;width:20px;height:20px;display:block;fill:currentColor;pointer-events:none}.plyr__play-large:focus,.plyr__play-large:hover{background:#1aafff}.plyr__play-large:focus{outline:1px dotted rgba(255,255,255,.5)}.plyr .plyr__play-large{display:inline-block}.plyr--audio .plyr__play-large{display:none}.plyr--playing .plyr__play-large{opacity:0;visibility:hidden}.plyr--playing .plyr__controls [data-plyr=play],.plyr__controls [data-plyr=pause]{display:none}.plyr--playing .plyr__controls [data-plyr=pause]{display:inline-block}.plyr--captions-active .plyr__control .icon--captions-on,.plyr--muted .plyr__control .icon--muted{display:block}.plyr--captions-active .plyr__control .icon--captions-on+svg,.plyr--muted .plyr__control .icon--muted+svg{display:none}.plyr [data-plyr=airplay],.plyr [data-plyr=captions],.plyr [data-plyr=fullscreen],.plyr [data-plyr=pip]{display:none}.plyr--airplay-supported [data-plyr=airplay],.plyr--captions-enabled [data-plyr=captions],.plyr--fullscreen-enabled [data-plyr=fullscreen],.plyr--pip-supported [data-plyr=pip]{display:inline-block}.plyr__menu{position:relative}.plyr__menu .plyr__control svg{-webkit-transition:-webkit-transform .3s ease;transition:-webkit-transform .3s ease;transition:transform .3s ease;transition:transform .3s ease,-webkit-transform .3s ease}.plyr__menu .plyr__control[aria-expanded=true] svg{-webkit-transform:rotate(45deg);transform:rotate(45deg)}.plyr__menu .plyr__control[aria-expanded=true] .plyr__tooltip{display:none}.plyr__menu__container{position:absolute;z-index:1;bottom:100%;right:-3px;margin-bottom:10px;-webkit-animation:plyr-popup .2s ease;animation:plyr-popup .2s ease;background:rgba(255,255,255,.9);border-radius:4px;-webkit-box-shadow:0 1px 2px rgba(0,0,0,.2);box-shadow:0 1px 2px rgba(0,0,0,.2);white-space:nowrap;text-align:left;color:#565d64;font-size:14px}.plyr__menu__container>div{overflow:hidden;-webkit-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)}.plyr__menu__container::after{content:'';position:absolute;top:100%;right:15px;height:0;width:0;border:4px solid transparent;border-top-color:rgba(255,255,255,.9)}.plyr__menu__container ul{margin:0;padding:7px;list-style:none;overflow:hidden}.plyr__menu__container .plyr__control{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;width:100%;padding:4px 14px;color:#565d64;font-weight:600;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.plyr__menu__container .plyr__control::after{content:'';position:absolute;top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%);border:4px solid transparent;-webkit-transition:border-color .2s ease;transition:border-color .2s ease}.plyr__menu__container .plyr__control--forward{padding-right:28px}.plyr__menu__container .plyr__control--forward::after{right:5px;border-left-color:rgba(86,93,100,.8)}.plyr__menu__container .plyr__control--forward.tab-focus::after,.plyr__menu__container .plyr__control--forward:hover::after{border-left-color:currentColor}.plyr__menu__container .plyr__control--back{position:relative;width:calc(100% - 14px);margin:7px;margin-bottom:3px;padding-left:28px;font-weight:500}.plyr__menu__container .plyr__control--back::after{left:7px;border-right-color:rgba(86,93,100,.8)}.plyr__menu__container .plyr__control--back::before{content:'';position:absolute;top:100%;left:0;right:0;height:1px;overflow:hidden;margin-top:4px;background:rgba(0,0,0,.15);-webkit-box-shadow:0 1px 0 rgba(255,255,255,.1);box-shadow:0 1px 0 rgba(255,255,255,.1)}.plyr__menu__container .plyr__control--back.tab-focus::after,.plyr__menu__container .plyr__control--back:hover::after{border-right-color:currentColor}.plyr__menu__container label.plyr__control{padding-left:18px}.plyr__menu__container label.plyr__control input[type=radio]{position:relative;left:-7px}.plyr__menu__container .plyr__menu__value{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;margin-left:auto;padding-left:25px;pointer-events:none;overflow:hidden;font-weight:500}.plyr__menu__container .plyr__menu__value .plyr__badge{font-weight:600}.plyr__badge{padding:1px 4px;border-radius:2px;background:#565d64;color:rgba(255,255,255,.9);font-size:10px}.plyr__tooltip{position:absolute;z-index:2;bottom:100%;margin-bottom:10px;padding:5px 7.5px;pointer-events:none;opacity:0;background:rgba(255,255,255,.9);border-radius:3px;-webkit-box-shadow:0 1px 2px rgba(0,0,0,.1);box-shadow:0 1px 2px rgba(0,0,0,.1);color:#565d64;font-size:14px;font-weight:500;line-height:1.3;-webkit-transform:translate(-50%,10px) scale(.8);transform:translate(-50%,10px) scale(.8);-webkit-transform-origin:50% 100%;transform-origin:50% 100%;-webkit-transition:opacity .2s .1s ease,-webkit-transform .2s .1s ease;transition:opacity .2s .1s ease,-webkit-transform .2s .1s ease;transition:transform .2s .1s ease,opacity .2s .1s ease;transition:transform .2s .1s ease,opacity .2s .1s ease,-webkit-transform .2s .1s ease}.plyr__tooltip::before{content:'';position:absolute;width:0;height:0;left:50%;-webkit-transform:translateX(-50%);transform:translateX(-50%);bottom:-4px;border-right:4px solid transparent;border-top:4px solid rgba(255,255,255,.9);border-left:4px solid transparent;z-index:2}.plyr .plyr__control.tab-focus .plyr__tooltip,.plyr .plyr__control:hover .plyr__tooltip,.plyr__tooltip--visible{opacity:1;-webkit-transform:translate(-50%,0) scale(1);transform:translate(-50%,0) scale(1)}.plyr .plyr__control:hover .plyr__tooltip{z-index:3}.plyr__controls>.plyr__control:first-child .plyr__tooltip,.plyr__controls>.plyr__control:first-child+.plyr__control .plyr__tooltip{left:0;-webkit-transform:translate(0,10px) scale(.8);transform:translate(0,10px) scale(.8);-webkit-transform-origin:0 100%;transform-origin:0 100%}.plyr__controls>.plyr__control:first-child .plyr__tooltip::before,.plyr__controls>.plyr__control:first-child+.plyr__control .plyr__tooltip::before{left:16px}.plyr__controls>.plyr__control:last-child .plyr__tooltip{right:0;-webkit-transform:translate(0,10px) scale(.8);transform:translate(0,10px) scale(.8);-webkit-transform-origin:100% 100%;transform-origin:100% 100%}.plyr__controls>.plyr__control:last-child .plyr__tooltip::before{left:auto;right:16px;-webkit-transform:translateX(50%);transform:translateX(50%)}.plyr__controls>.plyr__control:first-child .plyr__tooltip--visible,.plyr__controls>.plyr__control:first-child+.plyr__control .plyr__tooltip--visible,.plyr__controls>.plyr__control:first-child+.plyr__control.tab-focus .plyr__tooltip,.plyr__controls>.plyr__control:first-child+.plyr__control:hover .plyr__tooltip,.plyr__controls>.plyr__control:first-child.tab-focus .plyr__tooltip,.plyr__controls>.plyr__control:first-child:hover .plyr__tooltip,.plyr__controls>.plyr__control:last-child .plyr__tooltip--visible,.plyr__controls>.plyr__control:last-child.tab-focus .plyr__tooltip,.plyr__controls>.plyr__control:last-child:hover .plyr__tooltip{-webkit-transform:translate(0,0) scale(1);transform:translate(0,0) scale(1)}.plyr__progress{position:relative;display:none;-webkit-box-flex:1;-ms-flex:1;flex:1}.plyr__progress input[type=range]{position:relative;z-index:2}.plyr__progress .plyr__tooltip{left:0}.plyr .plyr__progress{display:inline-block}.plyr__progress--buffer{position:absolute;left:0;top:50%;width:100%;height:8px;margin:-4px 0 0;padding:0;background:0 0;border:none;border-radius:100px;-webkit-appearance:none}.plyr__progress--buffer::-webkit-progress-bar{background:0 0}.plyr__progress--buffer::-webkit-progress-value{background:currentColor;border-radius:100px;min-width:8px}.plyr__progress--buffer::-moz-progress-bar{background:currentColor;border-radius:100px;min-width:8px}.plyr__progress--buffer::-ms-fill{border-radius:100px}.plyr__progress--buffer::-webkit-progress-value{-webkit-transition:width .2s ease;transition:width .2s ease}.plyr__progress--buffer::-moz-progress-bar{-webkit-transition:width .2s ease;transition:width .2s ease}.plyr__progress--buffer::-ms-fill{-webkit-transition:width .2s ease;transition:width .2s ease}.plyr--video .plyr__progress--buffer{-webkit-box-shadow:0 1px 1px rgba(0,0,0,.15);box-shadow:0 1px 1px rgba(0,0,0,.15);color:rgba(255,255,255,.25)}.plyr--audio .plyr__progress--buffer{color:rgba(198,214,219,.66)}.plyr--loading .plyr__progress--buffer{-webkit-animation:plyr-progress 1s linear infinite;animation:plyr-progress 1s linear infinite;background-size:25px 25px;background-repeat:repeat-x;background-image:linear-gradient(-45deg,rgba(52,63,74,.2) 25%,transparent 25%,transparent 50%,rgba(52,63,74,.2) 50%,rgba(52,63,74,.2) 75%,transparent 75%,transparent);color:transparent}.plyr--video.plyr--loading .plyr__progress--buffer{background-color:rgba(255,255,255,.25)}.plyr--audio.plyr--loading .plyr__progress--buffer{background-color:rgba(198,214,219,.66)}.plyr__time{display:inline-block;vertical-align:middle;font-size:14px}.plyr__time+.plyr__time{display:none}@media (min-width:768px){.plyr__time+.plyr__time{display:inline-block}}.plyr__time+.plyr__time::before{content:'\2044';margin-right:10px}.plyr--video .plyr__time{text-shadow:0 1px 1px rgba(0,0,0,.15)}.plyr__volume{display:none}.plyr .plyr__volume{-webkit-box-flex:1;-ms-flex:1;flex:1;position:relative}.plyr .plyr__volume input[type=range]{position:relative;z-index:2}@media (min-width:480px){.plyr .plyr__volume{display:block;max-width:60px}}@media (min-width:768px){.plyr .plyr__volume{max-width:100px}}.plyr--is-ios .plyr__volume,.plyr--is-ios [data-plyr=mute]{display:none!important}.plyr:-webkit-full-screen{height:100%;width:100%;background:#000;border-radius:0!important}.plyr:-moz-full-screen{height:100%;width:100%;background:#000;border-radius:0!important}.plyr:-ms-fullscreen{height:100%;width:100%;background:#000;border-radius:0!important}.plyr:fullscreen{height:100%;width:100%;background:#000;border-radius:0!important}.plyr:-webkit-full-screen video{height:100%}.plyr:-moz-full-screen video{height:100%}.plyr:-ms-fullscreen video{height:100%}.plyr:fullscreen video{height:100%}.plyr:-webkit-full-screen .plyr__video-wrapper{height:100%;width:100%}.plyr:-moz-full-screen .plyr__video-wrapper{height:100%;width:100%}.plyr:-ms-fullscreen .plyr__video-wrapper{height:100%;width:100%}.plyr:fullscreen .plyr__video-wrapper{height:100%;width:100%}.plyr:-webkit-full-screen .plyr__video-embed{overflow:visible}.plyr:-moz-full-screen .plyr__video-embed{overflow:visible}.plyr:-ms-fullscreen .plyr__video-embed{overflow:visible}.plyr:fullscreen .plyr__video-embed{overflow:visible}.plyr:-webkit-full-screen.plyr--vimeo .plyr__video-wrapper{height:0;top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%)}.plyr:-moz-full-screen.plyr--vimeo .plyr__video-wrapper{height:0;top:50%;transform:translateY(-50%)}.plyr:-ms-fullscreen.plyr--vimeo .plyr__video-wrapper{height:0;top:50%;transform:translateY(-50%)}.plyr:fullscreen.plyr--vimeo .plyr__video-wrapper{height:0;top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%)}.plyr:-webkit-full-screen .plyr__control .icon--exit-fullscreen{display:block}.plyr:-moz-full-screen .plyr__control .icon--exit-fullscreen{display:block}.plyr:-ms-fullscreen .plyr__control .icon--exit-fullscreen{display:block}.plyr:fullscreen .plyr__control .icon--exit-fullscreen{display:block}.plyr:-webkit-full-screen .plyr__control .icon--exit-fullscreen+svg{display:none}.plyr:-moz-full-screen .plyr__control .icon--exit-fullscreen+svg{display:none}.plyr:-ms-fullscreen .plyr__control .icon--exit-fullscreen+svg{display:none}.plyr:fullscreen .plyr__control .icon--exit-fullscreen+svg{display:none}@media (min-width:1024px){.plyr:-webkit-full-screen .plyr__captions{font-size:24px}.plyr:-moz-full-screen .plyr__captions{font-size:24px}.plyr:-ms-fullscreen .plyr__captions{font-size:24px}.plyr:fullscreen .plyr__captions{font-size:24px}}.plyr:-webkit-full-screen{height:100%;width:100%;background:#000;border-radius:0!important}.plyr:-webkit-full-screen video{height:100%}.plyr:-webkit-full-screen .plyr__video-wrapper{height:100%;width:100%}.plyr:-webkit-full-screen .plyr__video-embed{overflow:visible}.plyr:-webkit-full-screen.plyr--vimeo .plyr__video-wrapper{height:0;top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%)}.plyr:-webkit-full-screen .plyr__control .icon--exit-fullscreen{display:block}.plyr:-webkit-full-screen .plyr__control .icon--exit-fullscreen+svg{display:none}@media (min-width:1024px){.plyr:-webkit-full-screen .plyr__captions{font-size:24px}}.plyr:-moz-full-screen{height:100%;width:100%;background:#000;border-radius:0!important}.plyr:-moz-full-screen video{height:100%}.plyr:-moz-full-screen .plyr__video-wrapper{height:100%;width:100%}.plyr:-moz-full-screen .plyr__video-embed{overflow:visible}.plyr:-moz-full-screen.plyr--vimeo .plyr__video-wrapper{height:0;top:50%;transform:translateY(-50%)}.plyr:-moz-full-screen .plyr__control .icon--exit-fullscreen{display:block}.plyr:-moz-full-screen .plyr__control .icon--exit-fullscreen+svg{display:none}@media (min-width:1024px){.plyr:-moz-full-screen .plyr__captions{font-size:24px}}.plyr:-ms-fullscreen{height:100%;width:100%;background:#000;border-radius:0!important}.plyr:-ms-fullscreen video{height:100%}.plyr:-ms-fullscreen .plyr__video-wrapper{height:100%;width:100%}.plyr:-ms-fullscreen .plyr__video-embed{overflow:visible}.plyr:-ms-fullscreen.plyr--vimeo .plyr__video-wrapper{height:0;top:50%;transform:translateY(-50%)}.plyr:-ms-fullscreen .plyr__control .icon--exit-fullscreen{display:block}.plyr:-ms-fullscreen .plyr__control .icon--exit-fullscreen+svg{display:none}@media (min-width:1024px){.plyr:-ms-fullscreen .plyr__captions{font-size:24px}}.plyr--fullscreen-fallback{height:100%;width:100%;background:#000;border-radius:0!important;position:fixed;top:0;left:0;right:0;bottom:0;z-index:10000000}.plyr--fullscreen-fallback video{height:100%}.plyr--fullscreen-fallback .plyr__video-wrapper{height:100%;width:100%}.plyr--fullscreen-fallback .plyr__video-embed{overflow:visible}.plyr--fullscreen-fallback.plyr--vimeo .plyr__video-wrapper{height:0;top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%)}.plyr--fullscreen-fallback .plyr__control .icon--exit-fullscreen{display:block}.plyr--fullscreen-fallback .plyr__control .icon--exit-fullscreen+svg{display:none}@media (min-width:1024px){.plyr--fullscreen-fallback .plyr__captions{font-size:24px}} \ No newline at end of file
+@-webkit-keyframes plyr-progress{to{background-position:25px 0}}@keyframes plyr-progress{to{background-position:25px 0}}@-webkit-keyframes plyr-popup{from{-webkit-transform:translateY(10px);transform:translateY(10px);opacity:.5}to{-webkit-transform:translateY(0);transform:translateY(0);opacity:1}}@keyframes plyr-popup{from{-webkit-transform:translateY(10px);transform:translateY(10px);opacity:.5}to{-webkit-transform:translateY(0);transform:translateY(0);opacity:1}}.plyr{position:relative;max-width:100%;min-width:200px;overflow:hidden;font-family:inherit;font-weight:500;direction:ltr;text-shadow:none}.plyr audio,.plyr video{width:100%;height:auto;vertical-align:middle;border-radius:inherit}.plyr--full-ui,.plyr--full-ui *,.plyr--full-ui ::after,.plyr--full-ui ::before{-webkit-box-sizing:border-box;box-sizing:border-box}.plyr--full-ui a,.plyr--full-ui button,.plyr--full-ui input,.plyr--full-ui label{-ms-touch-action:manipulation;touch-action:manipulation}.plyr__badge{padding:1px 4px;border-radius:2px;background:#565d64;color:rgba(255,255,255,.9);font-size:10px}.plyr__control{position:relative;display:inline-block;-ms-flex-negative:0;flex-shrink:0;overflow:visible;vertical-align:middle;padding:7px;border:0;background:0 0;border-radius:3px;cursor:pointer;-webkit-transition:background .3s ease,color .3s ease,opacity .3s ease;transition:background .3s ease,color .3s ease,opacity .3s ease;color:inherit}.plyr__control svg{width:18px;height:18px;display:block;fill:currentColor;pointer-events:none}.plyr__control .icon--captions-on,.plyr__control .icon--exit-fullscreen,.plyr__control .icon--muted{display:none}.plyr__control:focus{outline:0}.plyr--audio .plyr__control.tab-focus,.plyr--audio .plyr__control:hover,.plyr--audio .plyr__control[aria-expanded=true]{background:#1aafff;color:#fff}.plyr__play-large{display:none;position:absolute;z-index:1;top:50%;left:50%;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%);padding:13px;background:rgba(26,175,255,.8);border:3px solid currentColor;border-radius:100%;-webkit-box-shadow:0 1px 1px rgba(0,0,0,.15);box-shadow:0 1px 1px rgba(0,0,0,.15);color:#fff;-webkit-transition:all .3s ease;transition:all .3s ease}.plyr__play-large svg{position:relative;left:2px;width:20px;height:20px;display:block;fill:currentColor;pointer-events:none}.plyr__play-large:focus,.plyr__play-large:hover{background:#1aafff}.plyr__play-large:focus{outline:1px dotted rgba(255,255,255,.5)}.plyr--full-ui.plyr--video .plyr__play-large{display:inline-block}.plyr--playing .plyr__play-large{opacity:0;visibility:hidden}.plyr--full-ui video::-webkit-media-text-track-container{display:none}.plyr__captions{display:none;position:absolute;bottom:0;left:0;width:100%;padding:10px;-webkit-transform:translateY(-40px);transform:translateY(-40px);-webkit-transition:-webkit-transform .3s ease;transition:-webkit-transform .3s ease;transition:transform .3s ease;transition:transform .3s ease,-webkit-transform .3s ease;color:#fff;font-size:14px;text-align:center}.plyr__captions span{border-radius:2px;padding:.2em .5em;background:rgba(0,0,0,.8);-webkit-box-decoration-break:clone;box-decoration-break:clone;line-height:170%;white-space:pre-wrap}.plyr__captions span div{display:inline}.plyr__captions span:empty{display:none}@media (min-width:480px){.plyr__captions{padding:20px;font-size:16px}}@media (min-width:768px){.plyr__captions{font-size:20px}}.plyr--captions-active .plyr__captions{display:block}.plyr--hide-controls .plyr__captions{-webkit-transform:translateY(-15px);transform:translateY(-15px)}.plyr ::-webkit-media-controls{display:none}.plyr__controls{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;text-align:center}.plyr__controls .plyr__menu,.plyr__controls .plyr__progress,.plyr__controls .plyr__time,.plyr__controls>.plyr__control{margin-left:5px}.plyr__controls .plyr__menu:first-child,.plyr__controls .plyr__menu:first-child+[data-plyr=pause],.plyr__controls .plyr__progress:first-child,.plyr__controls .plyr__progress:first-child+[data-plyr=pause],.plyr__controls .plyr__time:first-child,.plyr__controls .plyr__time:first-child+[data-plyr=pause],.plyr__controls>.plyr__control:first-child,.plyr__controls>.plyr__control:first-child+[data-plyr=pause]{margin-left:0}.plyr__controls .plyr__volume{margin-left:5px}@media (min-width:480px){.plyr__controls .plyr__menu,.plyr__controls .plyr__progress,.plyr__controls .plyr__time,.plyr__controls>.plyr__control{margin-left:10px}.plyr__controls .plyr__menu+.plyr__control,.plyr__controls>.plyr__control+.plyr__control,.plyr__controls>.plyr__control+.plyr__menu{margin-left:5px}}.plyr--video .plyr__controls{position:absolute;left:0;right:0;bottom:0;z-index:2;padding:35px 12px 10px;background:-webkit-gradient(linear,left top,left bottom,from(rgba(0,0,0,0)),to(rgba(0,0,0,.7)));background:linear-gradient(rgba(0,0,0,0),rgba(0,0,0,.7));border-bottom-left-radius:inherit;border-bottom-right-radius:inherit;color:#fff;-webkit-transition:all .4s ease-in-out;transition:all .4s ease-in-out}.plyr--video .plyr__controls .plyr__control svg{-webkit-filter:drop-shadow(0 1px 1px rgba(0, 0, 0, .15));filter:drop-shadow(0 1px 1px rgba(0, 0, 0, .15))}.plyr--video .plyr__controls .plyr__control.tab-focus,.plyr--video .plyr__controls .plyr__control:hover,.plyr--video .plyr__controls .plyr__control[aria-expanded=true]{background:#1aafff;color:#fff}.plyr--video.plyr--hide-controls .plyr__controls{opacity:0;-webkit-transform:translateY(100%);transform:translateY(100%);pointer-events:none}.plyr--audio .plyr__controls{padding:10px;border-radius:inherit;background:#fff;border:1px solid #dbe3e8;color:#565d64}.plyr__controls [data-plyr=pause]{display:none}.plyr--playing .plyr__controls [data-plyr=play]{display:none}.plyr--playing .plyr__controls [data-plyr=pause]{display:inline-block}.plyr--captions-active .plyr__control .icon--captions-on,.plyr--muted .plyr__control .icon--muted{display:block}.plyr--captions-active .plyr__control .icon--captions-on+svg,.plyr--muted .plyr__control .icon--muted+svg{display:none}.plyr [data-plyr=airplay],.plyr [data-plyr=captions],.plyr [data-plyr=fullscreen],.plyr [data-plyr=pip]{display:none}.plyr--airplay-supported [data-plyr=airplay],.plyr--captions-enabled [data-plyr=captions],.plyr--fullscreen-enabled [data-plyr=fullscreen],.plyr--pip-supported [data-plyr=pip]{display:inline-block}.plyr__video-embed{padding-bottom:56.25%;height:0}.plyr__video-embed iframe{position:absolute;top:0;left:0;width:100%;height:100%;border:0;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.plyr--full-ui .plyr__video-embed iframe{pointer-events:none}.plyr__menu{position:relative}.plyr__menu .plyr__control svg{-webkit-transition:-webkit-transform .3s ease;transition:-webkit-transform .3s ease;transition:transform .3s ease;transition:transform .3s ease,-webkit-transform .3s ease}.plyr__menu .plyr__control[aria-expanded=true] svg{-webkit-transform:rotate(45deg);transform:rotate(45deg)}.plyr__menu .plyr__control[aria-expanded=true] .plyr__tooltip{display:none}.plyr__menu__container{position:absolute;z-index:1;bottom:100%;right:-3px;margin-bottom:10px;-webkit-animation:plyr-popup .2s ease;animation:plyr-popup .2s ease;background:rgba(255,255,255,.9);border-radius:4px;-webkit-box-shadow:0 1px 2px rgba(0,0,0,.2);box-shadow:0 1px 2px rgba(0,0,0,.2);white-space:nowrap;text-align:left;color:#565d64;font-size:14px}.plyr__menu__container>div{overflow:hidden;-webkit-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)}.plyr__menu__container::after{content:'';position:absolute;top:100%;right:15px;height:0;width:0;border:4px solid transparent;border-top-color:rgba(255,255,255,.9)}.plyr__menu__container ul{margin:0;padding:7px;list-style:none;overflow:hidden}.plyr__menu__container .plyr__control{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;width:100%;padding:4px 14px;color:#565d64;font-weight:600;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.plyr__menu__container .plyr__control::after{content:'';position:absolute;top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%);border:4px solid transparent;-webkit-transition:border-color .2s ease;transition:border-color .2s ease}.plyr__menu__container .plyr__control--forward{padding-right:28px}.plyr__menu__container .plyr__control--forward::after{right:5px;border-left-color:rgba(86,93,100,.8)}.plyr__menu__container .plyr__control--forward.tab-focus::after,.plyr__menu__container .plyr__control--forward:hover::after{border-left-color:currentColor}.plyr__menu__container .plyr__control--back{position:relative;width:calc(100% - 14px);margin:7px;margin-bottom:3px;padding-left:28px;font-weight:500}.plyr__menu__container .plyr__control--back::after{left:7px;border-right-color:rgba(86,93,100,.8)}.plyr__menu__container .plyr__control--back::before{content:'';position:absolute;top:100%;left:0;right:0;height:1px;overflow:hidden;margin-top:4px;background:rgba(0,0,0,.15);-webkit-box-shadow:0 1px 0 rgba(255,255,255,.1);box-shadow:0 1px 0 rgba(255,255,255,.1)}.plyr__menu__container .plyr__control--back.tab-focus::after,.plyr__menu__container .plyr__control--back:hover::after{border-right-color:currentColor}.plyr__menu__container label.plyr__control{padding-left:18px}.plyr__menu__container label.plyr__control input[type=radio]{position:relative;left:-7px}.plyr__menu__container .plyr__menu__value{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;margin-left:auto;padding-left:25px;pointer-events:none;overflow:hidden;font-weight:500}.plyr__menu__container .plyr__menu__value .plyr__badge{font-weight:600}.plyr__progress{position:relative;display:none;-webkit-box-flex:1;-ms-flex:1;flex:1}.plyr__progress input[type=range]{position:relative;z-index:2}.plyr__progress .plyr__tooltip{left:0}.plyr .plyr__progress{display:inline-block}.plyr__progress--buffer{position:absolute;left:0;top:50%;width:100%;height:8px;margin:-4px 0 0;padding:0;background:0 0;border:none;border-radius:100px;-webkit-appearance:none}.plyr__progress--buffer::-webkit-progress-bar{background:0 0}.plyr__progress--buffer::-webkit-progress-value{background:currentColor;border-radius:100px;min-width:8px}.plyr__progress--buffer::-moz-progress-bar{background:currentColor;border-radius:100px;min-width:8px}.plyr__progress--buffer::-ms-fill{border-radius:100px}.plyr__progress--buffer::-webkit-progress-value{-webkit-transition:width .2s ease;transition:width .2s ease}.plyr__progress--buffer::-moz-progress-bar{-webkit-transition:width .2s ease;transition:width .2s ease}.plyr__progress--buffer::-ms-fill{-webkit-transition:width .2s ease;transition:width .2s ease}.plyr--video .plyr__progress--buffer{-webkit-box-shadow:0 1px 1px rgba(0,0,0,.15);box-shadow:0 1px 1px rgba(0,0,0,.15);color:rgba(255,255,255,.25)}.plyr--audio .plyr__progress--buffer{color:rgba(198,214,219,.66)}.plyr--loading .plyr__progress--buffer{-webkit-animation:plyr-progress 1s linear infinite;animation:plyr-progress 1s linear infinite;background-size:25px 25px;background-repeat:repeat-x;background-image:linear-gradient(-45deg,rgba(52,63,74,.2) 25%,transparent 25%,transparent 50%,rgba(52,63,74,.2) 50%,rgba(52,63,74,.2) 75%,transparent 75%,transparent);color:transparent}.plyr--video.plyr--loading .plyr__progress--buffer{background-color:rgba(255,255,255,.25)}.plyr--audio.plyr--loading .plyr__progress--buffer{background-color:rgba(198,214,219,.66)}.plyr--full-ui input[type=range]{display:block;height:20px;width:100%;margin:0;padding:0;cursor:pointer;border:none;background:0 0;color:#1aafff;-webkit-appearance:none}.plyr--full-ui input[type=range]::-webkit-slider-runnable-track{height:8px;background:0 0;border:0;border-radius:4px;-webkit-user-select:none;user-select:none}.plyr--full-ui input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;margin-top:-4px;position:relative;height:16px;width:16px;background:#fff;border:2px solid transparent;border-radius:100%;-webkit-transition:background .2s ease,border .2s ease,-webkit-transform .2s ease;transition:background .2s ease,border .2s ease,-webkit-transform .2s ease;transition:background .2s ease,border .2s ease,transform .2s ease;transition:background .2s ease,border .2s ease,transform .2s ease,-webkit-transform .2s ease;-webkit-box-shadow:0 1px 1px rgba(0,0,0,.15),0 0 0 1px rgba(52,63,74,.2);box-shadow:0 1px 1px rgba(0,0,0,.15),0 0 0 1px rgba(52,63,74,.2);-webkit-box-sizing:border-box;box-sizing:border-box}.plyr--full-ui input[type=range]::-moz-range-track{height:8px;background:0 0;border:0;border-radius:4px;-moz-user-select:none;user-select:none}.plyr--full-ui input[type=range]::-moz-range-thumb{position:relative;height:16px;width:16px;background:#fff;border:2px solid transparent;border-radius:100%;-webkit-transition:background .2s ease,border .2s ease,-webkit-transform .2s ease;transition:background .2s ease,border .2s ease,-webkit-transform .2s ease;transition:background .2s ease,border .2s ease,transform .2s ease;transition:background .2s ease,border .2s ease,transform .2s ease,-webkit-transform .2s ease;box-shadow:0 1px 1px rgba(0,0,0,.15),0 0 0 1px rgba(52,63,74,.2);box-sizing:border-box}.plyr--full-ui input[type=range]::-moz-range-progress{height:8px;background:currentColor;border-radius:4px}.plyr--full-ui input[type=range]::-ms-track{height:8px;background:0 0;border:0;color:transparent}.plyr--full-ui input[type=range]::-ms-fill-upper{height:8px;background:0 0;border:0;border-radius:4px;-ms-user-select:none;user-select:none}.plyr--full-ui input[type=range]::-ms-fill-lower{height:8px;background:0 0;border:0;border-radius:4px;-ms-user-select:none;user-select:none;background:currentColor}.plyr--full-ui input[type=range]::-ms-thumb{position:relative;height:16px;width:16px;background:#fff;border:2px solid transparent;border-radius:100%;-webkit-transition:background .2s ease,border .2s ease,-webkit-transform .2s ease;transition:background .2s ease,border .2s ease,-webkit-transform .2s ease;transition:background .2s ease,border .2s ease,transform .2s ease;transition:background .2s ease,border .2s ease,transform .2s ease,-webkit-transform .2s ease;box-shadow:0 1px 1px rgba(0,0,0,.15),0 0 0 1px rgba(52,63,74,.2);box-sizing:border-box;margin-top:0}.plyr--full-ui input[type=range]::-ms-tooltip{display:none}.plyr--full-ui input[type=range]:focus{outline:0}.plyr--full-ui input[type=range]::-moz-focus-outer{border:0}.plyr--full-ui input[type=range].tab-focus{outline-offset:3px}.plyr--full-ui input[type=range]:active::-webkit-slider-thumb{background:#1aafff;border-color:#fff;-webkit-transform:scale(1.25);transform:scale(1.25)}.plyr--full-ui input[type=range]:active::-moz-range-thumb{background:#1aafff;border-color:#fff;transform:scale(1.25)}.plyr--full-ui input[type=range]:active::-ms-thumb{background:#1aafff;border-color:#fff;transform:scale(1.25)}.plyr--full-ui.plyr--video input[type=range]::-webkit-slider-runnable-track{background:rgba(255,255,255,.25)}.plyr--full-ui.plyr--video input[type=range]::-moz-range-track{background:rgba(255,255,255,.25)}.plyr--full-ui.plyr--video input[type=range]::-ms-track{background:rgba(255,255,255,.25)}.plyr--full-ui.plyr--video input[type=range].tab-focus{outline:1px dotted rgba(255,255,255,.5)}.plyr--full-ui.plyr--audio input[type=range]::-webkit-slider-runnable-track{background:rgba(198,214,219,.66)}.plyr--full-ui.plyr--audio input[type=range]::-moz-range-track{background:rgba(198,214,219,.66)}.plyr--full-ui.plyr--audio input[type=range]::-ms-track{background:rgba(198,214,219,.66)}.plyr--full-ui.plyr--audio input[type=range].tab-focus{outline:1px dotted rgba(86,93,100,.5)}.plyr__time{display:inline-block;vertical-align:middle;font-size:14px}.plyr__time+.plyr__time{display:none}@media (min-width:768px){.plyr__time+.plyr__time{display:inline-block}}.plyr__time+.plyr__time::before{content:'\2044';margin-right:10px}.plyr--video .plyr__time{text-shadow:0 1px 1px rgba(0,0,0,.15)}.plyr__tooltip{position:absolute;z-index:2;bottom:100%;margin-bottom:10px;padding:5px 7.5px;pointer-events:none;opacity:0;background:rgba(255,255,255,.9);border-radius:3px;-webkit-box-shadow:0 1px 2px rgba(0,0,0,.1);box-shadow:0 1px 2px rgba(0,0,0,.1);color:#565d64;font-size:14px;font-weight:500;line-height:1.3;-webkit-transform:translate(-50%,10px) scale(.8);transform:translate(-50%,10px) scale(.8);-webkit-transform-origin:50% 100%;transform-origin:50% 100%;-webkit-transition:opacity .2s .1s ease,-webkit-transform .2s .1s ease;transition:opacity .2s .1s ease,-webkit-transform .2s .1s ease;transition:transform .2s .1s ease,opacity .2s .1s ease;transition:transform .2s .1s ease,opacity .2s .1s ease,-webkit-transform .2s .1s ease}.plyr__tooltip::before{content:'';position:absolute;width:0;height:0;left:50%;-webkit-transform:translateX(-50%);transform:translateX(-50%);bottom:-4px;border-right:4px solid transparent;border-top:4px solid rgba(255,255,255,.9);border-left:4px solid transparent;z-index:2}.plyr .plyr__control.tab-focus .plyr__tooltip,.plyr .plyr__control:hover .plyr__tooltip,.plyr__tooltip--visible{opacity:1;-webkit-transform:translate(-50%,0) scale(1);transform:translate(-50%,0) scale(1)}.plyr .plyr__control:hover .plyr__tooltip{z-index:3}.plyr__controls>.plyr__control:first-child .plyr__tooltip,.plyr__controls>.plyr__control:first-child+.plyr__control .plyr__tooltip{left:0;-webkit-transform:translate(0,10px) scale(.8);transform:translate(0,10px) scale(.8);-webkit-transform-origin:0 100%;transform-origin:0 100%}.plyr__controls>.plyr__control:first-child .plyr__tooltip::before,.plyr__controls>.plyr__control:first-child+.plyr__control .plyr__tooltip::before{left:16px}.plyr__controls>.plyr__control:last-child .plyr__tooltip{right:0;-webkit-transform:translate(0,10px) scale(.8);transform:translate(0,10px) scale(.8);-webkit-transform-origin:100% 100%;transform-origin:100% 100%}.plyr__controls>.plyr__control:last-child .plyr__tooltip::before{left:auto;right:16px;-webkit-transform:translateX(50%);transform:translateX(50%)}.plyr__controls>.plyr__control:first-child .plyr__tooltip--visible,.plyr__controls>.plyr__control:first-child+.plyr__control .plyr__tooltip--visible,.plyr__controls>.plyr__control:first-child+.plyr__control.tab-focus .plyr__tooltip,.plyr__controls>.plyr__control:first-child+.plyr__control:hover .plyr__tooltip,.plyr__controls>.plyr__control:first-child.tab-focus .plyr__tooltip,.plyr__controls>.plyr__control:first-child:hover .plyr__tooltip,.plyr__controls>.plyr__control:last-child .plyr__tooltip--visible,.plyr__controls>.plyr__control:last-child.tab-focus .plyr__tooltip,.plyr__controls>.plyr__control:last-child:hover .plyr__tooltip{-webkit-transform:translate(0,0) scale(1);transform:translate(0,0) scale(1)}.plyr__video-wrapper{position:relative;background:#000;border-radius:inherit;z-index:0;overflow:hidden}.plyr__volume{-webkit-box-flex:1;-ms-flex:1;flex:1;position:relative}.plyr__volume input[type=range]{position:relative;z-index:2}@media (min-width:480px){.plyr__volume{display:block;max-width:60px}}@media (min-width:768px){.plyr__volume{max-width:100px}}.plyr--is-ios .plyr__volume,.plyr--is-ios [data-plyr=mute]{display:none!important}.plyr:-webkit-full-screen{height:100%;width:100%;background:#000;border-radius:0!important}.plyr:-moz-full-screen{height:100%;width:100%;background:#000;border-radius:0!important}.plyr:-ms-fullscreen{height:100%;width:100%;background:#000;border-radius:0!important}.plyr:fullscreen{height:100%;width:100%;background:#000;border-radius:0!important}.plyr:-webkit-full-screen video{height:100%}.plyr:-moz-full-screen video{height:100%}.plyr:-ms-fullscreen video{height:100%}.plyr:fullscreen video{height:100%}.plyr:-webkit-full-screen .plyr__video-wrapper{height:100%;width:100%}.plyr:-moz-full-screen .plyr__video-wrapper{height:100%;width:100%}.plyr:-ms-fullscreen .plyr__video-wrapper{height:100%;width:100%}.plyr:fullscreen .plyr__video-wrapper{height:100%;width:100%}.plyr:-webkit-full-screen .plyr__video-embed{overflow:visible}.plyr:-moz-full-screen .plyr__video-embed{overflow:visible}.plyr:-ms-fullscreen .plyr__video-embed{overflow:visible}.plyr:fullscreen .plyr__video-embed{overflow:visible}.plyr:-webkit-full-screen.plyr--vimeo .plyr__video-wrapper{height:0;top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%)}.plyr:-moz-full-screen.plyr--vimeo .plyr__video-wrapper{height:0;top:50%;transform:translateY(-50%)}.plyr:-ms-fullscreen.plyr--vimeo .plyr__video-wrapper{height:0;top:50%;transform:translateY(-50%)}.plyr:fullscreen.plyr--vimeo .plyr__video-wrapper{height:0;top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%)}.plyr:-webkit-full-screen .plyr__control .icon--exit-fullscreen{display:block}.plyr:-moz-full-screen .plyr__control .icon--exit-fullscreen{display:block}.plyr:-ms-fullscreen .plyr__control .icon--exit-fullscreen{display:block}.plyr:fullscreen .plyr__control .icon--exit-fullscreen{display:block}.plyr:-webkit-full-screen .plyr__control .icon--exit-fullscreen+svg{display:none}.plyr:-moz-full-screen .plyr__control .icon--exit-fullscreen+svg{display:none}.plyr:-ms-fullscreen .plyr__control .icon--exit-fullscreen+svg{display:none}.plyr:fullscreen .plyr__control .icon--exit-fullscreen+svg{display:none}@media (min-width:1024px){.plyr:-webkit-full-screen .plyr__captions{font-size:24px}.plyr:-moz-full-screen .plyr__captions{font-size:24px}.plyr:-ms-fullscreen .plyr__captions{font-size:24px}.plyr:fullscreen .plyr__captions{font-size:24px}}.plyr:-webkit-full-screen{height:100%;width:100%;background:#000;border-radius:0!important}.plyr:-webkit-full-screen video{height:100%}.plyr:-webkit-full-screen .plyr__video-wrapper{height:100%;width:100%}.plyr:-webkit-full-screen .plyr__video-embed{overflow:visible}.plyr:-webkit-full-screen.plyr--vimeo .plyr__video-wrapper{height:0;top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%)}.plyr:-webkit-full-screen .plyr__control .icon--exit-fullscreen{display:block}.plyr:-webkit-full-screen .plyr__control .icon--exit-fullscreen+svg{display:none}@media (min-width:1024px){.plyr:-webkit-full-screen .plyr__captions{font-size:24px}}.plyr:-moz-full-screen{height:100%;width:100%;background:#000;border-radius:0!important}.plyr:-moz-full-screen video{height:100%}.plyr:-moz-full-screen .plyr__video-wrapper{height:100%;width:100%}.plyr:-moz-full-screen .plyr__video-embed{overflow:visible}.plyr:-moz-full-screen.plyr--vimeo .plyr__video-wrapper{height:0;top:50%;transform:translateY(-50%)}.plyr:-moz-full-screen .plyr__control .icon--exit-fullscreen{display:block}.plyr:-moz-full-screen .plyr__control .icon--exit-fullscreen+svg{display:none}@media (min-width:1024px){.plyr:-moz-full-screen .plyr__captions{font-size:24px}}.plyr:-ms-fullscreen{height:100%;width:100%;background:#000;border-radius:0!important}.plyr:-ms-fullscreen video{height:100%}.plyr:-ms-fullscreen .plyr__video-wrapper{height:100%;width:100%}.plyr:-ms-fullscreen .plyr__video-embed{overflow:visible}.plyr:-ms-fullscreen.plyr--vimeo .plyr__video-wrapper{height:0;top:50%;transform:translateY(-50%)}.plyr:-ms-fullscreen .plyr__control .icon--exit-fullscreen{display:block}.plyr:-ms-fullscreen .plyr__control .icon--exit-fullscreen+svg{display:none}@media (min-width:1024px){.plyr:-ms-fullscreen .plyr__captions{font-size:24px}}.plyr--fullscreen-fallback{height:100%;width:100%;background:#000;border-radius:0!important;position:fixed;top:0;left:0;right:0;bottom:0;z-index:10000000}.plyr--fullscreen-fallback video{height:100%}.plyr--fullscreen-fallback .plyr__video-wrapper{height:100%;width:100%}.plyr--fullscreen-fallback .plyr__video-embed{overflow:visible}.plyr--fullscreen-fallback.plyr--vimeo .plyr__video-wrapper{height:0;top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%)}.plyr--fullscreen-fallback .plyr__control .icon--exit-fullscreen{display:block}.plyr--fullscreen-fallback .plyr__control .icon--exit-fullscreen+svg{display:none}@media (min-width:1024px){.plyr--fullscreen-fallback .plyr__captions{font-size:24px}}.plyr--full-ui [hidden]{display:none}.plyr--full-ui [aria-hidden=true]{display:none}.plyr__sr-only{clip:rect(1px,1px,1px,1px);overflow:hidden;position:absolute!important;padding:0!important;border:0!important;height:1px!important;width:1px!important} \ No newline at end of file
diff --git a/dist/plyr.js b/dist/plyr.js
index 372f4303..b9c9dee0 100644
--- a/dist/plyr.js
+++ b/dist/plyr.js
@@ -1 +1 @@
-(function(e,t,n){"use strict";"object"==typeof exports?module.exports=n(require):"function"==typeof define&&define.amd?define(n):t[e]=n()}).call(this,"Plyr",this,function(){"use strict";function e(e,t){function r(e,t,n,i){a.dispatchEvent(e,t,n,a.extend({},i,{plyr:pe}))}function l(){var e=c("input:not([disabled]), button:not([disabled])"),t=e[0],n=e[e.length-1];a.on(pe.elements.container,"keydown",function(e){9===e.which&&pe.fullscreen.active&&(e.target!==n||e.shiftKey?e.target===t&&e.shiftKey&&(e.preventDefault(),n.focus()):(e.preventDefault(),t.focus()))},!1)}function c(e){return pe.elements.container.querySelectorAll(e)}function u(e){return c(e)[0]}function d(e){a.is.string(e)?(a.removeElement(pe.elements[e]),pe.elements[e]=null):a.removeElement(e)}function p(e,t){a.is.string(t)?a.insertElement(e,pe.media,{src:t}):a.is.array(t)&&(fe(t),t.forEach(function(t){a.insertElement(e,pe.media,t)}))}function m(e){if(pe.browser.isWebkit&&(a.is.event(e)&&(e=e.target),a.is.htmlElement(e)&&"range"===e.getAttribute("type"))){a.is.htmlElement(pe.elements.styleSheet)||(pe.elements.styleSheet=a.createElement("style"),pe.elements.container.appendChild(pe.elements.styleSheet));var t=pe.elements.styleSheet.sheet,n=e.value/e.max*100,i="#"+e.id+"::-webkit-slider-runnable-track",o="{ background-image: linear-gradient(to right, currentColor "+n+"%, transparent "+n+"%) }",s=-1;[].some.call(t.rules,function(e,t){if(e.selectorText===i)return s=t,!0})[0],-1!==s&&t.deleteRule(s),t.insertRule([i,o].join(" "))}}function g(){return{url:pe.config.iconUrl,absolute:0===pe.config.iconUrl.indexOf("http")||pe.browser.isIE}}function f(e,t){var n=g(),i=(n.absolute?"":n.url)+"#"+pe.config.iconPrefix,o=document.createElementNS("http://www.w3.org/2000/svg","svg");a.setAttributes(o,a.extend(t,{role:"presentation"}));var s=document.createElementNS("http://www.w3.org/2000/svg","use");return s.setAttributeNS("http://www.w3.org/1999/xlink","xlink:href",i+"-"+e),o.appendChild(s),o}function y(e){var t=pe.config.i18n[e];switch(e){case"pip":t="PIP";break;case"airplay":t="AirPlay"}return a.createElement("span",{class:pe.config.classNames.hidden},t)}function b(e){var t=a.createElement("span",{class:pe.config.classNames.menu.value});return t.appendChild(a.createElement("span",{class:pe.config.classNames.menu.badge},e)),t}function v(e,t){var n,i,o,s=a.createElement("button");switch(a.is.object(t)||(t={}),"type"in t||(t.type="button"),"class"in t?-1===t.class.indexOf(pe.config.classNames.control)&&(t.class+=" "+pe.config.classNames.control):t.class=pe.config.classNames.control,e){case"mute":o="toggleMute",n="volume",i="muted";break;case"captions":o="toggleCaptions",n="captions-off",i="captions-on";break;case"fullscreen":o="toggleFullscreen",n="enter-fullscreen",i="exit-fullscreen";break;case"play-large":t.class="plyr__play-large",e="play",o="play",n="play";break;default:o=e,n=e}return a.extend(t,a.getAttributesFromSelector(pe.config.selectors.buttons[e],t)),a.is.string(i)&&s.appendChild(f(i,{class:"icon--"+i})),s.appendChild(f(n)),s.appendChild(y(o)),a.setAttributes(s,t),pe.elements.buttons[e]=s,s}function h(e,t){var n=a.createElement("label",{for:t.id,class:pe.config.classNames.hidden},pe.config.i18n[e]),i=a.createElement("input",a.extend(a.getAttributesFromSelector(pe.config.selectors.inputs[e]),{type:"range",min:0,max:100,step:.01,value:0,autocomplete:"off"},t));return pe.elements.inputs[e]=i,{label:n,input:i}}function w(e,t){var n=a.createElement("progress",a.extend(a.getAttributesFromSelector(pe.config.selectors.display[e]),{min:0,max:100,value:0},t));if("volume"!==e){n.appendChild(a.createElement("span",null,"0"));var i="";switch(e){case"played":i=pe.config.i18n.played;break;case"buffer":i=pe.config.i18n.buffered}n.textContent="% "+i.toLowerCase()}return pe.elements.display[e]=n,n}function k(e){var t=a.createElement("span",{class:"plyr__time"});return t.appendChild(a.createElement("span",{class:pe.config.classNames.hidden},pe.config.i18n[e])),t.appendChild(a.createElement("span",a.getAttributesFromSelector(pe.config.selectors.display[e]),"00:00")),pe.elements.display[e]=t,t}function E(e){if(!a.is.empty(pe.config.controls)){var t=a.createElement("div",a.getAttributesFromSelector(pe.config.selectors.controls.wrapper));if(a.inArray(pe.config.controls,"restart")&&t.appendChild(v("restart")),a.inArray(pe.config.controls,"rewind")&&t.appendChild(v("rewind")),a.inArray(pe.config.controls,"play")&&(t.appendChild(v("play")),t.appendChild(v("pause"))),a.inArray(pe.config.controls,"fast-forward")&&t.appendChild(v("fast-forward")),a.inArray(pe.config.controls,"progress")){var n=a.createElement("span",a.getAttributesFromSelector(pe.config.selectors.progress)),i=h("seek",{id:"plyr-seek-"+e.id});if(n.appendChild(i.label),n.appendChild(i.input),n.appendChild(w("buffer")),pe.config.tooltips.seek){var o=a.createElement("span",{role:"tooltip",class:pe.config.classNames.tooltip},"00:00");n.appendChild(o),pe.elements.display.seekTooltip=o}pe.elements.progress=n,t.appendChild(pe.elements.progress)}if(a.inArray(pe.config.controls,"current-time")&&t.appendChild(k("currentTime")),a.inArray(pe.config.controls,"duration")&&t.appendChild(k("duration")),a.inArray(pe.config.controls,"mute")&&t.appendChild(v("mute")),a.inArray(pe.config.controls,"volume")){var r=a.createElement("span",{class:"plyr__volume"}),l={max:1,step:.05,value:pe.config.volume},c=h("volume",a.extend(l,{id:"plyr-volume-"+e.id}));r.appendChild(c.label),r.appendChild(c.input),t.appendChild(r)}if(a.inArray(pe.config.controls,"captions")&&t.appendChild(v("captions")),a.inArray(pe.config.controls,"settings")&&!a.is.empty(pe.config.settings)){var u=a.createElement("div",{class:"plyr__menu"});u.appendChild(v("settings",{id:"plyr-settings-toggle-"+e.id,"aria-haspopup":!0,"aria-controls":"plyr-settings-"+e.id,"aria-expanded":!1}));var d=a.createElement("form",{class:"plyr__menu__container",id:"plyr-settings-"+e.id,"aria-hidden":!0,"aria-labelled-by":"plyr-settings-toggle-"+e.id,role:"tablist",tabindex:-1}),p=a.createElement("div"),m=a.createElement("div",{id:"plyr-settings-"+e.id+"-home","aria-hidden":!1,"aria-labelled-by":"plyr-settings-toggle-"+e.id,role:"tabpanel"}),g=a.createElement("ul",{role:"tablist"});pe.config.settings.forEach(function(t){var n=a.createElement("li",{role:"tab",hidden:""}),i=a.createElement("button",a.extend(a.getAttributesFromSelector(pe.config.selectors.buttons.settings),{type:"button",class:pe.config.classNames.control+" "+pe.config.classNames.control+"--forward",id:"plyr-settings-"+e.id+"-"+t+"-tab","aria-haspopup":!0,"aria-controls":"plyr-settings-"+e.id+"-"+t,"aria-expanded":!1}),pe.config.i18n[t]),o=a.createElement("span",{class:pe.config.classNames.menu.value});o.innerHTML=e[t],i.appendChild(o),n.appendChild(i),g.appendChild(n),pe.elements.settings.tabs[t]=n}),m.appendChild(g),p.appendChild(m),pe.config.settings.forEach(function(t){var n=a.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:""}),i=a.createElement("button",{type:"button",class:pe.config.classNames.control+" "+pe.config.classNames.control+"--back","aria-haspopup":!0,"aria-controls":"plyr-settings-"+e.id+"-home","aria-expanded":!1},pe.config.i18n[t]);n.appendChild(i);var o=a.createElement("ul");n.appendChild(o),p.appendChild(n),pe.elements.settings.panes[t]=n}),d.appendChild(p),u.appendChild(d),t.appendChild(u),pe.elements.settings.form=d,pe.elements.settings.menu=u}return a.inArray(pe.config.controls,"pip")&&s.pip&&t.appendChild(v("pip")),a.inArray(pe.config.controls,"airplay")&&s.airplay&&t.appendChild(v("airplay")),a.inArray(pe.config.controls,"fullscreen")&&t.appendChild(v("fullscreen")),a.inArray(pe.config.controls,"play-large")&&(pe.elements.buttons.playLarge=v("play-large"),pe.elements.container.appendChild(pe.elements.buttons.playLarge)),pe.elements.controls=t,a.inArray(pe.config.controls,"settings")&&a.inArray(pe.config.settings,"speed")&&N(),t}}function C(e,t){var n=pe.elements.settings.tabs[e],i=pe.elements.settings.panes[e];a.is.htmlElement(n)&&(t?n.removeAttribute("hidden"):n.setAttribute("hidden","")),a.is.htmlElement(i)&&(t?i.removeAttribute("hidden"):i.setAttribute("hidden",""))}function A(e,t){function n(e){var t="";switch(e){case"hd2160":t="4K";break;case"hd1440":t="WQHD";break;case"hd1080":case"hd720":t="HD"}return t.length?b(t):null}var i=pe.elements.settings.panes.quality.querySelector("ul");a.is.array(e)?pe.quality.options=e.filter(function(e){return a.inArray(pe.config.quality.options,e)}):pe.quality.options=pe.config.quality.options,a.is.string(t)&&a.inArray(pe.quality.options,t)&&(pe.quality.selected=t);var o=!a.is.empty(pe.quality.options)&&"youtube"===pe.type;C("quality",o),o&&(a.emptyElement(i),pe.quality.options.forEach(function(e){var t=a.createElement("li"),o=a.createElement("label",{class:pe.config.classNames.control}),s=a.createElement("input",a.extend(a.getAttributesFromSelector(pe.config.selectors.inputs.quality),{type:"radio",name:"plyr-quality",value:e}));o.appendChild(s),o.appendChild(document.createTextNode(T("quality",e)));var r=n(e);a.is.htmlElement(r)&&o.appendChild(r),t.appendChild(o),i.appendChild(t)}),S("quality",i))}function T(e,t){switch(e){case"speed":return 1===t?"Normal":t+"&times;";case"quality":switch(t){case"hd2160":return"2160P";case"hd1440":return"1440P";case"hd1080":return"1080P";case"hd720":return"720P";case"large":return"480P";case"medium":return"360P";case"small":return"240P";case"tiny":return"Tiny";case"default":return"Auto";default:return t}case"captions":return q()}}function S(e,t){var n=pe.elements.settings.panes[e],i=null;switch(e){case"captions":i=pe.captions.language,pe.captions.enabled||(i="");break;default:if(i=pe[e].selected,a.is.empty(i)&&(i=pe.config[e].default),!a.inArray(pe[e].options,i))return void fe("Unsupported option")}a.is.htmlElement(t)||(t=n&&n.querySelector("ul"));var o=t&&t.querySelector('input[value="'+i+'"]');a.is.htmlElement(o)&&(o.checked=!0,pe.elements.settings.tabs[e].querySelector("."+pe.config.classNames.menu.value).innerHTML=T(e,i))}function x(){var e=pe.elements.settings.panes.captions.querySelector("ul");if(C("captions",!a.is.empty(pe.captions.tracks)),a.emptyElement(e),!a.is.empty(pe.captions.tracks)){var t=[].map.call(pe.captions.tracks,function(e){return{language:e.language,badge:!0,label:a.is.empty(e.label)?e.language.toUpperCase():e.label}});t.unshift({language:"",label:pe.config.i18n.none}),t.forEach(function(t){var n=a.createElement("li"),i=a.createElement("label",{class:pe.config.classNames.control}),o=a.createElement("input",a.extend(a.getAttributesFromSelector(pe.config.selectors.inputs.language),{type:"radio",name:"plyr-language",value:t.language}));t.language.toLowerCase()===pe.captions.language.toLowerCase()&&(o.checked=!0),i.appendChild(o),i.appendChild(document.createTextNode(t.label||t.language)),t.badge&&i.appendChild(b(t.language.toUpperCase())),n.appendChild(i),e.appendChild(n)}),S("captions",e)}}function N(e,t){a.is.array(e)?pe.speed.options=e.filter(function(e){return a.inArray(pe.config.speed.options,e)}):pe.speed.options=pe.config.speed.options,a.is.number(t)&&a.inArray(pe.speed.options,t)&&(pe.speed.selected=t);var n=!a.is.empty(pe.speed.options);if(C("speed",n),n){var i=pe.elements.settings.panes.speed.querySelector("ul");pe.elements.settings.tabs.speed.removeAttribute("hidden"),pe.elements.settings.panes.speed.removeAttribute("hidden"),a.emptyElement(i),pe.speed.options.forEach(function(e){var t=a.createElement("li"),n=a.createElement("label",{class:pe.config.classNames.control}),o=a.createElement("input",a.extend(a.getAttributesFromSelector(pe.config.selectors.inputs.speed),{type:"radio",name:"plyr-speed",value:e}));n.appendChild(o),n.insertAdjacentHTML("beforeend",T("speed",e)),t.appendChild(n),i.appendChild(t)}),S("speed",i)}}function P(){if(pe.supported.full&&"audio"!==pe.type&&pe.config.fullscreen.enabled){var e=s.fullscreen;e||pe.config.fullscreen.fallback&&!a.inFrame()?(ge((e?"Native":"Fallback")+" fullscreen enabled"),a.toggleClass(pe.elements.container,pe.config.classNames.fullscreen.enabled,!0)):ge("Fullscreen not supported and fallback disabled"),pe.elements.buttons&&pe.elements.buttons.fullscreen&&a.toggleState(pe.elements.buttons.fullscreen,!1),l()}}function I(){function e(){pe.captions.currentTrack=null,[].forEach.call(pe.captions.tracks,function(e){e.language===pe.captions.language.toLowerCase()&&(pe.captions.currentTrack=e)})}if(a.is.empty(pe.storage.language)?a.is.empty(pe.captions.language)&&(pe.captions.language=pe.config.captions.language.toLowerCase()):pe.captions.language=pe.storage.language,a.is.boolean(pe.captions.enabled)||(a.is.empty(pe.storage.language)?pe.captions.enabled=pe.config.captions.active:pe.captions.enabled=pe.storage.captions),!a.inArray(["video","vimeo"],pe.type)||"video"===pe.type&&!s.textTracks)return pe.captions.tracks=null,void(a.inArray(pe.config.controls,"settings")&&a.inArray(pe.config.settings,"captions")&&x());if(a.is.htmlElement(pe.elements.captions)||(pe.elements.captions=a.createElement("div",a.getAttributesFromSelector(pe.config.selectors.captions)),a.insertAfter(pe.elements.captions,pe.elements.wrapper)),"video"===pe.type&&(pe.captions.tracks=pe.media.textTracks),a.toggleClass(pe.elements.container,pe.config.classNames.captions.enabled,!a.is.empty(pe.captions.tracks)),!a.is.empty(pe.captions.tracks)){if(L(),e(),!a.is.track(pe.captions.currentTrack)){var t=pe.config.captions.language;pe.captions.language=t,e(),a.is.track(pe.captions.currentTrack)||pe.toggleCaptions(!1),S("captions")}if("video"===pe.type){[].forEach.call(pe.captions.tracks,function(e){a.off(e,"cuechange",F),e.mode="hidden"});var n=a.inArray(["captions","subtitles"],pe.captions.currentTrack&&pe.captions.currentTrack.kind);a.is.track(pe.captions.currentTrack)&&n&&(a.on(pe.captions.currentTrack,"cuechange",F),pe.captions.currentTrack.activeCues&&pe.captions.currentTrack.activeCues.length>0&&F(pe.captions.currentTrack))}else"vimeo"===pe.type&&pe.captions.active&&pe.embed.enableTextTrack(pe.captions.language);a.inArray(pe.config.controls,"settings")&&a.inArray(pe.config.settings,"captions")&&x()}}function q(){return!s.textTracks||a.is.empty(pe.captions.tracks)?pe.config.i18n.none:pe.captions.enabled?pe.captions.currentTrack.label:pe.config.i18n.disabled}function F(e){a.is.event(e)&&(e=e.target);var t=e.activeCues[0];a.is.cue(t)?_(t.getCueAsHTML()):_(),r(pe.media,"cuechange")}function _(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 fe("No captions element to render to")}function L(){if(pe.elements.buttons.captions){var e=pe.storage.captions;a.is.boolean(e)?pe.captions.active=e:e=pe.captions.active,e&&(a.toggleClass(pe.elements.container,pe.config.classNames.captions.active,!0),a.toggleState(pe.elements.buttons.captions,!0))}}function M(){if(pe.config.loadSprite){var e=g();e.absolute?(ge("AJAX loading absolute SVG sprite"+(pe.browser.isIE?" (due to IE)":"")),a.loadSprite(e.url,"sprite-plyr")):ge("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}):E({id:pe.id,seektime:pe.config.seekTime,speed:"-",quality:"-",captions:q(),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)&&V(),pe.config.tooltips.controls)for(var i=c([pe.config.selectors.controls.wrapper," ",pe.config.selectors.labels," .",pe.config.classNames.hidden].join("")),o=i.length-1;o>=0;o--){var s=i[o];a.toggleClass(s,pe.config.classNames.hidden,!1),a.toggleClass(s,pe.config.classNames.tooltip,!0)}}function V(){try{return pe.elements.controls=u(pe.config.selectors.controls.wrapper),pe.elements.buttons={play:c(pe.config.selectors.buttons.play),pause:u(pe.config.selectors.buttons.pause),restart:u(pe.config.selectors.buttons.restart),rewind:u(pe.config.selectors.buttons.rewind),forward:u(pe.config.selectors.buttons.forward),mute:u(pe.config.selectors.buttons.mute),pip:u(pe.config.selectors.buttons.pip),airplay:u(pe.config.selectors.buttons.airplay),settings:u(pe.config.selectors.buttons.settings),captions:u(pe.config.selectors.buttons.captions),fullscreen:u(pe.config.selectors.buttons.fullscreen)},pe.elements.progress=u(pe.config.selectors.progress),pe.elements.inputs={seek:u(pe.config.selectors.inputs.seek),volume:u(pe.config.selectors.inputs.volume)},pe.elements.display={buffer:u(pe.config.selectors.display.buffer),duration:u(pe.config.selectors.display.duration),currentTime:u(pe.config.selectors.display.currentTime)},a.is.htmlElement(pe.elements.progress)&&(pe.elements.display.seekTooltip=pe.elements.progress.querySelector("."+pe.config.classNames.tooltip)),!0}catch(e){return fe("It looks like there is a problem with your custom controls HTML",e),j(!0),!1}}function O(){a.toggleClass(pe.elements.container,pe.config.selectors.container.replace(".",""),pe.supported.full)}function j(e){e&&a.inArray(i.html5,pe.type)?pe.media.setAttribute("controls",""):pe.media.removeAttribute("controls")}function D(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 R(){var e=null;pe.storage={},s.storage&&pe.config.storage.enabled&&(window.localStorage.removeItem("plyr-volume"),(e=window.localStorage.getItem(pe.config.storage.key))&&(/^\d+(\.\d+)?$/.test(e)?B({volume:parseFloat(e)}):pe.storage=JSON.parse(e)))}function B(e){s.storage&&pe.config.storage.enabled&&(a.extend(pe.storage,e),window.localStorage.setItem(pe.config.storage.key,JSON.stringify(pe.storage)))}function H(){pe.media?(pe.supported.full&&(a.toggleClass(pe.elements.container,pe.config.classNames.type.replace("{0}",pe.type),!0),a.inArray(i.embed,pe.type)&&a.toggleClass(pe.elements.container,pe.config.classNames.type.replace("{0}","video"),!0),a.toggleClass(pe.elements.container,pe.config.classNames.pip.supported,s.pip&&"video"===pe.type),a.toggleClass(pe.elements.container,pe.config.classNames.airplay.supported,s.airplay&&a.inArray(i.html5,pe.type)),a.toggleClass(pe.elements.container,pe.config.classNames.stopped,pe.config.autoplay),a.toggleClass(pe.elements.container,pe.config.classNames.isIos,pe.browser.isIos),a.toggleClass(pe.elements.container,pe.config.classNames.isTouch,s.touch)),a.inArray(["video","youtube","vimeo"],pe.type)&&(pe.elements.wrapper=a.createElement("div",{class:pe.config.classNames.video}),a.wrap(pe.media,pe.elements.wrapper)),a.inArray(i.embed,pe.type)&&W()):fe("No media element found!")}function W(){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=c('[id^="'+pe.type+'-"]'),i=n.length-1;i>=0;i--)a.removeElement(n[i]);if(a.toggleClass(pe.elements.wrapper,pe.config.classNames.embed,!0),"youtube"===pe.type)pe.media.setAttribute("id",t),a.is.object(window.YT)?Q(e):(a.injectScript(pe.config.urls.youtube.api),window.onYouTubeReadyCallbacks=window.onYouTubeReadyCallbacks||[],window.onYouTubeReadyCallbacks.push(function(){Q(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))U(e);else{a.injectScript(pe.config.urls.vimeo.api);var o=window.setInterval(function(){a.is.object(window.Vimeo)&&(window.clearInterval(o),U(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),J.call(s))},50)}}function Y(){pe.supported.full&&(ue(),de()),D(u("iframe"))}function Q(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,modestbranding:1,disablekb:1,playsinline:1,origin:window.location.hostname,widget_referrer:window.location.href},events:{onError:function(e){r(pe.elements.container,"error",!0,{code:e.data,embed:e.target})},onPlaybackQualityChange:function(e){var t=e.target;pe.media.quality=t.getPlaybackQuality(),r(pe.media,"qualitychange")},onPlaybackRateChange:function(e){var t=e.target;pe.media.playbackRate=t.getPlaybackRate(),r(pe.media,"ratechange")},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(),a.inArray(pe.config.controls,"settings")&&a.inArray(pe.config.settings,"speed")&&N(t.getAvailablePlaybackRates(),t.getPlaybackRate()),pe.config.title=t.getVideoData().title,pe.supported.full&&pe.media.setAttribute("tabindex",-1),Y(),r(pe.media,"timeupdate"),r(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.media.buffered)&&r(pe.media,"progress"),pe.media.lastBuffered=pe.media.buffered,1===pe.media.buffered&&(window.clearInterval(me.buffering),r(pe.media,"canplaythrough"))},200)},onStateChange:function(e){var t=e.target;switch(window.clearInterval(me.playing),e.data){case 0:if(pe.config.loop.active){t.stopVideo(),t.playVideo();break}pe.media.paused=!0,r(pe.media,"ended");break;case 1:pe.media.paused=!1,pe.media.seeking&&r(pe.media,"seeked"),pe.media.seeking=!1,r(pe.media,"play"),r(pe.media,"playing"),me.playing=window.setInterval(function(){pe.media.currentTime=t.getCurrentTime(),r(pe.media,"timeupdate")},100),pe.media.duration!==t.getDuration()&&(pe.media.duration=t.getDuration(),r(pe.media,"durationchange")),A(t.getAvailableQualityLevels(),t.getPlaybackQuality());break;case 2:pe.media.paused=!0,r(pe.media,"pause")}r(pe.elements.container,"statechange",!1,{code:e.data})}}})}function U(e){pe.embed=new window.Vimeo.Player(pe.media,{id:e,loop:pe.config.loop.active,autoplay:pe.config.autoplay,byline:!1,portrait:!1,title:!1}),pe.media.play=function(){pe.embed.play(),pe.media.paused=!1},pe.media.pause=function(){pe.embed.pause(),pe.media.paused=!0},pe.media.stop=function(){pe.embed.stop(),pe.media.paused=!0},pe.media.paused=!0,pe.media.currentTime=0,Y(),pe.embed.getCurrentTime().then(function(e){pe.media.currentTime=e,r(pe.media,"timeupdate")}),pe.embed.getDuration().then(function(e){pe.media.duration=e,r(pe.media,"durationchange")}),pe.embed.getTextTracks().then(function(e){pe.captions.tracks=e,I()}),pe.embed.on("cuechange",function(e){var t=null;e.cues.length&&(t=a.stripHTML(e.cues[0].text)),_(t)}),pe.embed.on("loaded",function(){a.is.htmlElement(pe.embed.element)&&pe.supported.full&&pe.embed.element.setAttribute("tabindex",-1)}),pe.embed.on("play",function(){pe.media.paused=!1,r(pe.media,"play"),r(pe.media,"playing")}),pe.embed.on("pause",function(){pe.media.paused=!0,r(pe.media,"pause")}),pe.embed.on("timeupdate",function(e){pe.media.seeking=!1,pe.media.currentTime=e.seconds,r(pe.media,"timeupdate")}),pe.embed.on("progress",function(e){pe.media.buffered=e.percent,r(pe.media,"progress"),1===parseInt(e.percent)&&r(pe.media,"canplaythrough")}),pe.embed.on("seeked",function(){pe.media.seeking=!1,r(pe.media,"seeked"),r(pe.media,"play")}),pe.embed.on("ended",function(){pe.media.paused=!0,r(pe.media,"ended")})}function J(){pe.embed=window.SC.Widget(this),pe.embed.bind(window.SC.Widget.Events.READY,function(){pe.media.play=function(){pe.embed.play(),pe.media.paused=!1},pe.media.pause=function(){pe.embed.pause(),pe.media.paused=!0},pe.media.stop=function(){pe.embed.seekTo(0),pe.embed.pause(),pe.media.paused=!0},pe.media.paused=!0,pe.media.currentTime=0,pe.embed.getDuration(function(e){pe.media.duration=e/1e3,Y()}),pe.embed.getPosition(function(e){pe.media.currentTime=e,r(pe.media,"timeupdate")}),pe.embed.bind(window.SC.Widget.Events.PLAY,function(){pe.media.paused=!1,r(pe.media,"play"),r(pe.media,"playing")}),pe.embed.bind(window.SC.Widget.Events.PAUSE,function(){pe.media.paused=!0,r(pe.media,"pause")}),pe.embed.bind(window.SC.Widget.Events.PLAY_PROGRESS,function(e){pe.media.seeking=!1,pe.media.currentTime=e.currentPosition/1e3,r(pe.media,"timeupdate")}),pe.embed.bind(window.SC.Widget.Events.LOAD_PROGRESS,function(e){pe.media.buffered=e.loadProgress,r(pe.media,"progress"),1===parseInt(e.loadProgress)&&r(pe.media,"canplaythrough")}),pe.embed.bind(window.SC.Widget.Events.FINISH,function(){pe.media.paused=!0,r(pe.media,"ended")})})}function X(){a.toggleClass(pe.elements.container,pe.config.classNames.playing,!pe.media.paused),a.toggleClass(pe.elements.container,pe.config.classNames.stopped,pe.media.paused),pe.toggleControls(pe.media.paused)}function z(e){var t=pe.elements.settings.form,n=pe.elements.buttons.settings,i=a.is.boolean(e)?e:t&&"true"===t.getAttribute("aria-hidden");if(a.is.event(e)){var o=t&&t.contains(e.target),s=e.target===pe.elements.buttons.settings;if(o||!o&&!s&&i)return;s&&e.stopPropagation()}n&&n.setAttribute("aria-expanded",i),t&&(t.setAttribute("aria-hidden",!i),i?t.removeAttribute("tabindex"):t.setAttribute("tabindex",-1))}function G(e){var t,n,i=e.cloneNode(!0);return i.style.position="absolute",i.style.opacity=0,i.setAttribute("aria-hidden",!1),[].forEach.call(i.querySelectorAll("input[name]"),function(e){var t=e.getAttribute("name");e.setAttribute("name",t+"-clone")}),e.parentNode.appendChild(i),t=i.scrollWidth,n=i.scrollHeight,a.removeElement(i),{width:t,height:n}}function K(e){var t=pe.elements.settings.menu,n=e.target,i="false"===n.getAttribute("aria-expanded"),o=document.getElementById(n.getAttribute("aria-controls"));if(a.is.htmlElement(o)&&"tabpanel"===o.getAttribute("role")){var r=t.querySelector('[role="tabpanel"][aria-hidden="false"]'),l=r.parentNode;if([].forEach.call(t.querySelectorAll('[aria-controls="'+r.getAttribute("id")+'"]'),function(e){e.setAttribute("aria-expanded",!1)}),s.transitions&&!s.reducedMotion){l.style.width=r.scrollWidth+"px",l.style.height=r.scrollHeight+"px";var c=G(o),u=function(e){e.target===l&&a.inArray(["width","height"],e.propertyName)&&(l.style.width="",l.style.height="",a.off(l,a.transitionEnd,u))};a.on(l,a.transitionEnd,u),l.style.width=c.width+"px",l.style.height=c.height+"px"}r.setAttribute("aria-hidden",!0),r.setAttribute("tabindex",-1),o.setAttribute("aria-hidden",!i),n.setAttribute("aria-expanded",i),o.removeAttribute("tabindex")}}function $(){if(pe.supported.full){var e=pe.media.muted?0:pe.media.volume;pe.elements.inputs.volume&&ee(pe.elements.inputs.volume,e)}B({volume:pe.media.volume}),a.toggleClass(pe.elements.container,pe.config.classNames.muted,pe.media.muted),pe.supported.full&&pe.elements.buttons.mute&&a.toggleState(pe.elements.buttons.mute,pe.media.muted)}function Z(e){pe.loading="waiting"===e.type,clearTimeout(me.loading),me.loading=setTimeout(function(){a.toggleClass(pe.elements.container,pe.config.classNames.loading,pe.loading),pe.toggleControls(pe.loading)},pe.loading?250:0)}function ee(e,t){a.is.htmlElement(e)&&(e.value=t,m(e))}function te(e,t){if(a.is.undefined(t)&&(t=0),a.is.undefined(e)&&(e=pe.elements.display.buffer),a.is.htmlElement(e)){e.value=t;var n=e.getElementsByTagName("span")[0];a.is.htmlElement(n)&&(n.childNodes[0].nodeValue=t)}}function ne(e){if(pe.supported.full){var t=0,n=pe.getDuration();if(e)switch(e.type){case"timeupdate":case"seeking":t=a.getPercentage(pe.media.currentTime,n),"timeupdate"===e.type&&ee(pe.elements.inputs.seek,t);break;case"playing":case"progress":t=function(){var e=pe.media.buffered;return e&&e.length?a.getPercentage(e.end(0),n):a.is.number(e)?100*e:0}(),te(pe.elements.display.buffer,t)}}}function ie(e,t){if(a.is.htmlElement(t)){isNaN(e)&&(e=0);var n=parseInt(e%60),i=parseInt(e/60%60),o=parseInt(e/60/60%60),s=pe.getDuration(),r=parseInt(s/60/60%60)>0;n=("0"+n).slice(-2),i=("0"+i).slice(-2);var l=(r?o+":":"")+i+":"+n;return t.textContent=l,l}}function ae(){if(pe.supported.full){var e=pe.getDuration()||0;!pe.elements.display.duration&&pe.config.displayDuration&&pe.media.paused&&ie(e,pe.elements.display.currentTime),pe.elements.display.duration&&ie(e,pe.elements.display.duration),se()}}function oe(e){ie(pe.media.currentTime,pe.elements.display.currentTime),e&&"timeupdate"===e.type&&pe.media.seeking||ne(e)}function se(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.classNames.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),ie(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 re(){function e(){var e=pe.togglePlay(),t=pe.elements.buttons[e?"pause":"play"];a.is.htmlElement(t)&&t.focus()}function t(e){return e.keyCode?e.keyCode:e.which}function n(n){var i=t(n),o="keydown"===n.type,l=o&&i===r;if(a.is.number(i))if(o){if(a.inArray([38,40],i)){var c=a.getFocusElement();if(a.is.htmlElement(c)&&"radio"===a.getFocusElement().type)return}switch(a.inArray([48,49,50,51,52,53,54,56,57,32,75,38,40,77,39,37,70,67,73,76,79],i)&&(n.preventDefault(),n.stopPropagation()),i){case 48:case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 57:l||function(){var e=pe.media.duration;a.is.number(e)&&pe.seek(e/10*(i-48))}();break;case 32:case 75:l||e();break;case 38:pe.increaseVolume(.1);break;case 40:pe.decreaseVolume(.1);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.setLoop("start");break;case 76:pe.setLoop();break;case 79:pe.setLoop("end")}!s.fullscreen&&pe.fullscreen.active&&27===i&&pe.toggleFullscreen(),r=i}else r=null}var i=pe.browser.isIE?"change":"input";if(pe.config.keyboard.focused){var r=null;pe.config.keyboard.global&&a.on(window,"keydown keyup",function(e){var i=t(e),o=a.getFocusElement();!a.inArray([48,49,50,51,52,53,54,56,57,75,77,70,67,73,76,79],i)||a.is.htmlElement(o)&&a.matches(o,pe.config.selectors.editable)||n(e)},!1),a.on(pe.elements.container,"keydown keyup",n,!1)}a.on(pe.elements.container,"focusout",function(e){a.toggleClass(e.target,pe.config.classNames.tabFocus,!1)}),a.on(pe.elements.container,"keydown",function(e){9===e.keyCode&&window.setTimeout(function(){a.toggleClass(a.getFocusElement(),pe.config.classNames.tabFocus,!0)},0)});var l=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(){pe.toggleFullscreen()}),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",function(e){K(e),a.matches(e.target,pe.config.selectors.inputs.language)?l.call(this,e,pe.config.listeners.language,function(){pe.toggleCaptions(!0),pe.setLanguage(e.target.value.toLowerCase())}):a.matches(e.target,pe.config.selectors.inputs.quality)?l.call(this,e,pe.config.listeners.quality,function(){pe.setQuality(e.target.value)}):a.matches(e.target,pe.config.selectors.inputs.speed)?l.call(this,e,pe.config.listeners.speed,function(){pe.setSpeed(parseFloat(e.target.value))}):a.matches(e.target,pe.config.selectors.buttons.loop)&&l.call(this,e,pe.config.listeners.loop,function(){fe("Set loop")})}),a.proxy(pe.elements.inputs.seek,i,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,i,pe.config.listeners.volume,function(){pe.setVolume(event.target.value)}),pe.browser.isWebkit&&a.on(c('input[type="range"]'),"input",m),a.on(pe.elements.progress,"mouseenter mouseleave mousemove",se),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)),a.proxy(pe.elements.inputs.volume,"wheel",pe.config.listeners.volume,function(e){var t=e.webkitDirectionInvertedFromDevice,n=0;(e.deltaY<0||e.deltaX>0)&&(t?(pe.decreaseVolume(.02),n=-1):(pe.increaseVolume(.02),n=1)),(e.deltaY>0||e.deltaX<0)&&(t?(pe.increaseVolume(.02),n=1):(pe.decreaseVolume(.02),n=-1)),(1===n&&pe.media.volume<1||-1===n&&pe.media.volume>0)&&e.preventDefault()},!1),s.fullscreen&&a.on(document,o.eventType,function(e){pe.toggleFullscreen(e)})}function le(){if(a.on(pe.media,"timeupdate seeking",oe),a.on(pe.media,"durationchange loadedmetadata",ae),a.on(pe.media,"ended",function(){"video"===pe.type&&pe.config.showPosterOnEnd&&("video"===pe.type&&_(),pe.restart(),pe.media.load())}),a.on(pe.media,"progress playing",ne),a.on(pe.media,"volumechange",$),a.on(pe.media,"play pause ended",X),a.on(pe.media,"waiting canplay seeked",Z),pe.config.clickToPlay&&"audio"!==pe.type){var e=u("."+pe.config.classNames.video);if(!e)return;e.style.cursor="pointer",a.on(e,"click",function(){pe.config.hideControls&&s.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,"ratechange",function(){pe.speed.selected=pe.media.playbackRate,S("speed"),B({speed:pe.speed.selected})}),a.on(pe.media,"qualitychange",function(){pe.quality.selected=pe.media.quality,S("quality"),B({quality:pe.quality.selected})}),a.on(pe.media,"captionchange",function(){B({language:pe.captions.language})}),a.on(pe.media,"captionsenabled captionsdisabled",function(){S("captions"),B({captions:pe.captions.enabled})}),a.on(pe.media,pe.config.events.concat(["keyup","keydown"]).join(" "),function(e){r(pe.elements.container,e.type,!0)})}function ce(){if(a.inArray(i.html5,pe.type)){for(var e=pe.media.querySelectorAll("source"),t=0;t<e.length;t++)a.removeElement(e[t]);pe.media.setAttribute("src",pe.config.blankVideo),pe.media.load(),ge("Cancelled network requests")}}function ue(){if(!pe.supported.full)return fe("Basic support only",pe.type),d("controls"),d("buttons.play"),void j(!0);a.is.htmlElement(pe.elements.controls)||(M(),re()),a.is.htmlElement(pe.elements.controls)&&(le(),j(),P(),I(),pe.setVolume(),$(),pe.setSpeed(),pe.setLoop(),oe(),X())}function de(){pe.ready=!0,window.setTimeout(function(){r(pe.elements.container,"ready",!0)},0),pe.config.autoplay&&pe.play()}var pe=this,me={};pe.ready=!1,pe.media=e,a.is.string(pe.media)&&(pe.media=document.querySelectorAll(pe.media)),(window.jQuery&&pe.media instanceof jQuery||a.is.nodeList(pe.media)||a.is.array(pe.media))&&(pe.media=pe.media[0]),pe.config=a.extend({},n,t,function(){try{return JSON.parse(pe.media.getAttribute("data-plyr"))}catch(e){}}()),pe.elements={container:null,buttons:{},display:{},progress:{},inputs:{},settings:{menu:null,panes:{},tabs:{}},captions:null},pe.captions={enabled:null,tracks:null,currentTrack:null},pe.fullscreen={active:!1},pe.speed={selected:null,options:[]},pe.quality={selected:null,options:[]},pe.loop={indicator:{start:0,end:0}};var ge=function(){},fe=function(){},ye=function(){};pe.config.debug&&"console"in window&&(ge=console.log,fe=console.warn,ye=console.error,ge("Debugging enabled")),ge("Config",pe.config),ge("Support",s),pe.core={getElement:u,getElements:c,trigger:r,setCaption:_,setupCaptions:I,toggleNativeControls:j,updateTimeDisplay:ie,updateSource:function(e){a.is.object(e)&&"sources"in e&&e.sources.length?(ce(),pe.destroy(function(){if(d(pe.media),d("captions"),d("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(i.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}pe.elements.container.appendChild(pe.media),a.is.boolean(e.autoplay)&&(pe.config.autoplay=e.autoplay),a.inArray(i.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.muted&&pe.media.setAttribute("muted",""),pe.config.inline&&pe.media.setAttribute("playsinline","")),a.toggleClass(pe.elements.container,pe.config.classNames.captions.active,pe.captions.enabled),O(),a.inArray(i.html5,pe.type)&&p("source",e.sources),H(),a.inArray(i.html5,pe.type)&&("tracks"in e&&p("track",e.tracks),pe.media.load()),(a.inArray(i.html5,pe.type)||a.inArray(i.embed,pe.type)&&!pe.supported.full)&&(ue(),de()),pe.config.title=e.title,D()},!1)):fe("Invalid source format")},toggleMenu:z,timers:me,support:s,log:ge,warn:fe,error:ye},function(e){if(null!==e&&!a.is.undefined(e)&&a.is.htmlElement(e)){if(e.plyr)return fe("Target already setup"),void(pe=e.plyr);if(pe.config.enabled)if(a.checkSupport().basic){pe.elements.original=e.cloneNode(!0);var t=e.tagName.toLowerCase();switch(t){case"div":if(pe.type=e.getAttribute("data-type"),pe.embedId=e.getAttribute("data-video-id"),a.is.empty(pe.type))return void ye("Setup failed: embed type missing");if(a.is.empty(pe.embedId))return void ye("Setup failed: video id missing");e.removeAttribute("data-type"),e.removeAttribute("data-video-id");break;case"iframe":break;case"video":case"audio":pe.type=t,null!==e.getAttribute("crossorigin")&&(pe.config.crossorigin=!0),null!==e.getAttribute("autoplay")&&(pe.config.autoplay=!0),null!==e.getAttribute("playsinline")&&(pe.config.inline=!0),null!==e.getAttribute("muted")&&(pe.config.muted=!0),null!==e.getAttribute("loop")&&(pe.config.loop.active=!0);break;default:return void ye("Setup failed: unsupported type")}pe.browser=a.getBrowser(),R(),pe.supported=a.checkSupport(pe.type,pe.config.inline),pe.supported.basic?(e.plyr=pe,pe.elements.container=a.wrap(e,a.createElement("div")),pe.elements.container.setAttribute("tabindex",0),O(),ge(pe.browser.name+" "+pe.browser.version),H(),pe.config.debug&&a.on(pe.elements.container,pe.config.events.join(" "),function(e){ge("event: "+e.type)}),(a.inArray(i.html5,pe.type)||a.inArray(i.embed,pe.type)&&!pe.supported.full)&&(ue(),de(),D())):ye("Setup failed: no support")}else ye("Setup failed: no support");else ye("Setup failed: disabled by config")}else ye("Setup failed: no suitable element passed")}(pe.media)}var t={x:0,y:0},n={enabled:!0,title:"",debug:!1,autoplay:!1,seekTime:10,volume:1,muted:!1,displayDuration:!0,clickToPlay:!0,hideControls:!0,showPosterOnEnd:!1,disableContextMenu:!0,loadSprite:!0,iconPrefix:"plyr",iconUrl:"https://cdn.plyr.io/2.0.10/plyr.svg",blankVideo:"https://cdn.plyr.io/static/blank.mp4",duration:null,quality:{default:"default",options:["hd2160","hd1440","hd1080","hd720","large","medium","small","tiny","default"]},loop:{active:!1,start:null,end:null},speed:{default:1,options:[.5,.75,1,1.25,1.5,1.75,2]},keyboard:{focused:!0,global:!1},tooltips:{controls:!1,seek:!0},captions:{active:!1,language:window.navigator.language.split("-")[0]},fullscreen:{enabled:!0,fallback:!0},storage:{enabled:!0,key:"plyr"},controls:["play-large","play","progress","current-time","mute","volume","captions","settings","pip","airplay","fullscreen"],settings:["captions","quality","speed","loop"],i18n:{restart:"Restart",rewind:"Rewind {seektime} secs",play:"Play",pause:"Pause",forward:"Forward {seektime} secs",seek:"Seek",played:"Played",buffered:"Buffered",currentTime:"Current time",duration:"Duration",volume:"Volume",toggleMute:"Toggle Mute",toggleCaptions:"Toggle Captions",toggleFullscreen:"Toggle Fullscreen",frameTitle:"Player for {title}",captions:"Captions",settings:"Settings",speed:"Speed",quality:"Quality",loop:"Loop",start:"Start",end:"End",all:"All",reset:"Reset",none:"None",disabled:"Disabled"},urls:{vimeo:{api:"https://player.vimeo.com/api/player.js"},youtube:{api:"https://www.youtube.com/iframe_api"},soundcloud:{api:"https://w.soundcloud.com/player/api.js"}},listeners:{seek:null,play:null,pause:null,restart:null,rewind:null,forward:null,mute:null,volume:null,captions:null,fullscreen:null,pip:null,airplay:null,speed:null,quality:null,loop:null,language:null},events:["ended","progress","stalled","playing","waiting","canplay","canplaythrough","loadstart","loadeddata","loadedmetadata","timeupdate","volumechange","play","pause","error","seeking","seeked","emptied","ratechange","cuechange","enterfullscreen","exitfullscreen","captionsenabled","captionsdisabled","captionchange","controlshidden","controlsshown","statechange","qualitychange","qualityrequested"],selectors:{editable:"input, textarea, select, [contenteditable]",container:".plyr",controls:{container:null,wrapper:".plyr__controls"},labels:"[data-plyr]",buttons:{play:'[data-plyr="play"]',pause:'[data-plyr="pause"]',restart:'[data-plyr="restart"]',rewind:'[data-plyr="rewind"]',forward:'[data-plyr="fast-forward"]',mute:'[data-plyr="mute"]',captions:'[data-plyr="captions"]',fullscreen:'[data-plyr="fullscreen"]',pip:'[data-plyr="pip"]',airplay:'[data-plyr="airplay"]',settings:'[data-plyr="settings"]',loop:'[data-plyr="loop"]'},inputs:{seek:'[data-plyr="seek"]',volume:'[data-plyr="volume"]',speed:'[data-plyr="speed"]',language:'[data-plyr="language"]',quality:'[data-plyr="quality"]'},display:{currentTime:".plyr__time--current",duration:".plyr__time--duration",buffer:".plyr__progress--buffer",played:".plyr__progress--played",loop:".plyr__progress--loop",volume:".plyr__volume--display"},progress:".plyr__progress",captions:".plyr__captions",menu:{quality:".js-plyr__menu__list--quality"}},classNames:{video:"plyr__video-wrapper",embed:"plyr__video-embed",control:"plyr__control",type:"plyr--{0}",stopped:"plyr--stopped",playing:"plyr--playing",muted:"plyr--muted",loading:"plyr--loading",hover:"plyr--hover",tooltip:"plyr__tooltip",hidden:"plyr__sr-only",hideControls:"plyr--hide-controls",isIos:"plyr--is-ios",isTouch:"plyr--is-touch",menu:{value:"plyr__menu__value",badge:"plyr__badge"},captions:{enabled:"plyr--captions-enabled",active:"plyr--captions-active"},fullscreen:{enabled:"plyr--fullscreen-enabled",fallback:"plyr--fullscreen-fallback"},pip:{supported:"plyr--pip-supported",active:"plyr--pip-active"},airplay:{supported:"plyr--airplay-supported",active:"plyr--airplay-active"},tabFocus:"tab-focus"}},i={embed:["youtube","vimeo","soundcloud"],html5:["video","audio"]},a={is:{object:function(e){return null!==e&&"object"==typeof e&&e.constructor===Object},array:function(e){return null!==e&&Array.isArray(e)},number:function(e){return null!==e&&("number"==typeof e&&!isNaN(e-0)||"object"==typeof e&&e.constructor===Number)},string:function(e){return null!==e&&("string"==typeof e||"object"==typeof e&&e.constructor===String)},boolean:function(e){return null!==e&&"boolean"==typeof e},nodeList:function(e){return null!==e&&e instanceof NodeList},htmlElement:function(e){return null!==e&&e instanceof HTMLElement},function:function(e){return null!==e&&"function"==typeof e},event:function(e){return null!==e&&e instanceof Event},cue:function(e){this.instanceOf(e,window.TextTrackCue)||this.instanceOf(e,window.VTTCue)},track:function(e){return null!==e&&(this.instanceOf(e,window.TextTrack)||"string"==typeof e.kind)},undefined:function(e){return null!==e&&void 0===e},empty:function(e){return null===e||this.undefined(e)||(this.string(e)||this.array(e)||this.nodeList(e))&&0===e.length||this.object(e)&&0===Object.keys(e).length},instanceOf:function(e,t){return Boolean(e&&t&&e instanceof t)}},getBrowser:function(){var e,t,n,i=navigator.userAgent,a=navigator.appName,o=""+parseFloat(navigator.appVersion),s=parseInt(navigator.appVersion,10),r=!1,l=!1,c=!1,u=!1;return-1!==navigator.appVersion.indexOf("Windows NT")&&-1!==navigator.appVersion.indexOf("rv:11")?(r=!0,a="IE",o="11"):-1!==(t=i.indexOf("MSIE"))?(r=!0,a="IE",o=i.substring(t+5)):-1!==(t=i.indexOf("Chrome"))?(c=!0,a="Chrome",o=i.substring(t+7)):-1!==(t=i.indexOf("Safari"))?(u=!0,a="Safari",o=i.substring(t+7),-1!==(t=i.indexOf("Version"))&&(o=i.substring(t+8))):-1!==(t=i.indexOf("Firefox"))?(l=!0,a="Firefox",o=i.substring(t+8)):(e=i.lastIndexOf(" ")+1)<(t=i.lastIndexOf("/"))&&(a=i.substring(e,t),o=i.substring(t+1),a.toLowerCase()===a.toUpperCase()&&(a=navigator.appName)),-1!==(n=o.indexOf(";"))&&(o=o.substring(0,n)),-1!==(n=o.indexOf(" "))&&(o=o.substring(0,n)),s=parseInt(""+o,10),isNaN(s)&&(o=""+parseFloat(navigator.appVersion),s=parseInt(navigator.appVersion,10)),{name:a,version:s,isIE:r,isOldIE:r&&s<=9,isFirefox:l,isChrome:c,isSafari:u,isWebkit:"WebkitAppearance"in document.documentElement.style,isIPhone:/(iPhone|iPod)/gi.test(navigator.platform),isIos:/(iPad|iPhone|iPod)/gi.test(navigator.platform)}},checkSupport:function(e,t){var n=!1,i=!1,o=a.getBrowser(),r=o.isIPhone&&t&&s.inline;switch(e){case"video":i=(n=s.video)&&!o.isOldIE&&(!o.isIPhone||r);break;case"audio":i=(n=s.audio)&&!o.isOldIE;break;case"youtube":i=(n=s.video)&&!o.isOldIE&&(!o.isIPhone||r);break;case"vimeo":case"soundcloud":n=!0,i=!o.isOldIE&&!o.isIos;break;default:i=(n=s.audio&&s.video)&&!o.isOldIE}return{basic:n,full:i}},injectScript:function(e){if(!document.querySelectorAll('script[src="'+e+'"]').length){var t=document.createElement("script");t.src=e;var n=document.getElementsByTagName("script")[0];n.parentNode.insertBefore(t,n)}},inFrame:function(){try{return window.self!==window.top}catch(e){return!0}},inArray:function(e,t){return a.is.array(e)&&-1!==e.indexOf(t)},wrap:function(e,t){e.length||(e=[e]);for(var n=e.length-1;n>=0;n--){var i=n>0?t.cloneNode(!0):t,a=e[n],o=a.parentNode,s=a.nextSibling;return i.appendChild(a),s?o.insertBefore(i,s):o.appendChild(i),i}},removeElement:function(e){a.is.htmlElement(e)&&a.is.htmlElement(e.parentNode)&&e.parentNode.removeChild(e)},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){t.appendChild(a.createElement(e,n,i))},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){switch((e=e.trim()).charAt(0)){case".":var i=e.replace(".","");a.is.object(t)&&a.is.string(t.class)&&(t.class+=" "+i),n.class=i;break;case"#":n.id=e.replace("#","");break;case"[":var o=(e=e.replace(/[[\]]/g,"")).split("="),s=o[0],r=o.length>1?o[1].replace(/["']/g,""):"";n[s]=r}}),n},toggleClass:function(e,t,n){if(a.is.htmlElement(e)){var i=!1;if(e.classList)i=e.classList.contains(t),e.classList[n?"add":"remove"](t);else{i=a.inArray(e.className.split(" "),t);var o=(" "+e.className+" ").replace(/\s+/g," ").replace(" "+t+" ","");e.className=o+(n?" "+t:"")}return n&&!i||!n&&i}return null},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;return(n.matches||n.webkitMatchesSelector||n.mozMatchesSelector||n.msMatchesSelector||function(e){return-1!==[].indexOf.call(document.querySelectorAll(e),this)}).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,r){if(null!==e&&!a.is.undefined(e)){if(t=t.split(" "),a.is.boolean(r)||(r=!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=r;s.passiveListeners&&(c={passive:o,capture:r}),t.forEach(function(t){e[i?"addEventListener":"removeEventListener"](t,n,c)})}},on:function(e,t,n,i,o){a.toggleListener(e,t,n,!0,i,o)},off:function(e,t,n,i,o){a.toggleListener(e,t,n,!1,i,o)},dispatchEvent: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}).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;i<n;i++){var o=e[i];a.is.object(o)||(o={});for(var s in o)o[s]&&o[s].constructor&&o[s].constructor===Object?(t[s]=t[s]||{},a.extend(t[s],o[s])):t[s]=o[s]}return t}},parseYouTubeId:function(e){return e.match(/^.*(youtu.be\/|v\/|u\/\w\/|embed\/|watch\?v=|&v=)([^#&?]*).*/)?RegExp.$2:e},stripHTML:function(e){var t=document.createDocumentFragment(),n=document.createElement("div");return t.appendChild(n),n.innerHTML=e,t.firstChild.innerText},loadSprite:function(e,t){function n(e,t){e.innerHTML=t,document.body.insertBefore(e,document.body.childNodes[0])}if("string"==typeof e){var i="string"==typeof t;if(!i||!document.querySelectorAll("#"+t).length){var a=document.createElement("div");if(a.setAttribute("hidden",""),i&&a.setAttribute("id",t),s.storage){var o=window.localStorage.getItem("cache-"+t);if(null!==o){var r=JSON.parse(o);n(a,r.content)}}var l=new XMLHttpRequest;if(!("withCredentials"in l))return;l.open("GET",e,!0),l.onload=function(){s.storage&&window.localStorage.setItem("cache-"+t,JSON.stringify({content:l.responseText})),n(a,l.responseText)},l.send()}}},transitionEnd:function(){var e=document.createElement("span"),t={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd otransitionend",transition:"transitionend"};for(var n in t)if(void 0!==e.style[n])return t[n];return!1}()},o=function(){var e=function(){var e=!1;return a.is.function(document.cancelFullScreen)?e="":["webkit","o","moz","ms","khtml"].some(function(t){return a.is.function(document[t+"CancelFullScreen"])?(e=t,!0):a.is.function(document.msExitFullscreen)&&document.msFullscreenEnabled?(e="ms",!0):void 0}),e}();return{prefix:e,eventType:"ms"===e?"MSFullscreenChange":e+"fullscreenchange",isFullScreen:function(t){if(!s.fullscreen)return!1;switch(a.is.undefined(t)&&(t=document.body),e){case"":return document.fullscreenElement===t;case"moz":return document.mozFullScreenElement===t;default:return document[e+"FullscreenElement"]===t}},requestFullScreen:function(t){return!!s.fullscreen&&(a.is.htmlElement(t)||(t=document.body),e.length?t[e+("ms"===e?"RequestFullscreen":"RequestFullScreen")]():t.requestFullScreen())},cancelFullScreen:function(){return!!s.fullscreen&&(e.length?document[e+("ms"===e?"ExitFullscreen":"CancelFullScreen")]():document.cancelFullScreen())},element:function(){return s.fullscreen?e.length?document[e+"FullscreenElement"]:document.fullscreenElement:null}}}(),s={audio:"canPlayType"in document.createElement("audio"),video:"canPlayType"in document.createElement("video"),fullscreen:!1!==o.prefix,storage:function(){if(!("localStorage"in window))return!1;try{return window.localStorage.setItem("___test","___test"),window.localStorage.removeItem("___test"),!0}catch(e){return!1}}(),pip:!a.getBrowser().isIPhone&&a.is.function(a.createElement("video").webkitSetPresentationMode),airplay:a.is.function(window.WebKitPlaybackTargetAvailabilityEvent),inline:"playsInline"in document.createElement("video"),mime:function(e,t){var n=e.media;try{if(!a.is.function(n.canPlayType))return!1;if("video"===e.type)switch(t){case"video/webm":return n.canPlayType('video/webm; codecs="vp8, vorbis"').replace(/no/,"");case"video/mp4":return n.canPlayType('video/mp4; codecs="avc1.42E01E, mp4a.40.2"').replace(/no/,"");case"video/ogg":return n.canPlayType('video/ogg; codecs="theora"').replace(/no/,"")}else if("audio"===e.type)switch(t){case"audio/mpeg":return n.canPlayType("audio/mpeg;").replace(/no/,"");case"audio/ogg":return n.canPlayType('audio/ogg; codecs="vorbis"').replace(/no/,"");case"audio/wav":return n.canPlayType('audio/wav; codecs="1"').replace(/no/,"")}}catch(e){return!1}return!1},textTracks:"textTracks"in document.createElement("video"),passiveListeners:function(){var e=!1;try{var t=Object.defineProperty({},"passive",{get:function(){e=!0}});window.addEventListener("test",null,t)}catch(e){}return e}(),touch:"ontouchstart"in document.documentElement,transitions:!1!==a.transitionEnd,reducedMotion:"matchMedia"in window&&window.matchMedia("(prefers-reduced-motion)").matches};return e.prototype.play=function(){var e=this;return"play"in e.media&&e.media.play(),e},e.prototype.pause=function(){var e=this;return"pause"in e.media&&e.media.pause(),e},e.prototype.togglePlay=function(e){var t=this;return a.is.boolean(e)||(e=t.media.paused),e?t.play():t.pause(),e},e.prototype.isPlaying=function(){return!this.media.paused},e.prototype.stop=function(){var e=this;return e.restart(),e.pause(),e},e.prototype.restart=function(){var e=this;return e.seek(),e},e.prototype.rewind=function(e){var t=this;return a.is.number(e)||(e=t.config.seekTime),t.seek(t.media.currentTime-e),t},e.prototype.forward=function(e){var t=this;return a.is.number(e)||(e=t.config.seekTime),t.seek(t.media.currentTime+e),t},e.prototype.seek=function(e){var t=this,n=0,o=t.media.paused,s=t.getDuration();if(a.is.number(e)&&(n=e),n<0?n=0:n>s&&(n=s),a.inArray(i.embed,t.type)){switch(t.type){case"youtube":t.embed.seekTo(n);break;case"vimeo":t.embed.setCurrentTime(n);break;case"soundcloud":t.embed.seekTo(1e3*n)}o&&t.pause(),t.media.seeking=!0,t.core.trigger(t.media,"seeking")}else t.media.currentTime=n.toFixed(4);return t.core.log("Seeking to "+t.media.currentTime+" seconds"),t},e.prototype.setVolume=function(e){var t=this,n=!a.is.undefined(e);if(a.is.string(e)&&(e=parseFloat(e)),a.is.number(e)||(e=t.storage.volume),a.is.number(e)||(e=t.config.volume),e>1&&(e=1),e<0&&(e=0),t.media.volume=e,a.inArray(i.embed,t.type)){switch(t.type){case"youtube":t.embed.setVolume(100*t.media.volume);break;case"vimeo":case"soundcloud":t.embed.setVolume(t.media.volume)}t.core.trigger(t.media,"volumechange")}return 0===e?t.toggleMute(!0):t.media.muted&&n&&t.toggleMute(),t},e.prototype.increaseVolume=function(e){var t=this,n=t.media.muted?0:t.media.volume;return a.is.number(e)||(e=1),t.setVolume(n+e),t},e.prototype.decreaseVolume=function(e){var t=this,n=t.media.muted?0:t.media.volume;return a.is.number(e)||(e=1),t.setVolume(n-e),t},e.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,t.media.muted||0!==t.media.volume||t.setVolume(t.config.volume),a.inArray(i.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:t.config.volume)}t.core.trigger(t.media,"volumechange")}return t},e.prototype.setSpeed=function(e){var t=this;if(a.is.number(e)||(e=parseFloat(t.storage.speed||t.speed.selected||t.config.speed.default)),e<.1&&(e=.1),e>2&&(e=2),a.inArray(t.config.speed.options,e)){switch(t.type){case"youtube":t.embed.setPlaybackRate(e);break;case"vimeo":e=null,t.core.warn("Vimeo playback rate change is not supported");break;default:t.media.playbackRate=e}return t}t.core.warn("Unsupported speed ("+e+")")},e.prototype.setQuality=function(e){var t=this;a.is.string(e)||(e=parseFloat(t.storage.quality||t.config.quality.selected));{if(a.inArray(t.config.quality.options,e)){switch(t.type){case"youtube":t.core.trigger(t.media,"qualityrequested",!1,{quality:e}),t.embed.setPlaybackQuality(e);break;default:t.core.warn("Quality options are only available for YouTube")}return t}t.core.warn("Unsupported quality option ("+e+")")}},e.prototype.setLoop=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;break;case"end":if(t.config.loop.start>=n)return;t.config.loop.end=n;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}return t},e.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},e.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")},e.prototype.toggleCaptions=function(e){var t=this;if(t.supported.full&&t.elements.buttons.captions)return a.is.boolean(e)||(e=-1===t.elements.container.className.indexOf(t.config.classNames.captions.active)),t.captions.enabled===e?t:(t.captions.enabled=e,a.toggleState(t.elements.buttons.captions,t.captions.enabled),a.toggleClass(t.elements.container,t.config.classNames.captions.active,t.captions.enabled),t.core.trigger(t.media,t.captions.enabled?"captionsenabled":"captionsdisabled"),t)},e.prototype.setLanguage=function(e){var t=this;return a.is.empty(e)?(t.toggleCaptions(!1),t):(e=e.toLowerCase(),t.captions.language===e?t:(t.toggleCaptions(!0),t.captions.language=e,t.core.trigger(t.media,"captionchange"),t.core.setCaption(),t.core.setupCaptions(),t))},e.prototype.getLanguage=function(){return this.captions.language},e.prototype.toggleFullscreen=function(e){var n=this;if(s.fullscreen){if(!a.is.event(e)||e.type!==o.eventType)return n.fullscreen.active?o.cancelFullScreen():o.requestFullScreen(n.elements.container),void(n.fullscreen.active=o.isFullScreen(n.elements.container));n.fullscreen.active=o.isFullScreen(n.elements.container)}else n.fullscreen.active=!n.fullscreen.active,a.toggleClass(n.elements.container,n.config.classNames.fullscreen.fallback,n.fullscreen.active),n.fullscreen.active?t={x:window.pageXOffset||0,y:window.pageYOffset||0}:window.scrollTo(t.x,t.y),document.body.style.overflow=n.fullscreen.active?"hidden":"";return n.elements.buttons&&n.elements.buttons.fullscreen&&a.toggleState(n.elements.buttons.fullscreen,n.fullscreen.active),n.core.trigger(n.media,n.fullscreen.active?"enterfullscreen":"exitfullscreen"),n},e.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},e.prototype.airPlay=function(){var e=this;if(e.core.support.airplay)return e.media.webkitShowPlaybackTargetPicker(),e},e.prototype.toggleControls=function(e){var t=this;if(t.config.hideControls&&"audio"!==t.type){var n=0,i=e,o=!1,r=a.hasClass(t.elements.container,t.config.classNames.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.classNames.hideControls)),window.clearTimeout(t.core.timers.hover),i||t.media.paused||r){if(a.toggleClass(t.elements.container,t.config.classNames.hideControls,!1)&&t.core.trigger(t.media,"controlsshown"),t.media.paused||r)return;s.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.classNames.hideControls,!0)&&(t.core.trigger(t.media,"controlshidden"),a.inArray(t.config.controls,"settings")&&!a.is.empty(t.config.settings)&&t.core.toggleMenu(!1))},n)),t}},e.prototype.on=function(e,t){var n=this;return a.on(n.elements.container,e,t),n},e.prototype.off=function(e,t){var n=this;return a.off(n.elements.container,e,t),n},e.prototype.supports=function(e){return s.mime(this,e)},e.prototype.destroy=function(e,t){function n(){if(null!==i){if(a.is.boolean(t)||(t=!0),document.body.style.overflow="",t){var n=i.elements.container.parentNode;a.is.htmlElement(n)&&n.replaceChild(i.elements.original,i.elements.container)}i.core.trigger(i.elements.original,"destroyed",!0),a.is.function(e)&&e.call(i.elements.original),i=null}}var i=this;switch(i.type){case"youtube":window.clearInterval(i.core.timers.buffering),window.clearInterval(i.core.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()}},e.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},e}); \ No newline at end of file
+(function(e,t,n){"use strict";"object"==typeof exports?module.exports=n(require):"function"==typeof define&&define.amd?define(n):t[e]=n()}).call(this,"Plyr",this,function(){"use strict";function e(e,t){function r(e,t,n,i){a.dispatchEvent(e,t,n,a.extend({},i,{plyr:pe}))}function l(){var e=c("input:not([disabled]), button:not([disabled])"),t=e[0],n=e[e.length-1];a.on(pe.elements.container,"keydown",function(e){9===e.which&&pe.fullscreen.active&&(e.target!==n||e.shiftKey?e.target===t&&e.shiftKey&&(e.preventDefault(),n.focus()):(e.preventDefault(),t.focus()))},!1)}function c(e){return pe.elements.container.querySelectorAll(e)}function u(e){return c(e)[0]}function d(e){a.is.string(e)?(a.removeElement(pe.elements[e]),pe.elements[e]=null):a.removeElement(e)}function p(e,t){a.is.string(t)?a.insertElement(e,pe.media,{src:t}):a.is.array(t)&&(fe(t),t.forEach(function(t){a.insertElement(e,pe.media,t)}))}function m(e){if(pe.browser.isWebkit&&(a.is.event(e)&&(e=e.target),a.is.htmlElement(e)&&"range"===e.getAttribute("type"))){a.is.htmlElement(pe.elements.styleSheet)||(pe.elements.styleSheet=a.createElement("style"),pe.elements.container.appendChild(pe.elements.styleSheet));var t=pe.elements.styleSheet.sheet,n=e.value/e.max*100,i="#"+e.id+"::-webkit-slider-runnable-track",o="{ background-image: linear-gradient(to right, currentColor "+n+"%, transparent "+n+"%) }",s=-1;[].some.call(t.rules,function(e,t){if(e.selectorText===i)return s=t,!0})[0],-1!==s&&t.deleteRule(s),t.insertRule([i,o].join(" "))}}function g(){return{url:pe.config.iconUrl,absolute:0===pe.config.iconUrl.indexOf("http")||pe.browser.isIE}}function f(e,t){var n=g(),i=(n.absolute?"":n.url)+"#"+pe.config.iconPrefix,o=document.createElementNS("http://www.w3.org/2000/svg","svg");a.setAttributes(o,a.extend(t,{role:"presentation"}));var s=document.createElementNS("http://www.w3.org/2000/svg","use");return s.setAttributeNS("http://www.w3.org/1999/xlink","xlink:href",i+"-"+e),o.appendChild(s),o}function y(e){var t=pe.config.i18n[e];switch(e){case"pip":t="PIP";break;case"airplay":t="AirPlay"}return a.createElement("span",{class:pe.config.classNames.hidden},t)}function b(e){var t=a.createElement("span",{class:pe.config.classNames.menu.value});return t.appendChild(a.createElement("span",{class:pe.config.classNames.menu.badge},e)),t}function v(e,t){var n,i,o,s=a.createElement("button");switch(a.is.object(t)||(t={}),"type"in t||(t.type="button"),"class"in t?-1===t.class.indexOf(pe.config.classNames.control)&&(t.class+=" "+pe.config.classNames.control):t.class=pe.config.classNames.control,e){case"mute":o="toggleMute",n="volume",i="muted";break;case"captions":o="toggleCaptions",n="captions-off",i="captions-on";break;case"fullscreen":o="toggleFullscreen",n="enter-fullscreen",i="exit-fullscreen";break;case"play-large":t.class="plyr__play-large",e="play",o="play",n="play";break;default:o=e,n=e}return a.extend(t,a.getAttributesFromSelector(pe.config.selectors.buttons[e],t)),a.is.string(i)&&s.appendChild(f(i,{class:"icon--"+i})),s.appendChild(f(n)),s.appendChild(y(o)),a.setAttributes(s,t),pe.elements.buttons[e]=s,s}function h(e,t){var n=a.createElement("label",{for:t.id,class:pe.config.classNames.hidden},pe.config.i18n[e]),i=a.createElement("input",a.extend(a.getAttributesFromSelector(pe.config.selectors.inputs[e]),{type:"range",min:0,max:100,step:.01,value:0,autocomplete:"off"},t));return pe.elements.inputs[e]=i,{label:n,input:i}}function w(e,t){var n=a.createElement("progress",a.extend(a.getAttributesFromSelector(pe.config.selectors.display[e]),{min:0,max:100,value:0},t));if("volume"!==e){n.appendChild(a.createElement("span",null,"0"));var i="";switch(e){case"played":i=pe.config.i18n.played;break;case"buffer":i=pe.config.i18n.buffered}n.textContent="% "+i.toLowerCase()}return pe.elements.display[e]=n,n}function k(e){var t=a.createElement("span",{class:"plyr__time"});return t.appendChild(a.createElement("span",{class:pe.config.classNames.hidden},pe.config.i18n[e])),t.appendChild(a.createElement("span",a.getAttributesFromSelector(pe.config.selectors.display[e]),"00:00")),pe.elements.display[e]=t,t}function C(e){if(!a.is.empty(pe.config.controls)){var t=a.createElement("div",a.getAttributesFromSelector(pe.config.selectors.controls.wrapper));if(a.inArray(pe.config.controls,"restart")&&t.appendChild(v("restart")),a.inArray(pe.config.controls,"rewind")&&t.appendChild(v("rewind")),a.inArray(pe.config.controls,"play")&&(t.appendChild(v("play")),t.appendChild(v("pause"))),a.inArray(pe.config.controls,"fast-forward")&&t.appendChild(v("fast-forward")),a.inArray(pe.config.controls,"progress")){var n=a.createElement("span",a.getAttributesFromSelector(pe.config.selectors.progress)),i=h("seek",{id:"plyr-seek-"+e.id});if(n.appendChild(i.label),n.appendChild(i.input),n.appendChild(w("buffer")),pe.config.tooltips.seek){var o=a.createElement("span",{role:"tooltip",class:pe.config.classNames.tooltip},"00:00");n.appendChild(o),pe.elements.display.seekTooltip=o}pe.elements.progress=n,t.appendChild(pe.elements.progress)}if(a.inArray(pe.config.controls,"current-time")&&t.appendChild(k("currentTime")),a.inArray(pe.config.controls,"duration")&&t.appendChild(k("duration")),a.inArray(pe.config.controls,"mute")&&t.appendChild(v("mute")),a.inArray(pe.config.controls,"volume")){var r=a.createElement("span",{class:"plyr__volume"}),l={max:1,step:.05,value:pe.config.volume},c=h("volume",a.extend(l,{id:"plyr-volume-"+e.id}));r.appendChild(c.label),r.appendChild(c.input),t.appendChild(r)}if(a.inArray(pe.config.controls,"captions")&&t.appendChild(v("captions")),a.inArray(pe.config.controls,"settings")&&!a.is.empty(pe.config.settings)){var u=a.createElement("div",{class:"plyr__menu"});u.appendChild(v("settings",{id:"plyr-settings-toggle-"+e.id,"aria-haspopup":!0,"aria-controls":"plyr-settings-"+e.id,"aria-expanded":!1}));var d=a.createElement("form",{class:"plyr__menu__container",id:"plyr-settings-"+e.id,"aria-hidden":!0,"aria-labelled-by":"plyr-settings-toggle-"+e.id,role:"tablist",tabindex:-1}),p=a.createElement("div"),m=a.createElement("div",{id:"plyr-settings-"+e.id+"-home","aria-hidden":!1,"aria-labelled-by":"plyr-settings-toggle-"+e.id,role:"tabpanel"}),g=a.createElement("ul",{role:"tablist"});pe.config.settings.forEach(function(t){var n=a.createElement("li",{role:"tab",hidden:""}),i=a.createElement("button",a.extend(a.getAttributesFromSelector(pe.config.selectors.buttons.settings),{type:"button",class:pe.config.classNames.control+" "+pe.config.classNames.control+"--forward",id:"plyr-settings-"+e.id+"-"+t+"-tab","aria-haspopup":!0,"aria-controls":"plyr-settings-"+e.id+"-"+t,"aria-expanded":!1}),pe.config.i18n[t]),o=a.createElement("span",{class:pe.config.classNames.menu.value});o.innerHTML=e[t],i.appendChild(o),n.appendChild(i),g.appendChild(n),pe.elements.settings.tabs[t]=n}),m.appendChild(g),p.appendChild(m),pe.config.settings.forEach(function(t){var n=a.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:""}),i=a.createElement("button",{type:"button",class:pe.config.classNames.control+" "+pe.config.classNames.control+"--back","aria-haspopup":!0,"aria-controls":"plyr-settings-"+e.id+"-home","aria-expanded":!1},pe.config.i18n[t]);n.appendChild(i);var o=a.createElement("ul");n.appendChild(o),p.appendChild(n),pe.elements.settings.panes[t]=n}),d.appendChild(p),u.appendChild(d),t.appendChild(u),pe.elements.settings.form=d,pe.elements.settings.menu=u}return a.inArray(pe.config.controls,"pip")&&s.pip&&t.appendChild(v("pip")),a.inArray(pe.config.controls,"airplay")&&s.airplay&&t.appendChild(v("airplay")),a.inArray(pe.config.controls,"fullscreen")&&t.appendChild(v("fullscreen")),a.inArray(pe.config.controls,"play-large")&&(pe.elements.buttons.playLarge=v("play-large"),pe.elements.container.appendChild(pe.elements.buttons.playLarge)),pe.elements.controls=t,a.inArray(pe.config.controls,"settings")&&a.inArray(pe.config.settings,"speed")&&N(),t}}function E(e,t){var n=pe.elements.settings.tabs[e],i=pe.elements.settings.panes[e];a.is.htmlElement(n)&&(t?n.removeAttribute("hidden"):n.setAttribute("hidden","")),a.is.htmlElement(i)&&(t?i.removeAttribute("hidden"):i.setAttribute("hidden",""))}function A(e,t){function n(e){var t="";switch(e){case"hd2160":t="4K";break;case"hd1440":t="WQHD";break;case"hd1080":case"hd720":t="HD"}return t.length?b(t):null}var i=pe.elements.settings.panes.quality.querySelector("ul");a.is.array(e)?pe.quality.options=e.filter(function(e){return a.inArray(pe.config.quality.options,e)}):pe.quality.options=pe.config.quality.options,a.is.string(t)&&a.inArray(pe.quality.options,t)&&(pe.quality.selected=t);var o=!a.is.empty(pe.quality.options)&&"youtube"===pe.type;E("quality",o),o&&(a.emptyElement(i),pe.quality.options.forEach(function(e){var t=a.createElement("li"),o=a.createElement("label",{class:pe.config.classNames.control}),s=a.createElement("input",a.extend(a.getAttributesFromSelector(pe.config.selectors.inputs.quality),{type:"radio",name:"plyr-quality",value:e}));o.appendChild(s),o.appendChild(document.createTextNode(S("quality",e)));var r=n(e);a.is.htmlElement(r)&&o.appendChild(r),t.appendChild(o),i.appendChild(t)}),T("quality",i))}function S(e,t){switch(e){case"speed":return 1===t?"Normal":t+"&times;";case"quality":switch(t){case"hd2160":return"2160P";case"hd1440":return"1440P";case"hd1080":return"1080P";case"hd720":return"720P";case"large":return"480P";case"medium":return"360P";case"small":return"240P";case"tiny":return"Tiny";case"default":return"Auto";default:return t}case"captions":return F()}}function T(e,t){var n=pe.elements.settings.panes[e],i=null;switch(e){case"captions":i=pe.captions.language,pe.captions.enabled||(i="");break;default:if(i=pe[e].selected,a.is.empty(i)&&(i=pe.config[e].default),!a.inArray(pe[e].options,i))return void fe("Unsupported option")}a.is.htmlElement(t)||(t=n&&n.querySelector("ul"));var o=t&&t.querySelector('input[value="'+i+'"]');a.is.htmlElement(o)&&(o.checked=!0,pe.elements.settings.tabs[e].querySelector("."+pe.config.classNames.menu.value).innerHTML=S(e,i))}function x(){var e=pe.elements.settings.panes.captions.querySelector("ul");if(E("captions",!a.is.empty(pe.captions.tracks)),a.emptyElement(e),!a.is.empty(pe.captions.tracks)){var t=[].map.call(pe.captions.tracks,function(e){return{language:e.language,badge:!0,label:a.is.empty(e.label)?e.language.toUpperCase():e.label}});t.unshift({language:"",label:pe.config.i18n.none}),t.forEach(function(t){var n=a.createElement("li"),i=a.createElement("label",{class:pe.config.classNames.control}),o=a.createElement("input",a.extend(a.getAttributesFromSelector(pe.config.selectors.inputs.language),{type:"radio",name:"plyr-language",value:t.language}));t.language.toLowerCase()===pe.captions.language.toLowerCase()&&(o.checked=!0),i.appendChild(o),i.appendChild(document.createTextNode(t.label||t.language)),t.badge&&i.appendChild(b(t.language.toUpperCase())),n.appendChild(i),e.appendChild(n)}),T("captions",e)}}function N(e,t){a.is.array(e)?pe.speed.options=e.filter(function(e){return a.inArray(pe.config.speed.options,e)}):pe.speed.options=pe.config.speed.options,a.is.number(t)&&a.inArray(pe.speed.options,t)&&(pe.speed.selected=t);var n=!a.is.empty(pe.speed.options);if(E("speed",n),n){var i=pe.elements.settings.panes.speed.querySelector("ul");pe.elements.settings.tabs.speed.removeAttribute("hidden"),pe.elements.settings.panes.speed.removeAttribute("hidden"),a.emptyElement(i),pe.speed.options.forEach(function(e){var t=a.createElement("li"),n=a.createElement("label",{class:pe.config.classNames.control}),o=a.createElement("input",a.extend(a.getAttributesFromSelector(pe.config.selectors.inputs.speed),{type:"radio",name:"plyr-speed",value:e}));n.appendChild(o),n.insertAdjacentHTML("beforeend",S("speed",e)),t.appendChild(n),i.appendChild(t)}),T("speed",i)}}function P(){if(pe.supported.ui&&"audio"!==pe.type&&pe.config.fullscreen.enabled){var e=s.fullscreen;e||pe.config.fullscreen.fallback&&!a.inFrame()?(ge((e?"Native":"Fallback")+" fullscreen enabled"),a.toggleClass(pe.elements.container,pe.config.classNames.fullscreen.enabled,!0)):ge("Fullscreen not supported and fallback disabled"),pe.elements.buttons&&pe.elements.buttons.fullscreen&&a.toggleState(pe.elements.buttons.fullscreen,!1),l()}}function q(){function e(){pe.captions.currentTrack=null,[].forEach.call(pe.captions.tracks,function(e){e.language===pe.captions.language.toLowerCase()&&(pe.captions.currentTrack=e)})}if(pe.supported.ui){if(a.is.empty(pe.storage.language)?a.is.empty(pe.captions.language)&&(pe.captions.language=pe.config.captions.language.toLowerCase()):pe.captions.language=pe.storage.language,a.is.boolean(pe.captions.enabled)||(a.is.empty(pe.storage.language)?pe.captions.enabled=pe.config.captions.active:pe.captions.enabled=pe.storage.captions),!a.inArray(["video","vimeo"],pe.type)||"video"===pe.type&&!s.textTracks)return pe.captions.tracks=null,void(a.inArray(pe.config.controls,"settings")&&a.inArray(pe.config.settings,"captions")&&x());if(a.is.htmlElement(pe.elements.captions)||(pe.elements.captions=a.createElement("div",a.getAttributesFromSelector(pe.config.selectors.captions)),a.insertAfter(pe.elements.captions,pe.elements.wrapper)),"video"===pe.type&&(pe.captions.tracks=pe.media.textTracks),a.toggleClass(pe.elements.container,pe.config.classNames.captions.enabled,!a.is.empty(pe.captions.tracks)),!a.is.empty(pe.captions.tracks)){if(L(),e(),!a.is.track(pe.captions.currentTrack)){var t=pe.config.captions.language;pe.captions.language=t,e(),a.is.track(pe.captions.currentTrack)||pe.toggleCaptions(!1),T("captions")}if("video"===pe.type){[].forEach.call(pe.captions.tracks,function(e){a.off(e,"cuechange",I),e.mode="hidden"});var n=a.inArray(["captions","subtitles"],pe.captions.currentTrack&&pe.captions.currentTrack.kind);a.is.track(pe.captions.currentTrack)&&n&&(a.on(pe.captions.currentTrack,"cuechange",I),pe.captions.currentTrack.activeCues&&pe.captions.currentTrack.activeCues.length>0&&I(pe.captions.currentTrack))}else"vimeo"===pe.type&&pe.captions.active&&pe.embed.enableTextTrack(pe.captions.language);a.inArray(pe.config.controls,"settings")&&a.inArray(pe.config.settings,"captions")&&x()}}}function F(){return pe.supported.ui?!s.textTracks||a.is.empty(pe.captions.tracks)?pe.config.i18n.none:pe.captions.enabled?pe.captions.currentTrack.label:pe.config.i18n.disabled:null}function I(e){a.is.event(e)&&(e=e.target);var t=e.activeCues[0];a.is.cue(t)?_(t.getCueAsHTML()):_(),r(pe.media,"cuechange")}function _(e){if(pe.supported.ui)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 fe("No captions element to render to")}function L(){if(pe.elements.buttons.captions){var e=pe.storage.captions;a.is.boolean(e)?pe.captions.active=e:e=pe.captions.active,e&&(a.toggleClass(pe.elements.container,pe.config.classNames.captions.active,!0),a.toggleState(pe.elements.buttons.captions,!0))}}function M(){if(pe.config.loadSprite){var e=g();e.absolute?(ge("AJAX loading absolute SVG sprite"+(pe.browser.isIE?" (due to IE)":"")),a.loadSprite(e.url,"sprite-plyr")):ge("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}):C({id:pe.id,seektime:pe.config.seekTime,speed:"-",quality:"-",captions:F(),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)&&V(),pe.config.tooltips.controls)for(var i=c([pe.config.selectors.controls.wrapper," ",pe.config.selectors.labels," .",pe.config.classNames.hidden].join("")),o=i.length-1;o>=0;o--){var s=i[o];a.toggleClass(s,pe.config.classNames.hidden,!1),a.toggleClass(s,pe.config.classNames.tooltip,!0)}}function V(){try{return pe.elements.controls=u(pe.config.selectors.controls.wrapper),pe.elements.buttons={play:c(pe.config.selectors.buttons.play),pause:u(pe.config.selectors.buttons.pause),restart:u(pe.config.selectors.buttons.restart),rewind:u(pe.config.selectors.buttons.rewind),forward:u(pe.config.selectors.buttons.forward),mute:u(pe.config.selectors.buttons.mute),pip:u(pe.config.selectors.buttons.pip),airplay:u(pe.config.selectors.buttons.airplay),settings:u(pe.config.selectors.buttons.settings),captions:u(pe.config.selectors.buttons.captions),fullscreen:u(pe.config.selectors.buttons.fullscreen)},pe.elements.progress=u(pe.config.selectors.progress),pe.elements.inputs={seek:u(pe.config.selectors.inputs.seek),volume:u(pe.config.selectors.inputs.volume)},pe.elements.display={buffer:u(pe.config.selectors.display.buffer),duration:u(pe.config.selectors.display.duration),currentTime:u(pe.config.selectors.display.currentTime)},a.is.htmlElement(pe.elements.progress)&&(pe.elements.display.seekTooltip=pe.elements.progress.querySelector("."+pe.config.classNames.tooltip)),!0}catch(e){return fe("It looks like there is a problem with your custom controls HTML",e),j(!0),!1}}function O(){a.toggleClass(pe.elements.container,pe.config.selectors.container.replace(".",""),!0),a.toggleClass(pe.elements.container,pe.config.classNames.uiSupported,pe.supported.ui)}function j(e){e&&a.inArray(i.html5,pe.type)?pe.media.setAttribute("controls",""):pe.media.removeAttribute("controls")}function D(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.ui&&(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 R(){var e=null;pe.storage={},s.storage&&pe.config.storage.enabled&&(window.localStorage.removeItem("plyr-volume"),(e=window.localStorage.getItem(pe.config.storage.key))&&(/^\d+(\.\d+)?$/.test(e)?B({volume:parseFloat(e)}):pe.storage=JSON.parse(e)))}function B(e){s.storage&&pe.config.storage.enabled&&(a.extend(pe.storage,e),window.localStorage.setItem(pe.config.storage.key,JSON.stringify(pe.storage)))}function H(){pe.media?(a.toggleClass(pe.elements.container,pe.config.classNames.type.replace("{0}",pe.type),!0),a.inArray(i.embed,pe.type)&&a.toggleClass(pe.elements.container,pe.config.classNames.type.replace("{0}","video"),!0),pe.supported.ui&&(a.toggleClass(pe.elements.container,pe.config.classNames.pip.supported,s.pip&&"video"===pe.type),a.toggleClass(pe.elements.container,pe.config.classNames.airplay.supported,s.airplay&&a.inArray(i.html5,pe.type)),a.toggleClass(pe.elements.container,pe.config.classNames.stopped,pe.config.autoplay),a.toggleClass(pe.elements.container,pe.config.classNames.isIos,pe.browser.isIos),a.toggleClass(pe.elements.container,pe.config.classNames.isTouch,s.touch)),a.inArray(["video","youtube","vimeo"],pe.type)&&(pe.elements.wrapper=a.createElement("div",{class:pe.config.classNames.video}),a.wrap(pe.media,pe.elements.wrapper)),a.inArray(i.embed,pe.type)&&W()):fe("No media element found!")}function W(){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=c('[id^="'+pe.type+'-"]'),i=n.length-1;i>=0;i--)a.removeElement(n[i]);if(a.toggleClass(pe.elements.wrapper,pe.config.classNames.embed,!0),"youtube"===pe.type)pe.media.setAttribute("id",t),a.is.object(window.YT)?Q(e):(a.injectScript(pe.config.urls.youtube.api),window.onYouTubeReadyCallbacks=window.onYouTubeReadyCallbacks||[],window.onYouTubeReadyCallbacks.push(function(){Q(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))U(e);else{a.injectScript(pe.config.urls.vimeo.api);var o=window.setInterval(function(){a.is.object(window.Vimeo)&&(window.clearInterval(o),U(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),J.call(s))},50)}}function Y(){pe.supported.ui&&(ue(),de()),D(u("iframe"))}function Q(e){pe.embed=new window.YT.Player(pe.media.id,{videoId:e,playerVars:{autoplay:pe.config.autoplay?1:0,controls:pe.supported.ui?0:1,rel:0,showinfo:0,iv_load_policy:3,modestbranding:1,disablekb:1,playsinline:1,origin:window.location.hostname,widget_referrer:window.location.href},events:{onError:function(e){r(pe.elements.container,"error",!0,{code:e.data,embed:e.target})},onPlaybackQualityChange:function(e){var t=e.target;pe.media.quality=t.getPlaybackQuality(),r(pe.media,"qualitychange")},onPlaybackRateChange:function(e){var t=e.target;pe.media.playbackRate=t.getPlaybackRate(),r(pe.media,"ratechange")},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(),a.inArray(pe.config.controls,"settings")&&a.inArray(pe.config.settings,"speed")&&N(t.getAvailablePlaybackRates(),t.getPlaybackRate()),pe.config.title=t.getVideoData().title,pe.supported.ui&&pe.media.setAttribute("tabindex",-1),Y(),r(pe.media,"timeupdate"),r(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.media.buffered)&&r(pe.media,"progress"),pe.media.lastBuffered=pe.media.buffered,1===pe.media.buffered&&(window.clearInterval(me.buffering),r(pe.media,"canplaythrough"))},200)},onStateChange:function(e){var t=e.target;switch(window.clearInterval(me.playing),e.data){case 0:if(pe.config.loop.active){t.stopVideo(),t.playVideo();break}pe.media.paused=!0,r(pe.media,"ended");break;case 1:pe.media.paused=!1,pe.media.seeking&&r(pe.media,"seeked"),pe.media.seeking=!1,r(pe.media,"play"),r(pe.media,"playing"),me.playing=window.setInterval(function(){pe.media.currentTime=t.getCurrentTime(),r(pe.media,"timeupdate")},100),pe.media.duration!==t.getDuration()&&(pe.media.duration=t.getDuration(),r(pe.media,"durationchange")),A(t.getAvailableQualityLevels(),t.getPlaybackQuality());break;case 2:pe.media.paused=!0,r(pe.media,"pause")}r(pe.elements.container,"statechange",!1,{code:e.data})}}})}function U(e){pe.embed=new window.Vimeo.Player(pe.media,{id:e,loop:pe.config.loop.active,autoplay:pe.config.autoplay,byline:!1,portrait:!1,title:!1}),pe.media.play=function(){pe.embed.play(),pe.media.paused=!1},pe.media.pause=function(){pe.embed.pause(),pe.media.paused=!0},pe.media.stop=function(){pe.embed.stop(),pe.media.paused=!0},pe.media.paused=!0,pe.media.currentTime=0,Y(),pe.embed.getCurrentTime().then(function(e){pe.media.currentTime=e,r(pe.media,"timeupdate")}),pe.embed.getDuration().then(function(e){pe.media.duration=e,r(pe.media,"durationchange")}),pe.embed.getTextTracks().then(function(e){pe.captions.tracks=e,q()}),pe.embed.on("cuechange",function(e){var t=null;e.cues.length&&(t=a.stripHTML(e.cues[0].text)),_(t)}),pe.embed.on("loaded",function(){a.is.htmlElement(pe.embed.element)&&pe.supported.ui&&pe.embed.element.setAttribute("tabindex",-1)}),pe.embed.on("play",function(){pe.media.paused=!1,r(pe.media,"play"),r(pe.media,"playing")}),pe.embed.on("pause",function(){pe.media.paused=!0,r(pe.media,"pause")}),pe.embed.on("timeupdate",function(e){pe.media.seeking=!1,pe.media.currentTime=e.seconds,r(pe.media,"timeupdate")}),pe.embed.on("progress",function(e){pe.media.buffered=e.percent,r(pe.media,"progress"),1===parseInt(e.percent)&&r(pe.media,"canplaythrough")}),pe.embed.on("seeked",function(){pe.media.seeking=!1,r(pe.media,"seeked"),r(pe.media,"play")}),pe.embed.on("ended",function(){pe.media.paused=!0,r(pe.media,"ended")})}function J(){pe.embed=window.SC.Widget(this),pe.embed.bind(window.SC.Widget.Events.READY,function(){pe.media.play=function(){pe.embed.play(),pe.media.paused=!1},pe.media.pause=function(){pe.embed.pause(),pe.media.paused=!0},pe.media.stop=function(){pe.embed.seekTo(0),pe.embed.pause(),pe.media.paused=!0},pe.media.paused=!0,pe.media.currentTime=0,pe.embed.getDuration(function(e){pe.media.duration=e/1e3,Y()}),pe.embed.getPosition(function(e){pe.media.currentTime=e,r(pe.media,"timeupdate")}),pe.embed.bind(window.SC.Widget.Events.PLAY,function(){pe.media.paused=!1,r(pe.media,"play"),r(pe.media,"playing")}),pe.embed.bind(window.SC.Widget.Events.PAUSE,function(){pe.media.paused=!0,r(pe.media,"pause")}),pe.embed.bind(window.SC.Widget.Events.PLAY_PROGRESS,function(e){pe.media.seeking=!1,pe.media.currentTime=e.currentPosition/1e3,r(pe.media,"timeupdate")}),pe.embed.bind(window.SC.Widget.Events.LOAD_PROGRESS,function(e){pe.media.buffered=e.loadProgress,r(pe.media,"progress"),1===parseInt(e.loadProgress)&&r(pe.media,"canplaythrough")}),pe.embed.bind(window.SC.Widget.Events.FINISH,function(){pe.media.paused=!0,r(pe.media,"ended")})})}function X(){a.toggleClass(pe.elements.container,pe.config.classNames.playing,!pe.media.paused),a.toggleClass(pe.elements.container,pe.config.classNames.stopped,pe.media.paused),pe.toggleControls(pe.media.paused)}function z(e){var t=pe.elements.settings.form,n=pe.elements.buttons.settings,i=a.is.boolean(e)?e:t&&"true"===t.getAttribute("aria-hidden");if(a.is.event(e)){var o=t&&t.contains(e.target),s=e.target===pe.elements.buttons.settings;if(o||!o&&!s&&i)return;s&&e.stopPropagation()}n&&n.setAttribute("aria-expanded",i),t&&(t.setAttribute("aria-hidden",!i),i?t.removeAttribute("tabindex"):t.setAttribute("tabindex",-1))}function G(e){var t,n,i=e.cloneNode(!0);return i.style.position="absolute",i.style.opacity=0,i.setAttribute("aria-hidden",!1),[].forEach.call(i.querySelectorAll("input[name]"),function(e){var t=e.getAttribute("name");e.setAttribute("name",t+"-clone")}),e.parentNode.appendChild(i),t=i.scrollWidth,n=i.scrollHeight,a.removeElement(i),{width:t,height:n}}function K(e){var t=pe.elements.settings.menu,n=e.target,i="false"===n.getAttribute("aria-expanded"),o=document.getElementById(n.getAttribute("aria-controls"));if(a.is.htmlElement(o)&&"tabpanel"===o.getAttribute("role")){var r=t.querySelector('[role="tabpanel"][aria-hidden="false"]'),l=r.parentNode;if([].forEach.call(t.querySelectorAll('[aria-controls="'+r.getAttribute("id")+'"]'),function(e){e.setAttribute("aria-expanded",!1)}),s.transitions&&!s.reducedMotion){l.style.width=r.scrollWidth+"px",l.style.height=r.scrollHeight+"px";var c=G(o),u=function(e){e.target===l&&a.inArray(["width","height"],e.propertyName)&&(l.style.width="",l.style.height="",a.off(l,a.transitionEnd,u))};a.on(l,a.transitionEnd,u),l.style.width=c.width+"px",l.style.height=c.height+"px"}r.setAttribute("aria-hidden",!0),r.setAttribute("tabindex",-1),o.setAttribute("aria-hidden",!i),n.setAttribute("aria-expanded",i),o.removeAttribute("tabindex")}}function $(){if(pe.supported.ui){var e=pe.media.muted?0:pe.media.volume;pe.elements.inputs.volume&&ee(pe.elements.inputs.volume,e)}B({volume:pe.media.volume}),a.toggleClass(pe.elements.container,pe.config.classNames.muted,pe.media.muted),pe.supported.ui&&pe.elements.buttons.mute&&a.toggleState(pe.elements.buttons.mute,pe.media.muted)}function Z(e){pe.loading="waiting"===e.type,clearTimeout(me.loading),me.loading=setTimeout(function(){a.toggleClass(pe.elements.container,pe.config.classNames.loading,pe.loading),pe.toggleControls(pe.loading)},pe.loading?250:0)}function ee(e,t){a.is.htmlElement(e)&&(e.value=t,m(e))}function te(e,t){if(a.is.undefined(t)&&(t=0),a.is.undefined(e)&&(e=pe.elements.display.buffer),a.is.htmlElement(e)){e.value=t;var n=e.getElementsByTagName("span")[0];a.is.htmlElement(n)&&(n.childNodes[0].nodeValue=t)}}function ne(e){if(pe.supported.ui){var t=0,n=pe.getDuration();if(e)switch(e.type){case"timeupdate":case"seeking":t=a.getPercentage(pe.media.currentTime,n),"timeupdate"===e.type&&ee(pe.elements.inputs.seek,t);break;case"playing":case"progress":t=function(){var e=pe.media.buffered;return e&&e.length?a.getPercentage(e.end(0),n):a.is.number(e)?100*e:0}(),te(pe.elements.display.buffer,t)}}}function ie(e,t){if(a.is.htmlElement(t)){isNaN(e)&&(e=0);var n=parseInt(e%60),i=parseInt(e/60%60),o=parseInt(e/60/60%60),s=pe.getDuration(),r=parseInt(s/60/60%60)>0;n=("0"+n).slice(-2),i=("0"+i).slice(-2);var l=(r?o+":":"")+i+":"+n;return t.textContent=l,l}}function ae(){if(pe.supported.ui){var e=pe.getDuration()||0;!pe.elements.display.duration&&pe.config.displayDuration&&pe.media.paused&&ie(e,pe.elements.display.currentTime),pe.elements.display.duration&&ie(e,pe.elements.display.duration),se()}}function oe(e){ie(pe.media.currentTime,pe.elements.display.currentTime),e&&"timeupdate"===e.type&&pe.media.seeking||ne(e)}function se(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.classNames.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),ie(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 re(){function e(){var e=pe.togglePlay(),t=pe.elements.buttons[e?"pause":"play"];a.is.htmlElement(t)&&t.focus()}function t(e){return e.keyCode?e.keyCode:e.which}function n(n){var i=t(n),o="keydown"===n.type,l=o&&i===r;if(a.is.number(i))if(o){if(a.inArray([38,40],i)){var c=a.getFocusElement();if(a.is.htmlElement(c)&&"radio"===a.getFocusElement().type)return}switch(a.inArray([48,49,50,51,52,53,54,56,57,32,75,38,40,77,39,37,70,67,73,76,79],i)&&(n.preventDefault(),n.stopPropagation()),i){case 48:case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 57:l||function(){var e=pe.media.duration;a.is.number(e)&&pe.seek(e/10*(i-48))}();break;case 32:case 75:l||e();break;case 38:pe.increaseVolume(.1);break;case 40:pe.decreaseVolume(.1);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.setLoop("start");break;case 76:pe.setLoop();break;case 79:pe.setLoop("end")}!s.fullscreen&&pe.fullscreen.active&&27===i&&pe.toggleFullscreen(),r=i}else r=null}var i=pe.browser.isIE?"change":"input";if(pe.config.keyboard.focused){var r=null;pe.config.keyboard.global&&a.on(window,"keydown keyup",function(e){var i=t(e),o=a.getFocusElement();!a.inArray([48,49,50,51,52,53,54,56,57,75,77,70,67,73,76,79],i)||a.is.htmlElement(o)&&a.matches(o,pe.config.selectors.editable)||n(e)},!1),a.on(pe.elements.container,"keydown keyup",n,!1)}a.on(pe.elements.container,"focusout",function(e){a.toggleClass(e.target,pe.config.classNames.tabFocus,!1)}),a.on(pe.elements.container,"keydown",function(e){9===e.keyCode&&window.setTimeout(function(){a.toggleClass(a.getFocusElement(),pe.config.classNames.tabFocus,!0)},0)});var l=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(){pe.toggleFullscreen()}),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",function(e){K(e),a.matches(e.target,pe.config.selectors.inputs.language)?l.call(this,e,pe.config.listeners.language,function(){pe.toggleCaptions(!0),pe.setLanguage(e.target.value.toLowerCase())}):a.matches(e.target,pe.config.selectors.inputs.quality)?l.call(this,e,pe.config.listeners.quality,function(){pe.setQuality(e.target.value)}):a.matches(e.target,pe.config.selectors.inputs.speed)?l.call(this,e,pe.config.listeners.speed,function(){pe.setSpeed(parseFloat(e.target.value))}):a.matches(e.target,pe.config.selectors.buttons.loop)&&l.call(this,e,pe.config.listeners.loop,function(){fe("Set loop")})}),a.proxy(pe.elements.inputs.seek,i,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,i,pe.config.listeners.volume,function(){pe.setVolume(event.target.value)}),pe.browser.isWebkit&&a.on(c('input[type="range"]'),"input",m),a.on(pe.elements.progress,"mouseenter mouseleave mousemove",se),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)),a.proxy(pe.elements.inputs.volume,"wheel",pe.config.listeners.volume,function(e){var t=e.webkitDirectionInvertedFromDevice,n=0;(e.deltaY<0||e.deltaX>0)&&(t?(pe.decreaseVolume(.02),n=-1):(pe.increaseVolume(.02),n=1)),(e.deltaY>0||e.deltaX<0)&&(t?(pe.increaseVolume(.02),n=1):(pe.decreaseVolume(.02),n=-1)),(1===n&&pe.media.volume<1||-1===n&&pe.media.volume>0)&&e.preventDefault()},!1),s.fullscreen&&a.on(document,o.eventType,function(e){pe.toggleFullscreen(e)})}function le(){if(a.on(pe.media,"timeupdate seeking",oe),a.on(pe.media,"durationchange loadedmetadata",ae),a.on(pe.media,"ended",function(){"video"===pe.type&&pe.config.showPosterOnEnd&&("video"===pe.type&&_(),pe.restart(),pe.media.load())}),a.on(pe.media,"progress playing",ne),a.on(pe.media,"volumechange",$),a.on(pe.media,"play pause ended",X),a.on(pe.media,"waiting canplay seeked",Z),pe.supported.ui&&pe.config.clickToPlay&&"audio"!==pe.type){var e=u("."+pe.config.classNames.video);if(!e)return;e.style.cursor="pointer",a.on(e,"click",function(){pe.config.hideControls&&s.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,"ratechange",function(){pe.speed.selected=pe.media.playbackRate,T("speed"),B({speed:pe.speed.selected})}),a.on(pe.media,"qualitychange",function(){pe.quality.selected=pe.media.quality,T("quality"),B({quality:pe.quality.selected})}),a.on(pe.media,"captionchange",function(){B({language:pe.captions.language})}),a.on(pe.media,"captionsenabled captionsdisabled",function(){T("captions"),B({captions:pe.captions.enabled})}),a.on(pe.media,pe.config.events.concat(["keyup","keydown"]).join(" "),function(e){r(pe.elements.container,e.type,!0)})}function ce(){if(a.inArray(i.html5,pe.type)){for(var e=pe.media.querySelectorAll("source"),t=0;t<e.length;t++)a.removeElement(e[t]);pe.media.setAttribute("src",pe.config.blankVideo),pe.media.load(),ge("Cancelled network requests")}}function ue(){if(le(),!pe.supported.ui)return fe("Basic support only",pe.type),d("controls"),d("buttons.play"),void j(!0);a.is.htmlElement(pe.elements.controls)||(M(),re()),a.is.htmlElement(pe.elements.controls)&&(j(),P(),q(),pe.setVolume(),$(),pe.setSpeed(),pe.setLoop(),oe(),X())}function de(){pe.ready=!0,window.setTimeout(function(){r(pe.elements.container,"ready",!0)},0),pe.config.autoplay&&pe.play()}var pe=this,me={};pe.ready=!1,pe.media=e,a.is.string(pe.media)&&(pe.media=document.querySelectorAll(pe.media)),(window.jQuery&&pe.media instanceof jQuery||a.is.nodeList(pe.media)||a.is.array(pe.media))&&(pe.media=pe.media[0]),pe.config=a.extend({},n,t,function(){try{return JSON.parse(pe.media.getAttribute("data-plyr"))}catch(e){}}()),pe.elements={container:null,buttons:{},display:{},progress:{},inputs:{},settings:{menu:null,panes:{},tabs:{}},captions:null},pe.captions={enabled:null,tracks:null,currentTrack:null},pe.fullscreen={active:!1},pe.speed={selected:null,options:[]},pe.quality={selected:null,options:[]},pe.loop={indicator:{start:0,end:0}};var ge=function(){},fe=function(){},ye=function(){};pe.config.debug&&"console"in window&&(ge=console.log,fe=console.warn,ye=console.error,ge("Debugging enabled")),ge("Config",pe.config),ge("Support",s),pe.core={getElement:u,getElements:c,trigger:r,setCaption:_,setupCaptions:q,toggleNativeControls:j,updateTimeDisplay:ie,updateSource:function(e){a.is.object(e)&&"sources"in e&&e.sources.length?(ce(),pe.destroy(function(){if(d(pe.media),d("captions"),d("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(i.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}pe.elements.container.appendChild(pe.media),a.is.boolean(e.autoplay)&&(pe.config.autoplay=e.autoplay),a.inArray(i.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.muted&&pe.media.setAttribute("muted",""),pe.config.inline&&pe.media.setAttribute("playsinline","")),a.toggleClass(pe.elements.container,pe.config.classNames.captions.active,pe.supported.ui&&pe.captions.enabled),O(),a.inArray(i.html5,pe.type)&&p("source",e.sources),H(),a.inArray(i.html5,pe.type)&&("tracks"in e&&p("track",e.tracks),pe.media.load()),(a.inArray(i.html5,pe.type)||a.inArray(i.embed,pe.type)&&!pe.supported.ui)&&(ue(),de()),pe.config.title=e.title,D()},!1)):fe("Invalid source format")},toggleMenu:z,timers:me,support:s,log:ge,warn:fe,error:ye},function(e){if(null!==e&&!a.is.undefined(e)&&a.is.htmlElement(e)){if(e.plyr)return fe("Target already setup"),void(pe=e.plyr);if(pe.config.enabled)if(a.checkSupport().api){pe.elements.original=e.cloneNode(!0);var t=e.tagName.toLowerCase();switch(t){case"div":if(pe.type=e.getAttribute("data-type"),pe.embedId=e.getAttribute("data-video-id"),a.is.empty(pe.type))return void ye("Setup failed: embed type missing");if(a.is.empty(pe.embedId))return void ye("Setup failed: video id missing");e.removeAttribute("data-type"),e.removeAttribute("data-video-id");break;case"iframe":break;case"video":case"audio":pe.type=t,null!==e.getAttribute("crossorigin")&&(pe.config.crossorigin=!0),null!==e.getAttribute("autoplay")&&(pe.config.autoplay=!0),null!==e.getAttribute("playsinline")&&(pe.config.inline=!0),null!==e.getAttribute("muted")&&(pe.config.muted=!0),null!==e.getAttribute("loop")&&(pe.config.loop.active=!0);break;default:return void ye("Setup failed: unsupported type")}pe.browser=a.getBrowser(),R(),pe.supported=a.checkSupport(pe.type,pe.config.inline),pe.supported.api?(e.plyr=pe,pe.elements.container=a.wrap(e,a.createElement("div")),O(),ge(pe.browser.name+" "+pe.browser.version),H(),pe.config.debug&&a.on(pe.elements.container,pe.config.events.join(" "),function(e){ge("event: "+e.type)}),(a.inArray(i.html5,pe.type)||a.inArray(i.embed,pe.type)&&!pe.supported.ui)&&(ue(),de(),D())):ye("Setup failed: no support")}else ye("Setup failed: no support");else ye("Setup failed: disabled by config")}else ye("Setup failed: no suitable element passed")}(pe.media)}var t={x:0,y:0},n={enabled:!0,title:"",debug:!1,autoplay:!1,seekTime:10,volume:1,muted:!1,displayDuration:!0,clickToPlay:!0,hideControls:!0,showPosterOnEnd:!1,disableContextMenu:!0,loadSprite:!0,iconPrefix:"plyr",iconUrl:"https://cdn.plyr.io/2.0.10/plyr.svg",blankVideo:"https://cdn.plyr.io/static/blank.mp4",duration:null,quality:{default:"default",options:["hd2160","hd1440","hd1080","hd720","large","medium","small","tiny","default"]},loop:{active:!1,start:null,end:null},speed:{default:1,options:[.5,.75,1,1.25,1.5,1.75,2]},keyboard:{focused:!0,global:!1},tooltips:{controls:!1,seek:!0},captions:{active:!1,language:window.navigator.language.split("-")[0]},fullscreen:{enabled:!0,fallback:!0},storage:{enabled:!0,key:"plyr"},controls:["play-large","play","progress","current-time","mute","volume","captions","settings","pip","airplay","fullscreen"],settings:["captions","quality","speed","loop"],i18n:{restart:"Restart",rewind:"Rewind {seektime} secs",play:"Play",pause:"Pause",forward:"Forward {seektime} secs",seek:"Seek",played:"Played",buffered:"Buffered",currentTime:"Current time",duration:"Duration",volume:"Volume",toggleMute:"Toggle Mute",toggleCaptions:"Toggle Captions",toggleFullscreen:"Toggle Fullscreen",frameTitle:"Player for {title}",captions:"Captions",settings:"Settings",speed:"Speed",quality:"Quality",loop:"Loop",start:"Start",end:"End",all:"All",reset:"Reset",none:"None",disabled:"Disabled"},urls:{vimeo:{api:"https://player.vimeo.com/api/player.js"},youtube:{api:"https://www.youtube.com/iframe_api"},soundcloud:{api:"https://w.soundcloud.com/player/api.js"}},listeners:{seek:null,play:null,pause:null,restart:null,rewind:null,forward:null,mute:null,volume:null,captions:null,fullscreen:null,pip:null,airplay:null,speed:null,quality:null,loop:null,language:null},events:["ended","progress","stalled","playing","waiting","canplay","canplaythrough","loadstart","loadeddata","loadedmetadata","timeupdate","volumechange","play","pause","error","seeking","seeked","emptied","ratechange","cuechange","enterfullscreen","exitfullscreen","captionsenabled","captionsdisabled","captionchange","controlshidden","controlsshown","statechange","qualitychange","qualityrequested"],selectors:{editable:"input, textarea, select, [contenteditable]",container:".plyr",controls:{container:null,wrapper:".plyr__controls"},labels:"[data-plyr]",buttons:{play:'[data-plyr="play"]',pause:'[data-plyr="pause"]',restart:'[data-plyr="restart"]',rewind:'[data-plyr="rewind"]',forward:'[data-plyr="fast-forward"]',mute:'[data-plyr="mute"]',captions:'[data-plyr="captions"]',fullscreen:'[data-plyr="fullscreen"]',pip:'[data-plyr="pip"]',airplay:'[data-plyr="airplay"]',settings:'[data-plyr="settings"]',loop:'[data-plyr="loop"]'},inputs:{seek:'[data-plyr="seek"]',volume:'[data-plyr="volume"]',speed:'[data-plyr="speed"]',language:'[data-plyr="language"]',quality:'[data-plyr="quality"]'},display:{currentTime:".plyr__time--current",duration:".plyr__time--duration",buffer:".plyr__progress--buffer",played:".plyr__progress--played",loop:".plyr__progress--loop",volume:".plyr__volume--display"},progress:".plyr__progress",captions:".plyr__captions",menu:{quality:".js-plyr__menu__list--quality"}},classNames:{video:"plyr__video-wrapper",embed:"plyr__video-embed",control:"plyr__control",type:"plyr--{0}",stopped:"plyr--stopped",playing:"plyr--playing",muted:"plyr--muted",loading:"plyr--loading",hover:"plyr--hover",tooltip:"plyr__tooltip",hidden:"plyr__sr-only",hideControls:"plyr--hide-controls",isIos:"plyr--is-ios",isTouch:"plyr--is-touch",uiSupported:"plyr--full-ui",menu:{value:"plyr__menu__value",badge:"plyr__badge"},captions:{enabled:"plyr--captions-enabled",active:"plyr--captions-active"},fullscreen:{enabled:"plyr--fullscreen-enabled",fallback:"plyr--fullscreen-fallback"},pip:{supported:"plyr--pip-supported",active:"plyr--pip-active"},airplay:{supported:"plyr--airplay-supported",active:"plyr--airplay-active"},tabFocus:"tab-focus"}},i={embed:["youtube","vimeo","soundcloud"],html5:["video","audio"]},a={is:{object:function(e){return null!==e&&"object"==typeof e&&e.constructor===Object},array:function(e){return null!==e&&Array.isArray(e)},number:function(e){return null!==e&&("number"==typeof e&&!isNaN(e-0)||"object"==typeof e&&e.constructor===Number)},string:function(e){return null!==e&&("string"==typeof e||"object"==typeof e&&e.constructor===String)},boolean:function(e){return null!==e&&"boolean"==typeof e},nodeList:function(e){return null!==e&&e instanceof NodeList},htmlElement:function(e){return null!==e&&e instanceof HTMLElement},function:function(e){return null!==e&&"function"==typeof e},event:function(e){return null!==e&&e instanceof Event},cue:function(e){this.instanceOf(e,window.TextTrackCue)||this.instanceOf(e,window.VTTCue)},track:function(e){return null!==e&&(this.instanceOf(e,window.TextTrack)||"string"==typeof e.kind)},undefined:function(e){return null!==e&&void 0===e},empty:function(e){return null===e||this.undefined(e)||(this.string(e)||this.array(e)||this.nodeList(e))&&0===e.length||this.object(e)&&0===Object.keys(e).length},instanceOf:function(e,t){return Boolean(e&&t&&e instanceof t)}},getBrowser:function(){var e,t,n,i=navigator.userAgent,a=navigator.appName,o=""+parseFloat(navigator.appVersion),s=parseInt(navigator.appVersion,10),r=!1,l=!1,c=!1,u=!1;return-1!==navigator.appVersion.indexOf("Windows NT")&&-1!==navigator.appVersion.indexOf("rv:11")?(r=!0,a="IE",o="11"):-1!==(t=i.indexOf("MSIE"))?(r=!0,a="IE",o=i.substring(t+5)):-1!==(t=i.indexOf("Chrome"))?(c=!0,a="Chrome",o=i.substring(t+7)):-1!==(t=i.indexOf("Safari"))?(u=!0,a="Safari",o=i.substring(t+7),-1!==(t=i.indexOf("Version"))&&(o=i.substring(t+8))):-1!==(t=i.indexOf("Firefox"))?(l=!0,a="Firefox",o=i.substring(t+8)):(e=i.lastIndexOf(" ")+1)<(t=i.lastIndexOf("/"))&&(a=i.substring(e,t),o=i.substring(t+1),a.toLowerCase()===a.toUpperCase()&&(a=navigator.appName)),-1!==(n=o.indexOf(";"))&&(o=o.substring(0,n)),-1!==(n=o.indexOf(" "))&&(o=o.substring(0,n)),s=parseInt(""+o,10),isNaN(s)&&(o=""+parseFloat(navigator.appVersion),s=parseInt(navigator.appVersion,10)),{name:a,version:s,isIE:r,isFirefox:l,isChrome:c,isSafari:u,isWebkit:"WebkitAppearance"in document.documentElement.style,isIPhone:/(iPhone|iPod)/gi.test(navigator.platform),isIos:/(iPad|iPhone|iPod)/gi.test(navigator.platform),isSupported:!(r&&s<=9)}},checkSupport:function(e,t){var n=!1,i=!1,o=a.getBrowser(),r=o.isIPhone&&t&&s.inline;switch(e){case"video":i=(n=s.video)&&o.isSupported&&(!o.isIPhone||r);break;case"audio":i=(n=s.audio)&&o.isSupported;break;case"youtube":i=(n=!0)&&o.isSupported&&(!o.isIPhone||r);break;case"vimeo":n=!0,i=!1;break;case"soundcloud":n=!0,i=o.isSupported;break;default:i=(n=s.audio&&s.video)&&o.isSupported}return{api:n,ui:i}},injectScript:function(e){if(!document.querySelectorAll('script[src="'+e+'"]').length){var t=document.createElement("script");t.src=e;var n=document.getElementsByTagName("script")[0];n.parentNode.insertBefore(t,n)}},inFrame:function(){try{return window.self!==window.top}catch(e){return!0}},inArray:function(e,t){return a.is.array(e)&&-1!==e.indexOf(t)},wrap:function(e,t){e.length||(e=[e]);for(var n=e.length-1;n>=0;n--){var i=n>0?t.cloneNode(!0):t,a=e[n],o=a.parentNode,s=a.nextSibling;return i.appendChild(a),s?o.insertBefore(i,s):o.appendChild(i),i}},removeElement:function(e){a.is.htmlElement(e)&&a.is.htmlElement(e.parentNode)&&e.parentNode.removeChild(e)},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){t.appendChild(a.createElement(e,n,i))},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){switch((e=e.trim()).charAt(0)){case".":var i=e.replace(".","");a.is.object(t)&&a.is.string(t.class)&&(t.class+=" "+i),n.class=i;break;case"#":n.id=e.replace("#","");break;case"[":var o=(e=e.replace(/[[\]]/g,"")).split("="),s=o[0],r=o.length>1?o[1].replace(/["']/g,""):"";n[s]=r}}),n},toggleClass:function(e,t,n){if(a.is.htmlElement(e)){var i=!1;if(e.classList)i=e.classList.contains(t),e.classList[n?"add":"remove"](t);else{i=a.inArray(e.className.split(" "),t);var o=(" "+e.className+" ").replace(/\s+/g," ").replace(" "+t+" ","");e.className=o+(n?" "+t:"")}return n&&!i||!n&&i}return null},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;return(n.matches||n.webkitMatchesSelector||n.mozMatchesSelector||n.msMatchesSelector||function(e){return-1!==[].indexOf.call(document.querySelectorAll(e),this)}).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,r){if(null!==e&&!a.is.undefined(e)){if(t=t.split(" "),a.is.boolean(r)||(r=!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=r;s.passiveListeners&&(c={passive:o,capture:r}),t.forEach(function(t){e[i?"addEventListener":"removeEventListener"](t,n,c)})}},on:function(e,t,n,i,o){a.toggleListener(e,t,n,!0,i,o)},off:function(e,t,n,i,o){a.toggleListener(e,t,n,!1,i,o)},dispatchEvent: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}).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;i<n;i++){var o=e[i];a.is.object(o)||(o={});for(var s in o)o[s]&&o[s].constructor&&o[s].constructor===Object?(t[s]=t[s]||{},a.extend(t[s],o[s])):t[s]=o[s]}return t}},parseYouTubeId:function(e){return e.match(/^.*(youtu.be\/|v\/|u\/\w\/|embed\/|watch\?v=|&v=)([^#&?]*).*/)?RegExp.$2:e},stripHTML:function(e){var t=document.createDocumentFragment(),n=document.createElement("div");return t.appendChild(n),n.innerHTML=e,t.firstChild.innerText},loadSprite:function(e,t){function n(e,t){e.innerHTML=t,document.body.insertBefore(e,document.body.childNodes[0])}if("string"==typeof e){var i="string"==typeof t;if(!i||!document.querySelectorAll("#"+t).length){var a=document.createElement("div");if(a.setAttribute("hidden",""),i&&a.setAttribute("id",t),s.storage){var o=window.localStorage.getItem("cache-"+t);if(null!==o){var r=JSON.parse(o);n(a,r.content)}}var l=new XMLHttpRequest;if(!("withCredentials"in l))return;l.open("GET",e,!0),l.onload=function(){s.storage&&window.localStorage.setItem("cache-"+t,JSON.stringify({content:l.responseText})),n(a,l.responseText)},l.send()}}},transitionEnd:function(){var e=document.createElement("span"),t={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd otransitionend",transition:"transitionend"};for(var n in t)if(void 0!==e.style[n])return t[n];return!1}()},o=function(){var e=function(){var e=!1;return a.is.function(document.cancelFullScreen)?e="":["webkit","o","moz","ms","khtml"].some(function(t){return a.is.function(document[t+"CancelFullScreen"])?(e=t,!0):a.is.function(document.msExitFullscreen)&&document.msFullscreenEnabled?(e="ms",!0):void 0}),e}();return{prefix:e,eventType:"ms"===e?"MSFullscreenChange":e+"fullscreenchange",isFullScreen:function(t){if(!s.fullscreen)return!1;switch(a.is.undefined(t)&&(t=document.body),e){case"":return document.fullscreenElement===t;case"moz":return document.mozFullScreenElement===t;default:return document[e+"FullscreenElement"]===t}},requestFullScreen:function(t){return!!s.fullscreen&&(a.is.htmlElement(t)||(t=document.body),e.length?t[e+("ms"===e?"RequestFullscreen":"RequestFullScreen")]():t.requestFullScreen())},cancelFullScreen:function(){return!!s.fullscreen&&(e.length?document[e+("ms"===e?"ExitFullscreen":"CancelFullScreen")]():document.cancelFullScreen())},element:function(){return s.fullscreen?e.length?document[e+"FullscreenElement"]:document.fullscreenElement:null}}}(),s={audio:"canPlayType"in document.createElement("audio"),video:"canPlayType"in document.createElement("video"),fullscreen:!1!==o.prefix,storage:function(){if(!("localStorage"in window))return!1;try{return window.localStorage.setItem("___test","___test"),window.localStorage.removeItem("___test"),!0}catch(e){return!1}}(),pip:!a.getBrowser().isIPhone&&a.is.function(a.createElement("video").webkitSetPresentationMode),airplay:a.is.function(window.WebKitPlaybackTargetAvailabilityEvent),inline:"playsInline"in document.createElement("video"),mime:function(e,t){var n=e.media;try{if(!a.is.function(n.canPlayType))return!1;if("video"===e.type)switch(t){case"video/webm":return n.canPlayType('video/webm; codecs="vp8, vorbis"').replace(/no/,"");case"video/mp4":return n.canPlayType('video/mp4; codecs="avc1.42E01E, mp4a.40.2"').replace(/no/,"");case"video/ogg":return n.canPlayType('video/ogg; codecs="theora"').replace(/no/,"")}else if("audio"===e.type)switch(t){case"audio/mpeg":return n.canPlayType("audio/mpeg;").replace(/no/,"");case"audio/ogg":return n.canPlayType('audio/ogg; codecs="vorbis"').replace(/no/,"");case"audio/wav":return n.canPlayType('audio/wav; codecs="1"').replace(/no/,"")}}catch(e){return!1}return!1},textTracks:"textTracks"in document.createElement("video"),passiveListeners:function(){var e=!1;try{var t=Object.defineProperty({},"passive",{get:function(){e=!0}});window.addEventListener("test",null,t)}catch(e){}return e}(),touch:"ontouchstart"in document.documentElement,transitions:!1!==a.transitionEnd,reducedMotion:"matchMedia"in window&&window.matchMedia("(prefers-reduced-motion)").matches};return e.prototype.play=function(){var e=this;return"play"in e.media&&e.media.play(),e},e.prototype.pause=function(){var e=this;return"pause"in e.media&&e.media.pause(),e},e.prototype.togglePlay=function(e){var t=this;return a.is.boolean(e)||(e=t.media.paused),e?t.play():t.pause(),e},e.prototype.isPlaying=function(){return!this.media.paused},e.prototype.stop=function(){var e=this;return e.restart(),e.pause(),e},e.prototype.restart=function(){var e=this;return e.seek(),e},e.prototype.rewind=function(e){var t=this;return a.is.number(e)||(e=t.config.seekTime),t.seek(t.media.currentTime-e),t},e.prototype.forward=function(e){var t=this;return a.is.number(e)||(e=t.config.seekTime),t.seek(t.media.currentTime+e),t},e.prototype.seek=function(e){var t=this,n=0,o=t.media.paused,s=t.getDuration();if(a.is.number(e)&&(n=e),n<0?n=0:n>s&&(n=s),a.inArray(i.embed,t.type)){switch(t.type){case"youtube":t.embed.seekTo(n);break;case"vimeo":t.embed.setCurrentTime(n);break;case"soundcloud":t.embed.seekTo(1e3*n)}o&&t.pause(),t.media.seeking=!0,t.core.trigger(t.media,"seeking")}else t.media.currentTime=n.toFixed(4);return t.core.log("Seeking to "+t.media.currentTime+" seconds"),t},e.prototype.setVolume=function(e){var t=this,n=!a.is.undefined(e);if(a.is.string(e)&&(e=parseFloat(e)),a.is.number(e)||(e=t.storage.volume),a.is.number(e)||(e=t.config.volume),e>1&&(e=1),e<0&&(e=0),t.media.volume=e,a.inArray(i.embed,t.type)){switch(t.type){case"youtube":t.embed.setVolume(100*t.media.volume);break;case"vimeo":case"soundcloud":t.embed.setVolume(t.media.volume)}t.core.trigger(t.media,"volumechange")}return 0===e?t.toggleMute(!0):t.media.muted&&n&&t.toggleMute(),t},e.prototype.increaseVolume=function(e){var t=this,n=t.media.muted?0:t.media.volume;return a.is.number(e)||(e=1),t.setVolume(n+e),t},e.prototype.decreaseVolume=function(e){var t=this,n=t.media.muted?0:t.media.volume;return a.is.number(e)||(e=1),t.setVolume(n-e),t},e.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,t.media.muted||0!==t.media.volume||t.setVolume(t.config.volume),a.inArray(i.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:t.config.volume)}t.core.trigger(t.media,"volumechange")}return t},e.prototype.setSpeed=function(e){var t=this;if(a.is.number(e)||(e=parseFloat(t.storage.speed||t.speed.selected||t.config.speed.default)),e<.1&&(e=.1),e>2&&(e=2),a.inArray(t.config.speed.options,e)){switch(t.type){case"youtube":t.embed.setPlaybackRate(e);break;case"vimeo":e=null,t.core.warn("Vimeo playback rate change is not supported");break;default:t.media.playbackRate=e}return t}t.core.warn("Unsupported speed ("+e+")")},e.prototype.setQuality=function(e){var t=this;a.is.string(e)||(e=parseFloat(t.storage.quality||t.config.quality.selected));{if(a.inArray(t.config.quality.options,e)){switch(t.type){case"youtube":t.core.trigger(t.media,"qualityrequested",!1,{quality:e}),t.embed.setPlaybackQuality(e);break;default:t.core.warn("Quality options are only available for YouTube")}return t}t.core.warn("Unsupported quality option ("+e+")")}},e.prototype.setLoop=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;break;case"end":if(t.config.loop.start>=n)return;t.config.loop.end=n;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}return t},e.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},e.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")},e.prototype.toggleCaptions=function(e){var t=this;if(t.supported.ui&&t.elements.buttons.captions)return a.is.boolean(e)||(e=-1===t.elements.container.className.indexOf(t.config.classNames.captions.active)),t.captions.enabled===e?t:(t.captions.enabled=e,a.toggleState(t.elements.buttons.captions,t.captions.enabled),a.toggleClass(t.elements.container,t.config.classNames.captions.active,t.captions.enabled),t.core.trigger(t.media,t.captions.enabled?"captionsenabled":"captionsdisabled"),t)},e.prototype.setLanguage=function(e){var t=this;return a.is.empty(e)?(t.toggleCaptions(!1),t):(e=e.toLowerCase(),t.captions.language===e?t:(t.toggleCaptions(!0),t.captions.language=e,t.core.trigger(t.media,"captionchange"),t.core.setCaption(),t.core.setupCaptions(),t))},e.prototype.getLanguage=function(){return this.captions.language},e.prototype.toggleFullscreen=function(e){var n=this;if(s.fullscreen){if(!a.is.event(e)||e.type!==o.eventType)return n.fullscreen.active?o.cancelFullScreen():o.requestFullScreen(n.elements.container),void(n.fullscreen.active=o.isFullScreen(n.elements.container));n.fullscreen.active=o.isFullScreen(n.elements.container)}else n.fullscreen.active=!n.fullscreen.active,a.toggleClass(n.elements.container,n.config.classNames.fullscreen.fallback,n.fullscreen.active),n.fullscreen.active?t={x:window.pageXOffset||0,y:window.pageYOffset||0}:window.scrollTo(t.x,t.y),document.body.style.overflow=n.fullscreen.active?"hidden":"";return n.elements.buttons&&n.elements.buttons.fullscreen&&a.toggleState(n.elements.buttons.fullscreen,n.fullscreen.active),n.core.trigger(n.media,n.fullscreen.active?"enterfullscreen":"exitfullscreen"),n},e.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},e.prototype.airPlay=function(){var e=this;if(e.core.support.airplay)return e.media.webkitShowPlaybackTargetPicker(),e},e.prototype.toggleControls=function(e){var t=this;if(t.supported.ui&&t.config.hideControls&&"audio"!==t.type){var n=0,i=e,o=!1,r=a.hasClass(t.elements.container,t.config.classNames.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.classNames.hideControls)),window.clearTimeout(t.core.timers.hover),i||t.media.paused||r){if(a.toggleClass(t.elements.container,t.config.classNames.hideControls,!1)&&t.core.trigger(t.media,"controlsshown"),t.media.paused||r)return;s.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.classNames.hideControls,!0)&&(t.core.trigger(t.media,"controlshidden"),a.inArray(t.config.controls,"settings")&&!a.is.empty(t.config.settings)&&t.core.toggleMenu(!1))},n)),t}},e.prototype.on=function(e,t){var n=this;return a.on(n.elements.container,e,t),n},e.prototype.off=function(e,t){var n=this;return a.off(n.elements.container,e,t),n},e.prototype.supports=function(e){return s.mime(this,e)},e.prototype.destroy=function(e,t){function n(){if(null!==i){if(a.is.boolean(t)||(t=!0),document.body.style.overflow="",t){var n=i.elements.container.parentNode;a.is.htmlElement(n)&&n.replaceChild(i.elements.original,i.elements.container)}i.core.trigger(i.elements.original,"destroyed",!0),a.is.function(e)&&e.call(i.elements.original),i=null}}var i=this;switch(i.type){case"youtube":window.clearInterval(i.core.timers.buffering),window.clearInterval(i.core.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()}},e.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},e}); \ No newline at end of file
diff --git a/src/js/plyr.js b/src/js/plyr.js
index 4fd7c397..3968162a 100644
--- a/src/js/plyr.js
+++ b/src/js/plyr.js
@@ -304,6 +304,7 @@
hideControls: 'plyr--hide-controls',
isIos: 'plyr--is-ios',
isTouch: 'plyr--is-touch',
+ uiSupported: 'plyr--full-ui',
menu: {
value: 'plyr__menu__value',
badge: 'plyr__badge',
@@ -468,54 +469,58 @@
name: name,
version: majorVersion,
isIE: isIE,
- isOldIE: isIE && majorVersion <= 9,
isFirefox: isFirefox,
isChrome: isChrome,
isSafari: isSafari,
isWebkit: 'WebkitAppearance' in document.documentElement.style,
isIPhone: /(iPhone|iPod)/gi.test(navigator.platform),
isIos: /(iPad|iPhone|iPod)/gi.test(navigator.platform),
+ isSupported: !(isIE && majorVersion <= 9),
};
},
// Check for support
// Basic functionality vs full UI
checkSupport: function(type, inline) {
- var basic = false;
- var full = false;
+ var api = false;
+ var ui = false;
var browser = utils.getBrowser();
var playsInline = browser.isIPhone && inline && support.inline;
switch (type) {
case 'video':
- basic = support.video;
- full = basic && !browser.isOldIE && (!browser.isIPhone || playsInline);
+ api = support.video;
+ ui = api && browser.isSupported && (!browser.isIPhone || playsInline);
break;
case 'audio':
- basic = support.audio;
- full = basic && !browser.isOldIE;
+ api = support.audio;
+ ui = api && browser.isSupported;
break;
case 'youtube':
- basic = support.video;
- full = basic && !browser.isOldIE && (!browser.isIPhone || playsInline);
+ api = true;
+ ui = api && browser.isSupported && (!browser.isIPhone || playsInline);
break;
case 'vimeo':
+ api = true;
+ ui = false;
+ break;
+
case 'soundcloud':
- basic = true;
- full = !browser.isOldIE && !browser.isIos;
+ api = true;
+ ui = browser.isSupported;
break;
default:
- basic = support.audio && support.video;
- full = basic && !browser.isOldIE;
+ api = support.audio && support.video;
+ ui = api && browser.isSupported;
}
return {
- basic: basic,
- full: full,
+ api: api,
+ ui: ui,
};
},
@@ -1371,7 +1376,7 @@
}
// Trap focus inside container
- function focusTrap() {
+ function trapFocus() {
var tabbables = getElements('input:not([disabled]), button:not([disabled])');
var first = tabbables[0];
var last = tabbables[tabbables.length - 1];
@@ -1455,9 +1460,14 @@
}
var styleSheet = player.elements.styleSheet.sheet;
- var percentage = (range.value / range.max) * 100;
+ var percentage = range.value / range.max * 100;
var selector = '#' + range.id + '::-webkit-slider-runnable-track';
- var styles = '{ background-image: linear-gradient(to right, currentColor ' + percentage + '%, transparent ' + percentage + '%) }';
+ var styles =
+ '{ background-image: linear-gradient(to right, currentColor ' +
+ percentage +
+ '%, transparent ' +
+ percentage +
+ '%) }';
var index = -1;
// Find old rule if it exists
@@ -1761,7 +1771,6 @@
}
// Play Pause button
- // TODO: This should be a toggle button really?
if (utils.inArray(player.config.controls, 'play')) {
controls.appendChild(createButton('play'));
controls.appendChild(createButton('pause'));
@@ -2369,7 +2378,7 @@
// Setup fullscreen
function setupFullscreen() {
- if (!player.supported.full || player.type === 'audio' || !player.config.fullscreen.enabled) {
+ if (!player.supported.ui || player.type === 'audio' || !player.config.fullscreen.enabled) {
return;
}
@@ -2390,12 +2399,17 @@
utils.toggleState(player.elements.buttons.fullscreen, false);
}
- // Setup focus trap
- focusTrap();
+ // Trap focus in container
+ trapFocus();
}
// Setup captions
function setupCaptions() {
+ // Requires UI support
+ if (!player.supported.ui) {
+ return;
+ }
+
// Set default language if not set
if (!utils.is.empty(player.storage.language)) {
player.captions.language = player.storage.language;
@@ -2531,6 +2545,10 @@
// Get current selected caption language
function getLanguage() {
+ if (!player.supported.ui) {
+ return null;
+ }
+
if (!support.textTracks || utils.is.empty(player.captions.tracks)) {
return player.config.i18n.none;
}
@@ -2563,6 +2581,11 @@
// Set the current caption
function setCaption(caption) {
+ // Requires UI
+ if (!player.supported.ui) {
+ return;
+ }
+
if (utils.is.htmlElement(player.elements.captions)) {
var content = utils.createElement('span');
@@ -2759,11 +2782,17 @@
}
// Toggle style hook
- function toggleStyleHook() {
+ function addStyleHook() {
utils.toggleClass(
player.elements.container,
player.config.selectors.container.replace('.', ''),
- player.supported.full
+ true
+ );
+
+ utils.toggleClass(
+ player.elements.container,
+ player.config.classNames.uiSupported,
+ player.supported.ui
);
}
@@ -2790,7 +2819,7 @@
}
// If there's a play button, set label
- if (player.supported.full) {
+ if (player.supported.ui) {
if (utils.is.htmlElement(player.elements.buttons.play)) {
player.elements.buttons.play.setAttribute('aria-label', label);
}
@@ -2865,24 +2894,24 @@
return;
}
- if (player.supported.full) {
- // Add type class
+ // Add type class
+ utils.toggleClass(
+ player.elements.container,
+ player.config.classNames.type.replace('{0}', player.type),
+ true
+ );
+
+ // Add video class for embeds
+ // This will require changes if audio embeds are added
+ if (utils.inArray(types.embed, player.type)) {
utils.toggleClass(
player.elements.container,
- player.config.classNames.type.replace('{0}', player.type),
+ player.config.classNames.type.replace('{0}', 'video'),
true
);
+ }
- // Add video class for embeds
- // This will require changes if audio embeds are added
- if (utils.inArray(types.embed, player.type)) {
- utils.toggleClass(
- player.elements.container,
- player.config.classNames.type.replace('{0}', 'video'),
- true
- );
- }
-
+ if (player.supported.ui) {
// Check for picture-in-picture support
utils.toggleClass(
player.elements.container,
@@ -3028,7 +3057,7 @@
// When embeds are ready
function embedReady() {
// Setup the UI and call ready if full support
- if (player.supported.full) {
+ if (player.supported.ui) {
setupInterface();
ready();
}
@@ -3045,7 +3074,7 @@
videoId: videoId,
playerVars: {
autoplay: player.config.autoplay ? 1 : 0, // Autoplay
- controls: player.supported.full ? 0 : 1, // Only show controls if not fully supported
+ controls: player.supported.ui ? 0 : 1, // Only show controls if not fully supported
rel: 0, // No related vids
showinfo: 0, // Hide info
iv_load_policy: 3, // Hide annotations
@@ -3120,7 +3149,7 @@
player.config.title = instance.getVideoData().title;
// Set the tabindex
- if (player.supported.full) {
+ if (player.supported.ui) {
player.media.setAttribute('tabindex', -1);
}
@@ -3300,7 +3329,7 @@
player.embed.on('loaded', function() {
// Fix keyboard focus issues
// https://github.com/sampotts/plyr/issues/317
- if (utils.is.htmlElement(player.embed.element) && player.supported.full) {
+ if (utils.is.htmlElement(player.embed.element) && player.supported.ui) {
player.embed.element.setAttribute('tabindex', -1);
}
});
@@ -3345,6 +3374,7 @@
}
// Soundcloud ready
+ // TODO: Document
function soundcloudReady() {
/* jshint validthis: true */
player.embed = window.SC.Widget(this);
@@ -3568,7 +3598,7 @@
// Update volume UI and storage
function updateVolume() {
// Update the <input type="range"> if present
- if (player.supported.full) {
+ if (player.supported.ui) {
var value = player.media.muted ? 0 : player.media.volume;
if (player.elements.inputs.volume) {
@@ -3585,7 +3615,7 @@
utils.toggleClass(player.elements.container, player.config.classNames.muted, player.media.muted);
// Update checkbox for mute state
- if (player.supported.full && player.elements.buttons.mute) {
+ if (player.supported.ui && player.elements.buttons.mute) {
utils.toggleState(player.elements.buttons.mute, player.media.muted);
}
}
@@ -3645,7 +3675,7 @@
// Update <progress> elements
function updateProgress(event) {
- if (!player.supported.full) {
+ if (!player.supported.ui) {
return;
}
@@ -3732,7 +3762,7 @@
// Show the duration on metadataloaded
function displayDuration() {
- if (!player.supported.full) {
+ if (!player.supported.ui) {
return;
}
@@ -3911,9 +3941,9 @@
utils.toggleClass(
player.elements.container,
player.config.classNames.captions.active,
- player.captions.enabled
+ player.supported.ui && player.captions.enabled
);
- toggleStyleHook();
+ addStyleHook();
// Set new sources for html5
if (utils.inArray(types.html5, player.type)) {
@@ -3937,7 +3967,7 @@
// If HTML5 or embed but not fully supported, setupInterface and call ready now
if (
utils.inArray(types.html5, player.type) ||
- (utils.inArray(types.embed, player.type) && !player.supported.full)
+ (utils.inArray(types.embed, player.type) && !player.supported.ui)
) {
// Setup interface
setupInterface();
@@ -4180,7 +4210,7 @@
// Delay the adding of classname until the focus has changed
// This event fires before the focusin event
- window.setTimeout(function () {
+ window.setTimeout(function() {
utils.toggleClass(utils.getFocusElement(), player.config.classNames.tabFocus, true);
}, 0);
});
@@ -4385,7 +4415,9 @@
// Handle user exiting fullscreen by escaping etc
if (support.fullscreen) {
- utils.on(document, fullscreen.eventType, function(event) { player.toggleFullscreen(event); });
+ utils.on(document, fullscreen.eventType, function(event) {
+ player.toggleFullscreen(event);
+ });
}
}
@@ -4427,7 +4459,7 @@
utils.on(player.media, 'waiting canplay seeked', checkLoading);
// Click video
- if (player.config.clickToPlay && player.type !== 'audio') {
+ if (player.supported.ui && player.config.clickToPlay && player.type !== 'audio') {
// Re-fetch the wrapper
var wrapper = getElement('.' + player.config.classNames.video);
@@ -4552,8 +4584,12 @@
// Setup the UI
function setupInterface() {
+ // Re-attach media element listeners
+ // TODO: Use event bubbling
+ mediaListeners();
+
// Don't setup interface if no support
- if (!player.supported.full) {
+ if (!player.supported.ui) {
warn('Basic support only', player.type);
// Remove controls
@@ -4574,7 +4610,7 @@
// Inject custom controls
injectControls();
- // Re-attach listeners
+ // Re-attach control listeners
listeners();
}
@@ -4583,9 +4619,6 @@
return;
}
- // Media element listeners
- mediaListeners();
-
// Remove native controls
toggleNativeControls();
@@ -4650,7 +4683,7 @@
// Bail if disabled or no basic support
// You may want to disable certain UAs etc
- if (!utils.checkSupport().basic) {
+ if (!utils.checkSupport().api) {
error('Setup failed: no support');
return;
}
@@ -4722,8 +4755,8 @@
// Check for support again but with type
player.supported = utils.checkSupport(player.type, player.config.inline);
- // If no native support, bail
- if (!player.supported.basic) {
+ // If no support for even API, bail
+ if (!player.supported.api) {
error('Setup failed: no support');
return;
}
@@ -4735,10 +4768,10 @@
player.elements.container = utils.wrap(media, utils.createElement('div'));
// Allow focus to be captured
- player.elements.container.setAttribute('tabindex', 0);
+ // player.elements.container.setAttribute('tabindex', 0);
// Add style hook
- toggleStyleHook();
+ addStyleHook();
// Debug info
log(player.browser.name + ' ' + player.browser.version);
@@ -4757,7 +4790,7 @@
// If embed but not fully supported, setupInterface (to avoid flash of controls) and call ready now
if (
utils.inArray(types.html5, player.type) ||
- (utils.inArray(types.embed, player.type) && !player.supported.full)
+ (utils.inArray(types.embed, player.type) && !player.supported.ui)
) {
// Setup UI
setupInterface();
@@ -5304,7 +5337,7 @@
var player = this;
// If there's no full support, or there's no caption toggle
- if (!player.supported.full || !player.elements.buttons.captions) {
+ if (!player.supported.ui || !player.elements.buttons.captions) {
return;
}
@@ -5406,7 +5439,11 @@
player.fullscreen.active = !player.fullscreen.active;
// Add class hook
- utils.toggleClass(player.elements.container, player.config.classNames.fullscreen.fallback, player.fullscreen.active);
+ utils.toggleClass(
+ player.elements.container,
+ player.config.classNames.fullscreen.fallback,
+ player.fullscreen.active
+ );
// Make sure we don't lose scroll position
if (player.fullscreen.active) {
@@ -5483,7 +5520,7 @@
var player = this;
// Don't hide if config says not to, it's audio, or not ready or loading
- if (!player.config.hideControls || player.type === 'audio') {
+ if (!player.supported.ui || !player.config.hideControls || player.type === 'audio') {
return;
}
diff --git a/src/less/base.less b/src/less/base.less
new file mode 100644
index 00000000..e41874a0
--- /dev/null
+++ b/src/less/base.less
@@ -0,0 +1,48 @@
+// --------------------------------------------------------------
+// Base styling
+// --------------------------------------------------------------
+
+// Base
+.plyr {
+ position: relative;
+ max-width: 100%;
+ min-width: 200px;
+ overflow: hidden;
+ font-family: @plyr-font-family;
+ font-weight: @plyr-font-weight-normal;
+ direction: ltr;
+ text-shadow: none;
+
+ // Media elements
+ video,
+ audio {
+ width: 100%;
+ height: auto;
+ vertical-align: middle;
+ border-radius: inherit;
+ }
+}
+
+// Full UI only
+.plyr--full-ui {
+ & when(@plyr-border-box = true) {
+ // border-box everything
+ // http://paulirish.com/2012/box-sizing-border-box-ftw/
+ &,
+ *,
+ *::after,
+ *::before {
+ box-sizing: border-box;
+ }
+ }
+
+ & when(@plyr-touch-action = true) {
+ // Fix 300ms delay
+ a,
+ button,
+ input,
+ label {
+ touch-action: manipulation;
+ }
+ }
+}
diff --git a/src/less/bundle.less b/src/less/bundle.less
new file mode 100644
index 00000000..bff7fdec
--- /dev/null
+++ b/src/less/bundle.less
@@ -0,0 +1,29 @@
+// ==========================================================================
+// Plyr styles
+// https://github.com/sampotts/plyr
+// TODO: Review use of BEM classnames
+// ==========================================================================
+
+@import 'settings';
+
+@import 'lib/animation';
+@import 'lib/mixins';
+
+@import 'base';
+
+@import 'components/badges';
+@import 'components/buttons';
+@import 'components/captions';
+@import 'components/controls';
+@import 'components/embed';
+@import 'components/menus';
+@import 'components/progress';
+@import 'components/sliders';
+@import 'components/times';
+@import 'components/tooltips';
+@import 'components/video';
+@import 'components/volume';
+
+@import 'states/fullscreen';
+
+@import 'utils/hidden';
diff --git a/src/less/components/badges.less b/src/less/components/badges.less
new file mode 100644
index 00000000..37ed2af4
--- /dev/null
+++ b/src/less/components/badges.less
@@ -0,0 +1,11 @@
+// --------------------------------------------------------------
+// Badges
+// --------------------------------------------------------------
+
+.plyr__badge {
+ padding: 1px 4px;
+ border-radius: 2px;
+ background: @plyr-menu-color;
+ color: @plyr-menu-bg;
+ font-size: @plyr-font-size-tiny;
+}
diff --git a/src/less/components/buttons.less b/src/less/components/buttons.less
new file mode 100644
index 00000000..3aa6da1a
--- /dev/null
+++ b/src/less/components/buttons.less
@@ -0,0 +1,89 @@
+.plyr__control {
+ position: relative;
+ display: inline-block;
+ flex-shrink: 0;
+ overflow: visible; // IE11
+ vertical-align: middle;
+ padding: @plyr-control-padding;
+ border: 0;
+ background: transparent;
+ border-radius: 3px;
+ cursor: pointer;
+ transition: background 0.3s ease, color 0.3s ease, opacity 0.3s ease;
+ color: inherit;
+
+ svg {
+ width: @plyr-control-icon-size;
+ height: @plyr-control-icon-size;
+ display: block;
+ fill: currentColor;
+ pointer-events: none;
+ }
+
+ // Hide toggle icons by default
+ .icon--exit-fullscreen,
+ .icon--muted,
+ .icon--captions-on {
+ display: none;
+ }
+
+ // Default focus
+ &:focus {
+ outline: 0;
+ }
+}
+
+// Audio styles
+.plyr--audio .plyr__control {
+ &.tab-focus,
+ &:hover,
+ &[aria-expanded='true'] {
+ background: @plyr-audio-control-bg-hover;
+ color: @plyr-audio-control-color-hover;
+ }
+}
+
+// Large play button (video only)
+.plyr__play-large {
+ display: none;
+ position: absolute;
+ z-index: 1;
+ top: 50%;
+ left: 50%;
+ transform: translate(-50%, -50%);
+ padding: ceil(@plyr-control-spacing * 1.25);
+ background: fade(@plyr-video-control-bg-hover, 80%);
+ border: 3px solid currentColor;
+ border-radius: 100%;
+ box-shadow: 0 1px 1px fade(#000, 15%);
+ color: @plyr-video-control-color;
+ transition: all 0.3s ease;
+
+ svg {
+ position: relative;
+ left: 2px;
+ width: 20px;
+ height: 20px;
+ display: block;
+ fill: currentColor;
+ pointer-events: none;
+ }
+
+ &:hover,
+ &:focus {
+ background: @plyr-video-control-bg-hover;
+ }
+
+ &:focus {
+ outline: 1px dotted fade(@plyr-video-control-color, 50%);
+ }
+}
+
+.plyr--full-ui.plyr--video .plyr__play-large {
+ display: inline-block;
+}
+
+.plyr--playing .plyr__play-large {
+ opacity: 0;
+ visibility: hidden;
+}
diff --git a/src/less/components/captions.less b/src/less/components/captions.less
new file mode 100644
index 00000000..d2058a13
--- /dev/null
+++ b/src/less/components/captions.less
@@ -0,0 +1,57 @@
+// --------------------------------------------------------------
+// Captions
+// --------------------------------------------------------------
+
+// Hide default captions
+.plyr--full-ui video::-webkit-media-text-track-container {
+ display: none;
+}
+
+.plyr__captions {
+ display: none;
+ position: absolute;
+ bottom: 0;
+ left: 0;
+ width: 100%;
+ padding: @plyr-control-spacing;
+ transform: translateY(-(@plyr-control-spacing * 4));
+ transition: transform 0.3s ease;
+ color: @plyr-captions-color;
+ font-size: @plyr-font-size-captions-small;
+ text-align: center;
+
+ span {
+ border-radius: 2px;
+ padding: 0.2em 0.5em;
+ background: @plyr-captions-bg;
+ box-decoration-break: clone;
+ line-height: 170%;
+ white-space: pre-wrap;
+
+ // Firefox adds a <div> when using getCueAsHTML()
+ div {
+ display: inline;
+ }
+ }
+
+ span:empty {
+ display: none;
+ }
+
+ @media (min-width: @plyr-bp-screen-sm) {
+ padding: (@plyr-control-spacing * 2);
+ font-size: @plyr-font-size-captions-base;
+ }
+
+ @media (min-width: @plyr-bp-screen-md) {
+ font-size: @plyr-font-size-captions-medium;
+ }
+}
+
+.plyr--captions-active .plyr__captions {
+ display: block;
+}
+
+.plyr--hide-controls .plyr__captions {
+ transform: translateY(-(@plyr-control-spacing * 1.5));
+}
diff --git a/src/less/components/controls.less b/src/less/components/controls.less
new file mode 100644
index 00000000..2750de32
--- /dev/null
+++ b/src/less/components/controls.less
@@ -0,0 +1,127 @@
+// --------------------------------------------------------------
+// Controls
+// --------------------------------------------------------------
+
+// Hide native controls
+.plyr ::-webkit-media-controls {
+ display: none;
+}
+
+// Playback controls
+.plyr__controls {
+ display: flex;
+ align-items: center;
+ text-align: center;
+
+ // Spacing
+ > .plyr__control,
+ .plyr__progress,
+ .plyr__time,
+ .plyr__menu {
+ margin-left: (@plyr-control-spacing / 2);
+
+ &:first-child,
+ &:first-child + [data-plyr='pause'] {
+ margin-left: 0;
+ }
+ }
+
+ .plyr__volume {
+ margin-left: (@plyr-control-spacing / 2);
+ }
+
+ @media (min-width: @plyr-bp-screen-sm) {
+ > .plyr__control,
+ .plyr__progress,
+ .plyr__time,
+ .plyr__menu {
+ margin-left: @plyr-control-spacing;
+ }
+
+ > .plyr__control + .plyr__control,
+ .plyr__menu + .plyr__control,
+ > .plyr__control + .plyr__menu {
+ margin-left: (@plyr-control-spacing / 2);
+ }
+ }
+}
+
+// Video controls
+.plyr--video .plyr__controls {
+ position: absolute;
+ left: 0;
+ right: 0;
+ bottom: 0;
+ z-index: 2;
+ padding: (@plyr-control-spacing * 3.5) (@plyr-control-spacing + 2) @plyr-control-spacing;
+ background: linear-gradient(fade(@plyr-video-controls-bg, 0%), fade(@plyr-video-controls-bg, 70%));
+ border-bottom-left-radius: inherit;
+ border-bottom-right-radius: inherit;
+ color: @plyr-video-control-color;
+ transition: all 0.4s ease-in-out;
+
+ .plyr__control {
+ svg {
+ filter: drop-shadow(0 1px 1px fade(#000, 15%));
+ }
+
+ // Hover and tab focus
+ &.tab-focus,
+ &:hover,
+ &[aria-expanded='true'] {
+ background: @plyr-video-control-bg-hover;
+ color: @plyr-video-control-color-hover;
+ }
+ }
+}
+
+// Hide controls
+.plyr--video.plyr--hide-controls .plyr__controls {
+ opacity: 0;
+ transform: translateY(100%);
+ pointer-events: none;
+}
+
+// Audio controls
+.plyr--audio .plyr__controls {
+ padding: @plyr-control-spacing;
+ border-radius: inherit;
+ background: @plyr-audio-controls-bg;
+ border: @plyr-audio-controls-border;
+ color: @plyr-audio-control-color;
+}
+
+// States
+.plyr__controls [data-plyr='pause'] {
+ display: none;
+}
+.plyr--playing .plyr__controls [data-plyr='play'] {
+ display: none;
+}
+.plyr--playing .plyr__controls [data-plyr='pause'] {
+ display: inline-block;
+}
+
+// Change icons on state change
+.plyr--muted .plyr__control .icon--muted,
+.plyr--captions-active .plyr__control .icon--captions-on {
+ display: block;
+
+ & + svg {
+ display: none;
+ }
+}
+
+// Some options are hidden by default
+.plyr [data-plyr='captions'],
+ .plyr [data-plyr='pip'],
+ .plyr [data-plyr='airplay'],
+ .plyr [data-plyr='fullscreen'] {
+ display: none;
+}
+.plyr--captions-enabled [data-plyr='captions'],
+ .plyr--pip-supported [data-plyr='pip'],
+ .plyr--airplay-supported [data-plyr='airplay'],
+ .plyr--fullscreen-enabled [data-plyr='fullscreen'] {
+ display: inline-block;
+}
diff --git a/src/less/components/embed.less b/src/less/components/embed.less
new file mode 100644
index 00000000..02b33425
--- /dev/null
+++ b/src/less/components/embed.less
@@ -0,0 +1,23 @@
+// --------------------------------------------------------------
+// Embedded players
+// YouTube, Vimeo, etc
+// --------------------------------------------------------------
+
+.plyr__video-embed {
+ padding-bottom: 56.25%; /* 16:9 */
+ height: 0;
+
+ iframe {
+ position: absolute;
+ top: 0;
+ left: 0;
+ width: 100%;
+ height: 100%;
+ border: 0;
+ user-select: none;
+ }
+}
+// To allow mouse events to be captured if full support
+.plyr--full-ui .plyr__video-embed iframe {
+ pointer-events: none;
+}
diff --git a/src/less/components/menus.less b/src/less/components/menus.less
new file mode 100644
index 00000000..52b735de
--- /dev/null
+++ b/src/less/components/menus.less
@@ -0,0 +1,155 @@
+// --------------------------------------------------------------
+// Menus
+// --------------------------------------------------------------
+
+.plyr__menu {
+ position: relative;
+
+ // Animate the icon
+ .plyr__control svg {
+ transition: transform 0.3s ease;
+ }
+ .plyr__control[aria-expanded='true'] {
+ svg {
+ transform: rotate(45deg);
+ }
+
+ // Hide tooltip
+ .plyr__tooltip {
+ display: none;
+ }
+ }
+
+ // The actual menu container
+ &__container {
+ position: absolute;
+ z-index: 1;
+ bottom: 100%;
+ right: -3px;
+ margin-bottom: 10px;
+ animation: plyr-popup 0.2s ease;
+ background: @plyr-menu-bg;
+ border-radius: 4px;
+ box-shadow: 0 1px 2px fade(#000, 20%);
+ white-space: nowrap;
+ text-align: left;
+ color: @plyr-menu-color;
+ font-size: @plyr-font-size-small;
+
+ > div {
+ overflow: hidden;
+ transition: height 0.35s cubic-bezier(0.4, 0, 0.2, 1), width 0.35s cubic-bezier(0.4, 0, 0.2, 1);
+ }
+
+ // Arrow
+ &::after {
+ content: '';
+ position: absolute;
+ top: 100%;
+ right: 15px;
+ height: 0;
+ width: 0;
+ border: 4px solid transparent;
+ border-top-color: @plyr-menu-bg;
+ }
+
+ ul {
+ margin: 0;
+ padding: @plyr-control-padding;
+ list-style: none;
+ overflow: hidden;
+ }
+
+ // Options
+ .plyr__control {
+ display: flex;
+ align-items: center;
+ width: 100%;
+ padding: ceil(@plyr-control-padding / 2) (@plyr-control-padding * 2);
+ color: @plyr-menu-color;
+ font-weight: @plyr-font-weight-bold;
+ user-select: none;
+
+ &::after {
+ content: '';
+ position: absolute;
+ top: 50%;
+ transform: translateY(-50%);
+ border: 4px solid transparent;
+ transition: border-color 0.2s ease;
+ }
+
+ &--forward {
+ padding-right: ceil(@plyr-control-padding * 4);
+
+ &::after {
+ right: 5px;
+ border-left-color: fade(@plyr-menu-color, 80%);
+ }
+
+ &.tab-focus::after,
+ &:hover::after {
+ border-left-color: currentColor;
+ }
+ }
+
+ &--back {
+ position: relative;
+ @horizontal-padding: (@plyr-control-padding * 2);
+
+ width: ~'calc(100% - @{horizontal-padding})';
+ margin: @plyr-control-padding;
+ margin-bottom: floor(@plyr-control-padding / 2);
+ padding-left: ceil(@plyr-control-padding * 4);
+ font-weight: @plyr-font-weight-normal;
+
+ &::after {
+ left: @plyr-control-padding;
+ border-right-color: fade(@plyr-menu-color, 80%);
+ }
+
+ &::before {
+ content: '';
+ position: absolute;
+ top: 100%;
+ left: 0;
+ right: 0;
+ height: 1px;
+ overflow: hidden;
+ margin-top: ceil(@plyr-control-padding / 2);
+ background: fade(#000, 15%);
+ box-shadow: 0 1px 0 fade(#fff, 10%);
+ }
+
+ &.tab-focus::after,
+ &:hover::after {
+ border-right-color: currentColor;
+ }
+ }
+ }
+
+ label.plyr__control {
+ padding-left: ceil(@plyr-control-padding * 2.5);
+
+ input[type='radio'] {
+ position: relative;
+ left: -@plyr-control-padding;
+ }
+ }
+
+ // Option value
+ .plyr__menu__value {
+ display: flex;
+ align-items: center;
+ margin-left: auto;
+ padding-left: ceil(@plyr-control-padding * 3.5);
+ pointer-events: none;
+ overflow: hidden;
+ font-weight: @plyr-font-weight-normal;
+
+ .plyr__badge {
+ font-weight: @plyr-font-weight-bold;
+ }
+ }
+ }
+}
diff --git a/src/less/components/progress.less b/src/less/components/progress.less
new file mode 100644
index 00000000..0022dfe0
--- /dev/null
+++ b/src/less/components/progress.less
@@ -0,0 +1,110 @@
+// --------------------------------------------------------------
+// Playback progress
+// --------------------------------------------------------------
+
+.plyr__progress {
+ position: relative;
+ display: none;
+ flex: 1;
+
+ input[type='range'] {
+ position: relative;
+ z-index: 2;
+ }
+
+ // Seek tooltip to show time
+ .plyr__tooltip {
+ left: 0;
+ }
+}
+
+.plyr .plyr__progress {
+ display: inline-block;
+}
+
+.plyr__progress--buffer {
+ position: absolute;
+ left: 0;
+ top: 50%;
+ width: 100%;
+ height: @plyr-range-track-height;
+ margin: -(@plyr-range-track-height / 2) 0 0;
+ padding: 0;
+ background: transparent;
+ border: none;
+ border-radius: 100px;
+
+ // WebKit
+ -webkit-appearance: none;
+
+ &::-webkit-progress-bar {
+ background: transparent;
+ }
+
+ &::-webkit-progress-value {
+ background: currentColor;
+ border-radius: 100px;
+ min-width: @plyr-range-track-height;
+ }
+
+ // Mozilla
+ &::-moz-progress-bar {
+ background: currentColor;
+ border-radius: 100px;
+ min-width: @plyr-range-track-height;
+ }
+
+ // Microsoft
+ &::-ms-fill {
+ border-radius: 100px;
+ }
+}
+
+.plyr__progress--buffer {
+ &::-webkit-progress-value {
+ transition: width 0.2s ease;
+ }
+
+ &::-moz-progress-bar {
+ transition: width 0.2s ease;
+ }
+
+ &::-ms-fill {
+ transition: width 0.2s ease;
+ }
+}
+
+.plyr--video .plyr__progress--buffer {
+ box-shadow: 0 1px 1px fade(#000, 15%);
+ color: @plyr-video-progress-buffered-bg;
+}
+
+.plyr--audio .plyr__progress--buffer {
+ color: @plyr-audio-progress-buffered-bg;
+}
+
+// Loading state
+.plyr--loading .plyr__progress--buffer {
+ animation: plyr-progress 1s linear infinite;
+ background-size: @plyr-progress-loading-size @plyr-progress-loading-size;
+ background-repeat: repeat-x;
+ background-image: linear-gradient(
+ -45deg,
+ @plyr-progress-loading-bg 25%,
+ transparent 25%,
+ transparent 50%,
+ @plyr-progress-loading-bg 50%,
+ @plyr-progress-loading-bg 75%,
+ transparent 75%,
+ transparent
+ );
+ color: transparent;
+}
+
+.plyr--video.plyr--loading .plyr__progress--buffer {
+ background-color: @plyr-video-progress-buffered-bg;
+}
+
+.plyr--audio.plyr--loading .plyr__progress--buffer {
+ background-color: @plyr-audio-progress-buffered-bg;
+}
diff --git a/src/less/components/sliders.less b/src/less/components/sliders.less
new file mode 100644
index 00000000..e2a5ffcf
--- /dev/null
+++ b/src/less/components/sliders.less
@@ -0,0 +1,140 @@
+// --------------------------------------------------------------
+// Slider inputs - <input type="range">
+// --------------------------------------------------------------
+
+// Specificity is for bootstrap compatibility
+.plyr--full-ui input[type='range'] {
+ display: block;
+ height: (@plyr-range-thumb-height * @plyr-range-thumb-active-scale);
+ width: 100%;
+ margin: 0;
+ padding: 0;
+ cursor: pointer;
+ border: none;
+ background: transparent;
+
+ // Used in JS to populate lower fill for WebKit
+ color: @plyr-range-selected-bg;
+
+ // WebKit
+ -webkit-appearance: none;
+
+ &::-webkit-slider-runnable-track {
+ .plyr-range-track();
+ }
+
+ &::-webkit-slider-thumb {
+ -webkit-appearance: none;
+ margin-top: -((@plyr-range-thumb-height - @plyr-range-track-height) / 2);
+ .plyr-range-thumb();
+ }
+
+ // Mozilla
+ &::-moz-range-track {
+ .plyr-range-track();
+ }
+
+ &::-moz-range-thumb {
+ .plyr-range-thumb();
+ }
+
+ &::-moz-range-progress {
+ height: @plyr-range-track-height;
+ background: currentColor;
+ border-radius: (@plyr-range-track-height / 2);
+ }
+
+ // Microsoft
+ &::-ms-track {
+ height: @plyr-range-track-height;
+ background: transparent;
+ border: 0;
+ color: transparent;
+ }
+
+ &::-ms-fill-upper {
+ .plyr-range-track();
+ }
+
+ &::-ms-fill-lower {
+ .plyr-range-track();
+
+ background: currentColor;
+ }
+
+ &::-ms-thumb {
+ .plyr-range-thumb();
+ // For some reason, Edge uses the -webkit margin above
+ margin-top: 0;
+ }
+
+ &::-ms-tooltip {
+ display: none;
+ }
+
+ // Focus styles
+ &:focus {
+ outline: 0;
+ }
+
+ &::-moz-focus-outer {
+ border: 0;
+ }
+
+ &.tab-focus {
+ outline-offset: 3px;
+ }
+
+ // Pressed styles
+ &:active {
+ &::-webkit-slider-thumb {
+ .plyr-range-thumb-active();
+ }
+
+ &::-moz-range-thumb {
+ .plyr-range-thumb-active();
+ }
+
+ &::-ms-thumb {
+ .plyr-range-thumb-active();
+ }
+ }
+}
+
+// Video range inputs
+.plyr--full-ui.plyr--video input[type='range'] {
+ &::-webkit-slider-runnable-track {
+ background: @plyr-video-range-track-bg;
+ }
+
+ &::-moz-range-track {
+ background: @plyr-video-range-track-bg;
+ }
+
+ &::-ms-track {
+ background: @plyr-video-range-track-bg;
+ }
+
+ &.tab-focus {
+ outline: 1px dotted fade(@plyr-video-control-color, 50%);
+ }
+}
+
+// Audio range inputs
+.plyr--full-ui.plyr--audio input[type='range'] {
+ &::-webkit-slider-runnable-track {
+ background: @plyr-audio-range-track-bg;
+ }
+
+ &::-moz-range-track {
+ background: @plyr-audio-range-track-bg;
+ }
+
+ &::-ms-track {
+ background: @plyr-audio-range-track-bg;
+ }
+
+ &.tab-focus {
+ outline: 1px dotted fade(@plyr-audio-control-color, 50%);
+ }
+}
diff --git a/src/less/components/times.less b/src/less/components/times.less
new file mode 100644
index 00000000..ea4466d1
--- /dev/null
+++ b/src/less/components/times.less
@@ -0,0 +1,28 @@
+// --------------------------------------------------------------
+// Time
+// --------------------------------------------------------------
+
+.plyr__time {
+ display: inline-block;
+ vertical-align: middle;
+ font-size: @plyr-font-size-small;
+}
+
+// Media duration hidden on small screens
+.plyr__time + .plyr__time {
+ display: none;
+
+ @media (min-width: @plyr-bp-screen-md) {
+ display: inline-block;
+ }
+
+ // Add a slash in before
+ &::before {
+ content: '\2044';
+ margin-right: @plyr-control-spacing;
+ }
+}
+
+.plyr--video .plyr__time {
+ text-shadow: 0 1px 1px fade(#000, 15%);
+}
diff --git a/src/less/components/tooltips.less b/src/less/components/tooltips.less
new file mode 100644
index 00000000..0f7c0071
--- /dev/null
+++ b/src/less/components/tooltips.less
@@ -0,0 +1,87 @@
+// --------------------------------------------------------------
+// Tooltips
+// --------------------------------------------------------------
+
+.plyr__tooltip {
+ position: absolute;
+ z-index: 2;
+ bottom: 100%;
+ margin-bottom: (@plyr-tooltip-padding * 2);
+ padding: @plyr-tooltip-padding (@plyr-tooltip-padding * 1.5);
+ pointer-events: none;
+ opacity: 0;
+ background: @plyr-tooltip-bg;
+ border-radius: @plyr-tooltip-radius;
+ box-shadow: 0 1px 2px fade(#000, 10%);
+ color: @plyr-tooltip-color;
+ font-size: @plyr-font-size-small;
+ font-weight: @plyr-font-weight-normal;
+ line-height: 1.3;
+ transform: translate(-50%, 10px) scale(0.8);
+ transform-origin: 50% 100%;
+ transition: transform 0.2s 0.1s ease, opacity 0.2s 0.1s ease;
+
+ &::before {
+ // Arrows
+ content: '';
+ position: absolute;
+ width: 0;
+ height: 0;
+ left: 50%;
+ transform: translateX(-50%);
+
+ // The background triangle
+ bottom: -@plyr-tooltip-arrow-size;
+ border-right: @plyr-tooltip-arrow-size solid transparent;
+ border-top: @plyr-tooltip-arrow-size solid @plyr-tooltip-bg;
+ border-left: @plyr-tooltip-arrow-size solid transparent;
+ z-index: 2;
+ }
+}
+
+// Displaying
+.plyr .plyr__control:hover .plyr__tooltip,
+.plyr .plyr__control.tab-focus .plyr__tooltip,
+.plyr__tooltip--visible {
+ opacity: 1;
+ transform: translate(-50%, 0) scale(1);
+}
+
+.plyr .plyr__control:hover .plyr__tooltip {
+ z-index: 3;
+}
+
+// First tooltip
+.plyr__controls > .plyr__control:first-child .plyr__tooltip,
+.plyr__controls > .plyr__control:first-child + .plyr__control .plyr__tooltip {
+ left: 0;
+ transform: translate(0, 10px) scale(0.8);
+ transform-origin: 0 100%;
+
+ &::before {
+ left: (@plyr-control-icon-size / 2) + @plyr-control-padding;
+ }
+}
+
+// Last tooltip
+.plyr__controls > .plyr__control:last-child .plyr__tooltip {
+ right: 0;
+ transform: translate(0, 10px) scale(0.8);
+ transform-origin: 100% 100%;
+
+ &::before {
+ left: auto;
+ right: (@plyr-control-icon-size / 2) + @plyr-control-padding;
+ transform: translateX(50%);
+ }
+}
+
+.plyr__controls > .plyr__control:first-child,
+.plyr__controls > .plyr__control:first-child + .plyr__control,
+.plyr__controls > .plyr__control:last-child {
+ &:hover .plyr__tooltip,
+ &.tab-focus .plyr__tooltip,
+ .plyr__tooltip--visible {
+ transform: translate(0, 0) scale(1);
+ }
+}
diff --git a/src/less/components/video.less b/src/less/components/video.less
new file mode 100644
index 00000000..b68bac96
--- /dev/null
+++ b/src/less/components/video.less
@@ -0,0 +1,12 @@
+// --------------------------------------------------------------
+// Video styles
+// --------------------------------------------------------------
+
+.plyr__video-wrapper {
+ position: relative;
+ background: #000;
+ border-radius: inherit;
+ // Require z-index to force border-radius
+ z-index: 0;
+ overflow: hidden;
+}
diff --git a/src/less/components/volume.less b/src/less/components/volume.less
new file mode 100644
index 00000000..f62a572f
--- /dev/null
+++ b/src/less/components/volume.less
@@ -0,0 +1,30 @@
+// --------------------------------------------------------------
+// Volume
+// --------------------------------------------------------------
+
+.plyr__volume {
+ flex: 1;
+ position: relative;
+
+ input[type='range'] {
+ position: relative;
+ z-index: 2;
+ }
+
+ @media (min-width: @plyr-bp-screen-sm) {
+ display: block;
+ max-width: 60px;
+ }
+
+ @media (min-width: @plyr-bp-screen-md) {
+ max-width: 100px;
+ }
+}
+
+// Hide sound controls on iOS
+// It's not supported to change volume using JavaScript:
+// https://developer.apple.com/library/safari/documentation/AudioVideo/Conceptual/Using_HTML5_Audio_Video/Device-SpecificConsiderations/Device-SpecificConsiderations.html
+.plyr--is-ios .plyr__volume,
+ .plyr--is-ios [data-plyr='mute'] {
+ display: none !important;
+}
diff --git a/src/less/lib/animation.less b/src/less/lib/animation.less
new file mode 100644
index 00000000..4165a7f7
--- /dev/null
+++ b/src/less/lib/animation.less
@@ -0,0 +1,21 @@
+// --------------------------------------------------------------
+// Animations
+// --------------------------------------------------------------
+
+@keyframes plyr-progress {
+ to {
+ background-position: @plyr-progress-loading-size 0;
+ }
+}
+
+@keyframes plyr-popup {
+ from {
+ transform: translateY(10px);
+ opacity: 0.5;
+ }
+
+ to {
+ transform: translateY(0);
+ opacity: 1;
+ }
+}
diff --git a/src/less/mixins.less b/src/less/lib/mixins.less
index 14e7d742..333f6afe 100644
--- a/src/less/mixins.less
+++ b/src/less/lib/mixins.less
@@ -11,6 +11,7 @@
border-radius: (@plyr-range-track-height / 2);
user-select: none;
}
+
.plyr-range-thumb() {
position: relative;
height: @plyr-range-thumb-height;
@@ -22,6 +23,7 @@
box-shadow: @plyr-range-thumb-shadow;
box-sizing: border-box;
}
+
.plyr-range-thumb-active() {
background: @plyr-range-thumb-active-bg;
border-color: @plyr-range-thumb-active-border-color;
@@ -38,10 +40,12 @@
video {
height: 100%;
}
+
.plyr__video-wrapper {
height: 100%;
width: 100%;
}
+
.plyr__video-embed {
// Revert overflow change
overflow: visible;
diff --git a/src/less/plyr.less b/src/less/plyr.less
deleted file mode 100644
index a31e7280..00000000
--- a/src/less/plyr.less
+++ /dev/null
@@ -1,957 +0,0 @@
-// ==========================================================================
-// Plyr styles
-// https://github.com/sampotts/plyr
-// TODO: break into smaller files and look at use of BEM classnames
-// ==========================================================================
-
-@import 'variables';
-@import 'mixins';
-
-// Animation
-// ---------------------------------------
-@keyframes plyr-progress {
- to {
- background-position: @plyr-progress-loading-size 0;
- }
-}
-@keyframes plyr-popup {
- from {
- transform: translateY(10px);
- opacity: 0.5;
- }
- to {
- transform: translateY(0);
- opacity: 1;
- }
-}
-
-// Styles
-// -------------------------------
-// Base
-.plyr {
- position: relative;
- max-width: 100%;
- min-width: 200px;
- overflow: hidden;
- font-family: @plyr-font-family;
- font-weight: @plyr-font-weight-normal;
- direction: ltr;
- text-shadow: none;
-
- & when(@plyr-border-box = true) {
- // border-box everything
- // http://paulirish.com/2012/box-sizing-border-box-ftw/
- &,
- *,
- *::after,
- *::before {
- box-sizing: border-box;
- }
- }
-
- & when(@plyr-touch-action = true) {
- // Fix 300ms delay
- a,
- button,
- input,
- label {
- touch-action: manipulation;
- }
- }
-
- // ARIA
- [aria-hidden='true'] {
- display: none;
- }
-
- // Focus
- &:focus {
- outline: 0;
- }
-
- // Media elements
- video,
- audio {
- width: 100%;
- height: auto;
- vertical-align: middle;
- border-radius: inherit;
- }
-
- // Range inputs
- // Specificity is for bootstrap compatibility
- input[type='range'] {
- display: block;
- height: (@plyr-range-thumb-height * @plyr-range-thumb-active-scale);
- width: 100%;
- margin: 0;
- padding: 0;
- cursor: pointer;
- border: none;
- background: transparent;
-
- // Used in JS to populate lower fill for WebKit
- color: @plyr-range-selected-bg;
-
- // WebKit
- -webkit-appearance: none;
-
- &::-webkit-slider-runnable-track {
- .plyr-range-track();
- }
- &::-webkit-slider-thumb {
- -webkit-appearance: none;
- margin-top: -((@plyr-range-thumb-height - @plyr-range-track-height) / 2);
- .plyr-range-thumb();
- }
-
- // Mozilla
- &::-moz-range-track {
- .plyr-range-track();
- }
- &::-moz-range-thumb {
- .plyr-range-thumb();
- }
- &::-moz-range-progress {
- height: @plyr-range-track-height;
- background: currentColor;
- border-radius: (@plyr-range-track-height / 2);
- }
-
- // Microsoft
- &::-ms-track {
- height: @plyr-range-track-height;
- background: transparent;
- border: 0;
- color: transparent;
- }
- &::-ms-fill-upper {
- .plyr-range-track();
- }
- &::-ms-fill-lower {
- .plyr-range-track();
- background: currentColor;
- }
- &::-ms-thumb {
- .plyr-range-thumb();
- // For some reason, Edge uses the -webkit margin above
- margin-top: 0;
- }
- &::-ms-tooltip {
- display: none;
- }
-
- // Focus styles
- &:focus {
- outline: 0;
- }
- &::-moz-focus-outer {
- border: 0;
- }
- &.tab-focus {
- outline-offset: 3px;
- }
-
- // Pressed styles
- &:active {
- &::-webkit-slider-thumb {
- .plyr-range-thumb-active();
- }
- &::-moz-range-thumb {
- .plyr-range-thumb-active();
- }
- &::-ms-thumb {
- .plyr-range-thumb-active();
- }
- }
- }
-}
-
-// Video range inputs
-.plyr--video input[type='range'] {
- &::-webkit-slider-runnable-track {
- background: @plyr-video-range-track-bg;
- }
- &::-moz-range-track {
- background: @plyr-video-range-track-bg;
- }
- &::-ms-track {
- background: @plyr-video-range-track-bg;
- }
-
- &.tab-focus {
- outline: 1px dotted fade(@plyr-video-control-color, 50%);
- }
-}
-
-// Audio range inputs
-.plyr--audio input[type='range'] {
- &::-webkit-slider-runnable-track {
- background: @plyr-audio-range-track-bg;
- }
- &::-moz-range-track {
- background: @plyr-audio-range-track-bg;
- }
- &::-ms-track {
- background: @plyr-audio-range-track-bg;
- }
-
- &.tab-focus {
- outline: 1px dotted fade(@plyr-audio-control-color, 50%);
- }
-}
-
-// Screen reader only elements
-.plyr__sr-only {
- clip: rect(1px, 1px, 1px, 1px);
- overflow: hidden;
-
- // !important is not always needed
- & when(@plyr-sr-only-important = true) {
- position: absolute !important;
- padding: 0 !important;
- border: 0 !important;
- height: 1px !important;
- width: 1px !important;
- }
- & when(@plyr-sr-only-important = false) {
- position: absolute;
- padding: 0;
- border: 0;
- height: 1px;
- width: 1px;
- }
-}
-
-// Video
-.plyr__video-wrapper {
- position: relative;
- background: #000;
- border-radius: inherit;
- // Require z-index to force border-radius
- z-index: 0;
- overflow: hidden;
-}
-
-// Container for embeds
-.plyr__video-embed {
- padding-bottom: 56.25%; /* 16:9 */
- height: 0;
-
- iframe {
- position: absolute;
- top: 0;
- left: 0;
- width: 100%;
- height: 100%;
- border: 0;
- user-select: none;
- }
-
- // Vimeo hack
- > div {
- position: relative;
- padding-bottom: 200%;
- transform: translateY(-35.95%);
- }
-}
-// To allow mouse events to be captured if full support
-.plyr .plyr__video-embed iframe {
- pointer-events: none;
-}
-
-// Captions
-// --------------------------------------------------------------
-// Hide default captions
-.plyr video::-webkit-media-text-track-container {
- display: none;
-}
-.plyr__captions {
- display: none;
- position: absolute;
- bottom: 0;
- left: 0;
- width: 100%;
- padding: @plyr-control-spacing;
- transform: translateY(-(@plyr-control-spacing * 4));
- transition: transform 0.3s ease;
- color: @plyr-captions-color;
- font-size: @plyr-font-size-captions-small;
- text-align: center;
-
- span {
- border-radius: 2px;
- padding: 0.2em 0.5em;
- background: @plyr-captions-bg;
- box-decoration-break: clone;
- line-height: 170%;
- white-space: pre-wrap;
-
- // Firefox adds a <div> when using getCueAsHTML()
- div {
- display: inline;
- }
- }
- span:empty {
- display: none;
- }
-
- @media (min-width: @plyr-bp-screen-sm) {
- padding: (@plyr-control-spacing * 2);
- font-size: @plyr-font-size-captions-base;
- }
- @media (min-width: @plyr-bp-screen-md) {
- font-size: @plyr-font-size-captions-medium;
- }
-}
-.plyr--captions-active .plyr__captions {
- display: block;
-}
-.plyr--hide-controls .plyr__captions {
- transform: translateY(-(@plyr-control-spacing * 1.5));
-}
-
-// Controls
-// --------------------------------------------------------------
-// Hide native controls
-.plyr ::-webkit-media-controls {
- display: none;
-}
-
-// Playback controls
-.plyr__controls {
- display: flex;
- align-items: center;
- text-align: center;
-
- // Spacing
- > .plyr__control,
- .plyr__progress,
- .plyr__time,
- .plyr__menu {
- margin-left: (@plyr-control-spacing / 2);
-
- &:first-child,
- &:first-child + [data-plyr='pause'] {
- margin-left: 0;
- }
- }
- .plyr__volume {
- margin-left: (@plyr-control-spacing / 2);
- }
-
- @media (min-width: @plyr-bp-screen-sm) {
- > .plyr__control,
- .plyr__progress,
- .plyr__time,
- .plyr__menu {
- margin-left: @plyr-control-spacing;
- }
-
- > .plyr__control + .plyr__control,
- .plyr__menu + .plyr__control,
- > .plyr__control + .plyr__menu {
- margin-left: (@plyr-control-spacing / 2);
- }
- }
-}
-
-// Buttons
-.plyr__control {
- position: relative;
- display: inline-block;
- flex-shrink: 0;
- overflow: visible; // IE11
- vertical-align: middle;
- padding: @plyr-control-padding;
- border: 0;
- background: transparent;
- border-radius: 3px;
- cursor: pointer;
- transition: background 0.3s ease, color 0.3s ease, opacity 0.3s ease;
- color: inherit;
-
- svg {
- width: @plyr-control-icon-size;
- height: @plyr-control-icon-size;
- display: block;
- fill: currentColor;
- pointer-events: none;
- }
-
- // Hide toggle icons by default
- .icon--exit-fullscreen,
- .icon--muted,
- .icon--captions-on {
- display: none;
- }
-
- // Default focus
- &:focus {
- outline: 0;
- }
-}
-
-// Video controls
-.plyr--video .plyr__controls {
- position: absolute;
- left: 0;
- right: 0;
- bottom: 0;
- z-index: 2;
- padding: (@plyr-control-spacing * 3.5) (@plyr-control-spacing + 2) @plyr-control-spacing;
- background: linear-gradient(fade(@plyr-video-controls-bg, 0%), fade(@plyr-video-controls-bg, 70%));
- border-bottom-left-radius: inherit;
- border-bottom-right-radius: inherit;
- color: @plyr-video-control-color;
- transition: all 0.4s ease-in-out;
-
- .plyr__control {
- svg {
- filter: drop-shadow(0 1px 1px fade(#000, 15%));
- }
-
- // Hover and tab focus
- &.tab-focus,
- &:hover,
- &[aria-expanded='true'] {
- background: @plyr-video-control-bg-hover;
- color: @plyr-video-control-color-hover;
- }
- }
-}
-// Hide controls
-.plyr--video.plyr--hide-controls .plyr__controls {
- opacity: 0;
- transform: translateY(100%);
- pointer-events: none;
-}
-
-// Audio controls
-.plyr--audio .plyr__controls {
- padding: @plyr-control-spacing;
- border-radius: inherit;
- background: @plyr-audio-controls-bg;
- border: @plyr-audio-controls-border;
- color: @plyr-audio-control-color;
-
- .plyr__control {
- // Hover and tab focus
- &.tab-focus,
- &:hover,
- &[aria-expanded='true'] {
- background: @plyr-audio-control-bg-hover;
- color: @plyr-audio-control-color-hover;
- }
- }
-}
-
-// Large play button (video only)
-.plyr__play-large {
- display: none;
- position: absolute;
- z-index: 1;
- top: 50%;
- left: 50%;
- transform: translate(-50%, -50%);
- padding: ceil(@plyr-control-spacing * 1.25);
- background: fade(@plyr-video-control-bg-hover, 80%);
- border: 3px solid currentColor;
- border-radius: 100%;
- box-shadow: 0 1px 1px fade(#000, 15%);
- color: @plyr-video-control-color;
- transition: all 0.3s ease;
-
- svg {
- position: relative;
- left: 2px;
- width: 20px;
- height: 20px;
- display: block;
- fill: currentColor;
- pointer-events: none;
- }
-
- &:hover,
- &:focus {
- background: @plyr-video-control-bg-hover;
- }
-
- &:focus {
- outline: 1px dotted fade(@plyr-video-control-color, 50%);
- }
-}
-.plyr .plyr__play-large {
- display: inline-block;
-}
-.plyr--audio .plyr__play-large {
- display: none;
-}
-.plyr--playing .plyr__play-large {
- opacity: 0;
- visibility: hidden;
-}
-
-// States
-.plyr__controls [data-plyr='pause'],
-.plyr--playing .plyr__controls [data-plyr='play'] {
- display: none;
-}
-.plyr--playing .plyr__controls [data-plyr='pause'] {
- display: inline-block;
-}
-
-// Change icons on state change
-.plyr--muted .plyr__control .icon--muted,
-.plyr--captions-active .plyr__control .icon--captions-on {
- display: block;
-
- & + svg {
- display: none;
- }
-}
-
-// Some options are hidden by default
-.plyr [data-plyr='captions'],
-.plyr [data-plyr='pip'],
-.plyr [data-plyr='airplay'],
-.plyr [data-plyr='fullscreen'] {
- display: none;
-}
-.plyr--captions-enabled [data-plyr='captions'],
-.plyr--pip-supported [data-plyr='pip'],
-.plyr--airplay-supported [data-plyr='airplay'],
-.plyr--fullscreen-enabled [data-plyr='fullscreen'] {
- display: inline-block;
-}
-
-// Menus
-// --------------------------------------------------------------
-.plyr__menu {
- position: relative;
-
- // Hide tooltip
- .plyr__control svg {
- transition: transform 0.3s ease;
- }
- .plyr__control[aria-expanded='true'] {
- svg {
- transform: rotate(45deg);
- }
- .plyr__tooltip {
- display: none;
- }
- }
-
- // The actual menu container
- &__container {
- position: absolute;
- z-index: 1;
- bottom: 100%;
- right: -3px;
- margin-bottom: 10px;
- animation: plyr-popup 0.2s ease;
-
- background: @plyr-menu-bg;
- border-radius: 4px;
- box-shadow: 0 1px 2px fade(#000, 20%);
-
- white-space: nowrap;
- text-align: left;
- color: @plyr-menu-color;
- font-size: @plyr-font-size-small;
-
- > div {
- overflow: hidden;
- transition: height 0.35s cubic-bezier(0.4, 0, 0.2, 1), width 0.35s cubic-bezier(0.4, 0, 0.2, 1);
- }
-
- // Arrow
- &::after {
- content: '';
- position: absolute;
- top: 100%;
- right: 15px;
- height: 0;
- width: 0;
- border: 4px solid transparent;
- border-top-color: @plyr-menu-bg;
- }
-
- ul {
- margin: 0;
- padding: @plyr-control-padding;
- list-style: none;
- overflow: hidden;
- }
-
- // Options
- .plyr__control {
- display: flex;
- align-items: center;
- width: 100%;
- padding: ceil(@plyr-control-padding / 2) (@plyr-control-padding * 2);
- color: @plyr-menu-color;
- font-weight: @plyr-font-weight-bold;
- user-select: none;
-
- &::after {
- content: '';
- position: absolute;
- top: 50%;
- transform: translateY(-50%);
- border: 4px solid transparent;
- transition: border-color 0.2s ease;
- }
-
- &--forward {
- padding-right: ceil(@plyr-control-padding * 4);
-
- &::after {
- right: 5px;
- border-left-color: fade(@plyr-menu-color, 80%);
- }
-
- &.tab-focus::after,
- &:hover::after {
- border-left-color: currentColor;
- }
- }
-
- &--back {
- position: relative;
- @horizontal-padding: (@plyr-control-padding * 2);
- width: ~'calc(100% - @{horizontal-padding})';
- margin: @plyr-control-padding;
- margin-bottom: floor(@plyr-control-padding / 2);
- padding-left: ceil(@plyr-control-padding * 4);
- font-weight: @plyr-font-weight-normal;
-
- &::after {
- left: @plyr-control-padding;
- border-right-color: fade(@plyr-menu-color, 80%);
- }
- &::before {
- content: '';
- position: absolute;
- top: 100%;
- left: 0;
- right: 0;
- height: 1px;
- overflow: hidden;
- margin-top: ceil(@plyr-control-padding / 2);
- background: fade(#000, 15%);
- box-shadow: 0 1px 0 fade(#fff, 10%);
- }
-
- &.tab-focus::after,
- &:hover::after {
- border-right-color: currentColor;
- }
- }
- }
-
- label.plyr__control {
- padding-left: ceil(@plyr-control-padding * 2.5);
-
- input[type='radio'] {
- position: relative;
- left: -@plyr-control-padding;
- }
- }
-
- // Option value
- .plyr__menu__value {
- display: flex;
- align-items: center;
- margin-left: auto;
- padding-left: ceil(@plyr-control-padding * 3.5);
- pointer-events: none;
- overflow: hidden;
- font-weight: @plyr-font-weight-normal;
-
- .plyr__badge {
- font-weight: @plyr-font-weight-bold;
- }
- }
- }
-}
-
-// Badge
-// --------------------------------------------------------------
-.plyr__badge {
- padding: 1px 4px;
- border-radius: 2px;
- background: @plyr-menu-color;
- color: @plyr-menu-bg;
- font-size: 10px;
-}
-
-// Tooltips
-// --------------------------------------------------------------
-.plyr__tooltip {
- position: absolute;
- z-index: 2;
- bottom: 100%;
- margin-bottom: (@plyr-tooltip-padding * 2);
- padding: @plyr-tooltip-padding (@plyr-tooltip-padding * 1.5);
- pointer-events: none;
-
- opacity: 0;
- background: @plyr-tooltip-bg;
- border-radius: @plyr-tooltip-radius;
- box-shadow: 0 1px 2px fade(#000, 10%);
-
- color: @plyr-tooltip-color;
- font-size: @plyr-font-size-small;
- font-weight: @plyr-font-weight-normal;
- line-height: 1.3;
-
- transform: translate(-50%, 10px) scale(0.8);
- transform-origin: 50% 100%;
- transition: transform 0.2s 0.1s ease, opacity 0.2s 0.1s ease;
-
- &::before {
- // Arrows
- content: '';
- position: absolute;
- width: 0;
- height: 0;
- left: 50%;
- transform: translateX(-50%);
-
- // The background triangle
- bottom: -@plyr-tooltip-arrow-size;
- border-right: @plyr-tooltip-arrow-size solid transparent;
- border-top: @plyr-tooltip-arrow-size solid @plyr-tooltip-bg;
- border-left: @plyr-tooltip-arrow-size solid transparent;
- z-index: 2;
- }
-}
-.plyr .plyr__control:hover .plyr__tooltip,
-.plyr .plyr__control.tab-focus .plyr__tooltip,
-.plyr__tooltip--visible {
- opacity: 1;
- transform: translate(-50%, 0) scale(1);
-}
-.plyr .plyr__control:hover .plyr__tooltip {
- z-index: 3;
-}
-
-// First tooltip
-.plyr__controls > .plyr__control:first-child .plyr__tooltip,
-.plyr__controls > .plyr__control:first-child + .plyr__control .plyr__tooltip {
- left: 0;
- transform: translate(0, 10px) scale(0.8);
- transform-origin: 0 100%;
-
- &::before {
- left: (@plyr-control-icon-size / 2) + @plyr-control-padding;
- }
-}
-
-// Last tooltip
-.plyr__controls > .plyr__control:last-child .plyr__tooltip {
- right: 0;
- transform: translate(0, 10px) scale(0.8);
- transform-origin: 100% 100%;
-
- &::before {
- left: auto;
- right: (@plyr-control-icon-size / 2) + @plyr-control-padding;
- transform: translateX(50%);
- }
-}
-
-.plyr__controls > .plyr__control:first-child,
-.plyr__controls > .plyr__control:first-child + .plyr__control,
-.plyr__controls > .plyr__control:last-child {
- &:hover .plyr__tooltip,
- &.tab-focus .plyr__tooltip,
- .plyr__tooltip--visible {
- transform: translate(0, 0) scale(1);
- }
-}
-
-// Playback progress
-// --------------------------------------------------------------
-// <progress> element
-.plyr__progress {
- position: relative;
- display: none;
- flex: 1;
-
- input[type='range'] {
- position: relative;
- z-index: 2;
- }
-
- // Seek tooltip to show time
- .plyr__tooltip {
- left: 0;
- }
-}
-.plyr .plyr__progress {
- display: inline-block;
-}
-
-.plyr__progress--buffer {
- position: absolute;
- left: 0;
- top: 50%;
- width: 100%;
- height: @plyr-range-track-height;
- margin: -(@plyr-range-track-height / 2) 0 0;
- padding: 0;
- background: transparent;
- border: none;
- border-radius: 100px;
-
- // WebKit
- -webkit-appearance: none;
-
- &::-webkit-progress-bar {
- background: transparent;
- }
- &::-webkit-progress-value {
- background: currentColor;
- border-radius: 100px;
- min-width: @plyr-range-track-height;
- }
-
- // Mozilla
- &::-moz-progress-bar {
- background: currentColor;
- border-radius: 100px;
- min-width: @plyr-range-track-height;
- }
-
- // Microsoft
- &::-ms-fill {
- border-radius: 100px;
- }
-}
-.plyr__progress--buffer {
- &::-webkit-progress-value {
- transition: width 0.2s ease;
- }
- &::-moz-progress-bar {
- transition: width 0.2s ease;
- }
- &::-ms-fill {
- transition: width 0.2s ease;
- }
-}
-.plyr--video .plyr__progress--buffer {
- box-shadow: 0 1px 1px fade(#000, 15%);
- color: @plyr-video-progress-buffered-bg;
-}
-.plyr--audio .plyr__progress--buffer {
- color: @plyr-audio-progress-buffered-bg;
-}
-
-// Loading state
-.plyr--loading .plyr__progress--buffer {
- animation: plyr-progress 1s linear infinite;
- background-size: @plyr-progress-loading-size @plyr-progress-loading-size;
- background-repeat: repeat-x;
- background-image: linear-gradient(
- -45deg,
- @plyr-progress-loading-bg 25%,
- transparent 25%,
- transparent 50%,
- @plyr-progress-loading-bg 50%,
- @plyr-progress-loading-bg 75%,
- transparent 75%,
- transparent
- );
- color: transparent;
-}
-.plyr--video.plyr--loading .plyr__progress--buffer {
- background-color: @plyr-video-progress-buffered-bg;
-}
-.plyr--audio.plyr--loading .plyr__progress--buffer {
- background-color: @plyr-audio-progress-buffered-bg;
-}
-
-// Time
-// --------------------------------------------------------------
-.plyr__time {
- display: inline-block;
- vertical-align: middle;
- font-size: @plyr-font-size-small;
-}
-// Media duration hidden on small screens
-.plyr__time + .plyr__time {
- display: none;
-
- @media (min-width: @plyr-bp-screen-md) {
- display: inline-block;
- }
-
- // Add a slash in before
- &::before {
- content: '\2044';
- margin-right: @plyr-control-spacing;
- }
-}
-.plyr--video .plyr__time {
- text-shadow: 0 1px 1px fade(#000, 15%);
-}
-
-// Volume
-// --------------------------------------------------------------
-.plyr__volume {
- display: none;
-}
-.plyr .plyr__volume {
- flex: 1;
- position: relative;
-
- input[type='range'] {
- position: relative;
- z-index: 2;
- }
- @media (min-width: @plyr-bp-screen-sm) {
- display: block;
- max-width: 60px;
- }
- @media (min-width: @plyr-bp-screen-md) {
- max-width: 100px;
- }
-}
-
-// Hide sound controls on iOS
-// It's not supported to change volume using JavaScript:
-// https://developer.apple.com/library/safari/documentation/AudioVideo/Conceptual/Using_HTML5_Audio_Video/Device-SpecificConsiderations/Device-SpecificConsiderations.html
-.plyr--is-ios .plyr__volume,
-.plyr--is-ios [data-plyr='mute'] {
- display: none !important;
-}
-
-// Fullscreen
-// --------------------------------------------------------------
-.plyr:fullscreen {
- .plyr-fullscreen-active();
-}
-.plyr:-webkit-full-screen {
- .plyr-fullscreen-active();
-}
-.plyr:-moz-full-screen {
- .plyr-fullscreen-active();
-}
-.plyr:-ms-fullscreen {
- .plyr-fullscreen-active();
-}
-
-// Fallback for unsupported browsers
-.plyr--fullscreen-fallback {
- .plyr-fullscreen-active();
-
- position: fixed;
- top: 0;
- left: 0;
- right: 0;
- bottom: 0;
- z-index: 10000000;
-}
diff --git a/src/less/variables.less b/src/less/settings.less
index e1b3f64b..e1b3f64b 100644
--- a/src/less/variables.less
+++ b/src/less/settings.less
diff --git a/src/less/states/fullscreen.less b/src/less/states/fullscreen.less
new file mode 100644
index 00000000..9f7478d8
--- /dev/null
+++ b/src/less/states/fullscreen.less
@@ -0,0 +1,31 @@
+// --------------------------------------------------------------
+// Fullscreen
+// --------------------------------------------------------------
+
+.plyr:fullscreen {
+ .plyr-fullscreen-active();
+}
+
+.plyr:-webkit-full-screen {
+ .plyr-fullscreen-active();
+}
+
+.plyr:-moz-full-screen {
+ .plyr-fullscreen-active();
+}
+
+.plyr:-ms-fullscreen {
+ .plyr-fullscreen-active();
+}
+
+// Fallback for unsupported browsers
+.plyr--fullscreen-fallback {
+ .plyr-fullscreen-active();
+
+ position: fixed;
+ top: 0;
+ left: 0;
+ right: 0;
+ bottom: 0;
+ z-index: 10000000;
+}
diff --git a/src/less/utils/hidden.less b/src/less/utils/hidden.less
new file mode 100644
index 00000000..20947c59
--- /dev/null
+++ b/src/less/utils/hidden.less
@@ -0,0 +1,33 @@
+// --------------------------------------------------------------
+// Hiding content nicely
+// --------------------------------------------------------------
+
+// Attributes
+.plyr--full-ui [hidden] {
+ display: none;
+}
+.plyr--full-ui [aria-hidden='true'] {
+ display: none;
+}
+
+// Screen reader only elements
+.plyr__sr-only {
+ clip: rect(1px, 1px, 1px, 1px);
+ overflow: hidden;
+
+ // !important is not always needed
+ & when(@plyr-sr-only-important = true) {
+ position: absolute !important;
+ padding: 0 !important;
+ border: 0 !important;
+ height: 1px !important;
+ width: 1px !important;
+ }
+ & when(@plyr-sr-only-important = false) {
+ position: absolute;
+ padding: 0;
+ border: 0;
+ height: 1px;
+ width: 1px;
+ }
+}