From 7b9ef7d757811cb7c855856ef091061d315b13c4 Mon Sep 17 00:00:00 2001 From: Sam Potts Date: Mon, 18 Jun 2018 23:13:40 +1000 Subject: [PATCH] More work on menus --- demo/dist/demo.css | 2 +- dist/plyr.css | 2 +- dist/plyr.js | 133 +++++++++++++++-------------- dist/plyr.js.map | 2 +- dist/plyr.min.js | 2 +- dist/plyr.min.js.map | 2 +- src/js/config/defaults.js | 3 + src/js/controls.js | 148 +++++++++++++++------------------ src/js/listeners.js | 2 +- src/js/plyr.js | 2 +- src/sass/components/menus.scss | 53 ++++++------ 11 files changed, 174 insertions(+), 177 deletions(-) diff --git a/demo/dist/demo.css b/demo/dist/demo.css index fcc15d6b..b16151dd 100644 --- a/demo/dist/demo.css +++ b/demo/dist/demo.css @@ -1 +1 @@ -@font-face{font-display:swap;font-family:Gordita;font-style:normal;font-weight:300;src:url(https://cdn.plyr.io/static/fonts/gordita-light.woff2) format("woff2"),url(https://cdn.plyr.io/static/fonts/gordita-light.woff) format("woff")}@font-face{font-display:swap;font-family:Gordita;font-style:normal;font-weight:400;src:url(https://cdn.plyr.io/static/fonts/gordita-regular.woff2) format("woff2"),url(https://cdn.plyr.io/static/fonts/gordita-regular.woff) format("woff")}@font-face{font-display:swap;font-family:Gordita;font-style:normal;font-weight:500;src:url(https://cdn.plyr.io/static/fonts/gordita-medium.woff2) format("woff2"),url(https://cdn.plyr.io/static/fonts/gordita-medium.woff) format("woff")}@font-face{font-display:swap;font-family:Gordita;font-style:normal;font-weight:600;src:url(https://cdn.plyr.io/static/fonts/gordita-bold.woff2) format("woff2"),url(https://cdn.plyr.io/static/fonts/gordita-bold.woff) format("woff")}@font-face{font-display:swap;font-family:Gordita;font-style:normal;font-weight:900;src:url(https://cdn.plyr.io/static/fonts/gordita-black.woff2) format("woff2"),url(https://cdn.plyr.io/static/fonts/gordita-black.woff) format("woff")}@keyframes fadein{0%{opacity:0}100%{opacity:1}}/*! normalize.css v7.0.0 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,footer,header,nav,section{display:block}h1{font-size:2em;margin:.67em 0}figcaption,figure,main{display:block}figure{margin:1em 40px}hr{box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace,monospace;font-size:1em}a,button.faux-link{background-color:transparent;-webkit-text-decoration-skip:objects}abbr[title]{border-bottom:none;text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}b,strong{font-weight:inherit}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}dfn{font-style:italic}mark{background-color:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}audio,video{display:inline-block}audio:not([controls]){display:none;height:0}img{border-style:none}svg:not(:root){overflow:hidden}button,input,optgroup,select,textarea{font-family:sans-serif;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}[type=reset],[type=submit],button,html [type=button]{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{border-style:none;padding:0}[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring,button:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:.35em .75em .625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{display:inline-block;vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-cancel-button,[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details,menu{display:block}summary{display:list-item}canvas{display:inline-block}template{display:none}[hidden]{display:none}*,::after,::before{box-sizing:border-box}body,html{display:flex;width:100%}html{background:linear-gradient(to left top,#4dc1ff,#0074b3);background-attachment:fixed;height:100%}body{align-items:center;display:flex;flex-direction:column;min-height:100%}.grid{flex:1;overflow:auto}main{margin:auto;padding-bottom:1px;text-align:center}aside{align-items:center;background:#fff;color:#55646b;display:flex;flex-shrink:0;justify-content:center;padding:15px;position:relative;text-align:center;text-shadow:none;width:100%}aside .icon{fill:#4baaf4;margin-right:10px}aside p{margin:0}aside a,aside button.faux-link{color:#4baaf4}aside a.tab-focus,aside button.tab-focus.faux-link{box-shadow:0 0 0 3px rgba(75,170,244,.35);outline:0}.grid{margin:0 auto;padding:20px}@media only screen and (min-width:768px){.grid{align-items:center;display:flex;max-width:1260px;width:100%}.grid>*{flex:1}}html{font-size:100%}body{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-size:15px;font-size:.9375rem;color:#fff;font-family:Gordita,Avenir,"Helvetica Neue",sans-serif;font-weight:500;line-height:1.75;text-shadow:0 1px 1px rgba(0,0,0,.15)}button,input,select,textarea{font:inherit}p,small{margin:0 0 20px}small{font-size:13px;font-size:.8125rem;display:block}h1{font-size:64px;font-size:4rem;font-weight:600;letter-spacing:-.025em;line-height:1.2;margin:0 0 20px}.button,.button__count{align-items:center;background:#fff;border:0;border-radius:4px;box-shadow:0 1px 1px rgba(0,0,0,.1);color:#55646b;display:inline-flex;padding:15px;position:relative;text-shadow:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;vertical-align:middle}.button{font-weight:600;padding-left:20px;padding-right:20px;transition:all .2s ease}.button:focus,.button:hover{color:#343f4a}.button:focus::after,.button:hover::after{display:none}.button:hover{box-shadow:0 2px 2px rgba(0,0,0,.1);transform:translateY(-1px)}.button:focus{outline:0}.button.tab-focus{box-shadow:0 0 0 3px rgba(255,255,255,.35);outline:0}.button:active{transform:translateY(1px)}.button--with-count{display:inline-flex}.button--with-count .button .icon{flex-shrink:0}.button__count{animation:fadein .2s ease;margin-left:10px}.button__count::before{border:5px solid transparent;border-left-width:0;border-right-color:#fff;content:'';height:0;position:absolute;right:100%;top:50%;transform:translateY(-50%);width:0}header{padding-bottom:20px;text-align:center}header .call-to-action{margin-top:30px}@media only screen and (min-width:768px){header{margin-right:60px;max-width:360px;padding-bottom:40px;text-align:left}}.icon{fill:currentColor;height:16px;vertical-align:-3px;width:16px}a svg,button svg,button.faux-link svg,label svg{pointer-events:none}.btn .icon,a .icon,button.faux-link .icon{margin-right:6px}button.faux-link{background:0 0;border:0;border-radius:0;cursor:pointer;font:inherit;line-height:1.75;margin:0;padding:0;position:relative;text-align:inherit;text-shadow:inherit;-moz-user-select:text;vertical-align:baseline;width:auto}a,button.faux-link{border-bottom:1px dotted currentColor;color:#fff;font-weight:600;position:relative;text-decoration:none;transition:all .2s ease}a::after,button.faux-link::after{background:currentColor;content:'';height:1px;left:50%;position:absolute;top:100%;transform:translateX(-50%);transition:width .2s ease;width:0}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.tab-focus.faux-link{box-shadow:0 0 0 3px rgba(255,255,255,.35);outline:0}a.no-border::after,button.no-border.faux-link::after{display:none}li,ul{list-style:none;margin:0;padding:0}audio,img,video{max-width:100%;vertical-align:middle}nav{display:flex;justify-content:center;margin-bottom:20px}video{max-width:100%;vertical-align:middle}.plyr{border-radius:4px;box-shadow:0 2px 5px rgba(0,0,0,.2);margin:20px auto}.plyr.plyr--audio{max-width:480px}.plyr__video-wrapper::after{border:1px solid rgba(0,0,0,.15);border-radius:inherit;bottom:0;content:'';left:0;pointer-events:none;position:absolute;right:0;top:0;z-index:3}.plyr__cite{display:none;margin-top:20px}.plyr__cite .icon{margin-right:4px}.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}@keyframes plyr-progress{to{background-position:25px 0}}@keyframes plyr-popup{0%{opacity:.5;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes plyr-fade-in{from{opacity:0}to{opacity:1}}.plyr{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;direction:ltr;font-family:inherit;font-variant-numeric:tabular-nums;font-weight:500;line-height:1.7;max-width:100%;min-width:200px;position:relative;text-shadow:none;transition:box-shadow .3s ease}.plyr audio,.plyr video{border-radius:inherit;height:auto;vertical-align:middle;width:100%}.plyr button{font:inherit;line-height:inherit;width:auto}.plyr:focus{outline:0}.plyr--full-ui{box-sizing:border-box}.plyr--full-ui *,.plyr--full-ui ::after,.plyr--full-ui ::before{box-sizing:inherit}.plyr--full-ui a,.plyr--full-ui button,.plyr--full-ui button.faux-link,.plyr--full-ui input,.plyr--full-ui label{touch-action:manipulation}.plyr__badge{background:#4f5b5f;border-radius:2px;color:#fff;font-size:9px;line-height:1;padding:3px 4px}.plyr--full-ui ::-webkit-media-text-track-container{display:none}.plyr__captions{animation:plyr-fade-in .3s ease;bottom:0;color:#fff;display:none;font-size:12px;left:0;padding:10px;position:absolute;text-align:center;transform:translateY(-40px);transition:transform .4s ease-in-out;width:100%}.plyr__captions .plyr__caption{background:rgba(0,0,0,.8);border-radius:2px;-webkit-box-decoration-break:clone;box-decoration-break:clone;line-height:185%;padding:.2em .5em;white-space:pre-wrap}.plyr__captions .plyr__caption div{display:inline}.plyr__captions span:empty{display:none}@media (min-width:480px){.plyr__captions{font-size:13px;padding:20px}}@media (min-width:768px){.plyr__captions{font-size:18px}}.plyr--captions-active .plyr__captions{display:block}.plyr--hide-controls .plyr__captions{transform:translateY(-15px)}.plyr__control{background:0 0;border:0;border-radius:3px;color:inherit;cursor:pointer;flex-shrink:0;overflow:visible;padding:7px;position:relative;transition:all .3s ease}.plyr__control svg{display:block;fill:currentColor;height:18px;pointer-events:none;width:18px}.plyr__control:focus{outline:0}.plyr__control.plyr__tab-focus{box-shadow:0 0 0 3px rgba(26,175,255,.35);outline:0}.plyr__control.plyr__control--pressed .icon--not-pressed,.plyr__control.plyr__control--pressed .label--not-pressed,.plyr__control:not(.plyr__control--pressed) .icon--pressed,.plyr__control:not(.plyr__control--pressed) .label--pressed{display:none}.plyr--audio .plyr__control.plyr__tab-focus,.plyr--audio .plyr__control:hover,.plyr--audio .plyr__control[aria-expanded=true]{background:#1aafff;color:#fff}.plyr__control--overlaid{background:rgba(26,175,255,.8);border:0;border-radius:100%;box-shadow:0 1px 1px rgba(0,0,0,.15);color:#fff;display:none;left:50%;padding:15px;position:absolute;top:50%;transform:translate(-50%,-50%);z-index:2}.plyr__control--overlaid svg{height:20px;left:2px;position:relative;width:20px}.plyr__control--overlaid:focus,.plyr__control--overlaid:hover{background:#1aafff}.plyr--playing .plyr__control--overlaid{opacity:0;visibility:hidden}.plyr--full-ui.plyr--video .plyr__control--overlaid{display:block}.plyr--full-ui ::-webkit-media-controls{display:none}.plyr__controls{align-items:center;display:flex;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{background:linear-gradient(transparent,rgba(0,0,0,.7));border-bottom-left-radius:inherit;border-bottom-right-radius:inherit;bottom:0;color:#fff;left:0;padding:35px 10px 10px;position:absolute;right:0;transition:opacity .4s ease-in-out,transform .4s ease-in-out;z-index:2}.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.plyr__tab-focus,.plyr--video .plyr__controls .plyr__control:hover,.plyr--video .plyr__controls .plyr__control[aria-expanded=true]{background:#1aafff;color:#fff}.plyr--audio .plyr__controls{background:#fff;border-radius:inherit;color:#4f5b5f;padding:10px}.plyr--video.plyr--hide-controls .plyr__controls{opacity:0;pointer-events:none;transform:translateY(100%)}.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{height:0;padding-bottom:56.25%;position:relative}.plyr__video-embed iframe{border:0;height:100%;left:0;position:absolute;top:0;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:100%}.plyr--full-ui .plyr__video-embed iframe{pointer-events:none}.plyr--full-ui .plyr__video-embed>.plyr__video-embed__container{padding-bottom:240%;position:relative;transform:translateY(-38.28125%)}.plyr__menu{display:flex;position:relative}.plyr__menu .plyr__control svg{transition:transform .3s ease}.plyr__menu .plyr__control[aria-expanded=true] svg{transform:rotate(90deg)}.plyr__menu .plyr__control[aria-expanded=true] .plyr__tooltip{display:none}.plyr__menu__container{animation:plyr-popup .2s ease;background:rgba(255,255,255,.9);border-radius:4px;bottom:100%;box-shadow:0 1px 2px rgba(0,0,0,.15);color:#4f5b5f;font-size:13px;margin-bottom:10px;position:absolute;right:-3px;text-align:left;white-space:nowrap;z-index:3}.plyr__menu__container>div{overflow:hidden;transition:height .35s cubic-bezier(.4,0,.2,1),width .35s cubic-bezier(.4,0,.2,1)}.plyr__menu__container::after{border:4px solid transparent;border-top-color:rgba(255,255,255,.9);content:'';height:0;position:absolute;right:15px;top:100%;width:0}.plyr__menu__container [role=menu]{padding:7px}.plyr__menu__container [role=menuitem],.plyr__menu__container [role=menuitemradio]{margin-top:2px}.plyr__menu__container [role=menuitem]:first-child,.plyr__menu__container [role=menuitemradio]:first-child{margin-top:0}.plyr__menu__container .plyr__control{align-items:center;color:#4f5b5f;display:flex;font-size:13px;padding:4px 11px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:100%}.plyr__menu__container .plyr__control>span{align-items:inherit;display:flex;width:100%}.plyr__menu__container .plyr__control::after{border:4px solid transparent;content:'';position:absolute;top:50%;transform:translateY(-50%)}.plyr__menu__container .plyr__control--forward{padding-right:28px}.plyr__menu__container .plyr__control--forward::after{border-left-color:rgba(79,91,95,.8);right:5px}.plyr__menu__container .plyr__control--forward.plyr__tab-focus::after,.plyr__menu__container .plyr__control--forward:hover::after{border-left-color:currentColor}.plyr__menu__container .plyr__control--back{font-weight:500;margin:7px;margin-bottom:3px;padding-left:28px;position:relative;width:calc(100% - 14px)}.plyr__menu__container .plyr__control--back::after{border-right-color:rgba(79,91,95,.8);left:7px}.plyr__menu__container .plyr__control--back::before{background:#b7c5cd;box-shadow:0 1px 0 #fff;content:'';height:1px;left:0;margin-top:4px;overflow:hidden;position:absolute;right:0;top:100%}.plyr__menu__container .plyr__control--back.plyr__tab-focus::after,.plyr__menu__container .plyr__control--back:hover::after{border-right-color:currentColor}.plyr__menu__container label.plyr__control{padding-left:7px}.plyr__menu__container label.plyr__control input[type=radio]+span{background:rgba(0,0,0,.1);border-radius:100%;display:block;flex-shrink:0;height:16px;margin-right:10px;position:relative;transition:all .3s ease;width:16px}.plyr__menu__container label.plyr__control input[type=radio]+span::after{background:#fff;border-radius:100%;content:'';height:6px;left:5px;opacity:0;position:absolute;top:5px;transform:scale(0);transition:transform .3s ease,opacity .3s ease;width:6px}.plyr__menu__container label.plyr__control input[type=radio]:checked+span{background:#1aafff}.plyr__menu__container label.plyr__control input[type=radio]:checked+span::after{opacity:1;transform:scale(1)}.plyr__menu__container label.plyr__control input[type=radio]:focus+span{box-shadow:0 0 0 3px rgba(26,175,255,.35);outline:0}.plyr__menu__container label.plyr__control.plyr__tab-focus input[type=radio]+span,.plyr__menu__container label.plyr__control:hover input[type=radio]+span{background:rgba(0,0,0,.1)}.plyr__menu__container .plyr__menu__value{align-items:center;display:flex;margin-left:auto;margin-right:-7px;overflow:hidden;padding-left:25px;pointer-events:none}.plyr--full-ui input[type=range]{-webkit-appearance:none;background:0 0;border:0;border-radius:28px;color:#1aafff;display:block;height:20px;margin:0;padding:0;transition:box-shadow .3s ease;width:100%}.plyr--full-ui input[type=range]::-webkit-slider-runnable-track{background:0 0;border:0;border-radius:3px;height:6px;transition:all .3s ease;-webkit-user-select:none;user-select:none;background-image:linear-gradient(to right,currentColor var(--value,0),transparent var(--value,0))}.plyr--full-ui input[type=range]::-webkit-slider-thumb{background:#fff;border:0;border-radius:100%;box-shadow:0 1px 1px rgba(0,0,0,.15),0 0 0 1px rgba(47,52,61,.2);box-sizing:border-box;height:14px;position:relative;transition:all .2s ease;width:14px;-webkit-appearance:none;margin-top:-4px}.plyr--full-ui input[type=range]::-moz-range-track{background:0 0;border:0;border-radius:3px;height:6px;transition:all .3s ease;-moz-user-select:none;user-select:none}.plyr--full-ui input[type=range]::-moz-range-thumb{background:#fff;border:0;border-radius:100%;box-shadow:0 1px 1px rgba(0,0,0,.15),0 0 0 1px rgba(47,52,61,.2);box-sizing:border-box;height:14px;position:relative;transition:all .2s ease;width:14px}.plyr--full-ui input[type=range]::-moz-range-progress{background:currentColor;border-radius:3px;height:6px}.plyr--full-ui input[type=range]::-ms-track{background:0 0;border:0;border-radius:3px;height:6px;transition:all .3s ease;-ms-user-select:none;user-select:none;color:transparent}.plyr--full-ui input[type=range]::-ms-fill-upper{background:0 0;border:0;border-radius:3px;height:6px;transition:all .3s ease;-ms-user-select:none;user-select:none}.plyr--full-ui input[type=range]::-ms-fill-lower{background:0 0;border:0;border-radius:3px;height:6px;transition:all .3s ease;-ms-user-select:none;user-select:none;background:currentColor}.plyr--full-ui input[type=range]::-ms-thumb{background:#fff;border:0;border-radius:100%;box-shadow:0 1px 1px rgba(0,0,0,.15),0 0 0 1px rgba(47,52,61,.2);box-sizing:border-box;height:14px;position:relative;transition:all .2s ease;width:14px;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].plyr__tab-focus::-webkit-slider-runnable-track{box-shadow:0 0 0 3px rgba(26,175,255,.35);outline:0}.plyr--full-ui input[type=range].plyr__tab-focus::-moz-range-track{box-shadow:0 0 0 3px rgba(26,175,255,.35);outline:0}.plyr--full-ui input[type=range].plyr__tab-focus::-ms-track{box-shadow:0 0 0 3px rgba(26,175,255,.35);outline:0}.plyr--full-ui.plyr--video input[type=range]::-webkit-slider-runnable-track{background-color:rgba(255,255,255,.25)}.plyr--full-ui.plyr--video input[type=range]::-moz-range-track{background-color:rgba(255,255,255,.25)}.plyr--full-ui.plyr--video input[type=range]::-ms-track{background-color:rgba(255,255,255,.25)}.plyr--full-ui.plyr--video input[type=range]:active::-webkit-slider-thumb{box-shadow:0 1px 1px rgba(0,0,0,.15),0 0 0 1px rgba(47,52,61,.2),0 0 0 3px rgba(255,255,255,.5)}.plyr--full-ui.plyr--video input[type=range]:active::-moz-range-thumb{box-shadow:0 1px 1px rgba(0,0,0,.15),0 0 0 1px rgba(47,52,61,.2),0 0 0 3px rgba(255,255,255,.5)}.plyr--full-ui.plyr--video input[type=range]:active::-ms-thumb{box-shadow:0 1px 1px rgba(0,0,0,.15),0 0 0 1px rgba(47,52,61,.2),0 0 0 3px rgba(255,255,255,.5)}.plyr--full-ui.plyr--audio input[type=range]::-webkit-slider-runnable-track{background-color:rgba(183,197,205,.66)}.plyr--full-ui.plyr--audio input[type=range]::-moz-range-track{background-color:rgba(183,197,205,.66)}.plyr--full-ui.plyr--audio input[type=range]::-ms-track{background-color:rgba(183,197,205,.66)}.plyr--full-ui.plyr--audio input[type=range]:active::-webkit-slider-thumb{box-shadow:0 1px 1px rgba(0,0,0,.15),0 0 0 1px rgba(47,52,61,.2),0 0 0 3px rgba(0,0,0,.1)}.plyr--full-ui.plyr--audio input[type=range]:active::-moz-range-thumb{box-shadow:0 1px 1px rgba(0,0,0,.15),0 0 0 1px rgba(47,52,61,.2),0 0 0 3px rgba(0,0,0,.1)}.plyr--full-ui.plyr--audio input[type=range]:active::-ms-thumb{box-shadow:0 1px 1px rgba(0,0,0,.15),0 0 0 1px rgba(47,52,61,.2),0 0 0 3px rgba(0,0,0,.1)}.plyr__poster{background-color:#000;background-position:50% 50%;background-repeat:no-repeat;background-size:contain;height:100%;left:0;opacity:0;position:absolute;top:0;transition:opacity .3s ease;width:100%;z-index:1;pointer-events:none}.plyr--stopped.plyr__poster-enabled .plyr__poster{opacity:1}.plyr__time{font-size:11px}.plyr__time+.plyr__time::before{content:'\2044';margin-right:10px}@media (max-width:767px){.plyr__time+.plyr__time{display:none}}.plyr--video .plyr__time{text-shadow:0 1px 1px rgba(0,0,0,.15)}.plyr__tooltip{background:rgba(255,255,255,.9);border-radius:3px;bottom:100%;box-shadow:0 1px 2px rgba(0,0,0,.15);color:#4f5b5f;font-size:12px;font-weight:500;line-height:1.3;margin-bottom:10px;opacity:0;padding:5px 7.5px;pointer-events:none;position:absolute;transform:translate(-50%,10px) scale(.8);transform-origin:50% 100%;transition:transform .2s .1s ease,opacity .2s .1s ease;white-space:nowrap;z-index:2}.plyr__tooltip::before{border-left:4px solid transparent;border-right:4px solid transparent;border-top:4px solid rgba(255,255,255,.9);bottom:-4px;content:'';height:0;left:50%;position:absolute;transform:translateX(-50%);width:0;z-index:2}.plyr .plyr__control.plyr__tab-focus .plyr__tooltip,.plyr .plyr__control:hover .plyr__tooltip,.plyr__tooltip--visible{opacity: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;transform:translate(0,10px) scale(.8);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;transform:translate(0,10px) scale(.8);transform-origin:100% 100%}.plyr__controls>.plyr__control:last-child .plyr__tooltip::before{left:auto;right:16px;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.plyr__tab-focus .plyr__tooltip,.plyr__controls>.plyr__control:first-child+.plyr__control:hover .plyr__tooltip,.plyr__controls>.plyr__control:first-child.plyr__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.plyr__tab-focus .plyr__tooltip,.plyr__controls>.plyr__control:last-child:hover .plyr__tooltip{transform:translate(0,0) scale(1)}.plyr--video{overflow:hidden}.plyr--video.plyr--menu-open{overflow:visible}.plyr__video-wrapper{background:#000;border-radius:inherit;overflow:hidden;position:relative;z-index:0}.plyr__progress{display:flex;flex:1;left:7px;margin-right:14px;position:relative}.plyr__progress input[type=range],.plyr__progress__buffer{margin-left:-7px;margin-right:-7px;width:calc(100% + 14px)}.plyr__progress input[type=range]{position:relative;z-index:2}.plyr__progress .plyr__tooltip{font-size:11px;left:0}.plyr__progress__buffer{-webkit-appearance:none;background:0 0;border:0;border-radius:100px;height:6px;left:0;margin-top:-3px;padding:0;position:absolute;top:50%}.plyr__progress__buffer::-webkit-progress-bar{background:0 0;transition:width .2s ease}.plyr__progress__buffer::-webkit-progress-value{background:currentColor;border-radius:100px;min-width:6px}.plyr__progress__buffer::-moz-progress-bar{background:currentColor;border-radius:100px;min-width:6px;transition:width .2s ease}.plyr__progress__buffer::-ms-fill{border-radius:100px;transition:width .2s ease}.plyr--video .plyr__progress__buffer{box-shadow:0 1px 1px rgba(0,0,0,.15);color:rgba(255,255,255,.25)}.plyr--audio .plyr__progress__buffer{color:rgba(183,197,205,.66)}.plyr--loading .plyr__progress__buffer{animation:plyr-progress 1s linear infinite;background-image:linear-gradient(-45deg,rgba(47,52,61,.6) 25%,transparent 25%,transparent 50%,rgba(47,52,61,.6) 50%,rgba(47,52,61,.6) 75%,transparent 75%,transparent);background-repeat:repeat-x;background-size:25px 25px;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(183,197,205,.66)}.plyr__volume{flex:1;position:relative}.plyr__volume input[type=range]{position:relative;z-index:2}@media (min-width:480px){.plyr__volume{max-width:50px}}@media (min-width:768px){.plyr__volume{max-width:80px}}.plyr--is-ios .plyr__volume{display:none!important}.plyr--is-ios.plyr--vimeo [data-plyr=mute]{display:none!important}.plyr:-webkit-full-screen{background:#000;border-radius:0!important;height:100%;margin:0;width:100%}.plyr:-moz-full-screen{background:#000;border-radius:0!important;height:100%;margin:0;width:100%}.plyr:-ms-fullscreen{background:#000;border-radius:0!important;height:100%;margin:0;width:100%}.plyr:fullscreen{background:#000;border-radius:0!important;height:100%;margin:0;width:100%}.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%;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%;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}.plyr:-webkit-full-screen.plyr--hide-controls{cursor:none}.plyr:-moz-full-screen.plyr--hide-controls{cursor:none}.plyr:-ms-fullscreen.plyr--hide-controls{cursor:none}.plyr:fullscreen.plyr--hide-controls{cursor:none}@media (min-width:1024px){.plyr:-webkit-full-screen .plyr__captions{font-size:21px}.plyr:-moz-full-screen .plyr__captions{font-size:21px}.plyr:-ms-fullscreen .plyr__captions{font-size:21px}.plyr:fullscreen .plyr__captions{font-size:21px}}.plyr:-webkit-full-screen{background:#000;border-radius:0!important;height:100%;margin:0;width:100%}.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%;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}.plyr:-webkit-full-screen.plyr--hide-controls{cursor:none}@media (min-width:1024px){.plyr:-webkit-full-screen .plyr__captions{font-size:21px}}.plyr:-moz-full-screen{background:#000;border-radius:0!important;height:100%;margin:0;width:100%}.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}.plyr:-moz-full-screen.plyr--hide-controls{cursor:none}@media (min-width:1024px){.plyr:-moz-full-screen .plyr__captions{font-size:21px}}.plyr:-ms-fullscreen{background:#000;border-radius:0!important;height:100%;margin:0;width:100%}.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}.plyr:-ms-fullscreen.plyr--hide-controls{cursor:none}@media (min-width:1024px){.plyr:-ms-fullscreen .plyr__captions{font-size:21px}}.plyr--fullscreen-fallback{background:#000;border-radius:0!important;height:100%;margin:0;width:100%;bottom:0;left:0;position:fixed;right:0;top: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%;transform:translateY(-50%)}.plyr--fullscreen-fallback .plyr__control .icon--exit-fullscreen{display:block}.plyr--fullscreen-fallback .plyr__control .icon--exit-fullscreen+svg{display:none}.plyr--fullscreen-fallback.plyr--hide-controls{cursor:none}@media (min-width:1024px){.plyr--fullscreen-fallback .plyr__captions{font-size:21px}}.plyr__ads{border-radius:inherit;bottom:0;cursor:pointer;left:0;overflow:hidden;position:absolute;right:0;top:0;z-index:-1}.plyr__ads>div,.plyr__ads>div iframe{height:100%;position:absolute;width:100%}.plyr__ads::after{background:rgba(47,52,61,.8);border-radius:2px;bottom:10px;color:#fff;content:attr(data-badge-text);font-size:11px;padding:2px 6px;pointer-events:none;position:absolute;right:10px;z-index:3}.plyr__ads::after:empty{display:none}.plyr__cues{background:currentColor;display:block;height:6px;left:0;margin:-3px 0 0;opacity:.8;position:absolute;top:50%;width:3px;z-index:3}.plyr--no-transition{transition:none!important}.plyr__sr-only{clip:rect(1px,1px,1px,1px);overflow:hidden;border:0!important;height:1px!important;padding:0!important;position:absolute!important;width:1px!important}.no-border{border:0}[hidden]{display:none}.sr-only{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;opacity:.001;overflow:hidden;padding:0;position:absolute;width:1px} \ No newline at end of file +@font-face{font-display:swap;font-family:Gordita;font-style:normal;font-weight:300;src:url(https://cdn.plyr.io/static/fonts/gordita-light.woff2) format("woff2"),url(https://cdn.plyr.io/static/fonts/gordita-light.woff) format("woff")}@font-face{font-display:swap;font-family:Gordita;font-style:normal;font-weight:400;src:url(https://cdn.plyr.io/static/fonts/gordita-regular.woff2) format("woff2"),url(https://cdn.plyr.io/static/fonts/gordita-regular.woff) format("woff")}@font-face{font-display:swap;font-family:Gordita;font-style:normal;font-weight:500;src:url(https://cdn.plyr.io/static/fonts/gordita-medium.woff2) format("woff2"),url(https://cdn.plyr.io/static/fonts/gordita-medium.woff) format("woff")}@font-face{font-display:swap;font-family:Gordita;font-style:normal;font-weight:600;src:url(https://cdn.plyr.io/static/fonts/gordita-bold.woff2) format("woff2"),url(https://cdn.plyr.io/static/fonts/gordita-bold.woff) format("woff")}@font-face{font-display:swap;font-family:Gordita;font-style:normal;font-weight:900;src:url(https://cdn.plyr.io/static/fonts/gordita-black.woff2) format("woff2"),url(https://cdn.plyr.io/static/fonts/gordita-black.woff) format("woff")}@keyframes fadein{0%{opacity:0}100%{opacity:1}}/*! normalize.css v7.0.0 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,footer,header,nav,section{display:block}h1{font-size:2em;margin:.67em 0}figcaption,figure,main{display:block}figure{margin:1em 40px}hr{box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace,monospace;font-size:1em}a,button.faux-link{background-color:transparent;-webkit-text-decoration-skip:objects}abbr[title]{border-bottom:none;text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}b,strong{font-weight:inherit}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}dfn{font-style:italic}mark{background-color:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}audio,video{display:inline-block}audio:not([controls]){display:none;height:0}img{border-style:none}svg:not(:root){overflow:hidden}button,input,optgroup,select,textarea{font-family:sans-serif;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}[type=reset],[type=submit],button,html [type=button]{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{border-style:none;padding:0}[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring,button:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:.35em .75em .625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{display:inline-block;vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-cancel-button,[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details,menu{display:block}summary{display:list-item}canvas{display:inline-block}template{display:none}[hidden]{display:none}*,::after,::before{box-sizing:border-box}body,html{display:flex;width:100%}html{background:linear-gradient(to left top,#4dc1ff,#0074b3);background-attachment:fixed;height:100%}body{align-items:center;display:flex;flex-direction:column;min-height:100%}.grid{flex:1;overflow:auto}main{margin:auto;padding-bottom:1px;text-align:center}aside{align-items:center;background:#fff;color:#55646b;display:flex;flex-shrink:0;justify-content:center;padding:15px;position:relative;text-align:center;text-shadow:none;width:100%}aside .icon{fill:#4baaf4;margin-right:10px}aside p{margin:0}aside a,aside button.faux-link{color:#4baaf4}aside a.tab-focus,aside button.tab-focus.faux-link{box-shadow:0 0 0 3px rgba(75,170,244,.35);outline:0}.grid{margin:0 auto;padding:20px}@media only screen and (min-width:768px){.grid{align-items:center;display:flex;max-width:1260px;width:100%}.grid>*{flex:1}}html{font-size:100%}body{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-size:15px;font-size:.9375rem;color:#fff;font-family:Gordita,Avenir,"Helvetica Neue",sans-serif;font-weight:500;line-height:1.75;text-shadow:0 1px 1px rgba(0,0,0,.15)}button,input,select,textarea{font:inherit}p,small{margin:0 0 20px}small{font-size:13px;font-size:.8125rem;display:block}h1{font-size:64px;font-size:4rem;font-weight:600;letter-spacing:-.025em;line-height:1.2;margin:0 0 20px}.button,.button__count{align-items:center;background:#fff;border:0;border-radius:4px;box-shadow:0 1px 1px rgba(0,0,0,.1);color:#55646b;display:inline-flex;padding:15px;position:relative;text-shadow:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;vertical-align:middle}.button{font-weight:600;padding-left:20px;padding-right:20px;transition:all .2s ease}.button:focus,.button:hover{color:#343f4a}.button:focus::after,.button:hover::after{display:none}.button:hover{box-shadow:0 2px 2px rgba(0,0,0,.1);transform:translateY(-1px)}.button:focus{outline:0}.button.tab-focus{box-shadow:0 0 0 3px rgba(255,255,255,.35);outline:0}.button:active{transform:translateY(1px)}.button--with-count{display:inline-flex}.button--with-count .button .icon{flex-shrink:0}.button__count{animation:fadein .2s ease;margin-left:10px}.button__count::before{border:5px solid transparent;border-left-width:0;border-right-color:#fff;content:'';height:0;position:absolute;right:100%;top:50%;transform:translateY(-50%);width:0}header{padding-bottom:20px;text-align:center}header .call-to-action{margin-top:30px}@media only screen and (min-width:768px){header{margin-right:60px;max-width:360px;padding-bottom:40px;text-align:left}}.icon{fill:currentColor;height:16px;vertical-align:-3px;width:16px}a svg,button svg,button.faux-link svg,label svg{pointer-events:none}.btn .icon,a .icon,button.faux-link .icon{margin-right:6px}button.faux-link{background:0 0;border:0;border-radius:0;cursor:pointer;font:inherit;line-height:1.75;margin:0;padding:0;position:relative;text-align:inherit;text-shadow:inherit;-moz-user-select:text;vertical-align:baseline;width:auto}a,button.faux-link{border-bottom:1px dotted currentColor;color:#fff;font-weight:600;position:relative;text-decoration:none;transition:all .2s ease}a::after,button.faux-link::after{background:currentColor;content:'';height:1px;left:50%;position:absolute;top:100%;transform:translateX(-50%);transition:width .2s ease;width:0}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.tab-focus.faux-link{box-shadow:0 0 0 3px rgba(255,255,255,.35);outline:0}a.no-border::after,button.no-border.faux-link::after{display:none}li,ul{list-style:none;margin:0;padding:0}audio,img,video{max-width:100%;vertical-align:middle}nav{display:flex;justify-content:center;margin-bottom:20px}video{max-width:100%;vertical-align:middle}.plyr{border-radius:4px;box-shadow:0 2px 5px rgba(0,0,0,.2);margin:20px auto}.plyr.plyr--audio{max-width:480px}.plyr__video-wrapper::after{border:1px solid rgba(0,0,0,.15);border-radius:inherit;bottom:0;content:'';left:0;pointer-events:none;position:absolute;right:0;top:0;z-index:3}.plyr__cite{display:none;margin-top:20px}.plyr__cite .icon{margin-right:4px}.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}@keyframes plyr-progress{to{background-position:25px 0}}@keyframes plyr-popup{0%{opacity:.5;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes plyr-fade-in{from{opacity:0}to{opacity:1}}.plyr{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;direction:ltr;font-family:inherit;font-variant-numeric:tabular-nums;font-weight:500;line-height:1.7;max-width:100%;min-width:200px;position:relative;text-shadow:none;transition:box-shadow .3s ease}.plyr audio,.plyr video{border-radius:inherit;height:auto;vertical-align:middle;width:100%}.plyr button{font:inherit;line-height:inherit;width:auto}.plyr:focus{outline:0}.plyr--full-ui{box-sizing:border-box}.plyr--full-ui *,.plyr--full-ui ::after,.plyr--full-ui ::before{box-sizing:inherit}.plyr--full-ui a,.plyr--full-ui button,.plyr--full-ui button.faux-link,.plyr--full-ui input,.plyr--full-ui label{touch-action:manipulation}.plyr__badge{background:#4f5b5f;border-radius:2px;color:#fff;font-size:9px;line-height:1;padding:3px 4px}.plyr--full-ui ::-webkit-media-text-track-container{display:none}.plyr__captions{animation:plyr-fade-in .3s ease;bottom:0;color:#fff;display:none;font-size:12px;left:0;padding:10px;position:absolute;text-align:center;transform:translateY(-40px);transition:transform .4s ease-in-out;width:100%}.plyr__captions .plyr__caption{background:rgba(0,0,0,.8);border-radius:2px;-webkit-box-decoration-break:clone;box-decoration-break:clone;line-height:185%;padding:.2em .5em;white-space:pre-wrap}.plyr__captions .plyr__caption div{display:inline}.plyr__captions span:empty{display:none}@media (min-width:480px){.plyr__captions{font-size:13px;padding:20px}}@media (min-width:768px){.plyr__captions{font-size:18px}}.plyr--captions-active .plyr__captions{display:block}.plyr--hide-controls .plyr__captions{transform:translateY(-15px)}.plyr__control{background:0 0;border:0;border-radius:3px;color:inherit;cursor:pointer;flex-shrink:0;overflow:visible;padding:7px;position:relative;transition:all .3s ease}.plyr__control svg{display:block;fill:currentColor;height:18px;pointer-events:none;width:18px}.plyr__control:focus{outline:0}.plyr__control.plyr__tab-focus{box-shadow:0 0 0 3px rgba(26,175,255,.35);outline:0}.plyr__control.plyr__control--pressed .icon--not-pressed,.plyr__control.plyr__control--pressed .label--not-pressed,.plyr__control:not(.plyr__control--pressed) .icon--pressed,.plyr__control:not(.plyr__control--pressed) .label--pressed{display:none}.plyr--audio .plyr__control.plyr__tab-focus,.plyr--audio .plyr__control:hover,.plyr--audio .plyr__control[aria-expanded=true]{background:#1aafff;color:#fff}.plyr__control--overlaid{background:rgba(26,175,255,.8);border:0;border-radius:100%;box-shadow:0 1px 1px rgba(0,0,0,.15);color:#fff;display:none;left:50%;padding:15px;position:absolute;top:50%;transform:translate(-50%,-50%);z-index:2}.plyr__control--overlaid svg{height:20px;left:2px;position:relative;width:20px}.plyr__control--overlaid:focus,.plyr__control--overlaid:hover{background:#1aafff}.plyr--playing .plyr__control--overlaid{opacity:0;visibility:hidden}.plyr--full-ui.plyr--video .plyr__control--overlaid{display:block}.plyr--full-ui ::-webkit-media-controls{display:none}.plyr__controls{align-items:center;display:flex;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{background:linear-gradient(transparent,rgba(0,0,0,.7));border-bottom-left-radius:inherit;border-bottom-right-radius:inherit;bottom:0;color:#fff;left:0;padding:35px 10px 10px;position:absolute;right:0;transition:opacity .4s ease-in-out,transform .4s ease-in-out;z-index:2}.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.plyr__tab-focus,.plyr--video .plyr__controls .plyr__control:hover,.plyr--video .plyr__controls .plyr__control[aria-expanded=true]{background:#1aafff;color:#fff}.plyr--audio .plyr__controls{background:#fff;border-radius:inherit;color:#4f5b5f;padding:10px}.plyr--video.plyr--hide-controls .plyr__controls{opacity:0;pointer-events:none;transform:translateY(100%)}.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{height:0;padding-bottom:56.25%;position:relative}.plyr__video-embed iframe{border:0;height:100%;left:0;position:absolute;top:0;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:100%}.plyr--full-ui .plyr__video-embed iframe{pointer-events:none}.plyr--full-ui .plyr__video-embed>.plyr__video-embed__container{padding-bottom:240%;position:relative;transform:translateY(-38.28125%)}.plyr__menu{display:flex;position:relative}.plyr__menu .plyr__control svg{transition:transform .3s ease}.plyr__menu .plyr__control[aria-expanded=true] svg{transform:rotate(90deg)}.plyr__menu .plyr__control[aria-expanded=true] .plyr__tooltip{display:none}.plyr__menu__container{animation:plyr-popup .2s ease;background:rgba(255,255,255,.9);border-radius:4px;bottom:100%;box-shadow:0 1px 2px rgba(0,0,0,.15);color:#4f5b5f;font-size:13px;margin-bottom:10px;position:absolute;right:-3px;text-align:left;white-space:nowrap;z-index:3}.plyr__menu__container>div{overflow:hidden;transition:height .35s cubic-bezier(.4,0,.2,1),width .35s cubic-bezier(.4,0,.2,1)}.plyr__menu__container::after{border:4px solid transparent;border-top-color:rgba(255,255,255,.9);content:'';height:0;position:absolute;right:15px;top:100%;width:0}.plyr__menu__container [role=menu]{padding:7px}.plyr__menu__container [role=menuitem],.plyr__menu__container [role=menuitemradio]{margin-top:2px}.plyr__menu__container [role=menuitem]:first-child,.plyr__menu__container [role=menuitemradio]:first-child{margin-top:0}.plyr__menu__container .plyr__control{align-items:center;color:#4f5b5f;display:flex;font-size:13px;padding:4px 11px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:100%}.plyr__menu__container .plyr__control>span{align-items:inherit;display:flex;width:100%}.plyr__menu__container .plyr__control::after{border:4px solid transparent;content:'';position:absolute;top:50%;transform:translateY(-50%)}.plyr__menu__container .plyr__control--forward{padding-right:28px}.plyr__menu__container .plyr__control--forward::after{border-left-color:rgba(79,91,95,.8);right:5px}.plyr__menu__container .plyr__control--forward.plyr__tab-focus::after,.plyr__menu__container .plyr__control--forward:hover::after{border-left-color:currentColor}.plyr__menu__container .plyr__control--back{font-weight:500;margin:7px;margin-bottom:3px;padding-left:28px;position:relative;width:calc(100% - 14px)}.plyr__menu__container .plyr__control--back::after{border-right-color:rgba(79,91,95,.8);left:7px}.plyr__menu__container .plyr__control--back::before{background:#b7c5cd;box-shadow:0 1px 0 #fff;content:'';height:1px;left:0;margin-top:4px;overflow:hidden;position:absolute;right:0;top:100%}.plyr__menu__container .plyr__control--back.plyr__tab-focus::after,.plyr__menu__container .plyr__control--back:hover::after{border-right-color:currentColor}.plyr__menu__container .plyr__control[role=menuitemradio]{padding-left:7px}.plyr__menu__container .plyr__control[role=menuitemradio]::after,.plyr__menu__container .plyr__control[role=menuitemradio]::before{border-radius:100%}.plyr__menu__container .plyr__control[role=menuitemradio]::before{background:rgba(0,0,0,.1);content:'';display:block;flex-shrink:0;height:16px;margin-right:10px;transition:all .3s ease;width:16px}.plyr__menu__container .plyr__control[role=menuitemradio]::after{background:#fff;border:0;height:6px;left:12px;opacity:0;top:50%;transform:translateY(-50%) scale(0);transition:transform .3s ease,opacity .3s ease;width:6px}.plyr__menu__container .plyr__control[role=menuitemradio][aria-checked=true]::before{background:#1aafff}.plyr__menu__container .plyr__control[role=menuitemradio][aria-checked=true]::after{opacity:1;transform:translateY(-50%) scale(1)}.plyr__menu__container .plyr__control[role=menuitemradio].plyr__tab-focus::before,.plyr__menu__container .plyr__control[role=menuitemradio]:hover::before{background:rgba(0,0,0,.1)}.plyr__menu__container .plyr__menu__value{align-items:center;display:flex;margin-left:auto;margin-right:-7px;overflow:hidden;padding-left:25px;pointer-events:none}.plyr--full-ui input[type=range]{-webkit-appearance:none;background:0 0;border:0;border-radius:28px;color:#1aafff;display:block;height:20px;margin:0;padding:0;transition:box-shadow .3s ease;width:100%}.plyr--full-ui input[type=range]::-webkit-slider-runnable-track{background:0 0;border:0;border-radius:3px;height:6px;transition:all .3s ease;-webkit-user-select:none;user-select:none;background-image:linear-gradient(to right,currentColor var(--value,0),transparent var(--value,0))}.plyr--full-ui input[type=range]::-webkit-slider-thumb{background:#fff;border:0;border-radius:100%;box-shadow:0 1px 1px rgba(0,0,0,.15),0 0 0 1px rgba(47,52,61,.2);box-sizing:border-box;height:14px;position:relative;transition:all .2s ease;width:14px;-webkit-appearance:none;margin-top:-4px}.plyr--full-ui input[type=range]::-moz-range-track{background:0 0;border:0;border-radius:3px;height:6px;transition:all .3s ease;-moz-user-select:none;user-select:none}.plyr--full-ui input[type=range]::-moz-range-thumb{background:#fff;border:0;border-radius:100%;box-shadow:0 1px 1px rgba(0,0,0,.15),0 0 0 1px rgba(47,52,61,.2);box-sizing:border-box;height:14px;position:relative;transition:all .2s ease;width:14px}.plyr--full-ui input[type=range]::-moz-range-progress{background:currentColor;border-radius:3px;height:6px}.plyr--full-ui input[type=range]::-ms-track{background:0 0;border:0;border-radius:3px;height:6px;transition:all .3s ease;-ms-user-select:none;user-select:none;color:transparent}.plyr--full-ui input[type=range]::-ms-fill-upper{background:0 0;border:0;border-radius:3px;height:6px;transition:all .3s ease;-ms-user-select:none;user-select:none}.plyr--full-ui input[type=range]::-ms-fill-lower{background:0 0;border:0;border-radius:3px;height:6px;transition:all .3s ease;-ms-user-select:none;user-select:none;background:currentColor}.plyr--full-ui input[type=range]::-ms-thumb{background:#fff;border:0;border-radius:100%;box-shadow:0 1px 1px rgba(0,0,0,.15),0 0 0 1px rgba(47,52,61,.2);box-sizing:border-box;height:14px;position:relative;transition:all .2s ease;width:14px;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].plyr__tab-focus::-webkit-slider-runnable-track{box-shadow:0 0 0 3px rgba(26,175,255,.35);outline:0}.plyr--full-ui input[type=range].plyr__tab-focus::-moz-range-track{box-shadow:0 0 0 3px rgba(26,175,255,.35);outline:0}.plyr--full-ui input[type=range].plyr__tab-focus::-ms-track{box-shadow:0 0 0 3px rgba(26,175,255,.35);outline:0}.plyr--full-ui.plyr--video input[type=range]::-webkit-slider-runnable-track{background-color:rgba(255,255,255,.25)}.plyr--full-ui.plyr--video input[type=range]::-moz-range-track{background-color:rgba(255,255,255,.25)}.plyr--full-ui.plyr--video input[type=range]::-ms-track{background-color:rgba(255,255,255,.25)}.plyr--full-ui.plyr--video input[type=range]:active::-webkit-slider-thumb{box-shadow:0 1px 1px rgba(0,0,0,.15),0 0 0 1px rgba(47,52,61,.2),0 0 0 3px rgba(255,255,255,.5)}.plyr--full-ui.plyr--video input[type=range]:active::-moz-range-thumb{box-shadow:0 1px 1px rgba(0,0,0,.15),0 0 0 1px rgba(47,52,61,.2),0 0 0 3px rgba(255,255,255,.5)}.plyr--full-ui.plyr--video input[type=range]:active::-ms-thumb{box-shadow:0 1px 1px rgba(0,0,0,.15),0 0 0 1px rgba(47,52,61,.2),0 0 0 3px rgba(255,255,255,.5)}.plyr--full-ui.plyr--audio input[type=range]::-webkit-slider-runnable-track{background-color:rgba(183,197,205,.66)}.plyr--full-ui.plyr--audio input[type=range]::-moz-range-track{background-color:rgba(183,197,205,.66)}.plyr--full-ui.plyr--audio input[type=range]::-ms-track{background-color:rgba(183,197,205,.66)}.plyr--full-ui.plyr--audio input[type=range]:active::-webkit-slider-thumb{box-shadow:0 1px 1px rgba(0,0,0,.15),0 0 0 1px rgba(47,52,61,.2),0 0 0 3px rgba(0,0,0,.1)}.plyr--full-ui.plyr--audio input[type=range]:active::-moz-range-thumb{box-shadow:0 1px 1px rgba(0,0,0,.15),0 0 0 1px rgba(47,52,61,.2),0 0 0 3px rgba(0,0,0,.1)}.plyr--full-ui.plyr--audio input[type=range]:active::-ms-thumb{box-shadow:0 1px 1px rgba(0,0,0,.15),0 0 0 1px rgba(47,52,61,.2),0 0 0 3px rgba(0,0,0,.1)}.plyr__poster{background-color:#000;background-position:50% 50%;background-repeat:no-repeat;background-size:contain;height:100%;left:0;opacity:0;position:absolute;top:0;transition:opacity .3s ease;width:100%;z-index:1;pointer-events:none}.plyr--stopped.plyr__poster-enabled .plyr__poster{opacity:1}.plyr__time{font-size:11px}.plyr__time+.plyr__time::before{content:'\2044';margin-right:10px}@media (max-width:767px){.plyr__time+.plyr__time{display:none}}.plyr--video .plyr__time{text-shadow:0 1px 1px rgba(0,0,0,.15)}.plyr__tooltip{background:rgba(255,255,255,.9);border-radius:3px;bottom:100%;box-shadow:0 1px 2px rgba(0,0,0,.15);color:#4f5b5f;font-size:12px;font-weight:500;line-height:1.3;margin-bottom:10px;opacity:0;padding:5px 7.5px;pointer-events:none;position:absolute;transform:translate(-50%,10px) scale(.8);transform-origin:50% 100%;transition:transform .2s .1s ease,opacity .2s .1s ease;white-space:nowrap;z-index:2}.plyr__tooltip::before{border-left:4px solid transparent;border-right:4px solid transparent;border-top:4px solid rgba(255,255,255,.9);bottom:-4px;content:'';height:0;left:50%;position:absolute;transform:translateX(-50%);width:0;z-index:2}.plyr .plyr__control.plyr__tab-focus .plyr__tooltip,.plyr .plyr__control:hover .plyr__tooltip,.plyr__tooltip--visible{opacity: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;transform:translate(0,10px) scale(.8);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;transform:translate(0,10px) scale(.8);transform-origin:100% 100%}.plyr__controls>.plyr__control:last-child .plyr__tooltip::before{left:auto;right:16px;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.plyr__tab-focus .plyr__tooltip,.plyr__controls>.plyr__control:first-child+.plyr__control:hover .plyr__tooltip,.plyr__controls>.plyr__control:first-child.plyr__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.plyr__tab-focus .plyr__tooltip,.plyr__controls>.plyr__control:last-child:hover .plyr__tooltip{transform:translate(0,0) scale(1)}.plyr--video{overflow:hidden}.plyr--video.plyr--menu-open{overflow:visible}.plyr__video-wrapper{background:#000;border-radius:inherit;overflow:hidden;position:relative;z-index:0}.plyr__progress{display:flex;flex:1;left:7px;margin-right:14px;position:relative}.plyr__progress input[type=range],.plyr__progress__buffer{margin-left:-7px;margin-right:-7px;width:calc(100% + 14px)}.plyr__progress input[type=range]{position:relative;z-index:2}.plyr__progress .plyr__tooltip{font-size:11px;left:0}.plyr__progress__buffer{-webkit-appearance:none;background:0 0;border:0;border-radius:100px;height:6px;left:0;margin-top:-3px;padding:0;position:absolute;top:50%}.plyr__progress__buffer::-webkit-progress-bar{background:0 0;transition:width .2s ease}.plyr__progress__buffer::-webkit-progress-value{background:currentColor;border-radius:100px;min-width:6px}.plyr__progress__buffer::-moz-progress-bar{background:currentColor;border-radius:100px;min-width:6px;transition:width .2s ease}.plyr__progress__buffer::-ms-fill{border-radius:100px;transition:width .2s ease}.plyr--video .plyr__progress__buffer{box-shadow:0 1px 1px rgba(0,0,0,.15);color:rgba(255,255,255,.25)}.plyr--audio .plyr__progress__buffer{color:rgba(183,197,205,.66)}.plyr--loading .plyr__progress__buffer{animation:plyr-progress 1s linear infinite;background-image:linear-gradient(-45deg,rgba(47,52,61,.6) 25%,transparent 25%,transparent 50%,rgba(47,52,61,.6) 50%,rgba(47,52,61,.6) 75%,transparent 75%,transparent);background-repeat:repeat-x;background-size:25px 25px;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(183,197,205,.66)}.plyr__volume{flex:1;position:relative}.plyr__volume input[type=range]{position:relative;z-index:2}@media (min-width:480px){.plyr__volume{max-width:50px}}@media (min-width:768px){.plyr__volume{max-width:80px}}.plyr--is-ios .plyr__volume{display:none!important}.plyr--is-ios.plyr--vimeo [data-plyr=mute]{display:none!important}.plyr:-webkit-full-screen{background:#000;border-radius:0!important;height:100%;margin:0;width:100%}.plyr:-moz-full-screen{background:#000;border-radius:0!important;height:100%;margin:0;width:100%}.plyr:-ms-fullscreen{background:#000;border-radius:0!important;height:100%;margin:0;width:100%}.plyr:fullscreen{background:#000;border-radius:0!important;height:100%;margin:0;width:100%}.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%;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%;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}.plyr:-webkit-full-screen.plyr--hide-controls{cursor:none}.plyr:-moz-full-screen.plyr--hide-controls{cursor:none}.plyr:-ms-fullscreen.plyr--hide-controls{cursor:none}.plyr:fullscreen.plyr--hide-controls{cursor:none}@media (min-width:1024px){.plyr:-webkit-full-screen .plyr__captions{font-size:21px}.plyr:-moz-full-screen .plyr__captions{font-size:21px}.plyr:-ms-fullscreen .plyr__captions{font-size:21px}.plyr:fullscreen .plyr__captions{font-size:21px}}.plyr:-webkit-full-screen{background:#000;border-radius:0!important;height:100%;margin:0;width:100%}.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%;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}.plyr:-webkit-full-screen.plyr--hide-controls{cursor:none}@media (min-width:1024px){.plyr:-webkit-full-screen .plyr__captions{font-size:21px}}.plyr:-moz-full-screen{background:#000;border-radius:0!important;height:100%;margin:0;width:100%}.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}.plyr:-moz-full-screen.plyr--hide-controls{cursor:none}@media (min-width:1024px){.plyr:-moz-full-screen .plyr__captions{font-size:21px}}.plyr:-ms-fullscreen{background:#000;border-radius:0!important;height:100%;margin:0;width:100%}.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}.plyr:-ms-fullscreen.plyr--hide-controls{cursor:none}@media (min-width:1024px){.plyr:-ms-fullscreen .plyr__captions{font-size:21px}}.plyr--fullscreen-fallback{background:#000;border-radius:0!important;height:100%;margin:0;width:100%;bottom:0;left:0;position:fixed;right:0;top: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%;transform:translateY(-50%)}.plyr--fullscreen-fallback .plyr__control .icon--exit-fullscreen{display:block}.plyr--fullscreen-fallback .plyr__control .icon--exit-fullscreen+svg{display:none}.plyr--fullscreen-fallback.plyr--hide-controls{cursor:none}@media (min-width:1024px){.plyr--fullscreen-fallback .plyr__captions{font-size:21px}}.plyr__ads{border-radius:inherit;bottom:0;cursor:pointer;left:0;overflow:hidden;position:absolute;right:0;top:0;z-index:-1}.plyr__ads>div,.plyr__ads>div iframe{height:100%;position:absolute;width:100%}.plyr__ads::after{background:rgba(47,52,61,.8);border-radius:2px;bottom:10px;color:#fff;content:attr(data-badge-text);font-size:11px;padding:2px 6px;pointer-events:none;position:absolute;right:10px;z-index:3}.plyr__ads::after:empty{display:none}.plyr__cues{background:currentColor;display:block;height:6px;left:0;margin:-3px 0 0;opacity:.8;position:absolute;top:50%;width:3px;z-index:3}.plyr--no-transition{transition:none!important}.plyr__sr-only{clip:rect(1px,1px,1px,1px);overflow:hidden;border:0!important;height:1px!important;padding:0!important;position:absolute!important;width:1px!important}.no-border{border:0}[hidden]{display:none}.sr-only{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;opacity:.001;overflow:hidden;padding:0;position:absolute;width:1px} \ No newline at end of file diff --git a/dist/plyr.css b/dist/plyr.css index 1c217695..f12be3c1 100644 --- a/dist/plyr.css +++ b/dist/plyr.css @@ -1 +1 @@ -@keyframes plyr-progress{to{background-position:25px 0}}@keyframes plyr-popup{0%{opacity:.5;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes plyr-fade-in{from{opacity:0}to{opacity:1}}.plyr{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;direction:ltr;font-family:Avenir,"Avenir Next","Helvetica Neue","Segoe UI",Helvetica,Arial,sans-serif;font-variant-numeric:tabular-nums;font-weight:500;line-height:1.7;max-width:100%;min-width:200px;position:relative;text-shadow:none;transition:box-shadow .3s ease}.plyr audio,.plyr video{border-radius:inherit;height:auto;vertical-align:middle;width:100%}.plyr button{font:inherit;line-height:inherit;width:auto}.plyr:focus{outline:0}.plyr--full-ui{box-sizing:border-box}.plyr--full-ui *,.plyr--full-ui ::after,.plyr--full-ui ::before{box-sizing:inherit}.plyr--full-ui a,.plyr--full-ui button,.plyr--full-ui input,.plyr--full-ui label{touch-action:manipulation}.plyr__badge{background:#4f5b5f;border-radius:2px;color:#fff;font-size:9px;line-height:1;padding:3px 4px}.plyr--full-ui ::-webkit-media-text-track-container{display:none}.plyr__captions{animation:plyr-fade-in .3s ease;bottom:0;color:#fff;display:none;font-size:14px;left:0;padding:10px;position:absolute;text-align:center;transform:translateY(-40px);transition:transform .4s ease-in-out;width:100%}.plyr__captions .plyr__caption{background:rgba(0,0,0,.8);border-radius:2px;-webkit-box-decoration-break:clone;box-decoration-break:clone;line-height:185%;padding:.2em .5em;white-space:pre-wrap}.plyr__captions .plyr__caption div{display:inline}.plyr__captions span:empty{display:none}@media (min-width:480px){.plyr__captions{font-size:16px;padding:20px}}@media (min-width:768px){.plyr__captions{font-size:18px}}.plyr--captions-active .plyr__captions{display:block}.plyr--hide-controls .plyr__captions{transform:translateY(-15px)}.plyr__control{background:0 0;border:0;border-radius:3px;color:inherit;cursor:pointer;flex-shrink:0;overflow:visible;padding:7px;position:relative;transition:all .3s ease}.plyr__control svg{display:block;fill:currentColor;height:18px;pointer-events:none;width:18px}.plyr__control:focus{outline:0}.plyr__control.plyr__tab-focus{box-shadow:0 0 0 3px rgba(26,175,255,.35);outline:0}.plyr__control.plyr__control--pressed .icon--not-pressed,.plyr__control.plyr__control--pressed .label--not-pressed,.plyr__control:not(.plyr__control--pressed) .icon--pressed,.plyr__control:not(.plyr__control--pressed) .label--pressed{display:none}.plyr--audio .plyr__control.plyr__tab-focus,.plyr--audio .plyr__control:hover,.plyr--audio .plyr__control[aria-expanded=true]{background:#1aafff;color:#fff}.plyr__control--overlaid{background:rgba(26,175,255,.8);border:0;border-radius:100%;box-shadow:0 1px 1px rgba(0,0,0,.15);color:#fff;display:none;left:50%;padding:15px;position:absolute;top:50%;transform:translate(-50%,-50%);z-index:2}.plyr__control--overlaid svg{height:20px;left:2px;position:relative;width:20px}.plyr__control--overlaid:focus,.plyr__control--overlaid:hover{background:#1aafff}.plyr--playing .plyr__control--overlaid{opacity:0;visibility:hidden}.plyr--full-ui.plyr--video .plyr__control--overlaid{display:block}.plyr--full-ui ::-webkit-media-controls{display:none}.plyr__controls{align-items:center;display:flex;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{background:linear-gradient(transparent,rgba(0,0,0,.7));border-bottom-left-radius:inherit;border-bottom-right-radius:inherit;bottom:0;color:#fff;left:0;padding:35px 10px 10px;position:absolute;right:0;transition:opacity .4s ease-in-out,transform .4s ease-in-out;z-index:2}.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.plyr__tab-focus,.plyr--video .plyr__controls .plyr__control:hover,.plyr--video .plyr__controls .plyr__control[aria-expanded=true]{background:#1aafff;color:#fff}.plyr--audio .plyr__controls{background:#fff;border-radius:inherit;color:#4f5b5f;padding:10px}.plyr--video.plyr--hide-controls .plyr__controls{opacity:0;pointer-events:none;transform:translateY(100%)}.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{height:0;padding-bottom:56.25%;position:relative}.plyr__video-embed iframe{border:0;height:100%;left:0;position:absolute;top:0;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:100%}.plyr--full-ui .plyr__video-embed iframe{pointer-events:none}.plyr--full-ui .plyr__video-embed>.plyr__video-embed__container{padding-bottom:240%;position:relative;transform:translateY(-38.28125%)}.plyr__menu{display:flex;position:relative}.plyr__menu .plyr__control svg{transition:transform .3s ease}.plyr__menu .plyr__control[aria-expanded=true] svg{transform:rotate(90deg)}.plyr__menu .plyr__control[aria-expanded=true] .plyr__tooltip{display:none}.plyr__menu__container{animation:plyr-popup .2s ease;background:rgba(255,255,255,.9);border-radius:4px;bottom:100%;box-shadow:0 1px 2px rgba(0,0,0,.15);color:#4f5b5f;font-size:16px;margin-bottom:10px;position:absolute;right:-3px;text-align:left;white-space:nowrap;z-index:3}.plyr__menu__container>div{overflow:hidden;transition:height .35s cubic-bezier(.4,0,.2,1),width .35s cubic-bezier(.4,0,.2,1)}.plyr__menu__container::after{border:4px solid transparent;border-top-color:rgba(255,255,255,.9);content:'';height:0;position:absolute;right:15px;top:100%;width:0}.plyr__menu__container [role=menu]{padding:7px}.plyr__menu__container [role=menuitem],.plyr__menu__container [role=menuitemradio]{margin-top:2px}.plyr__menu__container [role=menuitem]:first-child,.plyr__menu__container [role=menuitemradio]:first-child{margin-top:0}.plyr__menu__container .plyr__control{align-items:center;color:#4f5b5f;display:flex;font-size:14px;padding:4px 11px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:100%}.plyr__menu__container .plyr__control>span{align-items:inherit;display:flex;width:100%}.plyr__menu__container .plyr__control::after{border:4px solid transparent;content:'';position:absolute;top:50%;transform:translateY(-50%)}.plyr__menu__container .plyr__control--forward{padding-right:28px}.plyr__menu__container .plyr__control--forward::after{border-left-color:rgba(79,91,95,.8);right:5px}.plyr__menu__container .plyr__control--forward.plyr__tab-focus::after,.plyr__menu__container .plyr__control--forward:hover::after{border-left-color:currentColor}.plyr__menu__container .plyr__control--back{font-weight:500;margin:7px;margin-bottom:3px;padding-left:28px;position:relative;width:calc(100% - 14px)}.plyr__menu__container .plyr__control--back::after{border-right-color:rgba(79,91,95,.8);left:7px}.plyr__menu__container .plyr__control--back::before{background:#b7c5cd;box-shadow:0 1px 0 #fff;content:'';height:1px;left:0;margin-top:4px;overflow:hidden;position:absolute;right:0;top:100%}.plyr__menu__container .plyr__control--back.plyr__tab-focus::after,.plyr__menu__container .plyr__control--back:hover::after{border-right-color:currentColor}.plyr__menu__container label.plyr__control{padding-left:7px}.plyr__menu__container label.plyr__control input[type=radio]+span{background:rgba(0,0,0,.1);border-radius:100%;display:block;flex-shrink:0;height:16px;margin-right:10px;position:relative;transition:all .3s ease;width:16px}.plyr__menu__container label.plyr__control input[type=radio]+span::after{background:#fff;border-radius:100%;content:'';height:6px;left:5px;opacity:0;position:absolute;top:5px;transform:scale(0);transition:transform .3s ease,opacity .3s ease;width:6px}.plyr__menu__container label.plyr__control input[type=radio]:checked+span{background:#1aafff}.plyr__menu__container label.plyr__control input[type=radio]:checked+span::after{opacity:1;transform:scale(1)}.plyr__menu__container label.plyr__control input[type=radio]:focus+span{box-shadow:0 0 0 3px rgba(26,175,255,.35);outline:0}.plyr__menu__container label.plyr__control.plyr__tab-focus input[type=radio]+span,.plyr__menu__container label.plyr__control:hover input[type=radio]+span{background:rgba(0,0,0,.1)}.plyr__menu__container .plyr__menu__value{align-items:center;display:flex;margin-left:auto;margin-right:-7px;overflow:hidden;padding-left:25px;pointer-events:none}.plyr--full-ui input[type=range]{-webkit-appearance:none;background:0 0;border:0;border-radius:28px;color:#1aafff;display:block;height:20px;margin:0;padding:0;transition:box-shadow .3s ease;width:100%}.plyr--full-ui input[type=range]::-webkit-slider-runnable-track{background:0 0;border:0;border-radius:3px;height:6px;transition:all .3s ease;-webkit-user-select:none;user-select:none;background-image:linear-gradient(to right,currentColor var(--value,0),transparent var(--value,0))}.plyr--full-ui input[type=range]::-webkit-slider-thumb{background:#fff;border:0;border-radius:100%;box-shadow:0 1px 1px rgba(0,0,0,.15),0 0 0 1px rgba(47,52,61,.2);box-sizing:border-box;height:14px;position:relative;transition:all .2s ease;width:14px;-webkit-appearance:none;margin-top:-4px}.plyr--full-ui input[type=range]::-moz-range-track{background:0 0;border:0;border-radius:3px;height:6px;transition:all .3s ease;-moz-user-select:none;user-select:none}.plyr--full-ui input[type=range]::-moz-range-thumb{background:#fff;border:0;border-radius:100%;box-shadow:0 1px 1px rgba(0,0,0,.15),0 0 0 1px rgba(47,52,61,.2);box-sizing:border-box;height:14px;position:relative;transition:all .2s ease;width:14px}.plyr--full-ui input[type=range]::-moz-range-progress{background:currentColor;border-radius:3px;height:6px}.plyr--full-ui input[type=range]::-ms-track{background:0 0;border:0;border-radius:3px;height:6px;transition:all .3s ease;-ms-user-select:none;user-select:none;color:transparent}.plyr--full-ui input[type=range]::-ms-fill-upper{background:0 0;border:0;border-radius:3px;height:6px;transition:all .3s ease;-ms-user-select:none;user-select:none}.plyr--full-ui input[type=range]::-ms-fill-lower{background:0 0;border:0;border-radius:3px;height:6px;transition:all .3s ease;-ms-user-select:none;user-select:none;background:currentColor}.plyr--full-ui input[type=range]::-ms-thumb{background:#fff;border:0;border-radius:100%;box-shadow:0 1px 1px rgba(0,0,0,.15),0 0 0 1px rgba(47,52,61,.2);box-sizing:border-box;height:14px;position:relative;transition:all .2s ease;width:14px;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].plyr__tab-focus::-webkit-slider-runnable-track{box-shadow:0 0 0 3px rgba(26,175,255,.35);outline:0}.plyr--full-ui input[type=range].plyr__tab-focus::-moz-range-track{box-shadow:0 0 0 3px rgba(26,175,255,.35);outline:0}.plyr--full-ui input[type=range].plyr__tab-focus::-ms-track{box-shadow:0 0 0 3px rgba(26,175,255,.35);outline:0}.plyr--full-ui.plyr--video input[type=range]::-webkit-slider-runnable-track{background-color:rgba(255,255,255,.25)}.plyr--full-ui.plyr--video input[type=range]::-moz-range-track{background-color:rgba(255,255,255,.25)}.plyr--full-ui.plyr--video input[type=range]::-ms-track{background-color:rgba(255,255,255,.25)}.plyr--full-ui.plyr--video input[type=range]:active::-webkit-slider-thumb{box-shadow:0 1px 1px rgba(0,0,0,.15),0 0 0 1px rgba(47,52,61,.2),0 0 0 3px rgba(255,255,255,.5)}.plyr--full-ui.plyr--video input[type=range]:active::-moz-range-thumb{box-shadow:0 1px 1px rgba(0,0,0,.15),0 0 0 1px rgba(47,52,61,.2),0 0 0 3px rgba(255,255,255,.5)}.plyr--full-ui.plyr--video input[type=range]:active::-ms-thumb{box-shadow:0 1px 1px rgba(0,0,0,.15),0 0 0 1px rgba(47,52,61,.2),0 0 0 3px rgba(255,255,255,.5)}.plyr--full-ui.plyr--audio input[type=range]::-webkit-slider-runnable-track{background-color:rgba(183,197,205,.66)}.plyr--full-ui.plyr--audio input[type=range]::-moz-range-track{background-color:rgba(183,197,205,.66)}.plyr--full-ui.plyr--audio input[type=range]::-ms-track{background-color:rgba(183,197,205,.66)}.plyr--full-ui.plyr--audio input[type=range]:active::-webkit-slider-thumb{box-shadow:0 1px 1px rgba(0,0,0,.15),0 0 0 1px rgba(47,52,61,.2),0 0 0 3px rgba(0,0,0,.1)}.plyr--full-ui.plyr--audio input[type=range]:active::-moz-range-thumb{box-shadow:0 1px 1px rgba(0,0,0,.15),0 0 0 1px rgba(47,52,61,.2),0 0 0 3px rgba(0,0,0,.1)}.plyr--full-ui.plyr--audio input[type=range]:active::-ms-thumb{box-shadow:0 1px 1px rgba(0,0,0,.15),0 0 0 1px rgba(47,52,61,.2),0 0 0 3px rgba(0,0,0,.1)}.plyr__poster{background-color:#000;background-position:50% 50%;background-repeat:no-repeat;background-size:contain;height:100%;left:0;opacity:0;position:absolute;top:0;transition:opacity .3s ease;width:100%;z-index:1;pointer-events:none}.plyr--stopped.plyr__poster-enabled .plyr__poster{opacity:1}.plyr__time{font-size:14px}.plyr__time+.plyr__time::before{content:'\2044';margin-right:10px}@media (max-width:767px){.plyr__time+.plyr__time{display:none}}.plyr--video .plyr__time{text-shadow:0 1px 1px rgba(0,0,0,.15)}.plyr__tooltip{background:rgba(255,255,255,.9);border-radius:3px;bottom:100%;box-shadow:0 1px 2px rgba(0,0,0,.15);color:#4f5b5f;font-size:14px;font-weight:500;line-height:1.3;margin-bottom:10px;opacity:0;padding:5px 7.5px;pointer-events:none;position:absolute;transform:translate(-50%,10px) scale(.8);transform-origin:50% 100%;transition:transform .2s .1s ease,opacity .2s .1s ease;white-space:nowrap;z-index:2}.plyr__tooltip::before{border-left:4px solid transparent;border-right:4px solid transparent;border-top:4px solid rgba(255,255,255,.9);bottom:-4px;content:'';height:0;left:50%;position:absolute;transform:translateX(-50%);width:0;z-index:2}.plyr .plyr__control.plyr__tab-focus .plyr__tooltip,.plyr .plyr__control:hover .plyr__tooltip,.plyr__tooltip--visible{opacity: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;transform:translate(0,10px) scale(.8);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;transform:translate(0,10px) scale(.8);transform-origin:100% 100%}.plyr__controls>.plyr__control:last-child .plyr__tooltip::before{left:auto;right:16px;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.plyr__tab-focus .plyr__tooltip,.plyr__controls>.plyr__control:first-child+.plyr__control:hover .plyr__tooltip,.plyr__controls>.plyr__control:first-child.plyr__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.plyr__tab-focus .plyr__tooltip,.plyr__controls>.plyr__control:last-child:hover .plyr__tooltip{transform:translate(0,0) scale(1)}.plyr--video{overflow:hidden}.plyr--video.plyr--menu-open{overflow:visible}.plyr__video-wrapper{background:#000;border-radius:inherit;overflow:hidden;position:relative;z-index:0}.plyr__progress{display:flex;flex:1;left:7px;margin-right:14px;position:relative}.plyr__progress input[type=range],.plyr__progress__buffer{margin-left:-7px;margin-right:-7px;width:calc(100% + 14px)}.plyr__progress input[type=range]{position:relative;z-index:2}.plyr__progress .plyr__tooltip{font-size:14px;left:0}.plyr__progress__buffer{-webkit-appearance:none;background:0 0;border:0;border-radius:100px;height:6px;left:0;margin-top:-3px;padding:0;position:absolute;top:50%}.plyr__progress__buffer::-webkit-progress-bar{background:0 0;transition:width .2s ease}.plyr__progress__buffer::-webkit-progress-value{background:currentColor;border-radius:100px;min-width:6px}.plyr__progress__buffer::-moz-progress-bar{background:currentColor;border-radius:100px;min-width:6px;transition:width .2s ease}.plyr__progress__buffer::-ms-fill{border-radius:100px;transition:width .2s ease}.plyr--video .plyr__progress__buffer{box-shadow:0 1px 1px rgba(0,0,0,.15);color:rgba(255,255,255,.25)}.plyr--audio .plyr__progress__buffer{color:rgba(183,197,205,.66)}.plyr--loading .plyr__progress__buffer{animation:plyr-progress 1s linear infinite;background-image:linear-gradient(-45deg,rgba(47,52,61,.6) 25%,transparent 25%,transparent 50%,rgba(47,52,61,.6) 50%,rgba(47,52,61,.6) 75%,transparent 75%,transparent);background-repeat:repeat-x;background-size:25px 25px;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(183,197,205,.66)}.plyr__volume{flex:1;position:relative}.plyr__volume input[type=range]{position:relative;z-index:2}@media (min-width:480px){.plyr__volume{max-width:50px}}@media (min-width:768px){.plyr__volume{max-width:80px}}.plyr--is-ios .plyr__volume{display:none!important}.plyr--is-ios.plyr--vimeo [data-plyr=mute]{display:none!important}.plyr:-webkit-full-screen{background:#000;border-radius:0!important;height:100%;margin:0;width:100%}.plyr:-moz-full-screen{background:#000;border-radius:0!important;height:100%;margin:0;width:100%}.plyr:-ms-fullscreen{background:#000;border-radius:0!important;height:100%;margin:0;width:100%}.plyr:fullscreen{background:#000;border-radius:0!important;height:100%;margin:0;width:100%}.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%;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%;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}.plyr:-webkit-full-screen.plyr--hide-controls{cursor:none}.plyr:-moz-full-screen.plyr--hide-controls{cursor:none}.plyr:-ms-fullscreen.plyr--hide-controls{cursor:none}.plyr:fullscreen.plyr--hide-controls{cursor:none}@media (min-width:1024px){.plyr:-webkit-full-screen .plyr__captions{font-size:21px}.plyr:-moz-full-screen .plyr__captions{font-size:21px}.plyr:-ms-fullscreen .plyr__captions{font-size:21px}.plyr:fullscreen .plyr__captions{font-size:21px}}.plyr:-webkit-full-screen{background:#000;border-radius:0!important;height:100%;margin:0;width:100%}.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%;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}.plyr:-webkit-full-screen.plyr--hide-controls{cursor:none}@media (min-width:1024px){.plyr:-webkit-full-screen .plyr__captions{font-size:21px}}.plyr:-moz-full-screen{background:#000;border-radius:0!important;height:100%;margin:0;width:100%}.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}.plyr:-moz-full-screen.plyr--hide-controls{cursor:none}@media (min-width:1024px){.plyr:-moz-full-screen .plyr__captions{font-size:21px}}.plyr:-ms-fullscreen{background:#000;border-radius:0!important;height:100%;margin:0;width:100%}.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}.plyr:-ms-fullscreen.plyr--hide-controls{cursor:none}@media (min-width:1024px){.plyr:-ms-fullscreen .plyr__captions{font-size:21px}}.plyr--fullscreen-fallback{background:#000;border-radius:0!important;height:100%;margin:0;width:100%;bottom:0;left:0;position:fixed;right:0;top: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%;transform:translateY(-50%)}.plyr--fullscreen-fallback .plyr__control .icon--exit-fullscreen{display:block}.plyr--fullscreen-fallback .plyr__control .icon--exit-fullscreen+svg{display:none}.plyr--fullscreen-fallback.plyr--hide-controls{cursor:none}@media (min-width:1024px){.plyr--fullscreen-fallback .plyr__captions{font-size:21px}}.plyr__ads{border-radius:inherit;bottom:0;cursor:pointer;left:0;overflow:hidden;position:absolute;right:0;top:0;z-index:-1}.plyr__ads>div,.plyr__ads>div iframe{height:100%;position:absolute;width:100%}.plyr__ads::after{background:rgba(47,52,61,.8);border-radius:2px;bottom:10px;color:#fff;content:attr(data-badge-text);font-size:11px;padding:2px 6px;pointer-events:none;position:absolute;right:10px;z-index:3}.plyr__ads::after:empty{display:none}.plyr__cues{background:currentColor;display:block;height:6px;left:0;margin:-3px 0 0;opacity:.8;position:absolute;top:50%;width:3px;z-index:3}.plyr--no-transition{transition:none!important}.plyr__sr-only{clip:rect(1px,1px,1px,1px);overflow:hidden;border:0!important;height:1px!important;padding:0!important;position:absolute!important;width:1px!important} \ No newline at end of file +@keyframes plyr-progress{to{background-position:25px 0}}@keyframes plyr-popup{0%{opacity:.5;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes plyr-fade-in{from{opacity:0}to{opacity:1}}.plyr{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;direction:ltr;font-family:Avenir,"Avenir Next","Helvetica Neue","Segoe UI",Helvetica,Arial,sans-serif;font-variant-numeric:tabular-nums;font-weight:500;line-height:1.7;max-width:100%;min-width:200px;position:relative;text-shadow:none;transition:box-shadow .3s ease}.plyr audio,.plyr video{border-radius:inherit;height:auto;vertical-align:middle;width:100%}.plyr button{font:inherit;line-height:inherit;width:auto}.plyr:focus{outline:0}.plyr--full-ui{box-sizing:border-box}.plyr--full-ui *,.plyr--full-ui ::after,.plyr--full-ui ::before{box-sizing:inherit}.plyr--full-ui a,.plyr--full-ui button,.plyr--full-ui input,.plyr--full-ui label{touch-action:manipulation}.plyr__badge{background:#4f5b5f;border-radius:2px;color:#fff;font-size:9px;line-height:1;padding:3px 4px}.plyr--full-ui ::-webkit-media-text-track-container{display:none}.plyr__captions{animation:plyr-fade-in .3s ease;bottom:0;color:#fff;display:none;font-size:14px;left:0;padding:10px;position:absolute;text-align:center;transform:translateY(-40px);transition:transform .4s ease-in-out;width:100%}.plyr__captions .plyr__caption{background:rgba(0,0,0,.8);border-radius:2px;-webkit-box-decoration-break:clone;box-decoration-break:clone;line-height:185%;padding:.2em .5em;white-space:pre-wrap}.plyr__captions .plyr__caption div{display:inline}.plyr__captions span:empty{display:none}@media (min-width:480px){.plyr__captions{font-size:16px;padding:20px}}@media (min-width:768px){.plyr__captions{font-size:18px}}.plyr--captions-active .plyr__captions{display:block}.plyr--hide-controls .plyr__captions{transform:translateY(-15px)}.plyr__control{background:0 0;border:0;border-radius:3px;color:inherit;cursor:pointer;flex-shrink:0;overflow:visible;padding:7px;position:relative;transition:all .3s ease}.plyr__control svg{display:block;fill:currentColor;height:18px;pointer-events:none;width:18px}.plyr__control:focus{outline:0}.plyr__control.plyr__tab-focus{box-shadow:0 0 0 3px rgba(26,175,255,.35);outline:0}.plyr__control.plyr__control--pressed .icon--not-pressed,.plyr__control.plyr__control--pressed .label--not-pressed,.plyr__control:not(.plyr__control--pressed) .icon--pressed,.plyr__control:not(.plyr__control--pressed) .label--pressed{display:none}.plyr--audio .plyr__control.plyr__tab-focus,.plyr--audio .plyr__control:hover,.plyr--audio .plyr__control[aria-expanded=true]{background:#1aafff;color:#fff}.plyr__control--overlaid{background:rgba(26,175,255,.8);border:0;border-radius:100%;box-shadow:0 1px 1px rgba(0,0,0,.15);color:#fff;display:none;left:50%;padding:15px;position:absolute;top:50%;transform:translate(-50%,-50%);z-index:2}.plyr__control--overlaid svg{height:20px;left:2px;position:relative;width:20px}.plyr__control--overlaid:focus,.plyr__control--overlaid:hover{background:#1aafff}.plyr--playing .plyr__control--overlaid{opacity:0;visibility:hidden}.plyr--full-ui.plyr--video .plyr__control--overlaid{display:block}.plyr--full-ui ::-webkit-media-controls{display:none}.plyr__controls{align-items:center;display:flex;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{background:linear-gradient(transparent,rgba(0,0,0,.7));border-bottom-left-radius:inherit;border-bottom-right-radius:inherit;bottom:0;color:#fff;left:0;padding:35px 10px 10px;position:absolute;right:0;transition:opacity .4s ease-in-out,transform .4s ease-in-out;z-index:2}.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.plyr__tab-focus,.plyr--video .plyr__controls .plyr__control:hover,.plyr--video .plyr__controls .plyr__control[aria-expanded=true]{background:#1aafff;color:#fff}.plyr--audio .plyr__controls{background:#fff;border-radius:inherit;color:#4f5b5f;padding:10px}.plyr--video.plyr--hide-controls .plyr__controls{opacity:0;pointer-events:none;transform:translateY(100%)}.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{height:0;padding-bottom:56.25%;position:relative}.plyr__video-embed iframe{border:0;height:100%;left:0;position:absolute;top:0;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:100%}.plyr--full-ui .plyr__video-embed iframe{pointer-events:none}.plyr--full-ui .plyr__video-embed>.plyr__video-embed__container{padding-bottom:240%;position:relative;transform:translateY(-38.28125%)}.plyr__menu{display:flex;position:relative}.plyr__menu .plyr__control svg{transition:transform .3s ease}.plyr__menu .plyr__control[aria-expanded=true] svg{transform:rotate(90deg)}.plyr__menu .plyr__control[aria-expanded=true] .plyr__tooltip{display:none}.plyr__menu__container{animation:plyr-popup .2s ease;background:rgba(255,255,255,.9);border-radius:4px;bottom:100%;box-shadow:0 1px 2px rgba(0,0,0,.15);color:#4f5b5f;font-size:16px;margin-bottom:10px;position:absolute;right:-3px;text-align:left;white-space:nowrap;z-index:3}.plyr__menu__container>div{overflow:hidden;transition:height .35s cubic-bezier(.4,0,.2,1),width .35s cubic-bezier(.4,0,.2,1)}.plyr__menu__container::after{border:4px solid transparent;border-top-color:rgba(255,255,255,.9);content:'';height:0;position:absolute;right:15px;top:100%;width:0}.plyr__menu__container [role=menu]{padding:7px}.plyr__menu__container [role=menuitem],.plyr__menu__container [role=menuitemradio]{margin-top:2px}.plyr__menu__container [role=menuitem]:first-child,.plyr__menu__container [role=menuitemradio]:first-child{margin-top:0}.plyr__menu__container .plyr__control{align-items:center;color:#4f5b5f;display:flex;font-size:14px;padding:4px 11px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:100%}.plyr__menu__container .plyr__control>span{align-items:inherit;display:flex;width:100%}.plyr__menu__container .plyr__control::after{border:4px solid transparent;content:'';position:absolute;top:50%;transform:translateY(-50%)}.plyr__menu__container .plyr__control--forward{padding-right:28px}.plyr__menu__container .plyr__control--forward::after{border-left-color:rgba(79,91,95,.8);right:5px}.plyr__menu__container .plyr__control--forward.plyr__tab-focus::after,.plyr__menu__container .plyr__control--forward:hover::after{border-left-color:currentColor}.plyr__menu__container .plyr__control--back{font-weight:500;margin:7px;margin-bottom:3px;padding-left:28px;position:relative;width:calc(100% - 14px)}.plyr__menu__container .plyr__control--back::after{border-right-color:rgba(79,91,95,.8);left:7px}.plyr__menu__container .plyr__control--back::before{background:#b7c5cd;box-shadow:0 1px 0 #fff;content:'';height:1px;left:0;margin-top:4px;overflow:hidden;position:absolute;right:0;top:100%}.plyr__menu__container .plyr__control--back.plyr__tab-focus::after,.plyr__menu__container .plyr__control--back:hover::after{border-right-color:currentColor}.plyr__menu__container .plyr__control[role=menuitemradio]{padding-left:7px}.plyr__menu__container .plyr__control[role=menuitemradio]::after,.plyr__menu__container .plyr__control[role=menuitemradio]::before{border-radius:100%}.plyr__menu__container .plyr__control[role=menuitemradio]::before{background:rgba(0,0,0,.1);content:'';display:block;flex-shrink:0;height:16px;margin-right:10px;transition:all .3s ease;width:16px}.plyr__menu__container .plyr__control[role=menuitemradio]::after{background:#fff;border:0;height:6px;left:12px;opacity:0;top:50%;transform:translateY(-50%) scale(0);transition:transform .3s ease,opacity .3s ease;width:6px}.plyr__menu__container .plyr__control[role=menuitemradio][aria-checked=true]::before{background:#1aafff}.plyr__menu__container .plyr__control[role=menuitemradio][aria-checked=true]::after{opacity:1;transform:translateY(-50%) scale(1)}.plyr__menu__container .plyr__control[role=menuitemradio].plyr__tab-focus::before,.plyr__menu__container .plyr__control[role=menuitemradio]:hover::before{background:rgba(0,0,0,.1)}.plyr__menu__container .plyr__menu__value{align-items:center;display:flex;margin-left:auto;margin-right:-7px;overflow:hidden;padding-left:25px;pointer-events:none}.plyr--full-ui input[type=range]{-webkit-appearance:none;background:0 0;border:0;border-radius:28px;color:#1aafff;display:block;height:20px;margin:0;padding:0;transition:box-shadow .3s ease;width:100%}.plyr--full-ui input[type=range]::-webkit-slider-runnable-track{background:0 0;border:0;border-radius:3px;height:6px;transition:all .3s ease;-webkit-user-select:none;user-select:none;background-image:linear-gradient(to right,currentColor var(--value,0),transparent var(--value,0))}.plyr--full-ui input[type=range]::-webkit-slider-thumb{background:#fff;border:0;border-radius:100%;box-shadow:0 1px 1px rgba(0,0,0,.15),0 0 0 1px rgba(47,52,61,.2);box-sizing:border-box;height:14px;position:relative;transition:all .2s ease;width:14px;-webkit-appearance:none;margin-top:-4px}.plyr--full-ui input[type=range]::-moz-range-track{background:0 0;border:0;border-radius:3px;height:6px;transition:all .3s ease;-moz-user-select:none;user-select:none}.plyr--full-ui input[type=range]::-moz-range-thumb{background:#fff;border:0;border-radius:100%;box-shadow:0 1px 1px rgba(0,0,0,.15),0 0 0 1px rgba(47,52,61,.2);box-sizing:border-box;height:14px;position:relative;transition:all .2s ease;width:14px}.plyr--full-ui input[type=range]::-moz-range-progress{background:currentColor;border-radius:3px;height:6px}.plyr--full-ui input[type=range]::-ms-track{background:0 0;border:0;border-radius:3px;height:6px;transition:all .3s ease;-ms-user-select:none;user-select:none;color:transparent}.plyr--full-ui input[type=range]::-ms-fill-upper{background:0 0;border:0;border-radius:3px;height:6px;transition:all .3s ease;-ms-user-select:none;user-select:none}.plyr--full-ui input[type=range]::-ms-fill-lower{background:0 0;border:0;border-radius:3px;height:6px;transition:all .3s ease;-ms-user-select:none;user-select:none;background:currentColor}.plyr--full-ui input[type=range]::-ms-thumb{background:#fff;border:0;border-radius:100%;box-shadow:0 1px 1px rgba(0,0,0,.15),0 0 0 1px rgba(47,52,61,.2);box-sizing:border-box;height:14px;position:relative;transition:all .2s ease;width:14px;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].plyr__tab-focus::-webkit-slider-runnable-track{box-shadow:0 0 0 3px rgba(26,175,255,.35);outline:0}.plyr--full-ui input[type=range].plyr__tab-focus::-moz-range-track{box-shadow:0 0 0 3px rgba(26,175,255,.35);outline:0}.plyr--full-ui input[type=range].plyr__tab-focus::-ms-track{box-shadow:0 0 0 3px rgba(26,175,255,.35);outline:0}.plyr--full-ui.plyr--video input[type=range]::-webkit-slider-runnable-track{background-color:rgba(255,255,255,.25)}.plyr--full-ui.plyr--video input[type=range]::-moz-range-track{background-color:rgba(255,255,255,.25)}.plyr--full-ui.plyr--video input[type=range]::-ms-track{background-color:rgba(255,255,255,.25)}.plyr--full-ui.plyr--video input[type=range]:active::-webkit-slider-thumb{box-shadow:0 1px 1px rgba(0,0,0,.15),0 0 0 1px rgba(47,52,61,.2),0 0 0 3px rgba(255,255,255,.5)}.plyr--full-ui.plyr--video input[type=range]:active::-moz-range-thumb{box-shadow:0 1px 1px rgba(0,0,0,.15),0 0 0 1px rgba(47,52,61,.2),0 0 0 3px rgba(255,255,255,.5)}.plyr--full-ui.plyr--video input[type=range]:active::-ms-thumb{box-shadow:0 1px 1px rgba(0,0,0,.15),0 0 0 1px rgba(47,52,61,.2),0 0 0 3px rgba(255,255,255,.5)}.plyr--full-ui.plyr--audio input[type=range]::-webkit-slider-runnable-track{background-color:rgba(183,197,205,.66)}.plyr--full-ui.plyr--audio input[type=range]::-moz-range-track{background-color:rgba(183,197,205,.66)}.plyr--full-ui.plyr--audio input[type=range]::-ms-track{background-color:rgba(183,197,205,.66)}.plyr--full-ui.plyr--audio input[type=range]:active::-webkit-slider-thumb{box-shadow:0 1px 1px rgba(0,0,0,.15),0 0 0 1px rgba(47,52,61,.2),0 0 0 3px rgba(0,0,0,.1)}.plyr--full-ui.plyr--audio input[type=range]:active::-moz-range-thumb{box-shadow:0 1px 1px rgba(0,0,0,.15),0 0 0 1px rgba(47,52,61,.2),0 0 0 3px rgba(0,0,0,.1)}.plyr--full-ui.plyr--audio input[type=range]:active::-ms-thumb{box-shadow:0 1px 1px rgba(0,0,0,.15),0 0 0 1px rgba(47,52,61,.2),0 0 0 3px rgba(0,0,0,.1)}.plyr__poster{background-color:#000;background-position:50% 50%;background-repeat:no-repeat;background-size:contain;height:100%;left:0;opacity:0;position:absolute;top:0;transition:opacity .3s ease;width:100%;z-index:1;pointer-events:none}.plyr--stopped.plyr__poster-enabled .plyr__poster{opacity:1}.plyr__time{font-size:14px}.plyr__time+.plyr__time::before{content:'\2044';margin-right:10px}@media (max-width:767px){.plyr__time+.plyr__time{display:none}}.plyr--video .plyr__time{text-shadow:0 1px 1px rgba(0,0,0,.15)}.plyr__tooltip{background:rgba(255,255,255,.9);border-radius:3px;bottom:100%;box-shadow:0 1px 2px rgba(0,0,0,.15);color:#4f5b5f;font-size:14px;font-weight:500;line-height:1.3;margin-bottom:10px;opacity:0;padding:5px 7.5px;pointer-events:none;position:absolute;transform:translate(-50%,10px) scale(.8);transform-origin:50% 100%;transition:transform .2s .1s ease,opacity .2s .1s ease;white-space:nowrap;z-index:2}.plyr__tooltip::before{border-left:4px solid transparent;border-right:4px solid transparent;border-top:4px solid rgba(255,255,255,.9);bottom:-4px;content:'';height:0;left:50%;position:absolute;transform:translateX(-50%);width:0;z-index:2}.plyr .plyr__control.plyr__tab-focus .plyr__tooltip,.plyr .plyr__control:hover .plyr__tooltip,.plyr__tooltip--visible{opacity: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;transform:translate(0,10px) scale(.8);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;transform:translate(0,10px) scale(.8);transform-origin:100% 100%}.plyr__controls>.plyr__control:last-child .plyr__tooltip::before{left:auto;right:16px;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.plyr__tab-focus .plyr__tooltip,.plyr__controls>.plyr__control:first-child+.plyr__control:hover .plyr__tooltip,.plyr__controls>.plyr__control:first-child.plyr__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.plyr__tab-focus .plyr__tooltip,.plyr__controls>.plyr__control:last-child:hover .plyr__tooltip{transform:translate(0,0) scale(1)}.plyr--video{overflow:hidden}.plyr--video.plyr--menu-open{overflow:visible}.plyr__video-wrapper{background:#000;border-radius:inherit;overflow:hidden;position:relative;z-index:0}.plyr__progress{display:flex;flex:1;left:7px;margin-right:14px;position:relative}.plyr__progress input[type=range],.plyr__progress__buffer{margin-left:-7px;margin-right:-7px;width:calc(100% + 14px)}.plyr__progress input[type=range]{position:relative;z-index:2}.plyr__progress .plyr__tooltip{font-size:14px;left:0}.plyr__progress__buffer{-webkit-appearance:none;background:0 0;border:0;border-radius:100px;height:6px;left:0;margin-top:-3px;padding:0;position:absolute;top:50%}.plyr__progress__buffer::-webkit-progress-bar{background:0 0;transition:width .2s ease}.plyr__progress__buffer::-webkit-progress-value{background:currentColor;border-radius:100px;min-width:6px}.plyr__progress__buffer::-moz-progress-bar{background:currentColor;border-radius:100px;min-width:6px;transition:width .2s ease}.plyr__progress__buffer::-ms-fill{border-radius:100px;transition:width .2s ease}.plyr--video .plyr__progress__buffer{box-shadow:0 1px 1px rgba(0,0,0,.15);color:rgba(255,255,255,.25)}.plyr--audio .plyr__progress__buffer{color:rgba(183,197,205,.66)}.plyr--loading .plyr__progress__buffer{animation:plyr-progress 1s linear infinite;background-image:linear-gradient(-45deg,rgba(47,52,61,.6) 25%,transparent 25%,transparent 50%,rgba(47,52,61,.6) 50%,rgba(47,52,61,.6) 75%,transparent 75%,transparent);background-repeat:repeat-x;background-size:25px 25px;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(183,197,205,.66)}.plyr__volume{flex:1;position:relative}.plyr__volume input[type=range]{position:relative;z-index:2}@media (min-width:480px){.plyr__volume{max-width:50px}}@media (min-width:768px){.plyr__volume{max-width:80px}}.plyr--is-ios .plyr__volume{display:none!important}.plyr--is-ios.plyr--vimeo [data-plyr=mute]{display:none!important}.plyr:-webkit-full-screen{background:#000;border-radius:0!important;height:100%;margin:0;width:100%}.plyr:-moz-full-screen{background:#000;border-radius:0!important;height:100%;margin:0;width:100%}.plyr:-ms-fullscreen{background:#000;border-radius:0!important;height:100%;margin:0;width:100%}.plyr:fullscreen{background:#000;border-radius:0!important;height:100%;margin:0;width:100%}.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%;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%;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}.plyr:-webkit-full-screen.plyr--hide-controls{cursor:none}.plyr:-moz-full-screen.plyr--hide-controls{cursor:none}.plyr:-ms-fullscreen.plyr--hide-controls{cursor:none}.plyr:fullscreen.plyr--hide-controls{cursor:none}@media (min-width:1024px){.plyr:-webkit-full-screen .plyr__captions{font-size:21px}.plyr:-moz-full-screen .plyr__captions{font-size:21px}.plyr:-ms-fullscreen .plyr__captions{font-size:21px}.plyr:fullscreen .plyr__captions{font-size:21px}}.plyr:-webkit-full-screen{background:#000;border-radius:0!important;height:100%;margin:0;width:100%}.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%;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}.plyr:-webkit-full-screen.plyr--hide-controls{cursor:none}@media (min-width:1024px){.plyr:-webkit-full-screen .plyr__captions{font-size:21px}}.plyr:-moz-full-screen{background:#000;border-radius:0!important;height:100%;margin:0;width:100%}.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}.plyr:-moz-full-screen.plyr--hide-controls{cursor:none}@media (min-width:1024px){.plyr:-moz-full-screen .plyr__captions{font-size:21px}}.plyr:-ms-fullscreen{background:#000;border-radius:0!important;height:100%;margin:0;width:100%}.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}.plyr:-ms-fullscreen.plyr--hide-controls{cursor:none}@media (min-width:1024px){.plyr:-ms-fullscreen .plyr__captions{font-size:21px}}.plyr--fullscreen-fallback{background:#000;border-radius:0!important;height:100%;margin:0;width:100%;bottom:0;left:0;position:fixed;right:0;top: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%;transform:translateY(-50%)}.plyr--fullscreen-fallback .plyr__control .icon--exit-fullscreen{display:block}.plyr--fullscreen-fallback .plyr__control .icon--exit-fullscreen+svg{display:none}.plyr--fullscreen-fallback.plyr--hide-controls{cursor:none}@media (min-width:1024px){.plyr--fullscreen-fallback .plyr__captions{font-size:21px}}.plyr__ads{border-radius:inherit;bottom:0;cursor:pointer;left:0;overflow:hidden;position:absolute;right:0;top:0;z-index:-1}.plyr__ads>div,.plyr__ads>div iframe{height:100%;position:absolute;width:100%}.plyr__ads::after{background:rgba(47,52,61,.8);border-radius:2px;bottom:10px;color:#fff;content:attr(data-badge-text);font-size:11px;padding:2px 6px;pointer-events:none;position:absolute;right:10px;z-index:3}.plyr__ads::after:empty{display:none}.plyr__cues{background:currentColor;display:block;height:6px;left:0;margin:-3px 0 0;opacity:.8;position:absolute;top:50%;width:3px;z-index:3}.plyr--no-transition{transition:none!important}.plyr__sr-only{clip:rect(1px,1px,1px,1px);overflow:hidden;border:0!important;height:1px!important;padding:0!important;position:absolute!important;width:1px!important} \ No newline at end of file diff --git a/dist/plyr.js b/dist/plyr.js index 804d7dd5..66ea1d3f 100644 --- a/dist/plyr.js +++ b/dist/plyr.js @@ -1624,7 +1624,7 @@ typeof navigator === "object" && (function (global, factory) { var attributes = getAttributesFromSelector(this.config.selectors.display[type]); var container = createElement('div', extend(attributes, { - class: 'plyr__time ' + attributes.class, + class: (this.config.classNames.display.time + ' ' + (attributes.class ? attributes.class : '')).trim(), 'aria-label': i18n.get(type, this.config) }), '00:00'); @@ -1646,16 +1646,42 @@ typeof navigator === "object" && (function (global, factory) { _ref$checked = _ref.checked, checked = _ref$checked === undefined ? false : _ref$checked; - var item = createElement('button', extend(getAttributesFromSelector(this.config.selectors.inputs[type]), { + var attributes = getAttributesFromSelector(this.config.selectors.inputs[type]); + + var item = createElement('button', extend(attributes, { type: 'button', + role: 'menuitemradio', + class: (this.config.classNames.control + ' ' + (attributes.class ? attributes.class : '')).trim(), value: value, 'aria-checked': checked - }), title); + })); + + // We have to set as HTML incase of special characters + item.innerHTML = title; if (is.element(badge)) { item.appendChild(badge); } + Object.defineProperty(item, 'checked', { + enumerable: true, + get: function get$$1() { + return item.getAttribute('aria-checked') === 'true'; + }, + set: function set$$1(checked) { + // Ensure exclusivity + if (checked) { + Array.from(item.parentNode.children).filter(function (node) { + return matches(node, '[role="menuitemradio"]'); + }).forEach(function (node) { + return node.setAttribute('aria-checked', 'false'); + }); + } + + item.setAttribute('aria-checked', checked ? 'true' : 'false'); + } + }); + list.appendChild(item); }, @@ -1930,12 +1956,12 @@ typeof navigator === "object" && (function (global, factory) { var _this3 = this; // Menu required - if (!is.element(this.elements.settings.menus.quality)) { + if (!is.element(this.elements.settings.panels.quality)) { return; } var type = 'quality'; - var list = this.elements.settings.menus.quality.querySelector('[role="menu"]'); + var list = this.elements.settings.panels.quality.querySelector('[role="menu"]'); // Set options if passed and filter based on uniqueness and config if (is.array(options)) { @@ -2018,7 +2044,7 @@ typeof navigator === "object" && (function (global, factory) { // Update the selected setting updateSetting: function updateSetting(setting, container, input) { - var pane = this.elements.settings.menus[setting]; + var pane = this.elements.settings.panels[setting]; var value = null; var list = container; @@ -2060,10 +2086,10 @@ typeof navigator === "object" && (function (global, factory) { label.innerHTML = controls.getLabel.call(this, setting, value); // Find the radio option and check it - var target = list && list.querySelector('button[value="' + value + '"]'); + var target = list && list.querySelector('[value="' + value + '"]'); if (is.element(target)) { - target.setAttribute('aria-checked', true); + target.checked = true; } }, @@ -2071,14 +2097,14 @@ typeof navigator === "object" && (function (global, factory) { // Set the looping options /* setLoopMenu() { // Menu required - if (!is.element(this.elements.settings.menus.loop)) { + if (!is.element(this.elements.settings.panels.loop)) { return; } const options = ['start', 'end', 'all', 'reset']; - const list = this.elements.settings.menus.loop.querySelector('[role="menu"]'); + const list = this.elements.settings.panels.loop.querySelector('[role="menu"]'); // Show the pane and tab toggleHidden(this.elements.settings.buttons.loop, false); - toggleHidden(this.elements.settings.menus.loop, false); + toggleHidden(this.elements.settings.panels.loop, false); // Toggle the pane and tab const toggle = !is.empty(this.loop.options); controls.toggleMenuButton.call(this, 'loop', toggle); @@ -2113,7 +2139,7 @@ typeof navigator === "object" && (function (global, factory) { // TODO: Captions or language? Currently it's mixed var type = 'captions'; - var list = this.elements.settings.menus.captions.querySelector('[role="menu"]'); + var list = this.elements.settings.panels.captions.querySelector('[role="menu"]'); var tracks = captions.getTracks.call(this); // Toggle the pane and tab @@ -2168,7 +2194,7 @@ typeof navigator === "object" && (function (global, factory) { } // Menu required - if (!is.element(this.elements.settings.menus.speed)) { + if (!is.element(this.elements.settings.panels.speed)) { return; } @@ -2199,7 +2225,7 @@ typeof navigator === "object" && (function (global, factory) { } // Get the list to populate - var list = this.elements.settings.menus.speed.querySelector('[role="menu"]'); + var list = this.elements.settings.panels.speed.querySelector('[role="menu"]'); // Empty the menu emptyElement(list); @@ -2278,19 +2304,13 @@ typeof navigator === "object" && (function (global, factory) { }, - // Get the natural size of a tab - getTabSize: function getTabSize(tab) { + // Get the natural size of a menu panel + getMenuSize: function getMenuSize(tab) { var clone = tab.cloneNode(true); clone.style.position = 'absolute'; clone.style.opacity = 0; clone.removeAttribute('hidden'); - // Prevent input's being unchecked due to the name being identical - /* Array.from(clone.querySelectorAll('input[name]')).forEach(input => { - const name = input.getAttribute('name'); - input.setAttribute('name', `${name}-clone`); - }); */ - // Append to parent so we get the "real" size tab.parentNode.appendChild(clone); @@ -2308,38 +2328,24 @@ typeof navigator === "object" && (function (global, factory) { }, - // Toggle Menu - showMenu: function showMenu() { + // Show a panel in the menu + showMenuPanel: function showMenuPanel() { var _this6 = this; var type = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ''; - var menu = this.elements.settings.menu; - var pane = document.getElementById('plyr-settings-' + this.id + '-' + type); - - console.warn('plyr-settings-' + this.id + '-' + type); + var target = document.getElementById('plyr-settings-' + this.id + '-' + type); // Nothing to show, bail - if (!is.element(pane)) { - console.warn('No pane found'); + if (!is.element(target)) { return; } - // Are we targeting a tab? If not, bail - /* const isTab = pane.getAttribute('role') === 'tabpanel'; - if (!isTab) { - return; - } */ - - // Hide all other tabs - // Get other tabs - var current = menu.querySelector('[id^=plyr-settings-' + this.id + ']:not([hidden])'); - var container = current.parentNode; - - // Set other toggles to be expanded false - /* Array.from(menu.querySelectorAll(`[aria-controls="${current.getAttribute('id')}"]`)).forEach(toggle => { - toggle.setAttribute('aria-expanded', false); - }); */ + // Hide all other panels + var container = target.parentNode; + var current = Array.from(container.children).find(function (node) { + return !node.hidden; + }); // If we can do fancy animations, we'll animate the height/width if (support.transitions && !support.reducedMotion) { @@ -2348,12 +2354,12 @@ typeof navigator === "object" && (function (global, factory) { container.style.height = current.scrollHeight + 'px'; // Get potential sizes - var size = controls.getTabSize.call(this, pane); + var size = controls.getMenuSize.call(this, target); // Restore auto height/width - var restore = function restore(e) { + var restore = function restore(event) { // We're only bothered about height and width on the container - if (e.target !== container || !['width', 'height'].includes(e.propertyName)) { + if (event.target !== container || !['width', 'height'].includes(event.propertyName)) { return; } @@ -2378,16 +2384,10 @@ typeof navigator === "object" && (function (global, factory) { // current.setAttribute('tabindex', -1); // Set attributes on target - toggleHidden(pane, false); - - /* const tabs = getElements.call(this, `[aria-controls="${target}"]`); - Array.from(tabs).forEach(tab => { - tab.setAttribute('aria-expanded', true); - }); - pane.removeAttribute('tabindex'); */ + toggleHidden(target, false); // Focus the first item - pane.querySelectorAll('button:not(:disabled), input:not(:disabled), [tabindex]')[0].focus(); + target.querySelectorAll('[role^="menuitem"]')[0].focus(); }, @@ -2532,7 +2532,7 @@ typeof navigator === "object" && (function (global, factory) { var menuItem = createElement('button', extend(getAttributesFromSelector(_this7.config.selectors.buttons.settings), { type: 'button', class: _this7.config.classNames.control + ' ' + _this7.config.classNames.control + '--forward', - 'role': 'menuitem', + role: 'menuitem', 'aria-haspopup': true })); @@ -2556,10 +2556,14 @@ typeof navigator === "object" && (function (global, factory) { }); // Back button - pane.appendChild(createElement('button', { + var back = createElement('button', { type: 'button', class: _this7.config.classNames.control + ' ' + _this7.config.classNames.control + '--back' - }, i18n.get(type, _this7.config))); + }, i18n.get(type, _this7.config)); + back.addEventListener('click', function () { + controls.showMenuPanel.call(_this7, 'home'); + }); + pane.appendChild(back); // Menu pane.appendChild(createElement('div', { @@ -2569,11 +2573,11 @@ typeof navigator === "object" && (function (global, factory) { inner.appendChild(pane); menuItem.addEventListener('click', function () { - controls.showMenu.call(_this7, type); + controls.showMenuPanel.call(_this7, type); }); _this7.elements.settings.buttons[type] = menuItem; - _this7.elements.settings.menus[type] = pane; + _this7.elements.settings.panels[type] = pane; }); home.appendChild(menu); @@ -3482,6 +3486,9 @@ typeof navigator === "object" && (function (global, factory) { isTouch: 'plyr--is-touch', uiSupported: 'plyr--full-ui', noTransition: 'plyr--no-transition', + display: { + time: 'plyr__time' + }, menu: { value: 'plyr__menu__value', badge: 'plyr__badge', @@ -4608,7 +4615,7 @@ typeof navigator === "object" && (function (global, factory) { // Go back to home tab on click var showHomeTab = function showHomeTab() { - controls.showMenu.call(_this4.player, 'home'); + controls.showMenuPanel.call(_this4.player, 'home'); }; // Settings menu items - use event delegation as items are added/removed @@ -6942,7 +6949,7 @@ typeof navigator === "object" && (function (global, factory) { settings: { popup: null, menu: null, - menus: {}, + panels: {}, buttons: {} } }; diff --git a/dist/plyr.js.map b/dist/plyr.js.map index 0c084093..37dcaaaf 100644 --- a/dist/plyr.js.map +++ b/dist/plyr.js.map @@ -1 +1 @@ -{"version":3,"sources":["src/js/utils/is.js","src/js/utils/events.js","src/js/utils/elements.js","src/js/utils/animation.js","src/js/utils/browser.js","src/js/support.js","src/js/html5.js","src/js/utils/objects.js","src/js/utils/strings.js","src/js/i18n.js","src/js/utils/arrays.js","src/js/storage.js","src/js/utils/fetch.js","src/js/utils/loadSprite.js","src/js/utils/time.js","src/js/controls.js","src/js/utils/urls.js","src/js/captions.js","src/js/config/defaults.js","src/js/config/types.js","src/js/console.js","src/js/fullscreen.js","src/js/utils/loadImage.js","src/js/ui.js","src/js/listeners.js","node_modules/loadjs/dist/loadjs.umd.js","src/js/utils/loadScript.js","src/js/plugins/vimeo.js","src/js/plugins/youtube.js","src/js/media.js","src/js/plugins/ads.js","src/js/source.js","src/js/plyr.js"],"names":["getConstructor","input","constructor","instanceOf","Boolean","is","object","Object","number","Number","isNaN","string","String","boolean","function","Function","array","nullOrUndefined","Array","isArray","weakMap","WeakMap","nodeList","NodeList","element","Element","textNode","Text","event","Event","cue","window","TextTrackCue","VTTCue","track","TextTrack","kind","url","test","empty","length","keys","supportsPassiveListeners","supported","options","defineProperty","get","addEventListener","removeEventListener","e","toggleListener","callback","toggle","passive","capture","events","split","forEach","eventListeners","push","type","on","call","off","once","onceCallback","args","apply","triggerEvent","bubbles","detail","CustomEvent","assign","plyr","dispatchEvent","unbindListeners","item","ready","Promise","setTimeout","resolve","elements","container","then","wrap","wrapper","targets","from","reverse","index","child","cloneNode","parent","parentNode","sibling","nextSibling","appendChild","insertBefore","setAttributes","attributes","entries","filter","value","key","setAttribute","createElement","text","document","innerText","insertAfter","target","insertElement","removeElement","removeChild","emptyElement","childNodes","lastChild","replaceElement","newChild","oldChild","replaceChild","getAttributesFromSelector","sel","existingAttributes","existing","selector","s","trim","className","replace","stripped","parts","start","charAt","class","id","toggleHidden","hidden","hide","hasAttribute","removeAttribute","toggleClass","force","method","classList","contains","hasClass","matches","prototype","match","querySelectorAll","includes","webkitMatchesSelector","mozMatchesSelector","msMatchesSelector","getElements","getElement","querySelector","getFocusElement","focused","activeElement","body","trapFocus","focusable","first","last","trap","keyCode","shiftKey","focus","preventDefault","transitionEndEvent","WebkitTransition","MozTransition","OTransition","transition","find","style","undefined","repaint","offsetHeight","browser","isIE","documentMode","isWebkit","documentElement","navigator","userAgent","isIPhone","platform","isIos","defaultCodecs","support","audio","video","check","provider","playsinline","canPlayInline","api","ui","rangeInput","pip","webkitSetPresentationMode","airplay","WebKitPlaybackTargetAvailabilityEvent","mime","inputType","mediaType","isHTML5","media","canPlayType","err","textTracks","range","touch","transitions","reducedMotion","matchMedia","html5","getSources","sources","source","getAttribute","getQualityOptions","map","extend","player","set","currentTime","playing","src","onLoadedMetaData","load","play","quality","cancelRequests","config","blankVideo","debug","log","cloneDeep","JSON","parse","stringify","getDeep","path","reduce","obj","shift","generateId","prefix","Math","floor","random","format","toString","i","getPercentage","current","max","toFixed","replaceAll","RegExp","toTitleCase","toUpperCase","substr","toLowerCase","toPascalCase","toCamelCase","slice","stripHTML","fragment","createDocumentFragment","innerHTML","firstChild","getHTML","i18n","seekTime","title","dedupe","indexOf","closest","prev","curr","abs","Storage","enabled","storage","store","localStorage","getItem","json","setItem","removeItem","fetch","responseType","reject","request","XMLHttpRequest","responseText","response","Error","status","open","send","loadSprite","hasId","isCached","exists","getElementById","update","data","insertAdjacentElement","useStorage","cached","content","result","catch","getHours","parseInt","getMinutes","getSeconds","formatTime","time","displayHours","inverted","hours","mins","secs","controls","getIconUrl","URL","iconUrl","location","cors","host","svg4everybody","findElements","selectors","buttons","pause","restart","rewind","fastForward","mute","settings","captions","fullscreen","progress","inputs","seek","volume","display","buffer","duration","seekTooltip","classNames","tooltip","error","warn","toggleNativeControls","createIcon","namespace","iconPath","iconPrefix","icon","createElementNS","role","use","setAttributeNS","createLabel","attr","universals","join","createBadge","badge","menu","createButton","buttonType","button","label","labelPressed","iconPressed","control","controlPressed","enumerable","pressed","createRange","min","step","autocomplete","updateRangeFill","createProgress","suffixKey","played","suffix","createTime","createMenuItem","list","checked","forceHours","updateTimeDisplay","updateVolume","setRange","muted","updateProgress","setProgress","getElementsByTagName","nodeValue","buffered","percent","setProperty","updateSeekTooltip","tooltips","clientRect","getBoundingClientRect","visible","width","pageX","left","parseFloat","timeUpdate","invert","invertTime","seeking","durationUpdate","hasDuration","displayDuration","paused","toggleMenuButton","setting","setQualityMenu","menus","checkMenu","getBadge","sort","a","b","sorting","getLabel","updateSetting","pane","currentTrack","default","setCaptionsMenu","tracks","getTracks","toggled","language","unshift","bind","setSpeedMenu","speed","isVimeo","values","some","toggleMenu","popup","show","isMenuItem","isButton","stopPropagation","getTabSize","tab","clone","position","opacity","scrollWidth","height","scrollHeight","showMenu","console","size","restore","propertyName","create","inner","home","menuItem","flex","inject","props","seektime","insertAdjacentHTML","labels","parseUrl","safe","parser","href","buildUrlParams","params","URLSearchParams","setup","isVideo","isYouTube","hostname","protocol","createObjectURL","blob","languages","userLanguage","active","trackEvents","meta","currentTrackNode","languageExists","mode","updateCues","setLanguage","activeClass","findTrack","embed","enableTextTrack","has","sortIsDefault","sorted","every","getCurrentTrack","cues","activeCues","getCueAsHTML","cueText","changed","caption","defaults","autoplay","autopause","toggleInvert","ratio","clickToPlay","hideControls","resetOnEnd","disableContextMenu","loop","selected","keyboard","global","fallback","iosNative","seekLabel","unmute","enableCaptions","disableCaptions","enterFullscreen","exitFullscreen","frameTitle","menuBack","normal","end","all","reset","disabled","advertisement","qualityBadge","urls","vimeo","sdk","iframe","youtube","googleIMA","listeners","editable","embedContainer","poster","posterEnabled","ads","stopped","loading","hover","isTouch","uiSupported","noTransition","tabFocus","google","publisherId","providers","types","getProviderByUrl","noop","Console","onChange","toggleFallback","scrollPosition","x","scrollX","y","scrollY","scrollTo","overflow","Fullscreen","property","native","webkitEnterFullscreen","requestFullscreen","webkitExitFullscreen","cancelFullScreen","action","enter","exit","fullscreenElement","fullscreenEnabled","webkitFullscreenEnabled","mozFullScreenEnabled","msFullscreenEnabled","prefixes","pre","loadImage","minWidth","image","Image","handler","onload","onerror","naturalWidth","addStyleHook","build","checkPlaying","setTitle","setPoster","isEmbed","togglePoster","enable","backgroundImage","backgroundSize","toggleControls","checkLoading","clearTimeout","timers","Listeners","lastKey","handleKey","firstTouch","code","which","repeat","altKey","ctrlKey","metaKey","seekByKey","togglePlay","increaseVolume","decreaseVolume","forward","toggleCaptions","delay","hasAudio","initialized","managerPromise","isAudio","ended","proxyEvents","concat","inputEvent","proxy","defaultHandler","customHandlerKey","customHandler","hasCustomHandler","returned","showHomeTab","currentTarget","eventType","done","seekTo","webkitDirectionInvertedFromDevice","direction","deltaY","deltaX","define","this","loadScript","loadjs","success","parseId","regex","$2","getAspectRatio","getRatio","w","h","assurePlaybackState","hasPlayed","setAspectRatio","Vimeo","padding","paddingBottom","offset","transform","byline","portrait","transparent","gesture","thumbnail_large","pathname","Player","disableTextTrack","stop","restorePause","setVolume","setCurrentTime","setPlaybackRate","name","setLoop","currentSrc","getVideoUrl","getVideoWidth","getVideoHeight","dimensions","setAutopause","state","getVideoTitle","getCurrentTime","getDuration","getTextTracks","strippedCues","getPaused","frame","seconds","mapQualityUnit","qualities","hd2160","hd1440","hd1080","hd720","large","medium","small","tiny","entry","mapQualityUnits","levels","level","YT","onYouTubeReadyCallbacks","onYouTubeIframeAPIReady","getTitle","videoId","getVideoData","items","snippet","currentId","startsWith","posterSrc","playerVars","rel","showinfo","iv_load_policy","modestbranding","disablekb","widget_referrer","cc_load_policy","cc_lang_pref","onError","message","onPlaybackQualityChange","onPlaybackRateChange","instance","playbackRate","getPlaybackRate","onReady","playVideo","pauseVideo","stopVideo","getPlaybackQuality","setPlaybackQuality","getAvailablePlaybackRates","clearInterval","buffering","setInterval","getVideoLoadedFraction","lastBuffered","onStateChange","seeked","getAvailableQualityLevels","unMute","Ads","displayContainer","manager","loader","cuePoints","safetyTimer","countdownTimer","ima","trigger","startSafetyTimer","clearSafetyTimer","setupIMA","setVpaidMode","ImaSdkSettings","VpaidMode","ENABLED","setLocale","AdDisplayContainer","requestAds","AdsLoader","AdsManagerLoadedEvent","Type","ADS_MANAGER_LOADED","onAdsManagerLoaded","AdErrorEvent","AD_ERROR","onAdError","AdsRequest","adTagUrl","tagUrl","linearAdSlotWidth","offsetWidth","linearAdSlotHeight","nonLinearAdSlotWidth","nonLinearAdSlotHeight","forceNonLinearFullSlot","setAdWillPlayMuted","getRemainingTime","AdsRenderingSettings","restoreCustomPlaybackStateOnAdBreakComplete","enablePreloading","getAdsManager","getCuePoints","cuePoint","seekElement","cuePercentage","AdEvent","onAdEvent","ad","getAd","LOADED","pollCountdown","isLinear","ALL_ADS_COMPLETED","loadAds","CONTENT_PAUSE_REQUESTED","pauseContent","CONTENT_RESUME_REQUESTED","resumeContent","STARTED","MIDPOINT","COMPLETE","IMPRESSION","CLICK","cancel","contentComplete","seekedTime","discardAdBreak","splice","resize","ViewMode","NORMAL","initialize","init","adError","zIndex","destroy","handlers","AV_PUBLISHERID","AV_CHANNELID","AV_URL","cb","Date","now","AV_WIDTH","AV_HEIGHT","AV_CDIM2","base","insertElements","attribute","change","tagName","crossorigin","Plyr","failed","jQuery","original","searchParams","truthy","webkitShowPlaybackTargetPicker","isHidden","hiding","eventName","soft","unload","inputIsValid","fauxDuration","mozHasAudio","webkitAudioDecodedByteCount","audioTracks","states","inline","webkitPresentationMode","t"],"mappings":"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","file":"plyr.js","sourcesContent":["// ==========================================================================\n// Type checking utils\n// ==========================================================================\n\nconst getConstructor = input => (input !== null && typeof input !== 'undefined' ? input.constructor : null);\n\nconst instanceOf = (input, constructor) => Boolean(input && constructor && input instanceof constructor);\n\nconst is = {\n object(input) {\n return getConstructor(input) === Object;\n },\n number(input) {\n return getConstructor(input) === Number && !Number.isNaN(input);\n },\n string(input) {\n return getConstructor(input) === String;\n },\n boolean(input) {\n return getConstructor(input) === Boolean;\n },\n function(input) {\n return getConstructor(input) === Function;\n },\n array(input) {\n return !is.nullOrUndefined(input) && Array.isArray(input);\n },\n weakMap(input) {\n return instanceOf(input, WeakMap);\n },\n nodeList(input) {\n return instanceOf(input, NodeList);\n },\n element(input) {\n return instanceOf(input, Element);\n },\n textNode(input) {\n return getConstructor(input) === Text;\n },\n event(input) {\n return instanceOf(input, Event);\n },\n cue(input) {\n return instanceOf(input, window.TextTrackCue) || instanceOf(input, window.VTTCue);\n },\n track(input) {\n return instanceOf(input, TextTrack) || (!is.nullOrUndefined(input) && is.string(input.kind));\n },\n url(input) {\n return (\n !is.nullOrUndefined(input) &&\n /(ftp|http|https):\\/\\/(\\w+:{0,1}\\w*@)?(\\S+)(:[0-9]+)?(\\/|\\/([\\w#!:.?+=&%@!\\-/]))?/.test(input)\n );\n },\n nullOrUndefined(input) {\n return input === null || typeof input === 'undefined';\n },\n empty(input) {\n return (\n is.nullOrUndefined(input) ||\n ((is.string(input) || is.array(input) || is.nodeList(input)) && !input.length) ||\n (is.object(input) && !Object.keys(input).length)\n );\n },\n};\n\nexport default is;\n","// ==========================================================================\n// Event utils\n// ==========================================================================\n\nimport is from './is';\n\n// Check for passive event listener support\n// https://github.com/WICG/EventListenerOptions/blob/gh-pages/explainer.md\n// https://www.youtube.com/watch?v=NPM6172J22g\nconst supportsPassiveListeners = (() => {\n // Test via a getter in the options object to see if the passive property is accessed\n let supported = false;\n try {\n const options = Object.defineProperty({}, 'passive', {\n get() {\n supported = true;\n return null;\n },\n });\n window.addEventListener('test', null, options);\n window.removeEventListener('test', null, options);\n } catch (e) {\n // Do nothing\n }\n\n return supported;\n})();\n\n// Toggle event listener\nexport function toggleListener(element, event, callback, toggle = false, passive = true, capture = false) {\n // Bail if no element, event, or callback\n if (!element || !('addEventListener' in element) || is.empty(event) || !is.function(callback)) {\n return;\n }\n\n // Allow multiple events\n const events = event.split(' ');\n\n // Build options\n // Default to just the capture boolean for browsers with no passive listener support\n let options = capture;\n\n // If passive events listeners are supported\n if (supportsPassiveListeners) {\n options = {\n // Whether the listener can be passive (i.e. default never prevented)\n passive,\n // Whether the listener is a capturing listener or not\n capture,\n };\n }\n\n // If a single node is passed, bind the event listener\n events.forEach(type => {\n if (this && this.eventListeners && toggle) {\n // Cache event listener\n this.eventListeners.push({ element, type, callback, options });\n }\n\n element[toggle ? 'addEventListener' : 'removeEventListener'](type, callback, options);\n });\n}\n\n// Bind event handler\nexport function on(element, events = '', callback, passive = true, capture = false) {\n toggleListener.call(this, element, events, callback, true, passive, capture);\n}\n\n// Unbind event handler\nexport function off(element, events = '', callback, passive = true, capture = false) {\n toggleListener.call(this, element, events, callback, false, passive, capture);\n}\n\n// Bind once-only event handler\nexport function once(element, events = '', callback, passive = true, capture = false) {\n function onceCallback(...args) {\n off(element, events, onceCallback, passive, capture);\n callback.apply(this, args);\n }\n\n toggleListener.call(this, element, events, onceCallback, true, passive, capture);\n}\n\n// Trigger event\nexport function triggerEvent(element, type = '', bubbles = false, detail = {}) {\n // Bail if no element\n if (!is.element(element) || is.empty(type)) {\n return;\n }\n\n // Create and dispatch the event\n const event = new CustomEvent(type, {\n bubbles,\n detail: Object.assign({}, detail, {\n plyr: this,\n }),\n });\n\n // Dispatch the event\n element.dispatchEvent(event);\n}\n\n// Unbind all cached event listeners\nexport function unbindListeners() {\n if (this && this.eventListeners) {\n this.eventListeners.forEach(item => {\n const { element, type, callback, options } = item;\n element.removeEventListener(type, callback, options);\n });\n\n this.eventListeners = [];\n }\n}\n\n// Run method when / if player is ready\nexport function ready() {\n return new Promise(\n resolve => (this.ready ? setTimeout(resolve, 0) : on.call(this, this.elements.container, 'ready', resolve)),\n ).then(() => {});\n}\n","// ==========================================================================\n// Element utils\n// ==========================================================================\n\nimport { toggleListener } from './events';\nimport is from './is';\n\n// Wrap an element\nexport function wrap(elements, wrapper) {\n // Convert `elements` to an array, if necessary.\n const targets = elements.length ? elements : [elements];\n\n // Loops backwards to prevent having to clone the wrapper on the\n // first element (see `child` below).\n Array.from(targets)\n .reverse()\n .forEach((element, index) => {\n const child = index > 0 ? wrapper.cloneNode(true) : wrapper;\n\n // Cache the current parent and sibling.\n const parent = element.parentNode;\n const sibling = element.nextSibling;\n\n // Wrap the element (is automatically removed from its current\n // parent).\n child.appendChild(element);\n\n // If the element had a sibling, insert the wrapper before\n // the sibling to maintain the HTML structure; otherwise, just\n // append it to the parent.\n if (sibling) {\n parent.insertBefore(child, sibling);\n } else {\n parent.appendChild(child);\n }\n });\n}\n\n// Set attributes\nexport function setAttributes(element, attributes) {\n if (!is.element(element) || is.empty(attributes)) {\n return;\n }\n\n // Assume null and undefined attributes should be left out,\n // Setting them would otherwise convert them to \"null\" and \"undefined\"\n Object.entries(attributes)\n .filter(([, value]) => !is.nullOrUndefined(value))\n .forEach(([key, value]) => element.setAttribute(key, value));\n}\n\n// Create a DocumentFragment\nexport function createElement(type, attributes, text) {\n // Create a new \n const element = document.createElement(type);\n\n // Set all passed attributes\n if (is.object(attributes)) {\n setAttributes(element, attributes);\n }\n\n // Add text node\n if (is.string(text)) {\n element.innerText = text;\n }\n\n // Return built element\n return element;\n}\n\n// Inaert an element after another\nexport function insertAfter(element, target) {\n if (!is.element(element) || !is.element(target)) {\n return;\n }\n\n target.parentNode.insertBefore(element, target.nextSibling);\n}\n\n// Insert a DocumentFragment\nexport function insertElement(type, parent, attributes, text) {\n if (!is.element(parent)) {\n return;\n }\n\n parent.appendChild(createElement(type, attributes, text));\n}\n\n// Remove element(s)\nexport function removeElement(element) {\n if (is.nodeList(element) || is.array(element)) {\n Array.from(element).forEach(removeElement);\n return;\n }\n\n if (!is.element(element) || !is.element(element.parentNode)) {\n return;\n }\n\n element.parentNode.removeChild(element);\n}\n\n// Remove all child elements\nexport function emptyElement(element) {\n if (!is.element(element)) {\n return;\n }\n\n let { length } = element.childNodes;\n\n while (length > 0) {\n element.removeChild(element.lastChild);\n length -= 1;\n }\n}\n\n// Replace element\nexport function replaceElement(newChild, oldChild) {\n if (!is.element(oldChild) || !is.element(oldChild.parentNode) || !is.element(newChild)) {\n return null;\n }\n\n oldChild.parentNode.replaceChild(newChild, oldChild);\n\n return newChild;\n}\n\n// Get an attribute object from a string selector\nexport function getAttributesFromSelector(sel, existingAttributes) {\n // For example:\n // '.test' to { class: 'test' }\n // '#test' to { id: 'test' }\n // '[data-test=\"test\"]' to { 'data-test': 'test' }\n\n if (!is.string(sel) || is.empty(sel)) {\n return {};\n }\n\n const attributes = {};\n const existing = existingAttributes;\n\n sel.split(',').forEach(s => {\n // Remove whitespace\n const selector = s.trim();\n const className = selector.replace('.', '');\n const stripped = selector.replace(/[[\\]]/g, '');\n\n // Get the parts and value\n const parts = stripped.split('=');\n const key = parts[0];\n const value = parts.length > 1 ? parts[1].replace(/[\"']/g, '') : '';\n\n // Get the first character\n const start = selector.charAt(0);\n\n switch (start) {\n case '.':\n // Add to existing classname\n if (is.object(existing) && is.string(existing.class)) {\n existing.class += ` ${className}`;\n }\n\n attributes.class = className;\n break;\n\n case '#':\n // ID selector\n attributes.id = selector.replace('#', '');\n break;\n\n case '[':\n // Attribute selector\n attributes[key] = value;\n\n break;\n\n default:\n break;\n }\n });\n\n return attributes;\n}\n\n// Toggle hidden\nexport function toggleHidden(element, hidden) {\n if (!is.element(element)) {\n return;\n }\n\n let hide = hidden;\n\n if (!is.boolean(hide)) {\n hide = !element.hasAttribute('hidden');\n }\n\n if (hide) {\n element.setAttribute('hidden', '');\n } else {\n element.removeAttribute('hidden');\n }\n}\n\n// Mirror Element.classList.toggle, with IE compatibility for \"force\" argument\nexport function toggleClass(element, className, force) {\n if (is.element(element)) {\n let method = 'toggle';\n if (typeof force !== 'undefined') {\n method = force ? 'add' : 'remove';\n }\n\n element.classList[method](className);\n return element.classList.contains(className);\n }\n\n return null;\n}\n\n// Has class name\nexport function hasClass(element, className) {\n return is.element(element) && element.classList.contains(className);\n}\n\n// Element matches selector\nexport function matches(element, selector) {\n const prototype = { Element };\n\n function match() {\n return Array.from(document.querySelectorAll(selector)).includes(this);\n }\n\n const matches =\n prototype.matches ||\n prototype.webkitMatchesSelector ||\n prototype.mozMatchesSelector ||\n prototype.msMatchesSelector ||\n match;\n\n return matches.call(element, selector);\n}\n\n// Find all elements\nexport function getElements(selector) {\n return this.elements.container.querySelectorAll(selector);\n}\n\n// Find a single element\nexport function getElement(selector) {\n return this.elements.container.querySelector(selector);\n}\n\n// Get the focused element\nexport function getFocusElement() {\n let focused = document.activeElement;\n\n if (!focused || focused === document.body) {\n focused = null;\n } else {\n focused = document.querySelector(':focus');\n }\n\n return focused;\n}\n\n// Trap focus inside container\nexport function trapFocus(element = null, toggle = false) {\n if (!is.element(element)) {\n return;\n }\n\n const focusable = getElements.call(this, 'button:not(:disabled), input:not(:disabled), [tabindex]');\n const first = focusable[0];\n const last = focusable[focusable.length - 1];\n\n const trap = event => {\n // Bail if not tab key or not fullscreen\n if (event.key !== 'Tab' || event.keyCode !== 9) {\n return;\n }\n\n // Get the current focused element\n const focused = getFocusElement();\n\n if (focused === last && !event.shiftKey) {\n // Move focus to first element that can be tabbed if Shift isn't used\n first.focus();\n event.preventDefault();\n } else if (focused === first && event.shiftKey) {\n // Move focus to last element that can be tabbed if Shift is used\n last.focus();\n event.preventDefault();\n }\n };\n\n toggleListener.call(this, this.elements.container, 'keydown', trap, toggle, false);\n}\n","// ==========================================================================\n// Animation utils\n// ==========================================================================\n\nimport { toggleHidden } from './elements';\nimport is from './is';\n\nexport const transitionEndEvent = (() => {\n const element = document.createElement('span');\n\n const events = {\n WebkitTransition: 'webkitTransitionEnd',\n MozTransition: 'transitionend',\n OTransition: 'oTransitionEnd otransitionend',\n transition: 'transitionend',\n };\n\n const type = Object.keys(events).find(event => element.style[event] !== undefined);\n\n return is.string(type) ? events[type] : false;\n})();\n\n// Force repaint of element\nexport function repaint(element) {\n setTimeout(() => {\n toggleHidden(element, true);\n element.offsetHeight; // eslint-disable-line\n toggleHidden(element, false);\n }, 0);\n}\n","// ==========================================================================\n// Browser sniffing\n// Unfortunately, due to mixed support, UA sniffing is required\n// ==========================================================================\n\nconst browser = {\n isIE: /* @cc_on!@ */ false || !!document.documentMode,\n isWebkit: 'WebkitAppearance' in document.documentElement.style && !/Edge/.test(navigator.userAgent),\n isIPhone: /(iPhone|iPod)/gi.test(navigator.platform),\n isIos: /(iPad|iPhone|iPod)/gi.test(navigator.platform),\n};\n\nexport default browser;\n","// ==========================================================================\n// Plyr support checks\n// ==========================================================================\n\nimport { transitionEndEvent } from './utils/animation';\nimport browser from './utils/browser';\nimport { createElement } from './utils/elements';\nimport is from './utils/is';\n\n// Default codecs for checking mimetype support\nconst defaultCodecs = {\n 'audio/ogg': 'vorbis',\n 'audio/wav': '1',\n 'video/webm': 'vp8, vorbis',\n 'video/mp4': 'avc1.42E01E, mp4a.40.2',\n 'video/ogg': 'theora',\n};\n\n// Check for feature support\nconst support = {\n // Basic support\n audio: 'canPlayType' in document.createElement('audio'),\n video: 'canPlayType' in document.createElement('video'),\n\n // Check for support\n // Basic functionality vs full UI\n check(type, provider, playsinline) {\n const canPlayInline = browser.isIPhone && playsinline && support.playsinline;\n const api = support[type] || provider !== 'html5';\n const ui = api && support.rangeInput && (type !== 'video' || !browser.isIPhone || canPlayInline);\n\n return {\n api,\n ui,\n };\n },\n\n // Picture-in-picture support\n // Safari only currently\n pip: (() => !browser.isIPhone && is.function(createElement('video').webkitSetPresentationMode))(),\n\n // Airplay support\n // Safari only currently\n airplay: is.function(window.WebKitPlaybackTargetAvailabilityEvent),\n\n // Inline playback support\n // https://webkit.org/blog/6784/new-video-policies-for-ios/\n playsinline: 'playsInline' in document.createElement('video'),\n\n // Check for mime type support against a player instance\n // Credits: http://diveintohtml5.info/everything.html\n // Related: http://www.leanbackplayer.com/test/h5mt.html\n mime(inputType) {\n const [mediaType] = inputType.split('/');\n if (!this.isHTML5 || mediaType !== this.type) {\n return false;\n }\n\n let type;\n if (inputType && inputType.includes('codecs=')) {\n // Use input directly\n type = inputType;\n } else if (inputType === 'audio/mpeg') {\n // Skip codec\n type = 'audio/mpeg;';\n } else if (inputType in defaultCodecs) {\n // Use codec\n type = `${inputType}; codecs=\"${defaultCodecs[inputType]}\"`;\n }\n\n try {\n return Boolean(type && this.media.canPlayType(type).replace(/no/, ''));\n } catch (err) {\n return false;\n }\n },\n\n // Check for textTracks support\n textTracks: 'textTracks' in document.createElement('video'),\n\n // Sliders\n rangeInput: (() => {\n const range = document.createElement('input');\n range.type = 'range';\n return range.type === 'range';\n })(),\n\n // Touch\n // NOTE: Remember a device can be mouse + touch enabled so we check on first touch event\n touch: 'ontouchstart' in document.documentElement,\n\n // Detect transitions support\n transitions: transitionEndEvent !== false,\n\n // Reduced motion iOS & MacOS setting\n // https://webkit.org/blog/7551/responsive-design-for-motion/\n reducedMotion: 'matchMedia' in window && window.matchMedia('(prefers-reduced-motion)').matches,\n};\n\nexport default support;\n","// ==========================================================================\n// Plyr HTML5 helpers\n// ==========================================================================\n\nimport support from './support';\nimport { removeElement } from './utils/elements';\nimport { triggerEvent } from './utils/events';\n\nconst html5 = {\n getSources() {\n if (!this.isHTML5) {\n return [];\n }\n\n const sources = Array.from(this.media.querySelectorAll('source'));\n\n // Filter out unsupported sources\n return sources.filter(source => support.mime.call(this, source.getAttribute('type')));\n },\n\n // Get quality levels\n getQualityOptions() {\n // Get sizes from elements\n return html5.getSources\n .call(this)\n .map(source => Number(source.getAttribute('size')))\n .filter(Boolean);\n },\n\n extend() {\n if (!this.isHTML5) {\n return;\n }\n\n const player = this;\n\n // Quality\n Object.defineProperty(player.media, 'quality', {\n get() {\n // Get sources\n const sources = html5.getSources.call(player);\n const [source] = sources.filter(source => source.getAttribute('src') === player.source);\n\n // Return size, if match is found\n return source && Number(source.getAttribute('size'));\n },\n set(input) {\n // Get sources\n const sources = html5.getSources.call(player);\n\n // Get first match for requested size\n const source = sources.find(source => Number(source.getAttribute('size')) === input);\n\n // No matching source found\n if (!source) {\n return;\n }\n\n // Get current state\n const { currentTime, playing } = player;\n\n // Set new source\n player.media.src = source.getAttribute('src');\n\n // Restore time\n const onLoadedMetaData = () => {\n player.currentTime = currentTime;\n };\n player.once('loadedmetadata', onLoadedMetaData);\n\n // Load new source\n player.media.load();\n\n // Resume playing\n if (playing) {\n player.play();\n }\n\n // Trigger change event\n triggerEvent.call(player, player.media, 'qualitychange', false, {\n quality: input,\n });\n },\n });\n },\n\n // Cancel current network requests\n // See https://github.com/sampotts/plyr/issues/174\n cancelRequests() {\n if (!this.isHTML5) {\n return;\n }\n\n // Remove child sources\n removeElement(html5.getSources.call(this));\n\n // Set blank video src attribute\n // This is to prevent a MEDIA_ERR_SRC_NOT_SUPPORTED error\n // Info: http://stackoverflow.com/questions/32231579/how-to-properly-dispose-of-an-html5-video-and-close-socket-or-connection\n this.media.setAttribute('src', this.config.blankVideo);\n\n // Load the new empty source\n // This will cancel existing requests\n // See https://github.com/sampotts/plyr/issues/174\n this.media.load();\n\n // Debugging\n this.debug.log('Cancelled network requests');\n },\n};\n\nexport default html5;\n","// ==========================================================================\n// Object utils\n// ==========================================================================\n\nimport is from './is';\n\n// Clone nested objects\nexport function cloneDeep(object) {\n return JSON.parse(JSON.stringify(object));\n}\n\n// Get a nested value in an object\nexport function getDeep(object, path) {\n return path.split('.').reduce((obj, key) => obj && obj[key], object);\n}\n\n// Deep extend destination object with N more objects\nexport function extend(target = {}, ...sources) {\n if (!sources.length) {\n return target;\n }\n\n const source = sources.shift();\n\n if (!is.object(source)) {\n return target;\n }\n\n Object.keys(source).forEach(key => {\n if (is.object(source[key])) {\n if (!Object.keys(target).includes(key)) {\n Object.assign(target, { [key]: {} });\n }\n\n extend(target[key], source[key]);\n } else {\n Object.assign(target, { [key]: source[key] });\n }\n });\n\n return extend(target, ...sources);\n}\n","// ==========================================================================\n// String utils\n// ==========================================================================\n\nimport is from './is';\n\n// Generate a random ID\nexport function generateId(prefix) {\n return `${prefix}-${Math.floor(Math.random() * 10000)}`;\n}\n\n// Format string\nexport function format(input, ...args) {\n if (is.empty(input)) {\n return input;\n }\n\n return input.toString().replace(/{(\\d+)}/g, (match, i) => args[i].toString());\n}\n\n// Get percentage\nexport function getPercentage(current, max) {\n if (current === 0 || max === 0 || Number.isNaN(current) || Number.isNaN(max)) {\n return 0;\n }\n\n return (current / max * 100).toFixed(2);\n}\n\n// Replace all occurances of a string in a string\nexport function replaceAll(input = '', find = '', replace = '') {\n return input.replace(\n new RegExp(find.toString().replace(/([.*+?^=!:${}()|[\\]/\\\\])/g, '\\\\$1'), 'g'),\n replace.toString(),\n );\n}\n\n// Convert to title case\nexport function toTitleCase(input = '') {\n return input.toString().replace(/\\w\\S*/g, text => text.charAt(0).toUpperCase() + text.substr(1).toLowerCase());\n}\n\n// Convert string to pascalCase\nexport function toPascalCase(input = '') {\n let string = input.toString();\n\n // Convert kebab case\n string = replaceAll(string, '-', ' ');\n\n // Convert snake case\n string = replaceAll(string, '_', ' ');\n\n // Convert to title case\n string = toTitleCase(string);\n\n // Convert to pascal case\n return replaceAll(string, ' ', '');\n}\n\n// Convert string to pascalCase\nexport function toCamelCase(input = '') {\n let string = input.toString();\n\n // Convert to pascal case\n string = toPascalCase(string);\n\n // Convert first character to lowercase\n return string.charAt(0).toLowerCase() + string.slice(1);\n}\n\n// Remove HTML from a string\nexport function stripHTML(source) {\n const fragment = document.createDocumentFragment();\n const element = document.createElement('div');\n fragment.appendChild(element);\n element.innerHTML = source;\n return fragment.firstChild.innerText;\n}\n\n// Like outerHTML, but also works for DocumentFragment\nexport function getHTML(element) {\n const wrapper = document.createElement('div');\n wrapper.appendChild(element);\n return wrapper.innerHTML;\n}\n","// ==========================================================================\n// Plyr internationalization\n// ==========================================================================\n\nimport is from './utils/is';\nimport { getDeep } from './utils/objects';\nimport { replaceAll } from './utils/strings';\n\nconst i18n = {\n get(key = '', config = {}) {\n if (is.empty(key) || is.empty(config)) {\n return '';\n }\n\n let string = getDeep(config.i18n, key);\n\n if (is.empty(string)) {\n return '';\n }\n\n const replace = {\n '{seektime}': config.seekTime,\n '{title}': config.title,\n };\n\n Object.entries(replace).forEach(([key, value]) => {\n string = replaceAll(string, key, value);\n });\n\n return string;\n },\n};\n\nexport default i18n;\n","// ==========================================================================\n// Array utils\n// ==========================================================================\n\nimport is from './is';\n\n// Remove duplicates in an array\nexport function dedupe(array) {\n if (!is.array(array)) {\n return array;\n }\n\n return array.filter((item, index) => array.indexOf(item) === index);\n}\n\n// Get the closest value in an array\nexport function closest(array, value) {\n if (!is.array(array) || !array.length) {\n return null;\n }\n\n return array.reduce((prev, curr) => (Math.abs(curr - value) < Math.abs(prev - value) ? curr : prev));\n}\n","// ==========================================================================\n// Plyr storage\n// ==========================================================================\n\nimport is from './utils/is';\nimport { extend } from './utils/objects';\n\nclass Storage {\n constructor(player) {\n this.enabled = player.config.storage.enabled;\n this.key = player.config.storage.key;\n }\n\n // Check for actual support (see if we can use it)\n static get supported() {\n try {\n if (!('localStorage' in window)) {\n return false;\n }\n\n const test = '___test';\n\n // Try to use it (it might be disabled, e.g. user is in private mode)\n // see: https://github.com/sampotts/plyr/issues/131\n window.localStorage.setItem(test, test);\n window.localStorage.removeItem(test);\n\n return true;\n } catch (e) {\n return false;\n }\n }\n\n get(key) {\n if (!Storage.supported || !this.enabled) {\n return null;\n }\n\n const store = window.localStorage.getItem(this.key);\n\n if (is.empty(store)) {\n return null;\n }\n\n const json = JSON.parse(store);\n\n return is.string(key) && key.length ? json[key] : json;\n }\n\n set(object) {\n // Bail if we don't have localStorage support or it's disabled\n if (!Storage.supported || !this.enabled) {\n return;\n }\n\n // Can only store objectst\n if (!is.object(object)) {\n return;\n }\n\n // Get current storage\n let storage = this.get();\n\n // Default to empty object\n if (is.empty(storage)) {\n storage = {};\n }\n\n // Update the working copy of the values\n extend(storage, object);\n\n // Update storage\n window.localStorage.setItem(this.key, JSON.stringify(storage));\n }\n}\n\nexport default Storage;\n","// ==========================================================================\n// Fetch wrapper\n// Using XHR to avoid issues with older browsers\n// ==========================================================================\n\nexport default function fetch(url, responseType = 'text') {\n return new Promise((resolve, reject) => {\n try {\n const request = new XMLHttpRequest();\n\n // Check for CORS support\n if (!('withCredentials' in request)) {\n return;\n }\n\n request.addEventListener('load', () => {\n if (responseType === 'text') {\n try {\n resolve(JSON.parse(request.responseText));\n } catch (e) {\n resolve(request.responseText);\n }\n } else {\n resolve(request.response);\n }\n });\n\n request.addEventListener('error', () => {\n throw new Error(request.status);\n });\n\n request.open('GET', url, true);\n\n // Set the required response type\n request.responseType = responseType;\n\n request.send();\n } catch (e) {\n reject(e);\n }\n });\n}\n","// ==========================================================================\n// Sprite loader\n// ==========================================================================\n\nimport Storage from './../storage';\nimport fetch from './fetch';\nimport is from './is';\n\n// Load an external SVG sprite\nexport default function loadSprite(url, id) {\n if (!is.string(url)) {\n return;\n }\n\n const prefix = 'cache';\n const hasId = is.string(id);\n let isCached = false;\n\n const exists = () => document.getElementById(id) !== null;\n\n const update = (container, data) => {\n container.innerHTML = data;\n\n // Check again incase of race condition\n if (hasId && exists()) {\n return;\n }\n\n // Inject the SVG to the body\n document.body.insertAdjacentElement('afterbegin', container);\n };\n\n // Only load once if ID set\n if (!hasId || !exists()) {\n const useStorage = Storage.supported;\n\n // Create container\n const container = document.createElement('div');\n container.setAttribute('hidden', '');\n\n if (hasId) {\n container.setAttribute('id', id);\n }\n\n // Check in cache\n if (useStorage) {\n const cached = window.localStorage.getItem(`${prefix}-${id}`);\n isCached = cached !== null;\n\n if (isCached) {\n const data = JSON.parse(cached);\n update(container, data.content);\n }\n }\n\n // Get the sprite\n fetch(url)\n .then(result => {\n if (is.empty(result)) {\n return;\n }\n\n if (useStorage) {\n window.localStorage.setItem(\n `${prefix}-${id}`,\n JSON.stringify({\n content: result,\n }),\n );\n }\n\n update(container, result);\n })\n .catch(() => {});\n }\n}\n","// ==========================================================================\n// Time utils\n// ==========================================================================\n\nimport is from './is';\n\n// Time helpers\nexport const getHours = value => parseInt((value / 60 / 60) % 60, 10);\nexport const getMinutes = value => parseInt((value / 60) % 60, 10);\nexport const getSeconds = value => parseInt(value % 60, 10);\n\n// Format time to UI friendly string\nexport function formatTime(time = 0, displayHours = false, inverted = false) {\n // Bail if the value isn't a number\n if (!is.number(time)) {\n return formatTime(null, displayHours, inverted);\n }\n\n // Format time component to add leading zero\n const format = value => `0${value}`.slice(-2);\n\n // Breakdown to hours, mins, secs\n let hours = getHours(time);\n const mins = getMinutes(time);\n const secs = getSeconds(time);\n\n // Do we need to display hours?\n if (displayHours || hours > 0) {\n hours = `${hours}:`;\n } else {\n hours = '';\n }\n\n // Render\n return `${inverted && time > 0 ? '-' : ''}${hours}${format(mins)}:${format(secs)}`;\n}\n","// ==========================================================================\n// Plyr controls\n// ==========================================================================\n\nimport captions from './captions';\nimport html5 from './html5';\nimport i18n from './i18n';\nimport support from './support';\nimport { repaint, transitionEndEvent } from './utils/animation';\nimport { dedupe } from './utils/arrays';\nimport browser from './utils/browser';\nimport {\n createElement,\n emptyElement,\n getAttributesFromSelector,\n getElement,\n getElements,\n hasClass,\n removeElement,\n setAttributes,\n toggleClass,\n toggleHidden,\n matches,\n} from './utils/elements';\nimport { off, on } from './utils/events';\nimport is from './utils/is';\nimport loadSprite from './utils/loadSprite';\nimport { extend } from './utils/objects';\nimport { getPercentage, replaceAll, toCamelCase, toTitleCase } from './utils/strings';\nimport { formatTime, getHours } from './utils/time';\n\n// TODO: Don't export a massive object - break down and create class\nconst controls = {\n // Get icon URL\n getIconUrl() {\n const url = new URL(this.config.iconUrl, window.location);\n const cors = url.host !== window.location.host || (browser.isIE && !window.svg4everybody);\n\n return {\n url: this.config.iconUrl,\n cors,\n };\n },\n\n // Find the UI controls\n findElements() {\n try {\n this.elements.controls = getElement.call(this, this.config.selectors.controls.wrapper);\n\n // Buttons\n this.elements.buttons = {\n play: getElements.call(this, this.config.selectors.buttons.play),\n pause: getElement.call(this, this.config.selectors.buttons.pause),\n restart: getElement.call(this, this.config.selectors.buttons.restart),\n rewind: getElement.call(this, this.config.selectors.buttons.rewind),\n fastForward: getElement.call(this, this.config.selectors.buttons.fastForward),\n mute: getElement.call(this, this.config.selectors.buttons.mute),\n pip: getElement.call(this, this.config.selectors.buttons.pip),\n airplay: getElement.call(this, this.config.selectors.buttons.airplay),\n settings: getElement.call(this, this.config.selectors.buttons.settings),\n captions: getElement.call(this, this.config.selectors.buttons.captions),\n fullscreen: getElement.call(this, this.config.selectors.buttons.fullscreen),\n };\n\n // Progress\n this.elements.progress = getElement.call(this, this.config.selectors.progress);\n\n // Inputs\n this.elements.inputs = {\n seek: getElement.call(this, this.config.selectors.inputs.seek),\n volume: getElement.call(this, this.config.selectors.inputs.volume),\n };\n\n // Display\n this.elements.display = {\n buffer: getElement.call(this, this.config.selectors.display.buffer),\n currentTime: getElement.call(this, this.config.selectors.display.currentTime),\n duration: getElement.call(this, this.config.selectors.display.duration),\n };\n\n // Seek tooltip\n if (is.element(this.elements.progress)) {\n this.elements.display.seekTooltip = this.elements.progress.querySelector(\n `.${this.config.classNames.tooltip}`,\n );\n }\n\n return true;\n } catch (error) {\n // Log it\n this.debug.warn('It looks like there is a problem with your custom controls HTML', error);\n\n // Restore native video controls\n this.toggleNativeControls(true);\n\n return false;\n }\n },\n\n // Create icon\n createIcon(type, attributes) {\n const namespace = 'http://www.w3.org/2000/svg';\n const iconUrl = controls.getIconUrl.call(this);\n const iconPath = `${!iconUrl.cors ? iconUrl.url : ''}#${this.config.iconPrefix}`;\n\n // Create \n const icon = document.createElementNS(namespace, 'svg');\n setAttributes(\n icon,\n extend(attributes, {\n role: 'presentation',\n focusable: 'false',\n }),\n );\n\n // Create the to reference sprite\n const use = document.createElementNS(namespace, 'use');\n const path = `${iconPath}-${type}`;\n\n // Set `href` attributes\n // https://github.com/sampotts/plyr/issues/460\n // https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/xlink:href\n if ('href' in use) {\n use.setAttributeNS('http://www.w3.org/1999/xlink', 'href', path);\n } else {\n use.setAttributeNS('http://www.w3.org/1999/xlink', 'xlink:href', path);\n }\n\n // Add to \n icon.appendChild(use);\n\n return icon;\n },\n\n // Create hidden text label\n createLabel(type, attr = {}) {\n // Skip i18n for abbreviations and brand names\n const universals = {\n pip: 'PIP',\n airplay: 'AirPlay',\n };\n const text = universals[type] || i18n.get(type, this.config);\n\n const attributes = Object.assign({}, attr, {\n class: [attr.class, this.config.classNames.hidden].filter(Boolean).join(' '),\n });\n return createElement('span', attributes, text);\n },\n\n // Create a badge\n createBadge(text) {\n if (is.empty(text)) {\n return null;\n }\n\n const badge = createElement('span', {\n class: this.config.classNames.menu.value,\n });\n\n badge.appendChild(\n createElement(\n 'span',\n {\n class: this.config.classNames.menu.badge,\n },\n text,\n ),\n );\n\n return badge;\n },\n\n // Create a
to hide the standard controls and UI\n setAspectRatio(input) {\n const [x, y] = (is.string(input) ? input : this.config.ratio).split(':');\n const padding = 100 / x * y;\n this.elements.wrapper.style.paddingBottom = `${padding}%`;\n\n if (this.supported.ui) {\n const height = 240;\n const offset = (height - padding) / (height / 50);\n\n this.media.style.transform = `translateY(-${offset}%)`;\n }\n },\n\n // API Ready\n ready() {\n const player = this;\n\n // Get Vimeo params for the iframe\n const options = {\n loop: player.config.loop.active,\n autoplay: player.autoplay,\n // muted: player.muted,\n byline: false,\n portrait: false,\n title: false,\n speed: true,\n transparent: 0,\n gesture: 'media',\n playsinline: !this.config.fullscreen.iosNative,\n };\n const params = buildUrlParams(options);\n\n // Get the source URL or ID\n let source = player.media.getAttribute('src');\n\n // Get from
if needed\n if (is.empty(source)) {\n source = player.media.getAttribute(player.config.attributes.embed.id);\n }\n\n const id = parseId(source);\n\n // Build an iframe\n const iframe = createElement('iframe');\n const src = format(player.config.urls.vimeo.iframe, id, params);\n iframe.setAttribute('src', src);\n iframe.setAttribute('allowfullscreen', '');\n iframe.setAttribute('allowtransparency', '');\n iframe.setAttribute('allow', 'autoplay');\n\n // Get poster, if already set\n const { poster } = player;\n\n // Inject the package\n const wrapper = createElement('div', { poster, class: player.config.classNames.embedContainer });\n wrapper.appendChild(iframe);\n player.media = replaceElement(wrapper, player.media);\n\n // Get poster image\n fetch(format(player.config.urls.vimeo.api, id), 'json').then(response => {\n if (is.empty(response)) {\n return;\n }\n\n // Get the URL for thumbnail\n const url = new URL(response[0].thumbnail_large);\n\n // Get original image\n url.pathname = `${url.pathname.split('_')[0]}.jpg`;\n\n // Set and show poster\n ui.setPoster.call(player, url.href).catch(() => {});\n });\n\n // Setup instance\n // https://github.com/vimeo/player.js\n player.embed = new window.Vimeo.Player(iframe, {\n autopause: player.config.autopause,\n muted: player.muted,\n });\n\n player.media.paused = true;\n player.media.currentTime = 0;\n\n // Disable native text track rendering\n if (player.supported.ui) {\n player.embed.disableTextTrack();\n }\n\n // Create a faux HTML5 API using the Vimeo API\n player.media.play = () => {\n assurePlaybackState.call(player, true);\n return player.embed.play();\n };\n\n player.media.pause = () => {\n assurePlaybackState.call(player, false);\n return player.embed.pause();\n };\n\n player.media.stop = () => {\n player.pause();\n player.currentTime = 0;\n };\n\n // Seeking\n let { currentTime } = player.media;\n Object.defineProperty(player.media, 'currentTime', {\n get() {\n return currentTime;\n },\n set(time) {\n // Vimeo will automatically play on seek if the video hasn't been played before\n\n // Get current paused state and volume etc\n const { embed, media, paused, volume } = player;\n const restorePause = paused && !embed.hasPlayed;\n\n // Set seeking state and trigger event\n media.seeking = true;\n triggerEvent.call(player, media, 'seeking');\n\n // If paused, mute until seek is complete\n Promise.resolve(restorePause && embed.setVolume(0))\n // Seek\n .then(() => embed.setCurrentTime(time))\n // Restore paused\n .then(() => restorePause && embed.pause())\n // Restore volume\n .then(() => restorePause && embed.setVolume(volume))\n .catch(() => {\n // Do nothing\n });\n },\n });\n\n // Playback speed\n let speed = player.config.speed.selected;\n Object.defineProperty(player.media, 'playbackRate', {\n get() {\n return speed;\n },\n set(input) {\n player.embed\n .setPlaybackRate(input)\n .then(() => {\n speed = input;\n triggerEvent.call(player, player.media, 'ratechange');\n })\n .catch(error => {\n // Hide menu item (and menu if empty)\n if (error.name === 'Error') {\n controls.setSpeedMenu.call(player, []);\n }\n });\n },\n });\n\n // Volume\n let { volume } = player.config;\n Object.defineProperty(player.media, 'volume', {\n get() {\n return volume;\n },\n set(input) {\n player.embed.setVolume(input).then(() => {\n volume = input;\n triggerEvent.call(player, player.media, 'volumechange');\n });\n },\n });\n\n // Muted\n let { muted } = player.config;\n Object.defineProperty(player.media, 'muted', {\n get() {\n return muted;\n },\n set(input) {\n const toggle = is.boolean(input) ? input : false;\n\n player.embed.setVolume(toggle ? 0 : player.config.volume).then(() => {\n muted = toggle;\n triggerEvent.call(player, player.media, 'volumechange');\n });\n },\n });\n\n // Loop\n let { loop } = player.config;\n Object.defineProperty(player.media, 'loop', {\n get() {\n return loop;\n },\n set(input) {\n const toggle = is.boolean(input) ? input : player.config.loop.active;\n\n player.embed.setLoop(toggle).then(() => {\n loop = toggle;\n });\n },\n });\n\n // Source\n let currentSrc;\n player.embed\n .getVideoUrl()\n .then(value => {\n currentSrc = value;\n })\n .catch(error => {\n this.debug.warn(error);\n });\n\n Object.defineProperty(player.media, 'currentSrc', {\n get() {\n return currentSrc;\n },\n });\n\n // Ended\n Object.defineProperty(player.media, 'ended', {\n get() {\n return player.currentTime === player.duration;\n },\n });\n\n // Set aspect ratio based on video size\n Promise.all([player.embed.getVideoWidth(), player.embed.getVideoHeight()]).then(dimensions => {\n const ratio = getAspectRatio(dimensions[0], dimensions[1]);\n vimeo.setAspectRatio.call(this, ratio);\n });\n\n // Set autopause\n player.embed.setAutopause(player.config.autopause).then(state => {\n player.config.autopause = state;\n });\n\n // Get title\n player.embed.getVideoTitle().then(title => {\n player.config.title = title;\n ui.setTitle.call(this);\n });\n\n // Get current time\n player.embed.getCurrentTime().then(value => {\n currentTime = value;\n triggerEvent.call(player, player.media, 'timeupdate');\n });\n\n // Get duration\n player.embed.getDuration().then(value => {\n player.media.duration = value;\n triggerEvent.call(player, player.media, 'durationchange');\n });\n\n // Get captions\n player.embed.getTextTracks().then(tracks => {\n player.media.textTracks = tracks;\n captions.setup.call(player);\n });\n\n player.embed.on('cuechange', ({ cues = [] }) => {\n const strippedCues = cues.map(cue => stripHTML(cue.text));\n captions.updateCues.call(player, strippedCues);\n });\n\n player.embed.on('loaded', () => {\n // Assure state and events are updated on autoplay\n player.embed.getPaused().then(paused => {\n assurePlaybackState.call(player, !paused);\n if (!paused) {\n triggerEvent.call(player, player.media, 'playing');\n }\n });\n\n if (is.element(player.embed.element) && player.supported.ui) {\n const frame = player.embed.element;\n\n // Fix keyboard focus issues\n // https://github.com/sampotts/plyr/issues/317\n frame.setAttribute('tabindex', -1);\n }\n });\n\n player.embed.on('play', () => {\n assurePlaybackState.call(player, true);\n triggerEvent.call(player, player.media, 'playing');\n });\n\n player.embed.on('pause', () => {\n assurePlaybackState.call(player, false);\n });\n\n player.embed.on('timeupdate', data => {\n player.media.seeking = false;\n currentTime = data.seconds;\n triggerEvent.call(player, player.media, 'timeupdate');\n });\n\n player.embed.on('progress', data => {\n player.media.buffered = data.percent;\n triggerEvent.call(player, player.media, 'progress');\n\n // Check all loaded\n if (parseInt(data.percent, 10) === 1) {\n triggerEvent.call(player, player.media, 'canplaythrough');\n }\n\n // Get duration as if we do it before load, it gives an incorrect value\n // https://github.com/sampotts/plyr/issues/891\n player.embed.getDuration().then(value => {\n if (value !== player.media.duration) {\n player.media.duration = value;\n triggerEvent.call(player, player.media, 'durationchange');\n }\n });\n });\n\n player.embed.on('seeked', () => {\n player.media.seeking = false;\n triggerEvent.call(player, player.media, 'seeked');\n });\n\n player.embed.on('ended', () => {\n player.media.paused = true;\n triggerEvent.call(player, player.media, 'ended');\n });\n\n player.embed.on('error', detail => {\n player.media.error = detail;\n triggerEvent.call(player, player.media, 'error');\n });\n\n // Rebuild UI\n setTimeout(() => ui.build.call(player), 0);\n },\n};\n\nexport default vimeo;\n","// ==========================================================================\n// YouTube plugin\n// ==========================================================================\n\nimport controls from './../controls';\nimport ui from './../ui';\nimport { dedupe } from './../utils/arrays';\nimport { createElement, replaceElement, toggleClass } from './../utils/elements';\nimport { triggerEvent } from './../utils/events';\nimport fetch from './../utils/fetch';\nimport is from './../utils/is';\nimport loadImage from './../utils/loadImage';\nimport loadScript from './../utils/loadScript';\nimport { format, generateId } from './../utils/strings';\n\n// Parse YouTube ID from URL\nfunction parseId(url) {\n if (is.empty(url)) {\n return null;\n }\n\n const regex = /^.*(youtu.be\\/|v\\/|u\\/\\w\\/|embed\\/|watch\\?v=|&v=)([^#&?]*).*/;\n return url.match(regex) ? RegExp.$2 : url;\n}\n\n// Standardise YouTube quality unit\nfunction mapQualityUnit(input) {\n const qualities = {\n hd2160: 2160,\n hd1440: 1440,\n hd1080: 1080,\n hd720: 720,\n large: 480,\n medium: 360,\n small: 240,\n tiny: 144,\n };\n\n const entry = Object.entries(qualities).find(entry => entry.includes(input));\n\n if (entry) {\n // Get the match corresponding to the input\n return entry.find(value => value !== input);\n }\n\n return 'default';\n}\n\nfunction mapQualityUnits(levels) {\n if (is.empty(levels)) {\n return levels;\n }\n\n return dedupe(levels.map(level => mapQualityUnit(level)));\n}\n\n// Set playback state and trigger change (only on actual change)\nfunction assurePlaybackState(play) {\n if (play && !this.embed.hasPlayed) {\n this.embed.hasPlayed = true;\n }\n if (this.media.paused === play) {\n this.media.paused = !play;\n triggerEvent.call(this, this.media, play ? 'play' : 'pause');\n }\n}\n\nconst youtube = {\n setup() {\n // Add embed class for responsive\n toggleClass(this.elements.wrapper, this.config.classNames.embed, true);\n\n // Set aspect ratio\n youtube.setAspectRatio.call(this);\n\n // Setup API\n if (is.object(window.YT) && is.function(window.YT.Player)) {\n youtube.ready.call(this);\n } else {\n // Load the API\n loadScript(this.config.urls.youtube.sdk).catch(error => {\n this.debug.warn('YouTube API failed to load', error);\n });\n\n // Setup callback for the API\n // YouTube has it's own system of course...\n window.onYouTubeReadyCallbacks = window.onYouTubeReadyCallbacks || [];\n\n // Add to queue\n window.onYouTubeReadyCallbacks.push(() => {\n youtube.ready.call(this);\n });\n\n // Set callback to process queue\n window.onYouTubeIframeAPIReady = () => {\n window.onYouTubeReadyCallbacks.forEach(callback => {\n callback();\n });\n };\n }\n },\n\n // Get the media title\n getTitle(videoId) {\n // Try via undocumented API method first\n // This method disappears now and then though...\n // https://github.com/sampotts/plyr/issues/709\n if (is.function(this.embed.getVideoData)) {\n const { title } = this.embed.getVideoData();\n\n if (is.empty(title)) {\n this.config.title = title;\n ui.setTitle.call(this);\n return;\n }\n }\n\n // Or via Google API\n const key = this.config.keys.google;\n if (is.string(key) && !is.empty(key)) {\n const url = format(this.config.urls.youtube.api, videoId, key);\n\n fetch(url)\n .then(result => {\n if (is.object(result)) {\n this.config.title = result.items[0].snippet.title;\n ui.setTitle.call(this);\n }\n })\n .catch(() => {});\n }\n },\n\n // Set aspect ratio\n setAspectRatio() {\n const ratio = this.config.ratio.split(':');\n this.elements.wrapper.style.paddingBottom = `${100 / ratio[0] * ratio[1]}%`;\n },\n\n // API ready\n ready() {\n const player = this;\n\n // Ignore already setup (race condition)\n const currentId = player.media.getAttribute('id');\n if (!is.empty(currentId) && currentId.startsWith('youtube-')) {\n return;\n }\n\n // Get the source URL or ID\n let source = player.media.getAttribute('src');\n\n // Get from
if needed\n if (is.empty(source)) {\n source = player.media.getAttribute(this.config.attributes.embed.id);\n }\n\n // Replace the