From 9fc0b656302ef3c3b5c55b719a5b38898198e072 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jes=C3=BAs?= Date: Sun, 14 Jun 2020 23:23:55 -0500 Subject: update plyr to 3.6.2 --- libretube-theme/static/modules/plyr/plyr.css | 2 +- libretube-theme/static/modules/plyr/plyr.js | 568 +++++++++++++------- libretube-theme/static/modules/plyr/plyr.min.js | 4 +- .../static/modules/plyr/plyr.min.js.map | 2 +- libretube-theme/static/modules/plyr/plyr.min.mjs | 4 +- .../static/modules/plyr/plyr.min.mjs.map | 2 +- libretube-theme/static/modules/plyr/plyr.mjs | 568 +++++++++++++------- .../static/modules/plyr/plyr.polyfilled.js | 585 ++++++++++++++------- .../static/modules/plyr/plyr.polyfilled.min.js | 4 +- .../static/modules/plyr/plyr.polyfilled.min.js.map | 2 +- .../static/modules/plyr/plyr.polyfilled.min.mjs | 4 +- .../modules/plyr/plyr.polyfilled.min.mjs.map | 2 +- .../static/modules/plyr/plyr.polyfilled.mjs | 585 ++++++++++++++------- libretube-theme/templates/article.html | 2 +- 14 files changed, 1538 insertions(+), 796 deletions(-) diff --git a/libretube-theme/static/modules/plyr/plyr.css b/libretube-theme/static/modules/plyr/plyr.css index 799e7e7..7d98f20 100644 --- a/libretube-theme/static/modules/plyr/plyr.css +++ b/libretube-theme/static/modules/plyr/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:auto;-webkit-font-smoothing:subpixel-antialiased;align-items:center;direction:ltr;display:flex;flex-direction:column;font-family:Avenir,"Avenir Next","Helvetica Neue","Segoe UI",Helvetica,Arial,sans-serif;font-variant-numeric:tabular-nums;font-weight:500;height:100%;line-height:1.7;max-width:100%;min-width:200px;position:relative;text-shadow:none;transition:box-shadow .3s ease;z-index:0}.plyr audio,.plyr iframe,.plyr video{display:block;height:100%;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:#4a5764;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;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:not(.plyr--hide-controls) .plyr__controls:not(:empty)~.plyr__captions{transform:translateY(-40px)}.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 5px rgba(0,179,255,.5);outline:0}a.plyr__control{text-decoration:none}a.plyr__control::after,a.plyr__control::before{display:none}.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--full-ui ::-webkit-media-controls{display:none}.plyr__controls{align-items:center;display:flex;justify-content:flex-end;text-align:center}.plyr__controls .plyr__progress__container{flex:1;min-width:0}.plyr__controls .plyr__controls__item{margin-left:2.5px}.plyr__controls .plyr__controls__item:first-child{margin-left:0;margin-right:auto}.plyr__controls .plyr__controls__item.plyr__progress__container{padding-left:2.5px}.plyr__controls .plyr__controls__item.plyr__time{padding:0 5px}.plyr__controls .plyr__controls__item.plyr__progress__container:first-child,.plyr__controls .plyr__controls__item.plyr__time+.plyr__time,.plyr__controls .plyr__controls__item.plyr__time:first-child{padding-left:0}.plyr__controls:empty{display:none}.plyr [data-plyr=airplay],.plyr [data-plyr=captions],.plyr [data-plyr=fullscreen],.plyr [data-plyr=pip]{display:none}.plyr--airplay-supported [data-plyr=airplay],.plyr--captions-enabled [data-plyr=captions],.plyr--fullscreen-enabled [data-plyr=fullscreen],.plyr--pip-supported [data-plyr=pip]{display:inline-block}.plyr__menu{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:#4a5764;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:#4a5764;display:flex;font-size:14px;padding:4px 11px;-webkit-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(74,87,100,.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(74,87,100,.8);left:7px}.plyr__menu__container .plyr__control--back::before{background:rgba(114,133,151,.2);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:#00b3ff}.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:-5px;overflow:hidden;padding-left:25px;pointer-events:none}.plyr--full-ui input[type=range]{-webkit-appearance:none;background:0 0;border:0;border-radius:26px;color:#00b3ff;display:block;height:19px;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:2.5px;height:5px;-webkit-transition:box-shadow .3s ease;transition:box-shadow .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(35,41,47,.2);height:13px;position:relative;-webkit-transition:all .2s ease;transition:all .2s ease;width:13px;-webkit-appearance:none;margin-top:-4px}.plyr--full-ui input[type=range]::-moz-range-track{background:0 0;border:0;border-radius:2.5px;height:5px;-moz-transition:box-shadow .3s ease;transition:box-shadow .3s ease;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(35,41,47,.2);height:13px;position:relative;-moz-transition:all .2s ease;transition:all .2s ease;width:13px}.plyr--full-ui input[type=range]::-moz-range-progress{background:currentColor;border-radius:2.5px;height:5px}.plyr--full-ui input[type=range]::-ms-track{background:0 0;border:0;border-radius:2.5px;height:5px;-ms-transition:box-shadow .3s ease;transition:box-shadow .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:2.5px;height:5px;-ms-transition:box-shadow .3s ease;transition:box-shadow .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:2.5px;height:5px;-ms-transition:box-shadow .3s ease;transition:box-shadow .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(35,41,47,.2);height:13px;position:relative;-ms-transition:all .2s ease;transition:all .2s ease;width:13px;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 5px rgba(0,179,255,.5);outline:0}.plyr--full-ui input[type=range].plyr__tab-focus::-moz-range-track{box-shadow:0 0 0 5px rgba(0,179,255,.5);outline:0}.plyr--full-ui input[type=range].plyr__tab-focus::-ms-track{box-shadow:0 0 0 5px rgba(0,179,255,.5);outline:0}.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 .2s ease;width:100%;z-index:1}.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__tooltip{background:rgba(255,255,255,.9);border-radius:3px;bottom:100%;box-shadow:0 1px 2px rgba(0,0,0,.15);color:#4a5764;font-size:14px;font-weight:500;left:50%;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{left:auto;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__progress{left:6.5px;margin-right:13px;position:relative}.plyr__progress input[type=range],.plyr__progress__buffer{margin-left:-6.5px;margin-right:-6.5px;width:calc(100% + 13px)}.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:5px;left:0;margin-top:-2.5px;padding:0;position:absolute;top:50%}.plyr__progress__buffer::-webkit-progress-bar{background:0 0}.plyr__progress__buffer::-webkit-progress-value{background:currentColor;border-radius:100px;min-width:5px;-webkit-transition:width .2s ease;transition:width .2s ease}.plyr__progress__buffer::-moz-progress-bar{background:currentColor;border-radius:100px;min-width:5px;-moz-transition:width .2s ease;transition:width .2s ease}.plyr__progress__buffer::-ms-fill{border-radius:100px;-ms-transition:width .2s ease;transition:width .2s ease}.plyr--loading .plyr__progress__buffer{animation:plyr-progress 1s linear infinite;background-image:linear-gradient(-45deg,rgba(35,41,47,.6) 25%,transparent 25%,transparent 50%,rgba(35,41,47,.6) 50%,rgba(35,41,47,.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(193,201,209,.66)}.plyr__volume{align-items:center;display:flex;max-width:110px;min-width:80px;position:relative;width:20%}.plyr__volume input[type=range]{margin-left:5px;margin-right:5px;position:relative;z-index:2}.plyr--is-ios .plyr__volume{min-width:0;width:auto}.plyr--audio{display:block}.plyr--audio .plyr__controls{background:#fff;border-radius:inherit;color:#4a5764;padding:10px}.plyr--audio .plyr__control.plyr__tab-focus,.plyr--audio .plyr__control:hover,.plyr--audio .plyr__control[aria-expanded=true]{background:#00b3ff;color:#fff}.plyr--full-ui.plyr--audio input[type=range]::-webkit-slider-runnable-track{background-color:rgba(193,201,209,.66)}.plyr--full-ui.plyr--audio input[type=range]::-moz-range-track{background-color:rgba(193,201,209,.66)}.plyr--full-ui.plyr--audio input[type=range]::-ms-track{background-color:rgba(193,201,209,.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(35,41,47,.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(35,41,47,.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(35,41,47,.2),0 0 0 3px rgba(0,0,0,.1)}.plyr--audio .plyr__progress__buffer{color:rgba(193,201,209,.66)}.plyr--video{background:#000;overflow:hidden}.plyr--video.plyr--menu-open{overflow:visible}.plyr__video-wrapper{background:#000;height:100%;margin:auto;overflow:hidden;width:100%}.plyr__video-embed,.plyr__video-wrapper--fixed-ratio{height:0;padding-bottom:56.25%}.plyr__video-embed iframe,.plyr__video-wrapper--fixed-ratio video{border:0;left:0;position:absolute;top:0}.plyr--full-ui .plyr__video-embed>.plyr__video-embed__container{padding-bottom:240%;position:relative;transform:translateY(-38.28125%)}.plyr--video .plyr__controls{background:linear-gradient(rgba(0,0,0,0),rgba(0,0,0,.7));border-bottom-left-radius:inherit;border-bottom-right-radius:inherit;bottom:0;color:#fff;left:0;padding:20px 5px 5px;position:absolute;right:0;transition:opacity .4s ease-in-out,transform .4s ease-in-out;z-index:3}@media (min-width:480px){.plyr--video .plyr__controls{padding:35px 10px 10px}}.plyr--video.plyr--hide-controls .plyr__controls{opacity:0;pointer-events:none;transform:translateY(100%)}.plyr--video .plyr__control.plyr__tab-focus,.plyr--video .plyr__control:hover,.plyr--video .plyr__control[aria-expanded=true]{background:#00b3ff;color:#fff}.plyr__control--overlaid{background:rgba(0,179,255,.8);border:0;border-radius:100%;color:#fff;display:none;left:50%;padding:15px;position:absolute;top:50%;transform:translate(-50%,-50%);z-index:2}.plyr__control--overlaid svg{left:2px;position:relative}.plyr__control--overlaid:focus,.plyr__control--overlaid:hover{background:#00b3ff}.plyr--playing .plyr__control--overlaid{opacity:0;visibility:hidden}.plyr--full-ui.plyr--video .plyr__control--overlaid{display:block}.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(35,41,47,.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(35,41,47,.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(35,41,47,.2),0 0 0 3px rgba(255,255,255,.5)}.plyr--video .plyr__progress__buffer{color:rgba(255,255,255,.25)}.plyr:-webkit-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:-ms-fullscreen video{height:100%}.plyr:fullscreen video{height:100%}.plyr:-webkit-full-screen .plyr__video-wrapper{height:100%;position:static}.plyr:-ms-fullscreen .plyr__video-wrapper{height:100%;position:static}.plyr:fullscreen .plyr__video-wrapper{height:100%;position:static}.plyr:-webkit-full-screen.plyr--vimeo .plyr__video-wrapper{height:0;position:relative;top:50%;transform:translateY(-50%)}.plyr:-ms-fullscreen.plyr--vimeo .plyr__video-wrapper{height:0;position:relative;top:50%;transform:translateY(-50%)}.plyr:fullscreen.plyr--vimeo .plyr__video-wrapper{height:0;position:relative;top:50%;transform:translateY(-50%)}.plyr:-webkit-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:-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:-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:-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%;position:static}.plyr:-webkit-full-screen.plyr--vimeo .plyr__video-wrapper{height:0;position:relative;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%;position:static}.plyr:-moz-full-screen.plyr--vimeo .plyr__video-wrapper{height:0;position:relative;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%;position:static}.plyr:-ms-fullscreen.plyr--vimeo .plyr__video-wrapper{height:0;position:relative;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;display:block;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%;position:static}.plyr--fullscreen-fallback.plyr--vimeo .plyr__video-wrapper{height:0;position:relative;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(35,41,47,.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:5px;left:0;margin:-2.5px 0 0;opacity:.8;position:absolute;top:50%;width:3px;z-index:3}.plyr__preview-thumb{background-color:rgba(255,255,255,.9);border-radius:3px;bottom:100%;box-shadow:0 1px 2px rgba(0,0,0,.15);margin-bottom:10px;opacity:0;padding:3px;pointer-events:none;position:absolute;transform:translate(0,10px) scale(.8);transform-origin:50% 100%;transition:transform .2s .1s ease,opacity .2s .1s ease;z-index:2}.plyr__preview-thumb--is-shown{opacity:1;transform:translate(0,0) scale(1)}.plyr__preview-thumb::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__preview-thumb__image-container{background:#c1c9d1;border-radius:2px;overflow:hidden;position:relative;z-index:0}.plyr__preview-thumb__image-container img{height:100%;left:0;max-height:none;max-width:none;position:absolute;top:0;width:100%}.plyr__preview-thumb__time-container{bottom:6px;left:0;position:absolute;right:0;white-space:nowrap;z-index:3}.plyr__preview-thumb__time-container span{background-color:rgba(0,0,0,.55);border-radius:2px;color:#fff;font-size:14px;padding:3px 6px}.plyr__preview-scrubbing{bottom:0;filter:blur(1px);height:100%;left:0;margin:auto;opacity:0;overflow:hidden;position:absolute;right:0;top:0;transition:opacity .3s ease;width:100%;z-index:1}.plyr__preview-scrubbing--is-shown{opacity:1}.plyr__preview-scrubbing img{height:100%;left:0;max-height:none;max-width:none;object-fit:contain;position:absolute;top:0;width:100%}.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}.plyr [hidden]{display:none!important} \ No newline at end of file +@keyframes plyr-progress{to{background-position:25px 0;background-position:var(--plyr-progress-loading-size,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;align-items:center;direction:ltr;display:flex;flex-direction:column;font-family:inherit;font-family:var(--plyr-font-family,inherit);font-variant-numeric:tabular-nums;font-weight:400;font-weight:var(--plyr-font-weight-regular,400);height:100%;line-height:1.7;line-height:var(--plyr-line-height,1.7);max-width:100%;min-width:200px;position:relative;text-shadow:none;transition:box-shadow .3s ease;z-index:0}.plyr audio,.plyr iframe,.plyr video{display:block;height:100%;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:#4a5464;background:var(--plyr-badge-background,#4a5464);border-radius:2px;border-radius:var(--plyr-badge-border-radius,2px);color:#fff;color:var(--plyr-badge-text-color,#fff);font-size:9px;font-size:var(--plyr-font-size-badge,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;display:none;font-size:13px;font-size:var(--plyr-font-size-small,13px);left:0;padding:10px;padding:var(--plyr-control-spacing,10px);position:absolute;text-align:center;transition:transform .4s ease-in-out;width:100%}.plyr__captions span:empty{display:none}@media (min-width:480px){.plyr__captions{font-size:15px;font-size:var(--plyr-font-size-base,15px);padding:calc(10px * 2);padding:calc(var(--plyr-control-spacing,10px) * 2)}}@media (min-width:768px){.plyr__captions{font-size:18px;font-size:var(--plyr-font-size-large,18px)}}.plyr--captions-active .plyr__captions{display:block}.plyr:not(.plyr--hide-controls) .plyr__controls:not(:empty)~.plyr__captions{transform:translateY(calc(10px * -4));transform:translateY(calc(var(--plyr-control-spacing,10px) * -4))}.plyr__caption{background:rgba(0,0,0,.8);background:var(--plyr-captions-background,rgba(0,0,0,.8));border-radius:2px;-webkit-box-decoration-break:clone;box-decoration-break:clone;color:#fff;color:var(--plyr-captions-text-color,#fff);line-height:185%;padding:.2em .5em;white-space:pre-wrap}.plyr__caption div{display:inline}.plyr__control{background:0 0;border:0;border-radius:3px;border-radius:var(--plyr-control-radius,3px);color:inherit;cursor:pointer;flex-shrink:0;overflow:visible;padding:calc(10px * .7);padding:calc(var(--plyr-control-spacing,10px) * .7);position:relative;transition:all .3s ease}.plyr__control svg{display:block;fill:currentColor;height:18px;height:var(--plyr-control-icon-size,18px);pointer-events:none;width:18px;width:var(--plyr-control-icon-size,18px)}.plyr__control:focus{outline:0}.plyr__control.plyr__tab-focus{outline-color:#00b3ff;outline-color:var(--plyr-tab-focus-color,var(--plyr-color-main,var(--plyr-color-main,#00b3ff)));outline-offset:2px;outline-style:dotted;outline-width:3px}a.plyr__control{text-decoration:none}a.plyr__control::after,a.plyr__control::before{display:none}.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--full-ui ::-webkit-media-controls{display:none}.plyr__controls{align-items:center;display:flex;justify-content:flex-end;text-align:center}.plyr__controls .plyr__progress__container{flex:1;min-width:0}.plyr__controls .plyr__controls__item{margin-left:calc(10px / 4);margin-left:calc(var(--plyr-control-spacing,10px)/ 4)}.plyr__controls .plyr__controls__item:first-child{margin-left:0;margin-right:auto}.plyr__controls .plyr__controls__item.plyr__progress__container{padding-left:calc(10px / 4);padding-left:calc(var(--plyr-control-spacing,10px)/ 4)}.plyr__controls .plyr__controls__item.plyr__time{padding:0 calc(10px / 2);padding:0 calc(var(--plyr-control-spacing,10px)/ 2)}.plyr__controls .plyr__controls__item.plyr__progress__container:first-child,.plyr__controls .plyr__controls__item.plyr__time+.plyr__time,.plyr__controls .plyr__controls__item.plyr__time:first-child{padding-left:0}.plyr__controls:empty{display:none}.plyr [data-plyr=airplay],.plyr [data-plyr=captions],.plyr [data-plyr=fullscreen],.plyr [data-plyr=pip]{display:none}.plyr--airplay-supported [data-plyr=airplay],.plyr--captions-enabled [data-plyr=captions],.plyr--fullscreen-enabled [data-plyr=fullscreen],.plyr--pip-supported [data-plyr=pip]{display:inline-block}.plyr__menu{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);background:var(--plyr-menu-background,rgba(255,255,255,.9));border-radius:4px;bottom:100%;box-shadow:0 1px 2px rgba(0,0,0,.15);box-shadow:var(--plyr-menu-shadow,0 1px 2px rgba(0,0,0,.15));color:#4a5464;color:var(--plyr-menu-color,#4a5464);font-size:15px;font-size:var(--plyr-font-size-base,15px);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:var(--plyr-menu-arrow-size,4px) solid transparent;border-top-color:rgba(255,255,255,.9);border-top-color:var(--plyr-menu-background,rgba(255,255,255,.9));content:'';height:0;position:absolute;right:calc(((18px / 2) + calc(10px * .7)) - (4px / 2));right:calc(((var(--plyr-control-icon-size,18px)/ 2) + calc(var(--plyr-control-spacing,10px) * .7)) - (var(--plyr-menu-arrow-size,4px)/ 2));top:100%;width:0}.plyr__menu__container [role=menu]{padding:calc(10px * .7);padding:calc(var(--plyr-control-spacing,10px) * .7)}.plyr__menu__container [role=menucaptions]{padding:calc(10px * .7);padding:calc(var(--plyr-control-spacing,10px) * .7);max-height:320px;overflow-y:auto}.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:#4a5464;color:var(--plyr-menu-color,#4a5464);display:flex;font-size:13px;font-size:var(--plyr-font-size-menu,var(--plyr-font-size-small,13px));padding-bottom:calc(calc(10px * .7)/ 1.5);padding-bottom:calc(calc(var(--plyr-control-spacing,10px) * .7)/ 1.5);padding-left:calc(calc(10px * .7) * 1.5);padding-left:calc(calc(var(--plyr-control-spacing,10px) * .7) * 1.5);padding-right:calc(calc(10px * .7) * 1.5);padding-right:calc(calc(var(--plyr-control-spacing,10px) * .7) * 1.5);padding-top:calc(calc(10px * .7)/ 1.5);padding-top:calc(calc(var(--plyr-control-spacing,10px) * .7)/ 1.5);-webkit-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;border:var(--plyr-menu-item-arrow-size,4px) solid transparent;content:'';position:absolute;top:50%;transform:translateY(-50%)}.plyr__menu__container .plyr__control--forward{padding-right:calc(calc(10px * .7) * 4);padding-right:calc(calc(var(--plyr-control-spacing,10px) * .7) * 4)}.plyr__menu__container .plyr__control--forward::after{border-left-color:#728197;border-left-color:var(--plyr-menu-arrow-color,#728197);right:calc((calc(10px * .7) * 1.5) - 4px);right:calc((calc(var(--plyr-control-spacing,10px) * .7) * 1.5) - var(--plyr-menu-item-arrow-size,4px))}.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:400;font-weight:var(--plyr-font-weight-regular,400);margin:calc(10px * .7);margin:calc(var(--plyr-control-spacing,10px) * .7);margin-bottom:calc(calc(10px * .7)/ 2);margin-bottom:calc(calc(var(--plyr-control-spacing,10px) * .7)/ 2);padding-left:calc(calc(10px * .7) * 4);padding-left:calc(calc(var(--plyr-control-spacing,10px) * .7) * 4);position:relative;width:calc(100% - (calc(10px * .7) * 2));width:calc(100% - (calc(var(--plyr-control-spacing,10px) * .7) * 2))}.plyr__menu__container .plyr__control--back::after{border-right-color:#728197;border-right-color:var(--plyr-menu-arrow-color,#728197);left:calc((calc(10px * .7) * 1.5) - 4px);left:calc((calc(var(--plyr-control-spacing,10px) * .7) * 1.5) - var(--plyr-menu-item-arrow-size,4px))}.plyr__menu__container .plyr__control--back::before{background:#dcdfe5;background:var(--plyr-menu-back-border-color,#dcdfe5);box-shadow:0 1px 0 #fff;box-shadow:0 1px 0 var(--plyr-menu-back-border-shadow-color,#fff);content:'';height:1px;left:0;margin-top:calc(calc(10px * .7)/ 2);margin-top:calc(calc(var(--plyr-control-spacing,10px) * .7)/ 2);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:calc(10px * .7);padding-left:calc(var(--plyr-control-spacing,10px) * .7)}.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;margin-right:var(--plyr-control-spacing,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:#00b3ff;background:var(--plyr-control-toggle-checked-background,var(--plyr-color-main,var(--plyr-color-main,#00b3ff)))}.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(35,40,47,.1)}.plyr__menu__container .plyr__menu__value{align-items:center;display:flex;margin-left:auto;margin-right:calc((calc(10px * .7) - 2) * -1);margin-right:calc((calc(var(--plyr-control-spacing,10px) * .7) - 2) * -1);overflow:hidden;padding-left:calc(calc(10px * .7) * 3.5);padding-left:calc(calc(var(--plyr-control-spacing,10px) * .7) * 3.5);pointer-events:none}.plyr--full-ui input[type=range]{-webkit-appearance:none;background:0 0;border:0;border-radius:calc(13px * 2);border-radius:calc(var(--plyr-range-thumb-height,13px) * 2);color:#00b3ff;color:var(--plyr-range-fill-background,var(--plyr-color-main,var(--plyr-color-main,#00b3ff)));display:block;height:calc((3px * 2) + 13px);height:calc((var(--plyr-range-thumb-active-shadow-width,3px) * 2) + var(--plyr-range-thumb-height,13px));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:calc(5px / 2);border-radius:calc(var(--plyr-range-track-height,5px)/ 2);height:5px;height:var(--plyr-range-track-height,5px);-webkit-transition:box-shadow .3s ease;transition:box-shadow .3s ease;-webkit-user-select:none;user-select:none;background-image:linear-gradient(to right,currentColor 0,transparent 0);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;background:var(--plyr-range-thumb-background,#fff);border:0;border-radius:100%;box-shadow:0 1px 1px rgba(35,40,47,.15),0 0 0 1px rgba(35,40,47,.2);box-shadow:var(--plyr-range-thumb-shadow,0 1px 1px rgba(35,40,47,.15),0 0 0 1px rgba(35,40,47,.2));height:13px;height:var(--plyr-range-thumb-height,13px);position:relative;-webkit-transition:all .2s ease;transition:all .2s ease;width:13px;width:var(--plyr-range-thumb-height,13px);-webkit-appearance:none;margin-top:calc(((13px - 5px)/ 2) * -1);margin-top:calc(((var(--plyr-range-thumb-height,13px) - var(--plyr-range-track-height,5px))/ 2) * -1)}.plyr--full-ui input[type=range]::-moz-range-track{background:0 0;border:0;border-radius:calc(5px / 2);border-radius:calc(var(--plyr-range-track-height,5px)/ 2);height:5px;height:var(--plyr-range-track-height,5px);-moz-transition:box-shadow .3s ease;transition:box-shadow .3s ease;user-select:none}.plyr--full-ui input[type=range]::-moz-range-thumb{background:#fff;background:var(--plyr-range-thumb-background,#fff);border:0;border-radius:100%;box-shadow:0 1px 1px rgba(35,40,47,.15),0 0 0 1px rgba(35,40,47,.2);box-shadow:var(--plyr-range-thumb-shadow,0 1px 1px rgba(35,40,47,.15),0 0 0 1px rgba(35,40,47,.2));height:13px;height:var(--plyr-range-thumb-height,13px);position:relative;-moz-transition:all .2s ease;transition:all .2s ease;width:13px;width:var(--plyr-range-thumb-height,13px)}.plyr--full-ui input[type=range]::-moz-range-progress{background:currentColor;border-radius:calc(5px / 2);border-radius:calc(var(--plyr-range-track-height,5px)/ 2);height:5px;height:var(--plyr-range-track-height,5px)}.plyr--full-ui input[type=range]::-ms-track{background:0 0;border:0;border-radius:calc(5px / 2);border-radius:calc(var(--plyr-range-track-height,5px)/ 2);height:5px;height:var(--plyr-range-track-height,5px);-ms-transition:box-shadow .3s ease;transition:box-shadow .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:calc(5px / 2);border-radius:calc(var(--plyr-range-track-height,5px)/ 2);height:5px;height:var(--plyr-range-track-height,5px);-ms-transition:box-shadow .3s ease;transition:box-shadow .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:calc(5px / 2);border-radius:calc(var(--plyr-range-track-height,5px)/ 2);height:5px;height:var(--plyr-range-track-height,5px);-ms-transition:box-shadow .3s ease;transition:box-shadow .3s ease;-ms-user-select:none;user-select:none;background:currentColor}.plyr--full-ui input[type=range]::-ms-thumb{background:#fff;background:var(--plyr-range-thumb-background,#fff);border:0;border-radius:100%;box-shadow:0 1px 1px rgba(35,40,47,.15),0 0 0 1px rgba(35,40,47,.2);box-shadow:var(--plyr-range-thumb-shadow,0 1px 1px rgba(35,40,47,.15),0 0 0 1px rgba(35,40,47,.2));height:13px;height:var(--plyr-range-thumb-height,13px);position:relative;-ms-transition:all .2s ease;transition:all .2s ease;width:13px;width:var(--plyr-range-thumb-height,13px);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{outline-color:#00b3ff;outline-color:var(--plyr-tab-focus-color,var(--plyr-color-main,var(--plyr-color-main,#00b3ff)));outline-offset:2px;outline-style:dotted;outline-width:3px}.plyr--full-ui input[type=range].plyr__tab-focus::-moz-range-track{outline-color:#00b3ff;outline-color:var(--plyr-tab-focus-color,var(--plyr-color-main,var(--plyr-color-main,#00b3ff)));outline-offset:2px;outline-style:dotted;outline-width:3px}.plyr--full-ui input[type=range].plyr__tab-focus::-ms-track{outline-color:#00b3ff;outline-color:var(--plyr-tab-focus-color,var(--plyr-color-main,var(--plyr-color-main,#00b3ff)));outline-offset:2px;outline-style:dotted;outline-width:3px}.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 .2s ease;width:100%;z-index:1}.plyr--stopped.plyr__poster-enabled .plyr__poster{opacity:1}.plyr__time{font-size:13px;font-size:var(--plyr-font-size-time,var(--plyr-font-size-small,13px))}.plyr__time+.plyr__time::before{content:'\2044';margin-right:10px;margin-right:var(--plyr-control-spacing,10px)}@media (max-width:calc(768px - 1)){.plyr__time+.plyr__time{display:none}}.plyr__tooltip{background:rgba(255,255,255,.9);background:var(--plyr-tooltip-background,rgba(255,255,255,.9));border-radius:3px;border-radius:var(--plyr-tooltip-radius,3px);bottom:100%;box-shadow:0 1px 2px rgba(0,0,0,.15);box-shadow:var(--plyr-tooltip-shadow,0 1px 2px rgba(0,0,0,.15));color:#4a5464;color:var(--plyr-tooltip-color,#4a5464);font-size:13px;font-size:var(--plyr-font-size-small,13px);font-weight:400;font-weight:var(--plyr-font-weight-regular,400);left:50%;line-height:1.3;margin-bottom:calc(calc(10px / 2) * 2);margin-bottom:calc(calc(var(--plyr-control-spacing,10px)/ 2) * 2);opacity:0;padding:calc(10px / 2) calc(calc(10px / 2) * 1.5);padding:calc(var(--plyr-control-spacing,10px)/ 2) calc(calc(var(--plyr-control-spacing,10px)/ 2) * 1.5);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-left:var(--plyr-tooltip-arrow-size,4px) solid transparent;border-right:4px solid transparent;border-right:var(--plyr-tooltip-arrow-size,4px) solid transparent;border-top:4px solid rgba(255,255,255,.9);border-top:var(--plyr-tooltip-arrow-size,4px) solid var(--plyr-tooltip-background,rgba(255,255,255,.9));bottom:calc(4px * -1);bottom:calc(var(--plyr-tooltip-arrow-size,4px) * -1);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:calc((18px / 2) + calc(10px * .7));left:calc((var(--plyr-control-icon-size,18px)/ 2) + calc(var(--plyr-control-spacing,10px) * .7))}.plyr__controls>.plyr__control:last-child .plyr__tooltip{left:auto;right:0;transform:translate(0,10px) scale(.8);transform-origin:100% 100%}.plyr__controls>.plyr__control:last-child .plyr__tooltip::before{left:auto;right:calc((18px / 2) + calc(10px * .7));right:calc((var(--plyr-control-icon-size,18px)/ 2) + calc(var(--plyr-control-spacing,10px) * .7));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__progress{left:calc(13px * .5);left:calc(var(--plyr-range-thumb-height,13px) * .5);margin-right:13px;margin-right:var(--plyr-range-thumb-height,13px);position:relative}.plyr__progress input[type=range],.plyr__progress__buffer{margin-left:calc(13px * -.5);margin-left:calc(var(--plyr-range-thumb-height,13px) * -.5);margin-right:calc(13px * -.5);margin-right:calc(var(--plyr-range-thumb-height,13px) * -.5);width:calc(100% + 13px);width:calc(100% + var(--plyr-range-thumb-height,13px))}.plyr__progress input[type=range]{position:relative;z-index:2}.plyr__progress .plyr__tooltip{font-size:13px;font-size:var(--plyr-font-size-time,var(--plyr-font-size-small,13px));left:0}.plyr__progress__buffer{-webkit-appearance:none;background:0 0;border:0;border-radius:100px;height:5px;height:var(--plyr-range-track-height,5px);left:0;margin-top:calc((5px / 2) * -1);margin-top:calc((var(--plyr-range-track-height,5px)/ 2) * -1);padding:0;position:absolute;top:50%}.plyr__progress__buffer::-webkit-progress-bar{background:0 0}.plyr__progress__buffer::-webkit-progress-value{background:currentColor;border-radius:100px;min-width:5px;min-width:var(--plyr-range-track-height,5px);-webkit-transition:width .2s ease;transition:width .2s ease}.plyr__progress__buffer::-moz-progress-bar{background:currentColor;border-radius:100px;min-width:5px;min-width:var(--plyr-range-track-height,5px);-moz-transition:width .2s ease;transition:width .2s ease}.plyr__progress__buffer::-ms-fill{border-radius:100px;-ms-transition:width .2s ease;transition:width .2s ease}.plyr--loading .plyr__progress__buffer{animation:plyr-progress 1s linear infinite;background-image:linear-gradient(-45deg,rgba(35,40,47,.6) 25%,transparent 25%,transparent 50%,rgba(35,40,47,.6) 50%,rgba(35,40,47,.6) 75%,transparent 75%,transparent);background-image:linear-gradient(-45deg,var(--plyr-progress-loading-background,rgba(35,40,47,.6)) 25%,transparent 25%,transparent 50%,var(--plyr-progress-loading-background,rgba(35,40,47,.6)) 50%,var(--plyr-progress-loading-background,rgba(35,40,47,.6)) 75%,transparent 75%,transparent);background-repeat:repeat-x;background-size:25px 25px;background-size:var(--plyr-progress-loading-size,25px) var(--plyr-progress-loading-size,25px);color:transparent}.plyr--video.plyr--loading .plyr__progress__buffer{background-color:rgba(255,255,255,.25);background-color:var(--plyr-video-progress-buffered-background,rgba(255,255,255,.25))}.plyr--audio.plyr--loading .plyr__progress__buffer{background-color:rgba(193,200,209,.6);background-color:var(--plyr-audio-progress-buffered-background,rgba(193,200,209,.6))}.plyr__volume{align-items:center;display:flex;max-width:110px;min-width:80px;position:relative;width:20%}.plyr__volume input[type=range]{margin-left:calc(10px / 2);margin-left:calc(var(--plyr-control-spacing,10px)/ 2);margin-right:calc(10px / 2);margin-right:calc(var(--plyr-control-spacing,10px)/ 2);position:relative;z-index:2}.plyr--is-ios .plyr__volume{min-width:0;width:auto}.plyr--audio{display:block}.plyr--audio .plyr__controls{background:#fff;background:var(--plyr-audio-controls-background,#fff);border-radius:inherit;color:#4a5464;color:var(--plyr-audio-control-color,#4a5464);padding:10px;padding:var(--plyr-control-spacing,10px)}.plyr--audio .plyr__control.plyr__tab-focus,.plyr--audio .plyr__control:hover,.plyr--audio .plyr__control[aria-expanded=true]{background:#00b3ff;background:var(--plyr-audio-control-background-hover,var(--plyr-color-main,var(--plyr-color-main,#00b3ff)));color:#fff;color:var(--plyr-audio-control-color-hover,#fff)}.plyr--full-ui.plyr--audio input[type=range]::-webkit-slider-runnable-track{background-color:rgba(193,200,209,.6);background-color:var(--plyr-audio-range-track-background,var(--plyr-audio-progress-buffered-background,rgba(193,200,209,.6)))}.plyr--full-ui.plyr--audio input[type=range]::-moz-range-track{background-color:rgba(193,200,209,.6);background-color:var(--plyr-audio-range-track-background,var(--plyr-audio-progress-buffered-background,rgba(193,200,209,.6)))}.plyr--full-ui.plyr--audio input[type=range]::-ms-track{background-color:rgba(193,200,209,.6);background-color:var(--plyr-audio-range-track-background,var(--plyr-audio-progress-buffered-background,rgba(193,200,209,.6)))}.plyr--full-ui.plyr--audio input[type=range]:active::-webkit-slider-thumb{box-shadow:0 1px 1px rgba(35,40,47,.15),0 0 0 1px rgba(35,40,47,.2),0 0 0 3px rgba(35,40,47,.1);box-shadow:var(--plyr-range-thumb-shadow,0 1px 1px rgba(35,40,47,.15),0 0 0 1px rgba(35,40,47,.2)),0 0 0 var(--plyr-range-thumb-active-shadow-width,3px) var(--plyr-audio-range-thumb-active-shadow-color,rgba(35,40,47,.1))}.plyr--full-ui.plyr--audio input[type=range]:active::-moz-range-thumb{box-shadow:0 1px 1px rgba(35,40,47,.15),0 0 0 1px rgba(35,40,47,.2),0 0 0 3px rgba(35,40,47,.1);box-shadow:var(--plyr-range-thumb-shadow,0 1px 1px rgba(35,40,47,.15),0 0 0 1px rgba(35,40,47,.2)),0 0 0 var(--plyr-range-thumb-active-shadow-width,3px) var(--plyr-audio-range-thumb-active-shadow-color,rgba(35,40,47,.1))}.plyr--full-ui.plyr--audio input[type=range]:active::-ms-thumb{box-shadow:0 1px 1px rgba(35,40,47,.15),0 0 0 1px rgba(35,40,47,.2),0 0 0 3px rgba(35,40,47,.1);box-shadow:var(--plyr-range-thumb-shadow,0 1px 1px rgba(35,40,47,.15),0 0 0 1px rgba(35,40,47,.2)),0 0 0 var(--plyr-range-thumb-active-shadow-width,3px) var(--plyr-audio-range-thumb-active-shadow-color,rgba(35,40,47,.1))}.plyr--audio .plyr__progress__buffer{color:rgba(193,200,209,.6);color:var(--plyr-audio-progress-buffered-background,rgba(193,200,209,.6))}.plyr--video{background:#000;overflow:hidden}.plyr--video.plyr--menu-open{overflow:visible}.plyr__video-wrapper{background:#000;height:100%;margin:auto;overflow:hidden;position:relative;width:100%}.plyr__video-embed,.plyr__video-wrapper--fixed-ratio{height:0;padding-bottom:56.25%}.plyr__video-embed iframe,.plyr__video-wrapper--fixed-ratio video{border:0;left:0;position:absolute;top:0}.plyr--full-ui .plyr__video-embed>.plyr__video-embed__container{padding-bottom:240%;position:relative;transform:translateY(-38.28125%)}.plyr--video .plyr__controls{background:linear-gradient(rgba(0,0,0,0),rgba(0,0,0,.75));background:var(--plyr-video-controls-background,linear-gradient(rgba(0,0,0,0),rgba(0,0,0,.75)));border-bottom-left-radius:inherit;border-bottom-right-radius:inherit;bottom:0;color:#fff;color:var(--plyr-video-control-color,#fff);left:0;padding:calc(10px / 2);padding:calc(var(--plyr-control-spacing,10px)/ 2);padding-top:calc(10px * 2);padding-top:calc(var(--plyr-control-spacing,10px) * 2);position:absolute;right:0;transition:opacity .4s ease-in-out,transform .4s ease-in-out;z-index:3}@media (min-width:480px){.plyr--video .plyr__controls{padding:10px;padding:var(--plyr-control-spacing,10px);padding-top:calc(10px * 3.5);padding-top:calc(var(--plyr-control-spacing,10px) * 3.5)}}.plyr--video.plyr--hide-controls .plyr__controls{opacity:0;pointer-events:none;transform:translateY(100%)}.plyr--video .plyr__control.plyr__tab-focus,.plyr--video .plyr__control:hover,.plyr--video .plyr__control[aria-expanded=true]{background:#00b3ff;background:var(--plyr-video-control-background-hover,var(--plyr-color-main,var(--plyr-color-main,#00b3ff)));color:#fff;color:var(--plyr-video-control-color-hover,#fff)}.plyr__control--overlaid{background:#00b3ff;background:var(--plyr-video-control-background-hover,var(--plyr-color-main,var(--plyr-color-main,#00b3ff)));border:0;border-radius:100%;color:#fff;color:var(--plyr-video-control-color,#fff);display:none;left:50%;opacity:.9;padding:calc(10px * 1.5);padding:calc(var(--plyr-control-spacing,10px) * 1.5);position:absolute;top:50%;transform:translate(-50%,-50%);transition:.3s;z-index:2}.plyr__control--overlaid svg{left:2px;position:relative}.plyr__control--overlaid:focus,.plyr__control--overlaid:hover{opacity:1}.plyr--playing .plyr__control--overlaid{opacity:0;visibility:hidden}.plyr--full-ui.plyr--video .plyr__control--overlaid{display:block}.plyr--full-ui.plyr--video input[type=range]::-webkit-slider-runnable-track{background-color:rgba(255,255,255,.25);background-color:var(--plyr-video-range-track-background,var(--plyr-video-progress-buffered-background,rgba(255,255,255,.25)))}.plyr--full-ui.plyr--video input[type=range]::-moz-range-track{background-color:rgba(255,255,255,.25);background-color:var(--plyr-video-range-track-background,var(--plyr-video-progress-buffered-background,rgba(255,255,255,.25)))}.plyr--full-ui.plyr--video input[type=range]::-ms-track{background-color:rgba(255,255,255,.25);background-color:var(--plyr-video-range-track-background,var(--plyr-video-progress-buffered-background,rgba(255,255,255,.25)))}.plyr--full-ui.plyr--video input[type=range]:active::-webkit-slider-thumb{box-shadow:0 1px 1px rgba(35,40,47,.15),0 0 0 1px rgba(35,40,47,.2),0 0 0 3px rgba(255,255,255,.5);box-shadow:var(--plyr-range-thumb-shadow,0 1px 1px rgba(35,40,47,.15),0 0 0 1px rgba(35,40,47,.2)),0 0 0 var(--plyr-range-thumb-active-shadow-width,3px) var(--plyr-audio-range-thumb-active-shadow-color,rgba(255,255,255,.5))}.plyr--full-ui.plyr--video input[type=range]:active::-moz-range-thumb{box-shadow:0 1px 1px rgba(35,40,47,.15),0 0 0 1px rgba(35,40,47,.2),0 0 0 3px rgba(255,255,255,.5);box-shadow:var(--plyr-range-thumb-shadow,0 1px 1px rgba(35,40,47,.15),0 0 0 1px rgba(35,40,47,.2)),0 0 0 var(--plyr-range-thumb-active-shadow-width,3px) var(--plyr-audio-range-thumb-active-shadow-color,rgba(255,255,255,.5))}.plyr--full-ui.plyr--video input[type=range]:active::-ms-thumb{box-shadow:0 1px 1px rgba(35,40,47,.15),0 0 0 1px rgba(35,40,47,.2),0 0 0 3px rgba(255,255,255,.5);box-shadow:var(--plyr-range-thumb-shadow,0 1px 1px rgba(35,40,47,.15),0 0 0 1px rgba(35,40,47,.2)),0 0 0 var(--plyr-range-thumb-active-shadow-width,3px) var(--plyr-audio-range-thumb-active-shadow-color,rgba(255,255,255,.5))}.plyr--video .plyr__progress__buffer{color:rgba(255,255,255,.25);color:var(--plyr-video-progress-buffered-background,rgba(255,255,255,.25))}.plyr:-webkit-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:-ms-fullscreen video{height:100%}.plyr:fullscreen video{height:100%}.plyr:-webkit-full-screen .plyr__video-wrapper{height:100%;position:static}.plyr:-ms-fullscreen .plyr__video-wrapper{height:100%;position:static}.plyr:fullscreen .plyr__video-wrapper{height:100%;position:static}.plyr:-webkit-full-screen.plyr--vimeo .plyr__video-wrapper{height:0;position:relative}.plyr:-ms-fullscreen.plyr--vimeo .plyr__video-wrapper{height:0;position:relative}.plyr:fullscreen.plyr--vimeo .plyr__video-wrapper{height:0;position:relative}.plyr:-webkit-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:-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:-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;font-size:var(--plyr-font-size-xlarge,21px)}.plyr:-ms-fullscreen .plyr__captions{font-size:21px;font-size:var(--plyr-font-size-xlarge,21px)}.plyr:fullscreen .plyr__captions{font-size:21px;font-size:var(--plyr-font-size-xlarge,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%;position:static}.plyr:-webkit-full-screen.plyr--vimeo .plyr__video-wrapper{height:0;position:relative}.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;font-size:var(--plyr-font-size-xlarge,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%;position:static}.plyr:-moz-full-screen.plyr--vimeo .plyr__video-wrapper{height:0;position:relative}.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;font-size:var(--plyr-font-size-xlarge,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%;position:static}.plyr:-ms-fullscreen.plyr--vimeo .plyr__video-wrapper{height:0;position:relative}.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;font-size:var(--plyr-font-size-xlarge,21px)}}.plyr--fullscreen-fallback{background:#000;border-radius:0!important;height:100%;margin:0;width:100%;bottom:0;display:block;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%;position:static}.plyr--fullscreen-fallback.plyr--vimeo .plyr__video-wrapper{height:0;position:relative}.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;font-size:var(--plyr-font-size-xlarge,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:#23282f;border-radius:2px;bottom:10px;bottom:var(--plyr-control-spacing,10px);color:#fff;content:attr(data-badge-text);font-size:11px;padding:2px 6px;pointer-events:none;position:absolute;right:10px;right:var(--plyr-control-spacing,10px);z-index:3}.plyr__ads::after:empty{display:none}.plyr__cues{background:currentColor;display:block;height:5px;height:var(--plyr-range-track-height,5px);left:0;margin:-var(--plyr-range-track-height,5px)/2 0 0;opacity:.8;position:absolute;top:50%;width:3px;z-index:3}.plyr__preview-thumb{background-color:rgba(255,255,255,.9);background-color:var(--plyr-tooltip-background,rgba(255,255,255,.9));border-radius:3px;bottom:100%;box-shadow:0 1px 2px rgba(0,0,0,.15);box-shadow:var(--plyr-tooltip-shadow,0 1px 2px rgba(0,0,0,.15));margin-bottom:calc(calc(10px / 2) * 2);margin-bottom:calc(calc(var(--plyr-control-spacing,10px)/ 2) * 2);opacity:0;padding:3px;padding:var(--plyr-tooltip-radius,3px);pointer-events:none;position:absolute;transform:translate(0,10px) scale(.8);transform-origin:50% 100%;transition:transform .2s .1s ease,opacity .2s .1s ease;z-index:2}.plyr__preview-thumb--is-shown{opacity:1;transform:translate(0,0) scale(1)}.plyr__preview-thumb::before{border-left:4px solid transparent;border-left:var(--plyr-tooltip-arrow-size,4px) solid transparent;border-right:4px solid transparent;border-right:var(--plyr-tooltip-arrow-size,4px) solid transparent;border-top:4px solid rgba(255,255,255,.9);border-top:var(--plyr-tooltip-arrow-size,4px) solid var(--plyr-tooltip-background,rgba(255,255,255,.9));bottom:calc(4px * -1);bottom:calc(var(--plyr-tooltip-arrow-size,4px) * -1);content:'';height:0;left:50%;position:absolute;transform:translateX(-50%);width:0;z-index:2}.plyr__preview-thumb__image-container{background:#c1c8d1;border-radius:calc(3px - 1px);border-radius:calc(var(--plyr-tooltip-radius,3px) - 1px);overflow:hidden;position:relative;z-index:0}.plyr__preview-thumb__image-container img{height:100%;left:0;max-height:none;max-width:none;position:absolute;top:0;width:100%}.plyr__preview-thumb__time-container{bottom:6px;left:0;position:absolute;right:0;white-space:nowrap;z-index:3}.plyr__preview-thumb__time-container span{background-color:rgba(0,0,0,.55);border-radius:calc(3px - 1px);border-radius:calc(var(--plyr-tooltip-radius,3px) - 1px);color:#fff;font-size:13px;font-size:var(--plyr-font-size-time,var(--plyr-font-size-small,13px));padding:3px 6px}.plyr__preview-scrubbing{bottom:0;filter:blur(1px);height:100%;left:0;margin:auto;opacity:0;overflow:hidden;pointer-events:none;position:absolute;right:0;top:0;transition:opacity .3s ease;width:100%;z-index:1}.plyr__preview-scrubbing--is-shown{opacity:1}.plyr__preview-scrubbing img{height:100%;left:0;max-height:none;max-width:none;object-fit:contain;position:absolute;top:0;width:100%}.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}.plyr [hidden]{display:none!important} \ No newline at end of file diff --git a/libretube-theme/static/modules/plyr/plyr.js b/libretube-theme/static/modules/plyr/plyr.js index fba084b..d5cc84e 100644 --- a/libretube-theme/static/modules/plyr/plyr.js +++ b/libretube-theme/static/modules/plyr/plyr.js @@ -75,20 +75,52 @@ typeof navigator === "object" && (function (global, factory) { return target; } + function _objectWithoutPropertiesLoose(source, excluded) { + if (source == null) return {}; + var target = {}; + var sourceKeys = Object.keys(source); + var key, i; + + for (i = 0; i < sourceKeys.length; i++) { + key = sourceKeys[i]; + if (excluded.indexOf(key) >= 0) continue; + target[key] = source[key]; + } + + return target; + } + + function _objectWithoutProperties(source, excluded) { + if (source == null) return {}; + + var target = _objectWithoutPropertiesLoose(source, excluded); + + var key, i; + + if (Object.getOwnPropertySymbols) { + var sourceSymbolKeys = Object.getOwnPropertySymbols(source); + + for (i = 0; i < sourceSymbolKeys.length; i++) { + key = sourceSymbolKeys[i]; + if (excluded.indexOf(key) >= 0) continue; + if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; + target[key] = source[key]; + } + } + + return target; + } + function _slicedToArray(arr, i) { - return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); + return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); } function _toConsumableArray(arr) { - return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread(); + return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); } function _arrayWithoutHoles(arr) { - if (Array.isArray(arr)) { - for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) arr2[i] = arr[i]; - - return arr2; - } + if (Array.isArray(arr)) return _arrayLikeToArray(arr); } function _arrayWithHoles(arr) { @@ -96,14 +128,11 @@ typeof navigator === "object" && (function (global, factory) { } function _iterableToArray(iter) { - if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === "[object Arguments]") return Array.from(iter); + if (typeof Symbol !== "undefined" && Symbol.iterator in Object(iter)) return Array.from(iter); } function _iterableToArrayLimit(arr, i) { - if (!(Symbol.iterator in Object(arr) || Object.prototype.toString.call(arr) === "[object Arguments]")) { - return; - } - + if (typeof Symbol === "undefined" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; @@ -129,12 +158,29 @@ typeof navigator === "object" && (function (global, factory) { return _arr; } + function _unsupportedIterableToArray(o, minLen) { + if (!o) return; + if (typeof o === "string") return _arrayLikeToArray(o, minLen); + var n = Object.prototype.toString.call(o).slice(8, -1); + if (n === "Object" && o.constructor) n = o.constructor.name; + if (n === "Map" || n === "Set") return Array.from(o); + if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); + } + + function _arrayLikeToArray(arr, len) { + if (len == null || len > arr.length) len = arr.length; + + for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; + + return arr2; + } + function _nonIterableSpread() { - throw new TypeError("Invalid attempt to spread non-iterable instance"); + throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } function _nonIterableRest() { - throw new TypeError("Invalid attempt to destructure non-iterable instance"); + throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } function _classCallCheck$1(e, t) { @@ -427,7 +473,7 @@ typeof navigator === "object" && (function (global, factory) { }; var isPromise = function isPromise(input) { - return instanceOf$1(input, Promise); + return instanceOf$1(input, Promise) && isFunction$1(input.then); }; var isEmpty$1 = function isEmpty(input) { @@ -769,12 +815,33 @@ typeof navigator === "object" && (function (global, factory) { } // Element matches selector function matches$1(element, selector) { + var _Element = Element, + prototype = _Element.prototype; function match() { return Array.from(document.querySelectorAll(selector)).includes(this); } - var method = match; + var method = prototype.matches || prototype.webkitMatchesSelector || prototype.mozMatchesSelector || prototype.msMatchesSelector || match; + return method.call(element, selector); + } // Closest ancestor element matching selector (also tests element itself) + + function closest(element, selector) { + var _Element2 = Element, + prototype = _Element2.prototype; // https://developer.mozilla.org/en-US/docs/Web/API/Element/closest#Polyfill + + function closestElement() { + var el = this; + + do { + if (matches$1.matches(el, selector)) return el; + el = el.parentElement || el.parentNode; + } while (el !== null && el.nodeType === 1); + + return null; + } + + var method = prototype.closest || closestElement; return method.call(element, selector); } // Find all elements @@ -1017,7 +1084,7 @@ typeof navigator === "object" && (function (global, factory) { var event = new CustomEvent(type, { bubbles: bubbles, - detail: _objectSpread2({}, detail, { + detail: _objectSpread2(_objectSpread2({}, detail), {}, { plyr: this }) }); // Dispatch the event @@ -1046,6 +1113,19 @@ typeof navigator === "object" && (function (global, factory) { }).then(function () {}); } + /** + * Silence a Promise-like object. + * This is useful for avoiding non-harmful, but potentially confusing "uncaught + * play promise" rejection error messages. + * @param {Object} value An object that may or may not be `Promise`-like. + */ + + function silencePromise(value) { + if (is$1.promise(value)) { + value.then(null, function () {}); + } + } + function validateRatio(input) { if (!is$1.array(input) && (!is$1.string(input) || !input.includes(':'))) { return false; @@ -1114,8 +1194,8 @@ typeof navigator === "object" && (function (global, factory) { var padding = 100 / w * h; wrapper.style.paddingBottom = "".concat(padding, "%"); // For Vimeo we have an extra
to hide the standard controls and UI - if (this.isVimeo && this.supported.ui) { - var height = 240; + if (this.isVimeo && !this.config.vimeo.premium && this.supported.ui) { + var height = 100 / this.media.offsetWidth * parseInt(window.getComputedStyle(this.media).paddingBottom, 10); var offset = (height - padding) / (height / 50); this.media.style.transform = "translateY(-".concat(offset, "%)"); } else if (this.isHTML5) { @@ -1222,7 +1302,7 @@ typeof navigator === "object" && (function (global, factory) { player.currentTime = currentTime; // Resume playing if (!paused) { - player.play(); + silencePromise(player.play()); } }); // Load new source @@ -1271,7 +1351,7 @@ typeof navigator === "object" && (function (global, factory) { }); } // Get the closest value in an array - function closest(array, value) { + function closest$1(array, value) { if (!is$1.array(array) || !array.length) { return null; } @@ -1309,19 +1389,19 @@ typeof navigator === "object" && (function (global, factory) { return (current / max * 100).toFixed(2); } // Replace all occurances of a string in a string - function replaceAll() { + var replaceAll = function replaceAll() { var input = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ''; var find = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : ''; var replace = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : ''; return input.replace(new RegExp(find.toString().replace(/([.*+?^=!:${}()|[\]/\\])/g, '\\$1'), 'g'), replace.toString()); - } // Convert to title case + }; // Convert to title case - function toTitleCase() { + var toTitleCase = function toTitleCase() { var input = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ''; return input.toString().replace(/\w\S*/g, function (text) { return text.charAt(0).toUpperCase() + text.substr(1).toLowerCase(); }); - } // Convert string to pascalCase + }; // Convert string to pascalCase function toPascalCase() { var input = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ''; @@ -1682,7 +1762,7 @@ typeof navigator === "object" && (function (global, factory) { var icon = document.createElementNS(namespace, 'svg'); setAttributes(icon, extend(attributes, { - role: 'presentation', + 'aria-hidden': 'true', focusable: 'false' })); // Create the to reference sprite @@ -1706,7 +1786,7 @@ typeof navigator === "object" && (function (global, factory) { var attr = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; var text = i18n.get(key, this.config); - var attributes = _objectSpread2({}, attr, { + var attributes = _objectSpread2(_objectSpread2({}, attr), {}, { class: [attr.class, this.config.classNames.hidden].filter(Boolean).join(' ') }); @@ -2419,39 +2499,39 @@ typeof navigator === "object" && (function (global, factory) { // Set the looping options /* setLoopMenu() { - // Menu required - if (!is.element(this.elements.settings.panels.loop)) { - return; - } - const options = ['start', 'end', 'all', 'reset']; - 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.panels.loop, false); - // Toggle the pane and tab - const toggle = !is.empty(this.loop.options); - controls.toggleMenuButton.call(this, 'loop', toggle); - // Empty the menu - emptyElement(list); - options.forEach(option => { - const item = createElement('li'); - const button = createElement( - 'button', - extend(getAttributesFromSelector(this.config.selectors.buttons.loop), { - type: 'button', - class: this.config.classNames.control, - 'data-plyr-loop-action': option, - }), - i18n.get(option, this.config) - ); - if (['start', 'end'].includes(option)) { - const badge = controls.createBadge.call(this, '00:00'); - button.appendChild(badge); - } - item.appendChild(button); - list.appendChild(item); - }); - }, */ + // Menu required + if (!is.element(this.elements.settings.panels.loop)) { + return; + } + const options = ['start', 'end', 'all', 'reset']; + 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.panels.loop, false); + // Toggle the pane and tab + const toggle = !is.empty(this.loop.options); + controls.toggleMenuButton.call(this, 'loop', toggle); + // Empty the menu + emptyElement(list); + options.forEach(option => { + const item = createElement('li'); + const button = createElement( + 'button', + extend(getAttributesFromSelector(this.config.selectors.buttons.loop), { + type: 'button', + class: this.config.classNames.control, + 'data-plyr-loop-action': option, + }), + i18n.get(option, this.config) + ); + if (['start', 'end'].includes(option)) { + const badge = controls.createBadge.call(this, '00:00'); + button.appendChild(badge); + } + item.appendChild(button); + list.appendChild(item); + }); + }, */ // Get current selected caption language // TODO: rework this to user the getter in the API? // Set a list of available captions languages @@ -2465,7 +2545,7 @@ typeof navigator === "object" && (function (global, factory) { var type = 'captions'; - var list = this.elements.settings.panels.captions.querySelector('[role="menu"]'); + var list = this.elements.settings.panels.captions.querySelector('[role="menucaptions"]'); var tracks = captions.getTracks.call(this); var toggle = Boolean(tracks.length); // Toggle the pane and tab @@ -2706,7 +2786,7 @@ typeof navigator === "object" && (function (global, factory) { showMenuPanel = controls.showMenuPanel; this.elements.controls = null; // Larger overlaid play button - if (this.config.controls.includes('play-large')) { + if (is$1.array(this.config.controls) && this.config.controls.includes('play-large')) { this.elements.container.appendChild(createButton.call(this, 'play-large')); } // Create the container @@ -2718,7 +2798,7 @@ typeof navigator === "object" && (function (global, factory) { class: 'plyr__controls__item' }; // Loop through controls in order - dedupe(this.config.controls).forEach(function (control) { + dedupe(is$1.array(this.config.controls) ? this.config.controls : []).forEach(function (control) { // Restart button if (control === 'restart') { container.appendChild(createButton.call(_this10, 'restart', defaultAttributes)); @@ -2907,6 +2987,10 @@ typeof navigator === "object" && (function (global, factory) { pane.appendChild(createElement('div', { role: 'menu' + })); // Menu Captions + + pane.appendChild(createElement('div', { + role: 'menucaptions' })); inner.appendChild(pane); _this10.elements.settings.buttons[type] = menuItem; @@ -3037,8 +3121,6 @@ typeof navigator === "object" && (function (global, factory) { if (update) { if (is$1.string(this.config.controls)) { container = replace(container); - } else if (is$1.element(container)) { - container.innerHTML = replace(container.innerHTML); } } // Controls container @@ -3253,9 +3335,15 @@ typeof navigator === "object" && (function (global, factory) { meta.set(track, { default: track.mode === 'showing' }); // Turn off native caption rendering to avoid double captions + // Note: mode='hidden' forces a track to download. To ensure every track + // isn't downloaded at once, only 'showing' tracks should be reassigned // eslint-disable-next-line no-param-reassign - track.mode = 'hidden'; // Add event listener for cue changes + if (track.mode === 'showing') { + // eslint-disable-next-line no-param-reassign + track.mode = 'hidden'; + } // Add event listener for cue changes + on.call(_this, track, 'cuechange', function () { return captions.updateCues.call(_this); @@ -3272,13 +3360,15 @@ typeof navigator === "object" && (function (global, factory) { toggleClass(this.elements.container, this.config.classNames.captions.enabled, !is$1.empty(tracks)); // Update available languages in list - if ((this.config.controls || []).includes('settings') && this.config.settings.includes('captions')) { + if (is$1.array(this.config.controls) && this.config.controls.includes('settings') && this.config.settings.includes('captions')) { controls.setCaptionsMenu.call(this); } }, // Toggle captions display // Used internally for the toggleCaptions method, with the passive option forced to false toggle: function toggle(input) { + var _this2 = this; + var passive = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true; // If there's no full support @@ -3325,7 +3415,15 @@ typeof navigator === "object" && (function (global, factory) { controls.updateSetting.call(this, 'captions'); // Trigger event (not used internally) triggerEvent.call(this, this.media, active ? 'captionsenabled' : 'captionsdisabled'); - } + } // Wait for the call stack to clear before setting mode='hidden' + // on the active track - forcing the browser to download it + + + setTimeout(function () { + if (active && _this2.captions.toggled) { + _this2.captions.currentTrackNode.mode = 'hidden'; + } + }); }, // Set captions by track index // Used internally for the currentTrack setter with the passive option forced to false @@ -3406,7 +3504,7 @@ typeof navigator === "object" && (function (global, factory) { // If update is false it will also ignore tracks without metadata // This is used to "freeze" the language options when captions.update is false getTracks: function getTracks() { - var _this2 = this; + var _this3 = this; var update = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false; // Handle media or textTracks missing or null @@ -3414,20 +3512,20 @@ typeof navigator === "object" && (function (global, factory) { // Filter out removed tracks and tracks that aren't captions/subtitles (for example metadata) return tracks.filter(function (track) { - return !_this2.isHTML5 || update || _this2.captions.meta.has(track); + return !_this3.isHTML5 || update || _this3.captions.meta.has(track); }).filter(function (track) { return ['captions', 'subtitles'].includes(track.kind); }); }, // Match tracks based on languages and get the first findTrack: function findTrack(languages) { - var _this3 = this; + var _this4 = this; var force = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; var tracks = captions.getTracks.call(this); var sortIsDefault = function sortIsDefault(track) { - return Number((_this3.captions.meta.get(track) || {}).default); + return Number((_this4.captions.meta.get(track) || {}).default); }; var sorted = Array.from(tracks).sort(function (a, b) { @@ -3608,6 +3706,9 @@ typeof navigator === "object" && (function (global, factory) { fallback: true, // Fallback using full viewport/window iosNative: false // Use the native fullscreen in iOS (disables custom controls) + // Selector for the fullscreen container so contextual / non-player content can remain visible in fullscreen mode + // Non-ancestors of the player element will be ignored + // container: null, // defaults to the player element }, // Local storage @@ -3845,16 +3946,16 @@ typeof navigator === "object" && (function (global, factory) { title: false, speed: true, transparent: false, - // These settings require a pro or premium account to work - sidedock: false, - controls: false, + // Whether the owner of the video has a Pro or Business account + // (which allows us to properly hide controls without CSS hacks, etc) + premium: false, // Custom settings from Plyr referrerPolicy: null // https://developer.mozilla.org/en-US/docs/Web/API/HTMLIFrameElement/referrerPolicy }, // YouTube plugin youtube: { - noCookie: false, + noCookie: true, // Whether to use an alternative version of YouTube without cookies rel: 0, // No related vids @@ -3964,7 +4065,10 @@ typeof navigator === "object" && (function (global, factory) { y: 0 }; // Force the use of 'full window/browser' rather than fullscreen - this.forceFallback = player.config.fullscreen.fallback === 'force'; // Register event listeners + this.forceFallback = player.config.fullscreen.fallback === 'force'; // Get the fullscreen element + // Checks container is an ancestor, defaults to null + + this.player.elements.fullscreen = player.config.fullscreen.container && closest(this.player.elements.container, player.config.fullscreen.container); // Register event listeners // Handle event (incase user presses escape etc) on.call(this.player, document, this.prefix === 'ms' ? 'MSFullscreenChange' : "".concat(this.prefix, "fullscreenchange"), function () { @@ -4137,7 +4241,7 @@ typeof navigator === "object" && (function (global, factory) { if (browser.isIos && this.player.config.fullscreen.iosNative) { this.target.webkitExitFullscreen(); - this.player.play(); + silencePromise(this.player.play()); } else if (!Fullscreen.native || this.forceFallback) { this.toggleFallback(false); } else if (!this.prefix) { @@ -4184,13 +4288,13 @@ typeof navigator === "object" && (function (global, factory) { } var element = !this.prefix ? document.fullscreenElement : document["".concat(this.prefix).concat(this.property, "Element")]; - return element === this.target; + return element && element.shadowRoot ? element === this.target.getRootNode().host : element === this.target; } // Get target element }, { key: "target", get: function get() { - return browser.isIos && this.player.config.fullscreen.iosNative ? this.player.media : this.player.elements.container; + return browser.isIos && this.player.config.fullscreen.iosNative ? this.player.media : this.player.elements.fullscreen || this.player.elements.container; } }], [{ key: "native", @@ -4252,7 +4356,6 @@ typeof navigator === "object" && (function (global, factory) { }); } - // ========================================================================== var ui = { addStyleHook: function addStyleHook() { toggleClass(this.elements.container, this.config.selectors.container.replace('.', ''), true); @@ -4387,12 +4490,7 @@ typeof navigator === "object" && (function (global, factory) { } // Set property synchronously to respect the call order - this.media.setAttribute('poster', poster); // HTML5 uses native poster attribute - - if (this.isHTML5) { - return Promise.resolve(poster); - } // Wait until ui is ready - + this.media.setAttribute('data-poster', poster); // Wait until ui is ready return ready.call(this) // Load image .then(function () { @@ -4468,6 +4566,26 @@ typeof navigator === "object" && (function (global, factory) { this.toggleControls(Boolean(force || this.loading || this.paused || controlsElement.pressed || controlsElement.hover || recentTouchSeek)); } + }, + // Migrate any custom properties from the media to the parent + migrateStyles: function migrateStyles() { + var _this5 = this; + + // Loop through values (as they are the keys when the object is spread 🤔) + Object.values(_objectSpread2({}, this.media.style)) // We're only fussed about Plyr specific properties + .filter(function (key) { + return !is$1.empty(key) && key.startsWith('--plyr'); + }).forEach(function (key) { + // Set on the container + _this5.elements.container.style.setProperty(key, _this5.media.style.getPropertyValue(key)); // Clean up from media element + + + _this5.media.style.removeProperty(key); + }); // Remove attribute if empty + + if (is$1.empty(this.media.style)) { + this.media.removeAttribute('style'); + } } }; @@ -4562,7 +4680,7 @@ typeof navigator === "object" && (function (global, factory) { case 75: // Space and K key if (!repeat) { - player.togglePlay(); + silencePromise(player.togglePlay()); } break; @@ -4676,15 +4794,17 @@ typeof navigator === "object" && (function (global, factory) { removeCurrent(); // Delay the adding of classname until the focus has changed // This event fires before the focusin event - this.focusTimer = setTimeout(function () { - var focused = document.activeElement; // Ignore if current focus element isn't inside the player + if (event.type !== 'focusout') { + this.focusTimer = setTimeout(function () { + var focused = document.activeElement; // Ignore if current focus element isn't inside the player - if (!elements.container.contains(focused)) { - return; - } + if (!elements.container.contains(focused)) { + return; + } - toggleClass(document.activeElement, player.config.classNames.tabFocus, true); - }, 10); + toggleClass(document.activeElement, player.config.classNames.tabFocus, true); + }, 10); + } } // Global window & document listeners }, { @@ -4702,7 +4822,7 @@ typeof navigator === "object" && (function (global, factory) { once.call(player, document.body, 'touchstart', this.firstTouch); // Tab focus detection - toggleListener.call(player, document.body, 'keydown focus blur', this.setTabFocus, toggle, false, true); + toggleListener.call(player, document.body, 'keydown focus blur focusout', this.setTabFocus, toggle, false, true); } // Container listeners }, { @@ -4745,7 +4865,7 @@ typeof navigator === "object" && (function (global, factory) { }); // Set a gutter for Vimeo var setGutter = function setGutter(ratio, padding, toggle) { - if (!player.isVimeo) { + if (!player.isVimeo || player.config.vimeo.premium) { return; } @@ -4802,7 +4922,7 @@ typeof navigator === "object" && (function (global, factory) { ratio = _setPlayerSize.ratio; // Set Vimeo gutter - setGutter(ratio, padding, isEnter); // If not using native fullscreen, we need to check for resizes of viewport + setGutter(ratio, padding, isEnter); // If not using native browser fullscreen API, we need to check for resizes of viewport if (!usingNative) { if (isEnter) { @@ -4880,9 +5000,13 @@ typeof navigator === "object" && (function (global, factory) { if (player.ended) { _this.proxy(event, player.restart, 'restart'); - _this.proxy(event, player.play, 'play'); + _this.proxy(event, function () { + silencePromise(player.play()); + }, 'play'); } else { - _this.proxy(event, player.togglePlay, 'play'); + _this.proxy(event, function () { + silencePromise(player.togglePlay()); + }, 'play'); } }); } // Disable right click @@ -4980,7 +5104,9 @@ typeof navigator === "object" && (function (global, factory) { if (elements.buttons.play) { Array.from(elements.buttons.play).forEach(function (button) { - _this3.bind(button, 'click', player.togglePlay, 'play'); + _this3.bind(button, 'click', function () { + silencePromise(player.togglePlay()); + }, 'play'); }); } // Pause @@ -5077,7 +5203,7 @@ typeof navigator === "object" && (function (global, factory) { if (play && done) { seek.removeAttribute(attribute); - player.play(); + silencePromise(player.play()); } else if (!done && player.playing) { seek.setAttribute(attribute, ''); player.pause(); @@ -5175,7 +5301,18 @@ typeof navigator === "object" && (function (global, factory) { this.bind(elements.controls, 'mouseenter mouseleave', function (event) { elements.controls.hover = !player.touch && event.type === 'mouseenter'; - }); // Update controls.pressed state (used for ui.toggleControls to avoid hiding when interacting) + }); // Also update controls.hover state for any non-player children of fullscreen element (as above) + + if (elements.fullscreen) { + Array.from(elements.fullscreen.children).filter(function (c) { + return !c.contains(elements.container); + }).forEach(function (child) { + _this3.bind(child, 'mouseenter mouseleave', function (event) { + elements.controls.hover = !player.touch && event.type === 'mouseenter'; + }); + }); + } // Update controls.pressed state (used for ui.toggleControls to avoid hiding when interacting) + this.bind(elements.controls, 'mousedown mouseup touchstart touchend touchcancel', function (event) { elements.controls.pressed = ['mousedown', 'touchstart'].includes(event.type); @@ -5591,15 +5728,28 @@ typeof navigator === "object" && (function (global, factory) { var _this = this; var player = this; - var config = player.config.vimeo; // Get Vimeo params for the iframe + var config = player.config.vimeo; + + var premium = config.premium, + referrerPolicy = config.referrerPolicy, + frameParams = _objectWithoutProperties(config, ["premium", "referrerPolicy"]); // If the owner has a pro or premium account then we can hide controls etc - var params = buildUrlParams(extend({}, { + + if (premium) { + Object.assign(frameParams, { + controls: false, + sidedock: false + }); + } // Get Vimeo params for the iframe + + + var params = buildUrlParams(_objectSpread2({ loop: player.config.loop.active, autoplay: player.autoplay, muted: player.muted, gesture: 'media', playsinline: !this.config.fullscreen.iosNative - }, config)); // Get the source URL or ID + }, frameParams)); // Get the source URL or ID var source = player.media.getAttribute('src'); // Get from
if needed @@ -5613,22 +5763,27 @@ typeof navigator === "object" && (function (global, factory) { var src = format(player.config.urls.vimeo.iframe, id, params); iframe.setAttribute('src', src); iframe.setAttribute('allowfullscreen', ''); - iframe.setAttribute('allowtransparency', ''); - iframe.setAttribute('allow', 'autoplay'); // Set the referrer policy if required + iframe.setAttribute('allow', 'autoplay,fullscreen,picture-in-picture'); // Set the referrer policy if required - if (!is$1.empty(config.referrerPolicy)) { - iframe.setAttribute('referrerPolicy', config.referrerPolicy); - } // Get poster, if already set + if (!is$1.empty(referrerPolicy)) { + iframe.setAttribute('referrerPolicy', referrerPolicy); + } // Inject the package - var poster = player.poster; // Inject the package + var poster = player.poster; + + if (premium) { + iframe.setAttribute('data-poster', poster); + player.media = replaceElement(iframe, player.media); + } else { + var wrapper = createElement('div', { + class: player.config.classNames.embedContainer, + 'data-poster': poster + }); + wrapper.appendChild(iframe); + player.media = replaceElement(wrapper, player.media); + } // Get poster image - var wrapper = createElement('div', { - poster: poster, - class: player.config.classNames.embedContainer - }); - wrapper.appendChild(iframe); - player.media = replaceElement(wrapper, player.media); // Get poster image fetch(format(player.config.urls.vimeo.api, id), 'json').then(function (response) { if (is$1.empty(response)) { @@ -5712,6 +5867,9 @@ typeof navigator === "object" && (function (global, factory) { player.embed.setPlaybackRate(input).then(function () { speed = input; triggerEvent.call(player, player.media, 'ratechange'); + }).catch(function () { + // Cannot set Playback Rate, Video is probably not on Pro account + player.options.speed = [1]; }); } }); // Volume @@ -5998,7 +6156,7 @@ typeof navigator === "object" && (function (global, factory) { var container = createElement('div', { id: id, - poster: poster + 'data-poster': poster }); player.media = replaceElement(container, player.media); // Id to poster wrapper @@ -6317,14 +6475,12 @@ typeof navigator === "object" && (function (global, factory) { class: this.config.classNames.video }); // Wrap the video in a container - wrap(this.media, this.elements.wrapper); // Faux poster container + wrap(this.media, this.elements.wrapper); // Poster image container - if (this.isEmbed) { - this.elements.poster = createElement('div', { - class: this.config.classNames.poster - }); - this.elements.wrapper.appendChild(this.elements.poster); - } + this.elements.poster = createElement('div', { + class: this.config.classNames.poster + }); + this.elements.wrapper.appendChild(this.elements.poster); } if (this.isHTML5) { @@ -6451,6 +6607,8 @@ typeof navigator === "object" && (function (global, factory) { * mobile devices, this initialization is done as the result of a user action. */ value: function setupIMA() { + var _this4 = this; + // Create the container for our advertisements this.elements.container = createElement('div', { class: this.player.config.classNames.ads @@ -6463,7 +6621,16 @@ typeof navigator === "object" && (function (global, factory) { google.ima.settings.setDisableCustomPlaybackForIOS10Plus(this.player.config.playsinline); // We assume the adContainer is the video container of the plyr element that will house the ads - this.elements.displayContainer = new google.ima.AdDisplayContainer(this.elements.container, this.player.media); // Request video ads to be pre-loaded + this.elements.displayContainer = new google.ima.AdDisplayContainer(this.elements.container, this.player.media); // Create ads loader + + this.loader = new google.ima.AdsLoader(this.elements.displayContainer); // Listen and respond to ads loaded and error events + + this.loader.addEventListener(google.ima.AdsManagerLoadedEvent.Type.ADS_MANAGER_LOADED, function (event) { + return _this4.onAdsManagerLoaded(event); + }, false); + this.loader.addEventListener(google.ima.AdErrorEvent.Type.AD_ERROR, function (error) { + return _this4.onAdError(error); + }, false); // Request video ads to be pre-loaded this.requestAds(); } @@ -6474,21 +6641,10 @@ typeof navigator === "object" && (function (global, factory) { }, { key: "requestAds", value: function requestAds() { - var _this4 = this; - var container = this.player.elements.container; try { - // Create ads loader - this.loader = new google.ima.AdsLoader(this.elements.displayContainer); // Listen and respond to ads loaded and error events - - this.loader.addEventListener(google.ima.AdsManagerLoadedEvent.Type.ADS_MANAGER_LOADED, function (event) { - return _this4.onAdsManagerLoaded(event); - }, false); - this.loader.addEventListener(google.ima.AdErrorEvent.Type.AD_ERROR, function (error) { - return _this4.onAdError(error); - }, false); // Request video ads - + // Request video ads var request = new google.ima.AdsRequest(); request.adTagUrl = this.tagUrl; // Specify the linear and nonlinear slot sizes. This helps the SDK // to select the correct creative if multiple are returned @@ -6667,7 +6823,13 @@ typeof navigator === "object" && (function (global, factory) { // }; // TODO: So there is still this thing where a video should only be allowed to start // playing when the IMA SDK is ready or has failed - this.loadAds(); + if (this.player.ended) { + this.loadAds(); + } else { + // The SDK won't allow new ads to be called without receiving a contentComplete() + this.loader.contentComplete(); + } + break; case google.ima.AdEvent.Type.CONTENT_PAUSE_REQUESTED: @@ -6803,7 +6965,7 @@ typeof navigator === "object" && (function (global, factory) { this.playing = false; // Play video - this.player.media.play(); + silencePromise(this.player.media.play()); } /** * Pause our video @@ -6860,7 +7022,9 @@ typeof navigator === "object" && (function (global, factory) { _this11.on('loaded', resolve); _this11.player.debug.log(_this11.manager); - }); // Now request some new advertisements + }); // Now that the manager has been destroyed set it to also be un-initialized + + _this11.initialized = false; // Now request some new advertisements _this11.requestAds(); }).catch(function () {}); @@ -7104,15 +7268,10 @@ typeof navigator === "object" && (function (global, factory) { if (is$1.empty(src)) { throw new Error('Missing previewThumbnails.src config attribute'); - } // If string, convert into single-element list + } // Resolve promise - var urls = is$1.string(src) ? [src] : src; // Loop through each src URL. Download and process the VTT file, storing the resulting data in this.thumbnails - - var promises = urls.map(function (u) { - return _this2.getThumbnail(u); - }); - Promise.all(promises).then(function () { + var sortAndResolve = function sortAndResolve() { // Sort smallest to biggest (e.g., [120p, 480p, 1080p]) _this2.thumbnails.sort(function (x, y) { return x.height - y.height; @@ -7121,7 +7280,25 @@ typeof navigator === "object" && (function (global, factory) { _this2.player.debug.log('Preview thumbnails', _this2.thumbnails); resolve(); - }); + }; // Via callback() + + + if (is$1.function(src)) { + src(function (thumbnails) { + _this2.thumbnails = thumbnails; + sortAndResolve(); + }); + } // VTT urls + else { + // If string, convert into single-element list + var urls = is$1.string(src) ? [src] : src; // Loop through each src URL. Download and process the VTT file, storing the resulting data in this.thumbnails + + var promises = urls.map(function (u) { + return _this2.getThumbnail(u); + }); // Resolve + + Promise.all(promises).then(sortAndResolve); + } }); } // Process individual VTT file @@ -7909,6 +8086,7 @@ typeof navigator === "object" && (function (global, factory) { this.elements = { container: null, + fullscreen: null, captions: null, buttons: {}, display: {}, @@ -8083,9 +8261,11 @@ typeof navigator === "object" && (function (global, factory) { tabindex: 0 }); wrap(this.media, this.elements.container); - } // Add style hook + } // Migrate custom properties from media to container (so they work 😉) + ui.migrateStyles.call(this); // Add style hook + ui.addStyleHook.call(this); // Setup media media.setup.call(this); // Listen for events if debugging @@ -8094,10 +8274,12 @@ typeof navigator === "object" && (function (global, factory) { on.call(this, this.elements.container, this.config.events.join(' '), function (event) { _this.debug.log("event: ".concat(event.type)); }); - } // Setup interface - // If embed but not fully supported, build interface now to avoid flash of controls + } // Setup fullscreen + this.fullscreen = new Fullscreen(this); // Setup interface + // If embed but not fully supported, build interface now to avoid flash of controls + if (this.isHTML5 || this.isEmbed && !this.supported.ui) { ui.build.call(this); } // Container listeners @@ -8105,9 +8287,7 @@ typeof navigator === "object" && (function (global, factory) { this.listeners.container(); // Global listeners - this.listeners.global(); // Setup fullscreen - - this.fullscreen = new Fullscreen(this); // Setup ads if provided + this.listeners.global(); // Setup ads if provided if (this.config.ads.enabled) { this.ads = new Ads(this); @@ -8116,7 +8296,7 @@ typeof navigator === "object" && (function (global, factory) { if (this.isHTML5 && this.config.autoplay) { setTimeout(function () { - return _this.play(); + return silencePromise(_this.play()); }, 10); } // Seek time will be recorded (in listeners.js) so we can prevent hiding controls for a few seconds after seek @@ -8153,7 +8333,7 @@ typeof navigator === "object" && (function (global, factory) { this.ads.managerPromise.then(function () { return _this2.ads.play(); }).catch(function () { - return _this2.media.play(); + return silencePromise(_this2.media.play()); }); } // Return the promise (for HTML5) @@ -8313,7 +8493,7 @@ typeof navigator === "object" && (function (global, factory) { var hiding = toggleClass(this.elements.container, this.config.classNames.hideControls, force); // Close menu - if (hiding && this.config.controls.includes('settings') && !is$1.empty(this.config.settings)) { + if (hiding && is$1.array(this.config.controls) && this.config.controls.includes('settings') && !is$1.empty(this.config.settings)) { controls.toggleMenu.call(this, false); } // Trigger event on change @@ -8806,7 +8986,7 @@ typeof navigator === "object" && (function (global, factory) { var updateStorage = true; if (!options.includes(quality)) { - var value = closest(options, quality); + var value = closest$1(options, quality); this.debug.warn("Unsupported quality option: ".concat(quality, ", using ").concat(value, " instead")); quality = value; // Don't update storage if quality is not supported @@ -8845,41 +9025,41 @@ typeof navigator === "object" && (function (global, factory) { this.media.loop = toggle; // Set default to be a true toggle /* const type = ['start', 'end', 'all', 'none', 'toggle'].includes(input) ? input : 'toggle'; - switch (type) { - case 'start': - if (this.config.loop.end && this.config.loop.end <= this.currentTime) { - this.config.loop.end = null; - } - this.config.loop.start = this.currentTime; - // this.config.loop.indicator.start = this.elements.display.played.value; - break; - case 'end': - if (this.config.loop.start >= this.currentTime) { - return this; - } - this.config.loop.end = this.currentTime; - // this.config.loop.indicator.end = this.elements.display.played.value; - break; - case 'all': - this.config.loop.start = 0; - this.config.loop.end = this.duration - 2; - this.config.loop.indicator.start = 0; - this.config.loop.indicator.end = 100; - break; - case 'toggle': - if (this.config.loop.active) { - this.config.loop.start = 0; - this.config.loop.end = null; - } else { + switch (type) { + case 'start': + if (this.config.loop.end && this.config.loop.end <= this.currentTime) { + this.config.loop.end = null; + } + this.config.loop.start = this.currentTime; + // this.config.loop.indicator.start = this.elements.display.played.value; + break; + case 'end': + if (this.config.loop.start >= this.currentTime) { + return this; + } + this.config.loop.end = this.currentTime; + // this.config.loop.indicator.end = this.elements.display.played.value; + break; + case 'all': this.config.loop.start = 0; this.config.loop.end = this.duration - 2; - } - break; - default: - this.config.loop.start = 0; - this.config.loop.end = null; - break; - } */ + this.config.loop.indicator.start = 0; + this.config.loop.indicator.end = 100; + break; + case 'toggle': + if (this.config.loop.active) { + this.config.loop.start = 0; + this.config.loop.end = null; + } else { + this.config.loop.start = 0; + this.config.loop.end = this.duration - 2; + } + break; + default: + this.config.loop.start = 0; + this.config.loop.end = null; + break; + } */ } /** * Get current loop state @@ -8951,7 +9131,7 @@ typeof navigator === "object" && (function (global, factory) { return null; } - return this.media.getAttribute('poster'); + return this.media.getAttribute('poster') || this.media.getAttribute('data-poster'); } /** * Get the current aspect ratio in use diff --git a/libretube-theme/static/modules/plyr/plyr.min.js b/libretube-theme/static/modules/plyr/plyr.min.js index 42a1632..213c413 100644 --- a/libretube-theme/static/modules/plyr/plyr.min.js +++ b/libretube-theme/static/modules/plyr/plyr.min.js @@ -1,4 +1,4 @@ -"object"==typeof navigator&&function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define("Plyr",t):(e=e||self).Plyr=t()}(this,(function(){"use strict";function e(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function t(e,t){for(var i=0;it){var i=function(e){var t="".concat(e).match(/(?:\.(\d+))?(?:[eE]([+-]?\d+))?$/);return t?Math.max(0,(t[1]?t[1].length:0)-(t[2]?+t[2]:0)):0}(t);return parseFloat(e.toFixed(i))}return Math.round(e/t)*t}var M,N,x,I=function(){function e(t,i){(function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")})(this,e),A(t)?this.element=t:k(t)&&(this.element=document.querySelector(t)),A(this.element)&&S(this.element.rangeTouch)&&(this.config=d({},h,{},i),this.init())}return function(e,t,i){t&&l(e.prototype,t),i&&l(e,i)}(e,[{key:"init",value:function(){e.enabled&&(this.config.addCSS&&(this.element.style.userSelect="none",this.element.style.webKitUserSelect="none",this.element.style.touchAction="manipulation"),this.listeners(!0),this.element.rangeTouch=this)}},{key:"destroy",value:function(){e.enabled&&(this.config.addCSS&&(this.element.style.userSelect="",this.element.style.webKitUserSelect="",this.element.style.touchAction=""),this.listeners(!1),this.element.rangeTouch=null)}},{key:"listeners",value:function(e){var t=this,i=e?"addEventListener":"removeEventListener";["touchstart","touchmove","touchend"].forEach((function(e){t.element[i](e,(function(e){return t.set(e)}),!1)}))}},{key:"get",value:function(t){if(!e.enabled||!P(t))return null;var i,n=t.target,a=t.changedTouches[0],s=parseFloat(n.getAttribute("min"))||0,r=parseFloat(n.getAttribute("max"))||100,o=parseFloat(n.getAttribute("step"))||1,l=n.getBoundingClientRect(),c=100/l.width*(this.config.thumbWidth/2)/100;return 0>(i=100/l.width*(a.clientX-l.left))?i=0:100i?i-=(100-2*i)*c:50=0||(a[i]=e[i]);return a}(e,t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,i)&&(a[i]=e[i])}return a}function o(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){if("undefined"==typeof Symbol||!(Symbol.iterator in Object(e)))return;var i=[],n=!0,a=!1,s=void 0;try{for(var r,o=e[Symbol.iterator]();!(n=(r=o.next()).done)&&(i.push(r.value),!t||i.length!==t);n=!0);}catch(e){a=!0,s=e}finally{try{n||null==o.return||o.return()}finally{if(a)throw s}}return i}(e,t)||c(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function l(e){return function(e){if(Array.isArray(e))return u(e)}(e)||function(e){if("undefined"!=typeof Symbol&&Symbol.iterator in Object(e))return Array.from(e)}(e)||c(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function c(e,t){if(e){if("string"==typeof e)return u(e,t);var i=Object.prototype.toString.call(e).slice(8,-1);return"Object"===i&&e.constructor&&(i=e.constructor.name),"Map"===i||"Set"===i?Array.from(e):"Arguments"===i||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(i)?u(e,t):void 0}}function u(e,t){(null==t||t>e.length)&&(t=e.length);for(var i=0,n=new Array(t);it){var i=function(e){var t="".concat(e).match(/(?:\.(\d+))?(?:[eE]([+-]?\d+))?$/);return t?Math.max(0,(t[1]?t[1].length:0)-(t[2]?+t[2]:0)):0}(t);return parseFloat(e.toFixed(i))}return Math.round(e/t)*t}var I,L,O,_=function(){function e(t,i){(function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")})(this,e),E(t)?this.element=t:A(t)&&(this.element=document.querySelector(t)),E(this.element)&&M(this.element.rangeTouch)&&(this.config=m({},f,{},i),this.init())}return function(e,t,i){t&&d(e.prototype,t),i&&d(e,i)}(e,[{key:"init",value:function(){e.enabled&&(this.config.addCSS&&(this.element.style.userSelect="none",this.element.style.webKitUserSelect="none",this.element.style.touchAction="manipulation"),this.listeners(!0),this.element.rangeTouch=this)}},{key:"destroy",value:function(){e.enabled&&(this.config.addCSS&&(this.element.style.userSelect="",this.element.style.webKitUserSelect="",this.element.style.touchAction=""),this.listeners(!1),this.element.rangeTouch=null)}},{key:"listeners",value:function(e){var t=this,i=e?"addEventListener":"removeEventListener";["touchstart","touchmove","touchend"].forEach((function(e){t.element[i](e,(function(e){return t.set(e)}),!1)}))}},{key:"get",value:function(t){if(!e.enabled||!N(t))return null;var i,n=t.target,a=t.changedTouches[0],s=parseFloat(n.getAttribute("min"))||0,r=parseFloat(n.getAttribute("max"))||100,o=parseFloat(n.getAttribute("step"))||1,l=n.getBoundingClientRect(),c=100/l.width*(this.config.thumbWidth/2)/100;return 0>(i=100/l.width*(a.clientX-l.left))?i=0:100i?i-=(100-2*i)*c:500&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length,i=new Array(t>1?t-1:0),a=1;a0?t.cloneNode(!0):t,a=e.parentNode,s=e.nextSibling;n.appendChild(e),s?a.insertBefore(n,s):a.appendChild(n)}))}function re(e,t){Q(e)&&!Z(t)&&Object.entries(t).filter((function(e){var t=r(e,2)[1];return!R(t)})).forEach((function(t){var i=r(t,2),n=i[0],a=i[1];return e.setAttribute(n,a)}))}function oe(e,t,i){var n=document.createElement(e);return V(t)&&re(n,t),U(i)&&(n.innerText=i),n}function le(e,t,i,n){Q(t)&&t.appendChild(oe(e,i,n))}function ce(e){Y(e)||K(e)?Array.from(e).forEach(ce):Q(e)&&Q(e.parentNode)&&e.parentNode.removeChild(e)}function ue(e){if(Q(e))for(var t=e.childNodes.length;t>0;)e.removeChild(e.lastChild),t-=1}function de(e,t){return Q(t)&&Q(t.parentNode)&&Q(e)?(t.parentNode.replaceChild(e,t),e):null}function he(e,t){if(!U(e)||Z(e))return{};var i={},n=ae({},t);return e.split(",").forEach((function(e){var t=e.trim(),a=t.replace(".",""),s=t.replace(/[[\]]/g,"").split("="),o=r(s,1)[0],l=s.length>1?s[1].replace(/["']/g,""):"";switch(t.charAt(0)){case".":U(n.class)?i.class="".concat(n.class," ").concat(a):i.class=a;break;case"#":i.id=t.replace("#","");break;case"[":i[o]=l}})),ae(n,i)}function pe(e,t){if(Q(e)){var i=t;W(i)||(i=!e.hidden),e.hidden=i}}function me(e,t,i){if(Y(e))return Array.from(e).map((function(e){return me(e,t,i)}));if(Q(e)){var n="toggle";return void 0!==i&&(n=i?"add":"remove"),e.classList[n](t),e.classList.contains(t)}return!1}function fe(e,t){return Q(e)&&e.classList.contains(t)}function ge(e,t){return function(){return Array.from(document.querySelectorAll(t)).includes(this)}.call(e,t)}function ye(e){return this.elements.container.querySelectorAll(e)}function ve(e){return this.elements.container.querySelector(e)}function be(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];Q(e)&&(e.focus({preventScroll:!0}),t&&me(e,this.config.classNames.tabFocus))}var we,ke={"audio/ogg":"vorbis","audio/wav":"1","video/webm":"vp8, vorbis","video/mp4":"avc1.42E01E, mp4a.40.2","video/ogg":"theora"},Te={audio:"canPlayType"in document.createElement("audio"),video:"canPlayType"in document.createElement("video"),check:function(e,t,i){var n=ie.isIPhone&&i&&Te.playsinline,a=Te[e]||"html5"!==t;return{api:a,ui:a&&Te.rangeInput&&("video"!==e||!ie.isIPhone||n)}},pip:!(ie.isIPhone||!z(oe("video").webkitSetPresentationMode)&&(!document.pictureInPictureEnabled||oe("video").disablePictureInPicture)),airplay:z(window.WebKitPlaybackTargetAvailabilityEvent),playsinline:"playsInline"in document.createElement("video"),mime:function(e){if(Z(e))return!1;var t=r(e.split("/"),1)[0],i=e;if(!this.isHTML5||t!==this.type)return!1;Object.keys(ke).includes(i)&&(i+='; codecs="'.concat(ke[e],'"'));try{return Boolean(i&&this.media.canPlayType(i).replace(/no/,""))}catch(e){return!1}},textTracks:"textTracks"in document.createElement("video"),rangeInput:(we=document.createElement("input"),we.type="range","range"===we.type),touch:"ontouchstart"in document.documentElement,transitions:!1!==ee,reducedMotion:"matchMedia"in window&&window.matchMedia("(prefers-reduced-motion)").matches},Ce=function(){var e=!1;try{var t=Object.defineProperty({},"passive",{get:function(){return e=!0,null}});window.addEventListener("test",null,t),window.removeEventListener("test",null,t)}catch(e){}return e}();function Ae(e,t,i){var n=this,a=arguments.length>3&&void 0!==arguments[3]&&arguments[3],s=!(arguments.length>4&&void 0!==arguments[4])||arguments[4],r=arguments.length>5&&void 0!==arguments[5]&&arguments[5];if(e&&"addEventListener"in e&&!Z(t)&&z(i)){var o=t.split(" "),l=r;Ce&&(l={passive:s,capture:r}),o.forEach((function(t){n&&n.eventListeners&&a&&n.eventListeners.push({element:e,type:t,callback:i,options:l}),e[a?"addEventListener":"removeEventListener"](t,i,l)}))}}function Pe(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",i=arguments.length>2?arguments[2]:void 0,n=!(arguments.length>3&&void 0!==arguments[3])||arguments[3],a=arguments.length>4&&void 0!==arguments[4]&&arguments[4];Ae.call(this,e,t,i,!0,n,a)}function Se(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",i=arguments.length>2?arguments[2]:void 0,n=!(arguments.length>3&&void 0!==arguments[3])||arguments[3],a=arguments.length>4&&void 0!==arguments[4]&&arguments[4];Ae.call(this,e,t,i,!1,n,a)}function Ee(e){var t=this,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",n=arguments.length>2?arguments[2]:void 0,a=!(arguments.length>3&&void 0!==arguments[3])||arguments[3],s=arguments.length>4&&void 0!==arguments[4]&&arguments[4],r=function r(){Se(e,i,r,a,s);for(var o=arguments.length,l=new Array(o),c=0;c1&&void 0!==arguments[1]?arguments[1]:"",i=arguments.length>2&&void 0!==arguments[2]&&arguments[2],n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};if(Q(e)&&!Z(t)){var a=new CustomEvent(t,{bubbles:i,detail:s({},n,{plyr:this})});e.dispatchEvent(a)}}function Ne(){this&&this.eventListeners&&(this.eventListeners.forEach((function(e){var t=e.element,i=e.type,n=e.callback,a=e.options;t.removeEventListener(i,n,a)})),this.eventListeners=[])}function xe(){var e=this;return new Promise((function(t){return e.ready?setTimeout(t,0):Pe.call(e,e.elements.container,"ready",t)})).then((function(){}))}function Ie(e){return!!(K(e)||U(e)&&e.includes(":"))&&(K(e)?e:e.split(":")).map(Number).every(B)}function Le(e){if(!K(e)||!e.every(B))return null;var t=r(e,2),i=t[0],n=t[1],a=function e(t,i){return 0===i?t:e(i,t%i)}(i,n);return[i/a,n/a]}function Oe(e){var t=function(e){return Ie(e)?e.split(":").map(Number):null},i=t(e);if(null===i&&(i=t(this.config.ratio)),null===i&&!Z(this.embed)&&K(this.embed.ratio)&&(i=this.embed.ratio),null===i&&this.isHTML5){var n=this.media;i=Le([n.videoWidth,n.videoHeight])}return i}function _e(e){if(!this.isVideo)return{};var t=this.elements.wrapper,i=Oe.call(this,e),n=r(K(i)?i:[0,0],2),a=100/n[0]*n[1];if(t.style.paddingBottom="".concat(a,"%"),this.isVimeo&&this.supported.ui){var s=(240-a)/4.8;this.media.style.transform="translateY(-".concat(s,"%)")}else this.isHTML5&&t.classList.toggle(this.config.classNames.videoFixedRatio,null!==i);return{padding:a,ratio:i}}var je={getSources:function(){var e=this;return this.isHTML5?Array.from(this.media.querySelectorAll("source")).filter((function(t){var i=t.getAttribute("type");return!!Z(i)||Te.mime.call(e,i)})):[]},getQualityOptions:function(){return this.config.quality.forced?this.config.quality.options:je.getSources.call(this).map((function(e){return Number(e.getAttribute("data-res"))})).filter(Boolean)},setup:function(){if(this.isHTML5){var e=this;e.options.speed=e.config.speed.options,Z(this.config.ratio)||_e.call(e),Object.defineProperty(e.media,"quality",{get:function(){var t=je.getSources.call(e).find((function(t){return t.getAttribute("src")===e.source}));return t&&Number(t.getAttribute("data-res"))},set:function(t){if(e.quality!==t){if(e.config.quality.forced&&z(e.config.quality.onChange))e.config.quality.onChange(t);else{var i=je.getSources.call(e).find((function(e){return Number(e.getAttribute("data-res"))===t}));if(!i)return;var n=e.media,a=n.currentTime,s=n.paused,r=n.preload,o=n.readyState,l=n.playbackRate;e.media.src=i.getAttribute("src"),("none"!==r||o)&&(e.once("loadedmetadata",(function(){e.speed=l,e.currentTime=a,s||e.play()})),e.media.load())}Me.call(e,e.media,"qualitychange",!1,{quality:t})}}})}},cancelRequests:function(){this.isHTML5&&(ce(je.getSources.call(this)),this.media.setAttribute("src",this.config.blankVideo),this.media.load(),this.debug.log("Cancelled network requests"))}};function qe(e){return K(e)?e.filter((function(t,i){return e.indexOf(t)===i})):e}function De(e){for(var t=arguments.length,i=new Array(t>1?t-1:0),n=1;n0&&void 0!==arguments[0]?arguments[0]:"",t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"";return e.replace(new RegExp(t.toString().replace(/([.*+?^=!:${}()|[\]/\\])/g,"\\$1"),"g"),i.toString())}function Fe(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";return e.toString().replace(/\w\S*/g,(function(e){return e.charAt(0).toUpperCase()+e.substr(1).toLowerCase()}))}function Re(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",t=e.toString();return t=He(t,"-"," "),t=He(t,"_"," "),He(t=Fe(t)," ","")}function Ve(e){var t=document.createElement("div");return t.appendChild(e),t.innerHTML}var Be={pip:"PIP",airplay:"AirPlay",html5:"HTML5",vimeo:"Vimeo",youtube:"YouTube"},Ue=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(Z(e)||Z(t))return"";var i=ne(t.i18n,e);if(Z(i))return Object.keys(Be).includes(e)?Be[e]:"";var n={"{seektime}":t.seekTime,"{title}":t.title};return Object.entries(n).forEach((function(e){var t=r(e,2),n=t[0],a=t[1];i=He(i,n,a)})),i},We=function(){function t(i){e(this,t),this.enabled=i.config.storage.enabled,this.key=i.config.storage.key}return i(t,[{key:"get",value:function(e){if(!t.supported||!this.enabled)return null;var i=window.localStorage.getItem(this.key);if(Z(i))return null;var n=JSON.parse(i);return U(e)&&e.length?n[e]:n}},{key:"set",value:function(e){if(t.supported&&this.enabled&&V(e)){var i=this.get();Z(i)&&(i={}),ae(i,e),window.localStorage.setItem(this.key,JSON.stringify(i))}}}],[{key:"supported",get:function(){try{if(!("localStorage"in window))return!1;return window.localStorage.setItem("___test","___test"),window.localStorage.removeItem("___test"),!0}catch(e){return!1}}}]),t}();function ze(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"text";return new Promise((function(i,n){try{var a=new XMLHttpRequest;if(!("withCredentials"in a))return;a.addEventListener("load",(function(){if("text"===t)try{i(JSON.parse(a.responseText))}catch(e){i(a.responseText)}else i(a.response)})),a.addEventListener("error",(function(){throw new Error(a.status)})),a.open("GET",e,!0),a.responseType=t,a.send()}catch(e){n(e)}}))}function Ke(e,t){if(U(e)){var i=U(t),n=function(){return null!==document.getElementById(t)},a=function(e,t){e.innerHTML=t,i&&n()||document.body.insertAdjacentElement("afterbegin",e)};if(!i||!n()){var s=We.supported,r=document.createElement("div");if(r.setAttribute("hidden",""),i&&r.setAttribute("id",t),s){var o=window.localStorage.getItem("".concat("cache","-").concat(t));if(null!==o){var l=JSON.parse(o);a(r,l.content)}}ze(e).then((function(e){Z(e)||(s&&window.localStorage.setItem("".concat("cache","-").concat(t),JSON.stringify({content:e})),a(r,e))})).catch((function(){}))}}}var Ye=function(e){return Math.trunc(e/60/60%60,10)},Qe=function(e){return Math.trunc(e/60%60,10)},Xe=function(e){return Math.trunc(e%60,10)};function Je(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],i=arguments.length>2&&void 0!==arguments[2]&&arguments[2];if(!B(e))return Je(void 0,t,i);var n=function(e){return"0".concat(e).slice(-2)},a=Ye(e),s=Qe(e),r=Xe(e);return a=t||a>0?"".concat(a,":"):"","".concat(i&&e>0?"-":"").concat(a).concat(n(s),":").concat(n(r))}var $e={getIconUrl:function(){var e=new URL(this.config.iconUrl,window.location).host!==window.location.host||ie.isIE&&!window.svg4everybody;return{url:this.config.iconUrl,cors:e}},findElements:function(){try{return this.elements.controls=ve.call(this,this.config.selectors.controls.wrapper),this.elements.buttons={play:ye.call(this,this.config.selectors.buttons.play),pause:ve.call(this,this.config.selectors.buttons.pause),restart:ve.call(this,this.config.selectors.buttons.restart),rewind:ve.call(this,this.config.selectors.buttons.rewind),fastForward:ve.call(this,this.config.selectors.buttons.fastForward),mute:ve.call(this,this.config.selectors.buttons.mute),pip:ve.call(this,this.config.selectors.buttons.pip),airplay:ve.call(this,this.config.selectors.buttons.airplay),settings:ve.call(this,this.config.selectors.buttons.settings),captions:ve.call(this,this.config.selectors.buttons.captions),fullscreen:ve.call(this,this.config.selectors.buttons.fullscreen)},this.elements.progress=ve.call(this,this.config.selectors.progress),this.elements.inputs={seek:ve.call(this,this.config.selectors.inputs.seek),volume:ve.call(this,this.config.selectors.inputs.volume)},this.elements.display={buffer:ve.call(this,this.config.selectors.display.buffer),currentTime:ve.call(this,this.config.selectors.display.currentTime),duration:ve.call(this,this.config.selectors.display.duration)},Q(this.elements.progress)&&(this.elements.display.seekTooltip=this.elements.progress.querySelector(".".concat(this.config.classNames.tooltip))),!0}catch(e){return this.debug.warn("It looks like there is a problem with your custom controls HTML",e),this.toggleNativeControls(!0),!1}},createIcon:function(e,t){var i=$e.getIconUrl.call(this),n="".concat(i.cors?"":i.url,"#").concat(this.config.iconPrefix),a=document.createElementNS("http://www.w3.org/2000/svg","svg");re(a,ae(t,{role:"presentation",focusable:"false"}));var s=document.createElementNS("http://www.w3.org/2000/svg","use"),r="".concat(n,"-").concat(e);return"href"in s&&s.setAttributeNS("http://www.w3.org/1999/xlink","href",r),s.setAttributeNS("http://www.w3.org/1999/xlink","xlink:href",r),a.appendChild(s),a},createLabel:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},i=Ue(e,this.config),n=s({},t,{class:[t.class,this.config.classNames.hidden].filter(Boolean).join(" ")});return oe("span",n,i)},createBadge:function(e){if(Z(e))return null;var t=oe("span",{class:this.config.classNames.menu.value});return t.appendChild(oe("span",{class:this.config.classNames.menu.badge},e)),t},createButton:function(e,t){var i=this,n=ae({},t),a=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",t=e.toString();return(t=Re(t)).charAt(0).toLowerCase()+t.slice(1)}(e),s={element:"button",toggle:!1,label:null,icon:null,labelPressed:null,iconPressed:null};switch(["element","icon","label"].forEach((function(e){Object.keys(n).includes(e)&&(s[e]=n[e],delete n[e])})),"button"!==s.element||Object.keys(n).includes("type")||(n.type="button"),Object.keys(n).includes("class")?n.class.split(" ").some((function(e){return e===i.config.classNames.control}))||ae(n,{class:"".concat(n.class," ").concat(this.config.classNames.control)}):n.class=this.config.classNames.control,e){case"play":s.toggle=!0,s.label="play",s.labelPressed="pause",s.icon="play",s.iconPressed="pause";break;case"mute":s.toggle=!0,s.label="mute",s.labelPressed="unmute",s.icon="volume",s.iconPressed="muted";break;case"captions":s.toggle=!0,s.label="enableCaptions",s.labelPressed="disableCaptions",s.icon="captions-off",s.iconPressed="captions-on";break;case"fullscreen":s.toggle=!0,s.label="enterFullscreen",s.labelPressed="exitFullscreen",s.icon="enter-fullscreen",s.iconPressed="exit-fullscreen";break;case"play-large":n.class+=" ".concat(this.config.classNames.control,"--overlaid"),a="play",s.label="play",s.icon="play";break;default:Z(s.label)&&(s.label=a),Z(s.icon)&&(s.icon=e)}var r=oe(s.element);return s.toggle?(r.appendChild($e.createIcon.call(this,s.iconPressed,{class:"icon--pressed"})),r.appendChild($e.createIcon.call(this,s.icon,{class:"icon--not-pressed"})),r.appendChild($e.createLabel.call(this,s.labelPressed,{class:"label--pressed"})),r.appendChild($e.createLabel.call(this,s.label,{class:"label--not-pressed"}))):(r.appendChild($e.createIcon.call(this,s.icon)),r.appendChild($e.createLabel.call(this,s.label))),ae(n,he(this.config.selectors.buttons[a],n)),re(r,n),"play"===a?(K(this.elements.buttons[a])||(this.elements.buttons[a]=[]),this.elements.buttons[a].push(r)):this.elements.buttons[a]=r,r},createRange:function(e,t){var i=oe("input",ae(he(this.config.selectors.inputs[e]),{type:"range",min:0,max:100,step:.01,value:0,autocomplete:"off",role:"slider","aria-label":Ue(e,this.config),"aria-valuemin":0,"aria-valuemax":100,"aria-valuenow":0},t));return this.elements.inputs[e]=i,$e.updateRangeFill.call(this,i),I.setup(i),i},createProgress:function(e,t){var i=oe("progress",ae(he(this.config.selectors.display[e]),{min:0,max:100,value:0,role:"progressbar","aria-hidden":!0},t));if("volume"!==e){i.appendChild(oe("span",null,"0"));var n={played:"played",buffer:"buffered"}[e],a=n?Ue(n,this.config):"";i.innerText="% ".concat(a.toLowerCase())}return this.elements.display[e]=i,i},createTime:function(e,t){var i=he(this.config.selectors.display[e],t),n=oe("div",ae(i,{class:"".concat(i.class?i.class:""," ").concat(this.config.classNames.display.time," ").trim(),"aria-label":Ue(e,this.config)}),"00:00");return this.elements.display[e]=n,n},bindMenuItemShortcuts:function(e,t){var i=this;Pe.call(this,e,"keydown keyup",(function(n){if([32,38,39,40].includes(n.which)&&(n.preventDefault(),n.stopPropagation(),"keydown"!==n.type)){var a,s=ge(e,'[role="menuitemradio"]');if(!s&&[32,39].includes(n.which))$e.showMenuPanel.call(i,t,!0);else 32!==n.which&&(40===n.which||s&&39===n.which?(a=e.nextElementSibling,Q(a)||(a=e.parentNode.firstElementChild)):(a=e.previousElementSibling,Q(a)||(a=e.parentNode.lastElementChild)),be.call(i,a,!0))}}),!1),Pe.call(this,e,"keyup",(function(e){13===e.which&&$e.focusFirstMenuItem.call(i,null,!0)}))},createMenuItem:function(e){var t=this,i=e.value,n=e.list,a=e.type,s=e.title,r=e.badge,o=void 0===r?null:r,l=e.checked,c=void 0!==l&&l,u=he(this.config.selectors.inputs[a]),d=oe("button",ae(u,{type:"button",role:"menuitemradio",class:"".concat(this.config.classNames.control," ").concat(u.class?u.class:"").trim(),"aria-checked":c,value:i})),h=oe("span");h.innerHTML=s,Q(o)&&h.appendChild(o),d.appendChild(h),Object.defineProperty(d,"checked",{enumerable:!0,get:function(){return"true"===d.getAttribute("aria-checked")},set:function(e){e&&Array.from(d.parentNode.children).filter((function(e){return ge(e,'[role="menuitemradio"]')})).forEach((function(e){return e.setAttribute("aria-checked","false")})),d.setAttribute("aria-checked",e?"true":"false")}}),this.listeners.bind(d,"click keyup",(function(e){if(!J(e)||32===e.which){switch(e.preventDefault(),e.stopPropagation(),d.checked=!0,a){case"language":t.currentTrack=Number(i);break;case"quality":t.quality=i;break;case"speed":t.speed=parseFloat(i)}$e.showMenuPanel.call(t,"home",J(e))}}),a,!1),$e.bindMenuItemShortcuts.call(this,d,a),n.appendChild(d)},formatTime:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if(!B(e))return e;var i=Ye(this.duration)>0;return Je(e,i,t)},updateTimeDisplay:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,i=arguments.length>2&&void 0!==arguments[2]&&arguments[2];Q(e)&&B(t)&&(e.innerText=$e.formatTime(t,i))},updateVolume:function(){this.supported.ui&&(Q(this.elements.inputs.volume)&&$e.setRange.call(this,this.elements.inputs.volume,this.muted?0:this.volume),Q(this.elements.buttons.mute)&&(this.elements.buttons.mute.pressed=this.muted||0===this.volume))},setRange:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;Q(e)&&(e.value=t,$e.updateRangeFill.call(this,e))},updateProgress:function(e){var t=this;if(this.supported.ui&&X(e)){var i,n,a=0;if(e)switch(e.type){case"timeupdate":case"seeking":case"seeked":i=this.currentTime,n=this.duration,a=0===i||0===n||Number.isNaN(i)||Number.isNaN(n)?0:(i/n*100).toFixed(2),"timeupdate"===e.type&&$e.setRange.call(this,this.elements.inputs.seek,a);break;case"playing":case"progress":!function(e,i){var n=B(i)?i:0,a=Q(e)?e:t.elements.display.buffer;if(Q(a)){a.value=n;var s=a.getElementsByTagName("span")[0];Q(s)&&(s.childNodes[0].nodeValue=n)}}(this.elements.display.buffer,100*this.buffered)}}},updateRangeFill:function(e){var t=X(e)?e.target:e;if(Q(t)&&"range"===t.getAttribute("type")){if(ge(t,this.config.selectors.inputs.seek)){t.setAttribute("aria-valuenow",this.currentTime);var i=$e.formatTime(this.currentTime),n=$e.formatTime(this.duration),a=Ue("seekLabel",this.config);t.setAttribute("aria-valuetext",a.replace("{currentTime}",i).replace("{duration}",n))}else if(ge(t,this.config.selectors.inputs.volume)){var s=100*t.value;t.setAttribute("aria-valuenow",s),t.setAttribute("aria-valuetext","".concat(s.toFixed(1),"%"))}else t.setAttribute("aria-valuenow",t.value);ie.isWebkit&&t.style.setProperty("--value","".concat(t.value/t.max*100,"%"))}},updateSeekTooltip:function(e){var t=this;if(this.config.tooltips.seek&&Q(this.elements.inputs.seek)&&Q(this.elements.display.seekTooltip)&&0!==this.duration){var i="".concat(this.config.classNames.tooltip,"--visible"),n=function(e){return me(t.elements.display.seekTooltip,i,e)};if(this.touch)n(!1);else{var a=0,s=this.elements.progress.getBoundingClientRect();if(X(e))a=100/s.width*(e.pageX-s.left);else{if(!fe(this.elements.display.seekTooltip,i))return;a=parseFloat(this.elements.display.seekTooltip.style.left,10)}a<0?a=0:a>100&&(a=100),$e.updateTimeDisplay.call(this,this.elements.display.seekTooltip,this.duration/100*a),this.elements.display.seekTooltip.style.left="".concat(a,"%"),X(e)&&["mouseenter","mouseleave"].includes(e.type)&&n("mouseenter"===e.type)}}},timeUpdate:function(e){var t=!Q(this.elements.display.duration)&&this.config.invertTime;$e.updateTimeDisplay.call(this,this.elements.display.currentTime,t?this.duration-this.currentTime:this.currentTime,t),e&&"timeupdate"===e.type&&this.media.seeking||$e.updateProgress.call(this,e)},durationUpdate:function(){if(this.supported.ui&&(this.config.invertTime||!this.currentTime)){if(this.duration>=Math.pow(2,32))return pe(this.elements.display.currentTime,!0),void pe(this.elements.progress,!0);Q(this.elements.inputs.seek)&&this.elements.inputs.seek.setAttribute("aria-valuemax",this.duration);var e=Q(this.elements.display.duration);!e&&this.config.displayDuration&&this.paused&&$e.updateTimeDisplay.call(this,this.elements.display.currentTime,this.duration),e&&$e.updateTimeDisplay.call(this,this.elements.display.duration,this.duration),$e.updateSeekTooltip.call(this)}},toggleMenuButton:function(e,t){pe(this.elements.settings.buttons[e],!t)},updateSetting:function(e,t,i){var n=this.elements.settings.panels[e],a=null,s=t;if("captions"===e)a=this.currentTrack;else{if(a=Z(i)?this[e]:i,Z(a)&&(a=this.config[e].default),!Z(this.options[e])&&!this.options[e].includes(a))return void this.debug.warn("Unsupported value of '".concat(a,"' for ").concat(e));if(!this.config[e].options.includes(a))return void this.debug.warn("Disabled value of '".concat(a,"' for ").concat(e))}if(Q(s)||(s=n&&n.querySelector('[role="menu"]')),Q(s)){this.elements.settings.buttons[e].querySelector(".".concat(this.config.classNames.menu.value)).innerHTML=$e.getLabel.call(this,e,a);var r=s&&s.querySelector('[value="'.concat(a,'"]'));Q(r)&&(r.checked=!0)}},getLabel:function(e,t){switch(e){case"speed":return 1===t?Ue("normal",this.config):"".concat(t,"×");case"quality":if(B(t)){var i=Ue("qualityLabel.".concat(t),this.config);return i.length?i:"".concat(t,"p")}return Fe(t);case"captions":return et.getLabel.call(this);default:return null}},setQualityMenu:function(e){var t=this;if(Q(this.elements.settings.panels.quality)){var i=this.elements.settings.panels.quality.querySelector('[role="menu"]');K(e)&&(this.options.quality=qe(e).filter((function(e){return t.config.quality.options.includes(e)})));var n=!Z(this.options.quality)&&this.options.quality.length>1;if($e.toggleMenuButton.call(this,"quality",n),ue(i),$e.checkMenu.call(this),n){var a=function(e){var i=Ue("qualityBadge.".concat(e),t.config);return i.length?$e.createBadge.call(t,i):null};this.options.quality.sort((function(e,i){var n=t.config.quality.options;return n.indexOf(e)>n.indexOf(i)?1:-1})).forEach((function(e){$e.createMenuItem.call(t,{value:e,list:i,type:"quality",title:$e.getLabel.call(t,"quality",e),badge:a(e)})})),$e.updateSetting.call(this,"quality",i)}}},setCaptionsMenu:function(){var e=this;if(Q(this.elements.settings.panels.captions)){var t=this.elements.settings.panels.captions.querySelector('[role="menu"]'),i=et.getTracks.call(this),n=Boolean(i.length);if($e.toggleMenuButton.call(this,"captions",n),ue(t),$e.checkMenu.call(this),n){var a=i.map((function(i,n){return{value:n,checked:e.captions.toggled&&e.currentTrack===n,title:et.getLabel.call(e,i),badge:i.language&&$e.createBadge.call(e,i.language.toUpperCase()),list:t,type:"language"}}));a.unshift({value:-1,checked:!this.captions.toggled,title:Ue("disabled",this.config),list:t,type:"language"}),a.forEach($e.createMenuItem.bind(this)),$e.updateSetting.call(this,"captions",t)}}},setSpeedMenu:function(){var e=this;if(Q(this.elements.settings.panels.speed)){var t=this.elements.settings.panels.speed.querySelector('[role="menu"]');this.options.speed=this.options.speed.filter((function(t){return t>=e.minimumSpeed&&t<=e.maximumSpeed}));var i=!Z(this.options.speed)&&this.options.speed.length>1;$e.toggleMenuButton.call(this,"speed",i),ue(t),$e.checkMenu.call(this),i&&(this.options.speed.forEach((function(i){$e.createMenuItem.call(e,{value:i,list:t,type:"speed",title:$e.getLabel.call(e,"speed",i)})})),$e.updateSetting.call(this,"speed",t))}},checkMenu:function(){var e=this.elements.settings.buttons,t=!Z(e)&&Object.values(e).some((function(e){return!e.hidden}));pe(this.elements.settings.menu,!t)},focusFirstMenuItem:function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if(!this.elements.settings.popup.hidden){var i=e;Q(i)||(i=Object.values(this.elements.settings.panels).find((function(e){return!e.hidden})));var n=i.querySelector('[role^="menuitem"]');be.call(this,n,t)}},toggleMenu:function(e){var t=this.elements.settings.popup,i=this.elements.buttons.settings;if(Q(t)&&Q(i)){var n=t.hidden,a=n;if(W(e))a=e;else if(J(e)&&27===e.which)a=!1;else if(X(e)){var s=z(e.composedPath)?e.composedPath()[0]:e.target,r=t.contains(s);if(r||!r&&e.target!==i&&a)return}i.setAttribute("aria-expanded",a),pe(t,!a),me(this.elements.container,this.config.classNames.menu.open,a),a&&J(e)?$e.focusFirstMenuItem.call(this,null,!0):a||n||be.call(this,i,J(e))}},getMenuSize:function(e){var t=e.cloneNode(!0);t.style.position="absolute",t.style.opacity=0,t.removeAttribute("hidden"),e.parentNode.appendChild(t);var i=t.scrollWidth,n=t.scrollHeight;return ce(t),{width:i,height:n}},showMenuPanel:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",i=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=this.elements.container.querySelector("#plyr-settings-".concat(this.id,"-").concat(t));if(Q(n)){var a=n.parentNode,s=Array.from(a.children).find((function(e){return!e.hidden}));if(Te.transitions&&!Te.reducedMotion){a.style.width="".concat(s.scrollWidth,"px"),a.style.height="".concat(s.scrollHeight,"px");var r=$e.getMenuSize.call(this,n),o=function t(i){i.target===a&&["width","height"].includes(i.propertyName)&&(a.style.width="",a.style.height="",Se.call(e,a,ee,t))};Pe.call(this,a,ee,o),a.style.width="".concat(r.width,"px"),a.style.height="".concat(r.height,"px")}pe(s,!0),pe(n,!1),$e.focusFirstMenuItem.call(this,n,i)}},setDownloadUrl:function(){var e=this.elements.buttons.download;Q(e)&&e.setAttribute("href",this.download)},create:function(e){var t=this,i=$e.bindMenuItemShortcuts,n=$e.createButton,a=$e.createProgress,s=$e.createRange,r=$e.createTime,o=$e.setQualityMenu,l=$e.setSpeedMenu,c=$e.showMenuPanel;this.elements.controls=null,this.config.controls.includes("play-large")&&this.elements.container.appendChild(n.call(this,"play-large"));var u=oe("div",he(this.config.selectors.controls.wrapper));this.elements.controls=u;var d={class:"plyr__controls__item"};return qe(this.config.controls).forEach((function(o){if("restart"===o&&u.appendChild(n.call(t,"restart",d)),"rewind"===o&&u.appendChild(n.call(t,"rewind",d)),"play"===o&&u.appendChild(n.call(t,"play",d)),"fast-forward"===o&&u.appendChild(n.call(t,"fast-forward",d)),"progress"===o){var l=oe("div",{class:"".concat(d.class," plyr__progress__container")}),h=oe("div",he(t.config.selectors.progress));if(h.appendChild(s.call(t,"seek",{id:"plyr-seek-".concat(e.id)})),h.appendChild(a.call(t,"buffer")),t.config.tooltips.seek){var p=oe("span",{class:t.config.classNames.tooltip},"00:00");h.appendChild(p),t.elements.display.seekTooltip=p}t.elements.progress=h,l.appendChild(t.elements.progress),u.appendChild(l)}if("current-time"===o&&u.appendChild(r.call(t,"currentTime",d)),"duration"===o&&u.appendChild(r.call(t,"duration",d)),"mute"===o||"volume"===o){var m=t.elements.volume;if(Q(m)&&u.contains(m)||(m=oe("div",ae({},d,{class:"".concat(d.class," plyr__volume").trim()})),t.elements.volume=m,u.appendChild(m)),"mute"===o&&m.appendChild(n.call(t,"mute")),"volume"===o&&!ie.isIos){var f={max:1,step:.05,value:t.config.volume};m.appendChild(s.call(t,"volume",ae(f,{id:"plyr-volume-".concat(e.id)})))}}if("captions"===o&&u.appendChild(n.call(t,"captions",d)),"settings"===o&&!Z(t.config.settings)){var g=oe("div",ae({},d,{class:"".concat(d.class," plyr__menu").trim(),hidden:""}));g.appendChild(n.call(t,"settings",{"aria-haspopup":!0,"aria-controls":"plyr-settings-".concat(e.id),"aria-expanded":!1}));var y=oe("div",{class:"plyr__menu__container",id:"plyr-settings-".concat(e.id),hidden:""}),v=oe("div"),b=oe("div",{id:"plyr-settings-".concat(e.id,"-home")}),w=oe("div",{role:"menu"});b.appendChild(w),v.appendChild(b),t.elements.settings.panels.home=b,t.config.settings.forEach((function(n){var a=oe("button",ae(he(t.config.selectors.buttons.settings),{type:"button",class:"".concat(t.config.classNames.control," ").concat(t.config.classNames.control,"--forward"),role:"menuitem","aria-haspopup":!0,hidden:""}));i.call(t,a,n),Pe.call(t,a,"click",(function(){c.call(t,n,!1)}));var s=oe("span",null,Ue(n,t.config)),r=oe("span",{class:t.config.classNames.menu.value});r.innerHTML=e[n],s.appendChild(r),a.appendChild(s),w.appendChild(a);var o=oe("div",{id:"plyr-settings-".concat(e.id,"-").concat(n),hidden:""}),l=oe("button",{type:"button",class:"".concat(t.config.classNames.control," ").concat(t.config.classNames.control,"--back")});l.appendChild(oe("span",{"aria-hidden":!0},Ue(n,t.config))),l.appendChild(oe("span",{class:t.config.classNames.hidden},Ue("menuBack",t.config))),Pe.call(t,o,"keydown",(function(e){37===e.which&&(e.preventDefault(),e.stopPropagation(),c.call(t,"home",!0))}),!1),Pe.call(t,l,"click",(function(){c.call(t,"home",!1)})),o.appendChild(l),o.appendChild(oe("div",{role:"menu"})),v.appendChild(o),t.elements.settings.buttons[n]=a,t.elements.settings.panels[n]=o})),y.appendChild(v),g.appendChild(y),u.appendChild(g),t.elements.settings.popup=y,t.elements.settings.menu=g}if("pip"===o&&Te.pip&&u.appendChild(n.call(t,"pip",d)),"airplay"===o&&Te.airplay&&u.appendChild(n.call(t,"airplay",d)),"download"===o){var k=ae({},d,{element:"a",href:t.download,target:"_blank"});t.isHTML5&&(k.download="");var T=t.config.urls.download;!G(T)&&t.isEmbed&&ae(k,{icon:"logo-".concat(t.provider),label:t.provider}),u.appendChild(n.call(t,"download",k))}"fullscreen"===o&&u.appendChild(n.call(t,"fullscreen",d))})),this.isHTML5&&o.call(this,je.getQualityOptions.call(this)),l.call(this),u},inject:function(){var e=this;if(this.config.loadSprite){var t=$e.getIconUrl.call(this);t.cors&&Ke(t.url,"sprite-plyr")}this.id=Math.floor(1e4*Math.random());var i=null;this.elements.controls=null;var n={id:this.id,seektime:this.config.seekTime,title:this.config.title},a=!0;z(this.config.controls)&&(this.config.controls=this.config.controls.call(this,n)),this.config.controls||(this.config.controls=[]),Q(this.config.controls)||U(this.config.controls)?i=this.config.controls:(i=$e.create.call(this,{id:this.id,seektime:this.config.seekTime,speed:this.speed,quality:this.quality,captions:et.getLabel.call(this)}),a=!1);var s,o=function(e){var t=e;return Object.entries(n).forEach((function(e){var i=r(e,2),n=i[0],a=i[1];t=He(t,"{".concat(n,"}"),a)})),t};if(a&&(U(this.config.controls)?i=o(i):Q(i)&&(i.innerHTML=o(i.innerHTML))),U(this.config.selectors.controls.container)&&(s=document.querySelector(this.config.selectors.controls.container)),Q(s)||(s=this.elements.container),s[Q(i)?"insertAdjacentElement":"insertAdjacentHTML"]("afterbegin",i),Q(this.elements.controls)||$e.findElements.call(this),!Z(this.elements.buttons)){var l=function(t){var i=e.config.classNames.controlPressed;Object.defineProperty(t,"pressed",{enumerable:!0,get:function(){return fe(t,i)},set:function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];me(t,i,e)}})};Object.values(this.elements.buttons).filter(Boolean).forEach((function(e){K(e)||Y(e)?Array.from(e).filter(Boolean).forEach(l):l(e)}))}if(ie.isEdge&&te(s),this.config.tooltips.controls){var c=this.config,u=c.classNames,d=c.selectors,h="".concat(d.controls.wrapper," ").concat(d.labels," .").concat(u.hidden),p=ye.call(this,h);Array.from(p).forEach((function(t){me(t,e.config.classNames.hidden,!1),me(t,e.config.classNames.tooltip,!0)}))}}};function Ge(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],i=e;if(t){var n=document.createElement("a");n.href=i,i=n.href}try{return new URL(i)}catch(e){return null}}function Ze(e){var t=new URLSearchParams;return V(e)&&Object.entries(e).forEach((function(e){var i=r(e,2),n=i[0],a=i[1];t.set(n,a)})),t}var et={setup:function(){if(this.supported.ui)if(!this.isVideo||this.isYouTube||this.isHTML5&&!Te.textTracks)K(this.config.controls)&&this.config.controls.includes("settings")&&this.config.settings.includes("captions")&&$e.setCaptionsMenu.call(this);else{if(Q(this.elements.captions)||(this.elements.captions=oe("div",he(this.config.selectors.captions)),function(e,t){Q(e)&&Q(t)&&t.parentNode.insertBefore(e,t.nextSibling)}(this.elements.captions,this.elements.wrapper)),ie.isIE&&window.URL){var e=this.media.querySelectorAll("track");Array.from(e).forEach((function(e){var t=e.getAttribute("src"),i=Ge(t);null!==i&&i.hostname!==window.location.href.hostname&&["http:","https:"].includes(i.protocol)&&ze(t,"blob").then((function(t){e.setAttribute("src",window.URL.createObjectURL(t))})).catch((function(){ce(e)}))}))}var t=qe((navigator.languages||[navigator.language||navigator.userLanguage||"en"]).map((function(e){return e.split("-")[0]}))),i=(this.storage.get("language")||this.config.captions.language||"auto").toLowerCase();if("auto"===i)i=r(t,1)[0];var n=this.storage.get("captions");if(W(n)||(n=this.config.captions.active),Object.assign(this.captions,{toggled:!1,active:n,language:i,languages:t}),this.isHTML5){var a=this.config.captions.update?"addtrack removetrack":"removetrack";Pe.call(this,this.media.textTracks,a,et.update.bind(this))}setTimeout(et.update.bind(this),0)}},update:function(){var e=this,t=et.getTracks.call(this,!0),i=this.captions,n=i.active,a=i.language,s=i.meta,r=i.currentTrackNode,o=Boolean(t.find((function(e){return e.language===a})));this.isHTML5&&this.isVideo&&t.filter((function(e){return!s.get(e)})).forEach((function(t){e.debug.log("Track added",t),s.set(t,{default:"showing"===t.mode}),t.mode="hidden",Pe.call(e,t,"cuechange",(function(){return et.updateCues.call(e)}))})),(o&&this.language!==a||!t.includes(r))&&(et.setLanguage.call(this,a),et.toggle.call(this,n&&o)),me(this.elements.container,this.config.classNames.captions.enabled,!Z(t)),(this.config.controls||[]).includes("settings")&&this.config.settings.includes("captions")&&$e.setCaptionsMenu.call(this)},toggle:function(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];if(this.supported.ui){var i=this.captions.toggled,n=this.config.classNames.captions.active,a=R(e)?!i:e;if(a!==i){if(t||(this.captions.active=a,this.storage.set({captions:a})),!this.language&&a&&!t){var s=et.getTracks.call(this),r=et.findTrack.call(this,[this.captions.language].concat(o(this.captions.languages)),!0);return this.captions.language=r.language,void et.set.call(this,s.indexOf(r))}this.elements.buttons.captions&&(this.elements.buttons.captions.pressed=a),me(this.elements.container,n,a),this.captions.toggled=a,$e.updateSetting.call(this,"captions"),Me.call(this,this.media,a?"captionsenabled":"captionsdisabled")}}},set:function(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],i=et.getTracks.call(this);if(-1!==e)if(B(e))if(e in i){if(this.captions.currentTrack!==e){this.captions.currentTrack=e;var n=i[e],a=n||{},s=a.language;this.captions.currentTrackNode=n,$e.updateSetting.call(this,"captions"),t||(this.captions.language=s,this.storage.set({language:s})),this.isVimeo&&this.embed.enableTextTrack(s),Me.call(this,this.media,"languagechange")}et.toggle.call(this,!0,t),this.isHTML5&&this.isVideo&&et.updateCues.call(this)}else this.debug.warn("Track not found",e);else this.debug.warn("Invalid caption argument",e);else et.toggle.call(this,!1,t)},setLanguage:function(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];if(U(e)){var i=e.toLowerCase();this.captions.language=i;var n=et.getTracks.call(this),a=et.findTrack.call(this,[i]);et.set.call(this,n.indexOf(a),t)}else this.debug.warn("Invalid language argument",e)},getTracks:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]&&arguments[0],i=Array.from((this.media||{}).textTracks||[]);return i.filter((function(i){return!e.isHTML5||t||e.captions.meta.has(i)})).filter((function(e){return["captions","subtitles"].includes(e.kind)}))},findTrack:function(e){var t,i=this,n=arguments.length>1&&void 0!==arguments[1]&&arguments[1],a=et.getTracks.call(this),s=function(e){return Number((i.captions.meta.get(e)||{}).default)},r=Array.from(a).sort((function(e,t){return s(t)-s(e)}));return e.every((function(e){return!(t=r.find((function(t){return t.language===e})))})),t||(n?r[0]:void 0)},getCurrentTrack:function(){return et.getTracks.call(this)[this.currentTrack]},getLabel:function(e){var t=e;return!$(t)&&Te.textTracks&&this.captions.toggled&&(t=et.getCurrentTrack.call(this)),$(t)?Z(t.label)?Z(t.language)?Ue("enabled",this.config):e.language.toUpperCase():t.label:Ue("disabled",this.config)},updateCues:function(e){if(this.supported.ui)if(Q(this.elements.captions))if(R(e)||Array.isArray(e)){var t=e;if(!t){var i=et.getCurrentTrack.call(this);t=Array.from((i||{}).activeCues||[]).map((function(e){return e.getCueAsHTML()})).map(Ve)}var n=t.map((function(e){return e.trim()})).join("\n");if(n!==this.elements.captions.innerHTML){ue(this.elements.captions);var a=oe("span",he(this.config.selectors.caption));a.innerHTML=n,this.elements.captions.appendChild(a),Me.call(this,this.media,"cuechange")}}else this.debug.warn("updateCues: Invalid input",e);else this.debug.warn("No captions element to render to")}},tt={enabled:!0,title:"",debug:!1,autoplay:!1,autopause:!0,playsinline:!0,seekTime:10,volume:1,muted:!1,duration:null,displayDuration:!0,invertTime:!0,toggleInvert:!0,ratio:null,clickToPlay:!0,hideControls:!0,resetOnEnd:!1,disableContextMenu:!0,loadSprite:!0,iconPrefix:"plyr",iconUrl:"/theme/modules/plyr/plyr.svg",blankVideo:"/theme/modules/plyr/blank.webm",quality:{default:576,options:[4320,2880,2160,1440,1080,720,576,480,360,240],forced:!1,onChange:null},loop:{active:!1},speed:{selected:1,options:[.5,.75,1,1.25,1.5,1.75,2,4]},keyboard:{focused:!0,global:!1},tooltips:{controls:!1,seek:!0},captions:{active:!1,language:"auto",update:!1},fullscreen:{enabled:!0,fallback:!0,iosNative:!1},storage:{enabled:!0,key:"plyr"},controls:["play-large","play","progress","current-time","mute","volume","captions","settings","pip","airplay","fullscreen"],settings:["captions","quality","speed"],i18n:{restart:"Restart",rewind:"Rewind {seektime}s",play:"Play",pause:"Pause",fastForward:"Forward {seektime}s",seek:"Seek",seekLabel:"{currentTime} of {duration}",played:"Played",buffered:"Buffered",currentTime:"Current time",duration:"Duration",volume:"Volume",mute:"Mute",unmute:"Unmute",enableCaptions:"Enable captions",disableCaptions:"Disable captions",download:"Download",enterFullscreen:"Enter fullscreen",exitFullscreen:"Exit fullscreen",frameTitle:"Player for {title}",captions:"Captions",settings:"Settings",pip:"PIP",menuBack:"Go back to previous menu",speed:"Speed",normal:"Normal",quality:"Quality",loop:"Loop",start:"Start",end:"End",all:"All",reset:"Reset",disabled:"Disabled",enabled:"Enabled",advertisement:"Ad",qualityBadge:{2160:"4K",1440:"HD",1080:"HD",720:"HD",576:"SD",480:"SD"}},urls:{download:null,vimeo:{sdk:"https://player.vimeo.com/api/player.js",iframe:"https://player.vimeo.com/video/{0}?{1}",api:"https://vimeo.com/api/v2/video/{0}.json"},youtube:{sdk:"https://www.youtube.com/iframe_api",api:"https://noembed.com/embed?url=https://www.youtube.com/watch?v={0}"},googleIMA:{sdk:"https://imasdk.googleapis.com/js/sdkloader/ima3.js"}},listeners:{seek:null,play:null,pause:null,restart:null,rewind:null,fastForward:null,mute:null,volume:null,captions:null,download:null,fullscreen:null,pip:null,airplay:null,speed:null,quality:null,loop:null,language:null},events:["ended","progress","stalled","playing","waiting","canplay","canplaythrough","loadstart","loadeddata","loadedmetadata","timeupdate","volumechange","play","pause","error","seeking","seeked","emptied","ratechange","cuechange","download","enterfullscreen","exitfullscreen","captionsenabled","captionsdisabled","languagechange","controlshidden","controlsshown","ready","statechange","qualitychange","adsloaded","adscontentpause","adscontentresume","adstarted","adsmidpoint","adscomplete","adsallcomplete","adsimpression","adsclick"],selectors:{editable:"input, textarea, select, [contenteditable]",container:".plyr",controls:{container:null,wrapper:".plyr__controls"},labels:"[data-plyr]",buttons:{play:'[data-plyr="play"]',pause:'[data-plyr="pause"]',restart:'[data-plyr="restart"]',rewind:'[data-plyr="rewind"]',fastForward:'[data-plyr="fast-forward"]',mute:'[data-plyr="mute"]',captions:'[data-plyr="captions"]',download:'[data-plyr="download"]',fullscreen:'[data-plyr="fullscreen"]',pip:'[data-plyr="pip"]',airplay:'[data-plyr="airplay"]',settings:'[data-plyr="settings"]',loop:'[data-plyr="loop"]'},inputs:{seek:'[data-plyr="seek"]',volume:'[data-plyr="volume"]',speed:'[data-plyr="speed"]',language:'[data-plyr="language"]',quality:'[data-plyr="quality"]'},display:{currentTime:".plyr__time--current",duration:".plyr__time--duration",buffer:".plyr__progress__buffer",loop:".plyr__progress__loop",volume:".plyr__volume--display"},progress:".plyr__progress",captions:".plyr__captions",caption:".plyr__caption"},classNames:{type:"plyr--{0}",provider:"plyr--{0}",video:"plyr__video-wrapper",embed:"plyr__video-embed",videoFixedRatio:"plyr__video-wrapper--fixed-ratio",embedContainer:"plyr__video-embed__container",poster:"plyr__poster",posterEnabled:"plyr__poster-enabled",ads:"plyr__ads",control:"plyr__control",controlPressed:"plyr__control--pressed",playing:"plyr--playing",paused:"plyr--paused",stopped:"plyr--stopped",loading:"plyr--loading",hover:"plyr--hover",tooltip:"plyr__tooltip",cues:"plyr__cues",hidden:"plyr__sr-only",hideControls:"plyr--hide-controls",isIos:"plyr--is-ios",isTouch:"plyr--is-touch",uiSupported:"plyr--full-ui",noTransition:"plyr--no-transition",display:{time:"plyr__time"},menu:{value:"plyr__menu__value",badge:"plyr__badge",open:"plyr--menu-open"},captions:{enabled:"plyr--captions-enabled",active:"plyr--captions-active"},fullscreen:{enabled:"plyr--fullscreen-enabled",fallback:"plyr--fullscreen-fallback"},pip:{supported:"plyr--pip-supported",active:"plyr--pip-active"},airplay:{supported:"plyr--airplay-supported",active:"plyr--airplay-active"},tabFocus:"plyr__tab-focus",previewThumbnails:{thumbContainer:"plyr__preview-thumb",thumbContainerShown:"plyr__preview-thumb--is-shown",imageContainer:"plyr__preview-thumb__image-container",timeContainer:"plyr__preview-thumb__time-container",scrubbingContainer:"plyr__preview-scrubbing",scrubbingContainerShown:"plyr__preview-scrubbing--is-shown"}},attributes:{embed:{provider:"data-plyr-provider",id:"data-plyr-embed-id"}},ads:{enabled:!1,publisherId:"",tagUrl:""},previewThumbnails:{enabled:!1,src:""},vimeo:{byline:!1,portrait:!1,title:!1,speed:!0,transparent:!1,sidedock:!1,controls:!1,referrerPolicy:null},youtube:{noCookie:!1,rel:0,showinfo:0,iv_load_policy:3,modestbranding:1}},it="picture-in-picture",nt="inline",at={html5:"html5",youtube:"youtube",vimeo:"vimeo"},st="audio",rt="video";var ot=function(){},lt=function(){function t(){var i=arguments.length>0&&void 0!==arguments[0]&&arguments[0];e(this,t),this.enabled=window.console&&i,this.enabled&&this.log("Debugging enabled")}return i(t,[{key:"log",get:function(){return this.enabled?Function.prototype.bind.call(console.log,console):ot}},{key:"warn",get:function(){return this.enabled?Function.prototype.bind.call(console.warn,console):ot}},{key:"error",get:function(){return this.enabled?Function.prototype.bind.call(console.error,console):ot}}]),t}(),ct=function(){function t(i){var n=this;e(this,t),this.player=i,this.prefix=t.prefix,this.property=t.property,this.scrollPosition={x:0,y:0},this.forceFallback="force"===i.config.fullscreen.fallback,Pe.call(this.player,document,"ms"===this.prefix?"MSFullscreenChange":"".concat(this.prefix,"fullscreenchange"),(function(){n.onChange()})),Pe.call(this.player,this.player.elements.container,"dblclick",(function(e){Q(n.player.elements.controls)&&n.player.elements.controls.contains(e.target)||n.toggle()})),Pe.call(this,this.player.elements.container,"keydown",(function(e){return n.trapFocus(e)})),this.update()}return i(t,[{key:"onChange",value:function(){if(this.enabled){var e=this.player.elements.buttons.fullscreen;Q(e)&&(e.pressed=this.active),Me.call(this.player,this.target,this.active?"enterfullscreen":"exitfullscreen",!0)}}},{key:"toggleFallback",value:function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];if(e?this.scrollPosition={x:window.scrollX||0,y:window.scrollY||0}:window.scrollTo(this.scrollPosition.x,this.scrollPosition.y),document.body.style.overflow=e?"hidden":"",me(this.target,this.player.config.classNames.fullscreen.fallback,e),ie.isIos){var t=document.head.querySelector('meta[name="viewport"]'),i="viewport-fit=cover";t||(t=document.createElement("meta")).setAttribute("name","viewport");var n=U(t.content)&&t.content.includes(i);e?(this.cleanupViewport=!n,n||(t.content+=",".concat(i))):this.cleanupViewport&&(t.content=t.content.split(",").filter((function(e){return e.trim()!==i})).join(","))}this.onChange()}},{key:"trapFocus",value:function(e){if(!ie.isIos&&this.active&&"Tab"===e.key&&9===e.keyCode){var t=document.activeElement,i=ye.call(this.player,"a[href], button:not(:disabled), input:not(:disabled), [tabindex]"),n=r(i,1)[0],a=i[i.length-1];t!==a||e.shiftKey?t===n&&e.shiftKey&&(a.focus(),e.preventDefault()):(n.focus(),e.preventDefault())}}},{key:"update",value:function(){var e;this.enabled?(e=this.forceFallback?"Fallback (forced)":t.native?"Native":"Fallback",this.player.debug.log("".concat(e," fullscreen enabled"))):this.player.debug.log("Fullscreen not supported and fallback disabled");me(this.player.elements.container,this.player.config.classNames.fullscreen.enabled,this.enabled)}},{key:"enter",value:function(){this.enabled&&(ie.isIos&&this.player.config.fullscreen.iosNative?this.target.webkitEnterFullscreen():!t.native||this.forceFallback?this.toggleFallback(!0):this.prefix?Z(this.prefix)||this.target["".concat(this.prefix,"Request").concat(this.property)]():this.target.requestFullscreen({navigationUI:"hide"}))}},{key:"exit",value:function(){if(this.enabled)if(ie.isIos&&this.player.config.fullscreen.iosNative)this.target.webkitExitFullscreen(),this.player.play();else if(!t.native||this.forceFallback)this.toggleFallback(!1);else if(this.prefix){if(!Z(this.prefix)){var e="moz"===this.prefix?"Cancel":"Exit";document["".concat(this.prefix).concat(e).concat(this.property)]()}}else(document.cancelFullScreen||document.exitFullscreen).call(document)}},{key:"toggle",value:function(){this.active?this.exit():this.enter()}},{key:"usingNative",get:function(){return t.native&&!this.forceFallback}},{key:"enabled",get:function(){return(t.native||this.player.config.fullscreen.fallback)&&this.player.config.fullscreen.enabled&&this.player.supported.ui&&this.player.isVideo}},{key:"active",get:function(){return!!this.enabled&&(!t.native||this.forceFallback?fe(this.target,this.player.config.classNames.fullscreen.fallback):(this.prefix?document["".concat(this.prefix).concat(this.property,"Element")]:document.fullscreenElement)===this.target)}},{key:"target",get:function(){return ie.isIos&&this.player.config.fullscreen.iosNative?this.player.media:this.player.elements.container}}],[{key:"native",get:function(){return!!(document.fullscreenEnabled||document.webkitFullscreenEnabled||document.mozFullScreenEnabled||document.msFullscreenEnabled)}},{key:"prefix",get:function(){if(z(document.exitFullscreen))return"";var e="";return["webkit","moz","ms"].some((function(t){return!(!z(document["".concat(t,"ExitFullscreen")])&&!z(document["".concat(t,"CancelFullScreen")]))&&(e=t,!0)})),e}},{key:"property",get:function(){return"moz"===this.prefix?"FullScreen":"Fullscreen"}}]),t}();function ut(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1;return new Promise((function(i,n){var a=new Image,s=function(){delete a.onload,delete a.onerror,(a.naturalWidth>=t?i:n)(a)};Object.assign(a,{onload:s,onerror:s,src:e})}))}var dt={addStyleHook:function(){me(this.elements.container,this.config.selectors.container.replace(".",""),!0),me(this.elements.container,this.config.classNames.uiSupported,this.supported.ui)},toggleNativeControls:function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];e&&this.isHTML5?this.media.setAttribute("controls",""):this.media.removeAttribute("controls")},build:function(){var e=this;if(this.listeners.media(),!this.supported.ui)return this.debug.warn("Basic support only for ".concat(this.provider," ").concat(this.type)),void dt.toggleNativeControls.call(this,!0);Q(this.elements.controls)||($e.inject.call(this),this.listeners.controls()),dt.toggleNativeControls.call(this),this.isHTML5&&et.setup.call(this),this.volume=null,this.muted=null,this.loop=null,this.quality=null,this.speed=null,$e.updateVolume.call(this),$e.timeUpdate.call(this),dt.checkPlaying.call(this),me(this.elements.container,this.config.classNames.pip.supported,Te.pip&&this.isHTML5&&this.isVideo),me(this.elements.container,this.config.classNames.airplay.supported,Te.airplay&&this.isHTML5),me(this.elements.container,this.config.classNames.isIos,ie.isIos),me(this.elements.container,this.config.classNames.isTouch,this.touch),this.ready=!0,setTimeout((function(){Me.call(e,e.media,"ready")}),0),dt.setTitle.call(this),this.poster&&dt.setPoster.call(this,this.poster,!1).catch((function(){})),this.config.duration&&$e.durationUpdate.call(this)},setTitle:function(){var e=Ue("play",this.config);if(U(this.config.title)&&!Z(this.config.title)&&(e+=", ".concat(this.config.title)),Array.from(this.elements.buttons.play||[]).forEach((function(t){t.setAttribute("aria-label",e)})),this.isEmbed){var t=ve.call(this,"iframe");if(!Q(t))return;var i=Z(this.config.title)?"video":this.config.title,n=Ue("frameTitle",this.config);t.setAttribute("title",n.replace("{title}",i))}},togglePoster:function(e){me(this.elements.container,this.config.classNames.posterEnabled,e)},setPoster:function(e){var t=this,i=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];return i&&this.poster?Promise.reject(new Error("Poster already set")):(this.media.setAttribute("poster",e),this.isHTML5?Promise.resolve(e):xe.call(this).then((function(){return ut(e)})).catch((function(i){throw e===t.poster&&dt.togglePoster.call(t,!1),i})).then((function(){if(e!==t.poster)throw new Error("setPoster cancelled by later call to setPoster")})).then((function(){return Object.assign(t.elements.poster.style,{backgroundImage:"url('".concat(e,"')"),backgroundSize:""}),dt.togglePoster.call(t,!0),e})))},checkPlaying:function(e){var t=this;me(this.elements.container,this.config.classNames.playing,this.playing),me(this.elements.container,this.config.classNames.paused,this.paused),me(this.elements.container,this.config.classNames.stopped,this.stopped),Array.from(this.elements.buttons.play||[]).forEach((function(e){Object.assign(e,{pressed:t.playing}),e.setAttribute("aria-label",Ue(t.playing?"pause":"play",t.config))})),X(e)&&"timeupdate"===e.type||dt.toggleControls.call(this)},checkLoading:function(e){var t=this;this.loading=["stalled","waiting"].includes(e.type),clearTimeout(this.timers.loading),this.timers.loading=setTimeout((function(){me(t.elements.container,t.config.classNames.loading,t.loading),dt.toggleControls.call(t)}),this.loading?250:0)},toggleControls:function(e){var t=this.elements.controls;if(t&&this.config.hideControls){var i=this.touch&&this.lastSeekTime+2e3>Date.now();this.toggleControls(Boolean(e||this.loading||this.paused||t.pressed||t.hover||i))}}},ht=function(){function t(i){e(this,t),this.player=i,this.lastKey=null,this.focusTimer=null,this.lastKeyDown=null,this.handleKey=this.handleKey.bind(this),this.toggleMenu=this.toggleMenu.bind(this),this.setTabFocus=this.setTabFocus.bind(this),this.firstTouch=this.firstTouch.bind(this)}return i(t,[{key:"handleKey",value:function(e){var t=this.player,i=t.elements,n=e.keyCode?e.keyCode:e.which,a="keydown"===e.type,s=a&&n===this.lastKey;if(!(e.altKey||e.ctrlKey||e.metaKey||e.shiftKey)&&B(n)){if(a){var r=document.activeElement;if(Q(r)){var o=t.config.selectors.editable;if(r!==i.inputs.seek&&ge(r,o))return;if(32===e.which&&ge(r,'button, [role^="menuitem"]'))return}switch([32,37,38,39,40,48,49,50,51,52,53,54,56,57,67,70,73,75,76,77,79].includes(n)&&(e.preventDefault(),e.stopPropagation()),n){case 48:case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 57:s||(t.currentTime=t.duration/10*(n-48));break;case 32:case 75:s||t.togglePlay();break;case 38:t.increaseVolume(.1);break;case 40:t.decreaseVolume(.1);break;case 77:s||(t.muted=!t.muted);break;case 39:t.forward();break;case 37:t.rewind();break;case 70:t.fullscreen.toggle();break;case 67:s||t.toggleCaptions();break;case 76:t.loop=!t.loop}27===n&&!t.fullscreen.usingNative&&t.fullscreen.active&&t.fullscreen.toggle(),this.lastKey=n}else this.lastKey=null}}},{key:"toggleMenu",value:function(e){$e.toggleMenu.call(this.player,e)}},{key:"firstTouch",value:function(){var e=this.player,t=e.elements;e.touch=!0,me(t.container,e.config.classNames.isTouch,!0)}},{key:"setTabFocus",value:function(e){var t=this.player,i=t.elements;if(clearTimeout(this.focusTimer),"keydown"!==e.type||9===e.which){"keydown"===e.type&&(this.lastKeyDown=e.timeStamp);var n,a=e.timeStamp-this.lastKeyDown<=20;if("focus"!==e.type||a)n=t.config.classNames.tabFocus,me(ye.call(t,".".concat(n)),n,!1),this.focusTimer=setTimeout((function(){var e=document.activeElement;i.container.contains(e)&&me(document.activeElement,t.config.classNames.tabFocus,!0)}),10)}}},{key:"global",value:function(){var e=!(arguments.length>0&&void 0!==arguments[0])||arguments[0],t=this.player;t.config.keyboard.global&&Ae.call(t,window,"keydown keyup",this.handleKey,e,!1),Ae.call(t,document.body,"click",this.toggleMenu,e),Ee.call(t,document.body,"touchstart",this.firstTouch),Ae.call(t,document.body,"keydown focus blur",this.setTabFocus,e,!1,!0)}},{key:"container",value:function(){var e=this.player,t=e.config,i=e.elements,n=e.timers;!t.keyboard.global&&t.keyboard.focused&&Pe.call(e,i.container,"keydown keyup",this.handleKey,!1),Pe.call(e,i.container,"mousemove mouseleave touchstart touchmove enterfullscreen exitfullscreen",(function(t){var a=i.controls;a&&"enterfullscreen"===t.type&&(a.pressed=!1,a.hover=!1);var s=0;["touchstart","touchmove","mousemove"].includes(t.type)&&(dt.toggleControls.call(e,!0),s=e.touch?3e3:2e3),clearTimeout(n.controls),n.controls=setTimeout((function(){return dt.toggleControls.call(e,!1)}),s)}));var a=function(t){if(!t)return _e.call(e);var n=i.container.getBoundingClientRect(),a=n.width,s=n.height;return _e.call(e,"".concat(a,":").concat(s))},s=function(){clearTimeout(n.resized),n.resized=setTimeout(a,50)};Pe.call(e,i.container,"enterfullscreen exitfullscreen",(function(t){var n=e.fullscreen,o=n.target,l=n.usingNative;if(o===i.container&&(e.isEmbed||!Z(e.config.ratio))){var c="enterfullscreen"===t.type,u=a(c);u.padding;!function(t,i,n){if(e.isVimeo){var a=e.elements.wrapper.firstChild,s=r(t,2)[1],o=r(Oe.call(e),2),l=o[0],c=o[1];a.style.maxWidth=n?"".concat(s/c*l,"px"):null,a.style.margin=n?"0 auto":null}}(u.ratio,0,c),l||(c?Pe.call(e,window,"resize",s):Se.call(e,window,"resize",s))}}))}},{key:"media",value:function(){var e=this,t=this.player,i=t.elements;if(Pe.call(t,t.media,"timeupdate seeking seeked",(function(e){return $e.timeUpdate.call(t,e)})),Pe.call(t,t.media,"durationchange loadeddata loadedmetadata",(function(e){return $e.durationUpdate.call(t,e)})),Pe.call(t,t.media,"ended",(function(){t.isHTML5&&t.isVideo&&t.config.resetOnEnd&&(t.restart(),t.pause())})),Pe.call(t,t.media,"progress playing seeking seeked",(function(e){return $e.updateProgress.call(t,e)})),Pe.call(t,t.media,"volumechange",(function(e){return $e.updateVolume.call(t,e)})),Pe.call(t,t.media,"playing play pause ended emptied timeupdate",(function(e){return dt.checkPlaying.call(t,e)})),Pe.call(t,t.media,"waiting canplay seeked playing",(function(e){return dt.checkLoading.call(t,e)})),t.supported.ui&&t.config.clickToPlay&&!t.isAudio){var n=ve.call(t,".".concat(t.config.classNames.video));if(!Q(n))return;Pe.call(t,i.container,"click",(function(a){([i.container,n].includes(a.target)||n.contains(a.target))&&(t.touch&&t.config.hideControls||(t.ended?(e.proxy(a,t.restart,"restart"),e.proxy(a,t.play,"play")):e.proxy(a,t.togglePlay,"play")))}))}t.supported.ui&&t.config.disableContextMenu&&Pe.call(t,i.wrapper,"contextmenu",(function(e){e.preventDefault()}),!1),Pe.call(t,t.media,"volumechange",(function(){t.storage.set({volume:t.volume,muted:t.muted})})),Pe.call(t,t.media,"ratechange",(function(){$e.updateSetting.call(t,"speed"),t.storage.set({speed:t.speed})})),Pe.call(t,t.media,"qualitychange",(function(e){$e.updateSetting.call(t,"quality",null,e.detail.quality)})),Pe.call(t,t.media,"ready qualitychange",(function(){$e.setDownloadUrl.call(t)}));var a=t.config.events.concat(["keyup","keydown"]).join(" ");Pe.call(t,t.media,a,(function(e){var n=e.detail,a=void 0===n?{}:n;"error"===e.type&&(a=t.media.error),Me.call(t,i.container,e.type,!0,a)}))}},{key:"proxy",value:function(e,t,i){var n=this.player,a=n.config.listeners[i],s=!0;z(a)&&(s=a.call(n,e)),!1!==s&&z(t)&&t.call(n,e)}},{key:"bind",value:function(e,t,i,n){var a=this,s=!(arguments.length>4&&void 0!==arguments[4])||arguments[4],r=this.player,o=r.config.listeners[n],l=z(o);Pe.call(r,e,t,(function(e){return a.proxy(e,i,n)}),s&&!l)}},{key:"controls",value:function(){var e=this,t=this.player,i=t.elements,n=ie.isIE?"change":"input";if(i.buttons.play&&Array.from(i.buttons.play).forEach((function(i){e.bind(i,"click",t.togglePlay,"play")})),this.bind(i.buttons.restart,"click",t.restart,"restart"),this.bind(i.buttons.rewind,"click",t.rewind,"rewind"),this.bind(i.buttons.fastForward,"click",t.forward,"fastForward"),this.bind(i.buttons.mute,"click",(function(){t.muted=!t.muted}),"mute"),this.bind(i.buttons.captions,"click",(function(){return t.toggleCaptions()})),this.bind(i.buttons.download,"click",(function(){Me.call(t,t.media,"download")}),"download"),this.bind(i.buttons.fullscreen,"click",(function(){t.fullscreen.toggle()}),"fullscreen"),this.bind(i.buttons.pip,"click",(function(){t.pip="toggle"}),"pip"),this.bind(i.buttons.airplay,"click",t.airplay,"airplay"),this.bind(i.buttons.settings,"click",(function(e){e.stopPropagation(),e.preventDefault(),$e.toggleMenu.call(t,e)}),null,!1),this.bind(i.buttons.settings,"keyup",(function(e){var i=e.which;[13,32].includes(i)&&(13!==i?(e.preventDefault(),e.stopPropagation(),$e.toggleMenu.call(t,e)):$e.focusFirstMenuItem.call(t,null,!0))}),null,!1),this.bind(i.settings.menu,"keydown",(function(e){27===e.which&&$e.toggleMenu.call(t,e)})),this.bind(i.inputs.seek,"mousedown mousemove",(function(e){var t=i.progress.getBoundingClientRect(),n=100/t.width*(e.pageX-t.left);e.currentTarget.setAttribute("seek-value",n)})),this.bind(i.inputs.seek,"mousedown mouseup keydown keyup touchstart touchend",(function(e){var i=e.currentTarget,n=e.keyCode?e.keyCode:e.which;if(!J(e)||39===n||37===n){t.lastSeekTime=Date.now();var a=i.hasAttribute("play-on-seeked"),s=["mouseup","touchend","keyup"].includes(e.type);a&&s?(i.removeAttribute("play-on-seeked"),t.play()):!s&&t.playing&&(i.setAttribute("play-on-seeked",""),t.pause())}})),ie.isIos){var a=ye.call(t,'input[type="range"]');Array.from(a).forEach((function(t){return e.bind(t,n,(function(e){return te(e.target)}))}))}this.bind(i.inputs.seek,n,(function(e){var i=e.currentTarget,n=i.getAttribute("seek-value");Z(n)&&(n=i.value),i.removeAttribute("seek-value"),t.currentTime=n/i.max*t.duration}),"seek"),this.bind(i.progress,"mouseenter mouseleave mousemove",(function(e){return $e.updateSeekTooltip.call(t,e)})),this.bind(i.progress,"mousemove touchmove",(function(e){var i=t.previewThumbnails;i&&i.loaded&&i.startMove(e)})),this.bind(i.progress,"mouseleave touchend click",(function(){var e=t.previewThumbnails;e&&e.loaded&&e.endMove(!1,!0)})),this.bind(i.progress,"mousedown touchstart",(function(e){var i=t.previewThumbnails;i&&i.loaded&&i.startScrubbing(e)})),this.bind(i.progress,"mouseup touchend",(function(e){var i=t.previewThumbnails;i&&i.loaded&&i.endScrubbing(e)})),ie.isWebkit&&Array.from(ye.call(t,'input[type="range"]')).forEach((function(i){e.bind(i,"input",(function(e){return $e.updateRangeFill.call(t,e.target)}))})),t.config.toggleInvert&&!Q(i.display.duration)&&this.bind(i.display.currentTime,"click",(function(){0!==t.currentTime&&(t.config.invertTime=!t.config.invertTime,$e.timeUpdate.call(t))})),this.bind(i.inputs.volume,n,(function(e){t.volume=e.target.value}),"volume"),this.bind(i.controls,"mouseenter mouseleave",(function(e){i.controls.hover=!t.touch&&"mouseenter"===e.type})),this.bind(i.controls,"mousedown mouseup touchstart touchend touchcancel",(function(e){i.controls.pressed=["mousedown","touchstart"].includes(e.type)})),this.bind(i.controls,"focusin",(function(){var n=t.config,a=t.timers;me(i.controls,n.classNames.noTransition,!0),dt.toggleControls.call(t,!0),setTimeout((function(){me(i.controls,n.classNames.noTransition,!1)}),0);var s=e.touch?3e3:4e3;clearTimeout(a.controls),a.controls=setTimeout((function(){return dt.toggleControls.call(t,!1)}),s)})),this.bind(i.inputs.volume,"wheel",(function(e){var i=e.webkitDirectionInvertedFromDevice,n=r([e.deltaX,-e.deltaY].map((function(e){return i?-e:e})),2),a=n[0],s=n[1],o=Math.sign(Math.abs(a)>Math.abs(s)?a:s);t.increaseVolume(o/50);var l=t.media.volume;(1===o&&l<1||-1===o&&l>0)&&e.preventDefault()}),"volume",!1)}}]),t}();"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self&&self;var pt=function(e,t){return e(t={exports:{}},t.exports),t.exports}((function(e,t){e.exports=function(){var e=function(){},t={},i={},n={};function a(e,t){if(e){var a=n[e];if(i[e]=t,a)for(;a.length;)a[0](e,t),a.splice(0,1)}}function s(t,i){t.call&&(t={success:t}),i.length?(t.error||e)(i):(t.success||e)(t)}function r(t,i,n,a){var s,o,l=document,c=n.async,u=(n.numRetries||0)+1,d=n.before||e,h=t.replace(/[\?|#].*$/,""),p=t.replace(/^(css|img)!/,"");a=a||0,/(^css!|\.css$)/.test(h)?((o=l.createElement("link")).rel="stylesheet",o.href=p,(s="hideFocus"in o)&&o.relList&&(s=0,o.rel="preload",o.as="style")):/(^img!|\.(png|gif|jpg|svg|webp)$)/.test(h)?(o=l.createElement("img")).src=p:((o=l.createElement("script")).src=t,o.async=void 0===c||c),o.onload=o.onerror=o.onbeforeload=function(e){var l=e.type[0];if(s)try{o.sheet.cssText.length||(l="e")}catch(e){18!=e.code&&(l="e")}if("e"==l){if((a+=1)0&&void 0!==arguments[0]&&arguments[0];if(!t)return clearInterval(this.countdownTimer),void this.elements.container.removeAttribute("data-badge-text");var i=function(){var t=Je(Math.max(e.manager.getRemainingTime(),0)),i="".concat(Ue("advertisement",e.player.config)," - ").concat(t);e.elements.container.setAttribute("data-badge-text",i)};this.countdownTimer=setInterval(i,100)}},{key:"onAdsManagerLoaded",value:function(e){var t=this;if(this.enabled){var i=new google.ima.AdsRenderingSettings;i.restoreCustomPlaybackStateOnAdBreakComplete=!0,i.enablePreloading=!0,this.manager=e.getAdsManager(this.player,i),this.cuePoints=this.manager.getCuePoints(),this.manager.addEventListener(google.ima.AdErrorEvent.Type.AD_ERROR,(function(e){return t.onAdError(e)})),Object.keys(google.ima.AdEvent.Type).forEach((function(e){t.manager.addEventListener(google.ima.AdEvent.Type[e],(function(e){return t.onAdEvent(e)}))})),this.trigger("loaded")}}},{key:"addCuePoints",value:function(){var e=this;Z(this.cuePoints)||this.cuePoints.forEach((function(t){if(0!==t&&-1!==t&&t1?i-1:0),a=1;at.width/t.height?(i.width=t.width,i.height=1/e*t.width):(i.height=t.height,i.width=e*t.height),i},Ct=function(){function t(i){e(this,t),this.player=i,this.thumbnails=[],this.loaded=!1,this.lastMouseMoveTime=Date.now(),this.mouseDown=!1,this.loadedImages=[],this.elements={thumb:{},scrubbing:{}},this.load()}return i(t,[{key:"load",value:function(){var e=this;this.player.elements.display.seekTooltip&&(this.player.elements.display.seekTooltip.hidden=this.enabled),this.enabled&&this.getThumbnails().then((function(){e.enabled&&(e.render(),e.determineContainerAutoSizing(),e.loaded=!0)}))}},{key:"getThumbnails",value:function(){var e=this;return new Promise((function(t){var i=e.player.config.previewThumbnails.src;if(Z(i))throw new Error("Missing previewThumbnails.src config attribute");var n=(U(i)?[i]:i).map((function(t){return e.getThumbnail(t)}));Promise.all(n).then((function(){e.thumbnails.sort((function(e,t){return e.height-t.height})),e.player.debug.log("Preview thumbnails",e.thumbnails),t()}))}))}},{key:"getThumbnail",value:function(e){var t=this;return new Promise((function(i){ze(e).then((function(n){var a,s,o={frames:(a=n,s=[],a.split(/\r\n\r\n|\n\n|\r\r/).forEach((function(e){var t={};e.split(/\r\n|\n|\r/).forEach((function(e){if(B(t.startTime)){if(!Z(e.trim())&&Z(t.text)){var i=e.trim().split("#xywh="),n=r(i,1);if(t.text=n[0],i[1]){var a=r(i[1].split(","),4);t.x=a[0],t.y=a[1],t.w=a[2],t.h=a[3]}}}else{var s=e.match(/([0-9]{2})?:?([0-9]{2}):([0-9]{2}).([0-9]{2,3})( ?--> ?)([0-9]{2})?:?([0-9]{2}):([0-9]{2}).([0-9]{2,3})/);s&&(t.startTime=60*Number(s[1]||0)*60+60*Number(s[2])+Number(s[3])+Number("0.".concat(s[4])),t.endTime=60*Number(s[6]||0)*60+60*Number(s[7])+Number(s[8])+Number("0.".concat(s[9])))}})),t.text&&s.push(t)})),s),height:null,urlPrefix:""};o.frames[0].text.startsWith("/")||o.frames[0].text.startsWith("http://")||o.frames[0].text.startsWith("https://")||(o.urlPrefix=e.substring(0,e.lastIndexOf("/")+1));var l=new Image;l.onload=function(){o.height=l.naturalHeight,o.width=l.naturalWidth,t.thumbnails.push(o),i()},l.src=o.urlPrefix+o.frames[0].text}))}))}},{key:"startMove",value:function(e){if(this.loaded&&X(e)&&["touchmove","mousemove"].includes(e.type)&&this.player.media.duration){if("touchmove"===e.type)this.seekTime=this.player.media.duration*(this.player.elements.inputs.seek.value/100);else{var t=this.player.elements.progress.getBoundingClientRect(),i=100/t.width*(e.pageX-t.left);this.seekTime=this.player.media.duration*(i/100),this.seekTime<0&&(this.seekTime=0),this.seekTime>this.player.media.duration-1&&(this.seekTime=this.player.media.duration-1),this.mousePosX=e.pageX,this.elements.thumb.time.innerText=Je(this.seekTime)}this.showImageAtCurrentTime()}}},{key:"endMove",value:function(){this.toggleThumbContainer(!1,!0)}},{key:"startScrubbing",value:function(e){(R(e.button)||!1===e.button||0===e.button)&&(this.mouseDown=!0,this.player.media.duration&&(this.toggleScrubbingContainer(!0),this.toggleThumbContainer(!1,!0),this.showImageAtCurrentTime()))}},{key:"endScrubbing",value:function(){var e=this;this.mouseDown=!1,Math.ceil(this.lastTime)===Math.ceil(this.player.media.currentTime)?this.toggleScrubbingContainer(!1):Ee.call(this.player,this.player.media,"timeupdate",(function(){e.mouseDown||e.toggleScrubbingContainer(!1)}))}},{key:"listeners",value:function(){var e=this;this.player.on("play",(function(){e.toggleThumbContainer(!1,!0)})),this.player.on("seeked",(function(){e.toggleThumbContainer(!1)})),this.player.on("timeupdate",(function(){e.lastTime=e.player.media.currentTime}))}},{key:"render",value:function(){this.elements.thumb.container=oe("div",{class:this.player.config.classNames.previewThumbnails.thumbContainer}),this.elements.thumb.imageContainer=oe("div",{class:this.player.config.classNames.previewThumbnails.imageContainer}),this.elements.thumb.container.appendChild(this.elements.thumb.imageContainer);var e=oe("div",{class:this.player.config.classNames.previewThumbnails.timeContainer});this.elements.thumb.time=oe("span",{},"00:00"),e.appendChild(this.elements.thumb.time),this.elements.thumb.container.appendChild(e),Q(this.player.elements.progress)&&this.player.elements.progress.appendChild(this.elements.thumb.container),this.elements.scrubbing.container=oe("div",{class:this.player.config.classNames.previewThumbnails.scrubbingContainer}),this.player.elements.wrapper.appendChild(this.elements.scrubbing.container)}},{key:"destroy",value:function(){this.elements.thumb.container&&this.elements.thumb.container.remove(),this.elements.scrubbing.container&&this.elements.scrubbing.container.remove()}},{key:"showImageAtCurrentTime",value:function(){var e=this;this.mouseDown?this.setScrubbingContainerSize():this.setThumbContainerSizeAndPos();var t=this.thumbnails[0].frames.findIndex((function(t){return e.seekTime>=t.startTime&&e.seekTime<=t.endTime})),i=t>=0,n=0;this.mouseDown||this.toggleThumbContainer(i),i&&(this.thumbnails.forEach((function(i,a){e.loadedImages.includes(i.frames[t].text)&&(n=a)})),t!==this.showingThumb&&(this.showingThumb=t,this.loadImage(n)))}},{key:"loadImage",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,i=this.showingThumb,n=this.thumbnails[t],a=n.urlPrefix,s=n.frames[i],r=n.frames[i].text,o=a+r;if(this.currentImageElement&&this.currentImageElement.dataset.filename===r)this.showImage(this.currentImageElement,s,t,i,r,!1),this.currentImageElement.dataset.index=i,this.removeOldImages(this.currentImageElement);else{this.loadingImage&&this.usingSprites&&(this.loadingImage.onload=null);var l=new Image;l.src=o,l.dataset.index=i,l.dataset.filename=r,this.showingThumbFilename=r,this.player.debug.log("Loading image: ".concat(o)),l.onload=function(){return e.showImage(l,s,t,i,r,!0)},this.loadingImage=l,this.removeOldImages(l)}}},{key:"showImage",value:function(e,t,i,n,a){var s=!(arguments.length>5&&void 0!==arguments[5])||arguments[5];this.player.debug.log("Showing thumb: ".concat(a,". num: ").concat(n,". qual: ").concat(i,". newimg: ").concat(s)),this.setImageSizeAndOffset(e,t),s&&(this.currentImageContainer.appendChild(e),this.currentImageElement=e,this.loadedImages.includes(a)||this.loadedImages.push(a)),this.preloadNearby(n,!0).then(this.preloadNearby(n,!1)).then(this.getHigherQuality(i,e,t,a))}},{key:"removeOldImages",value:function(e){var t=this;Array.from(this.currentImageContainer.children).forEach((function(i){if("img"===i.tagName.toLowerCase()){var n=t.usingSprites?500:1e3;if(i.dataset.index!==e.dataset.index&&!i.dataset.deleting){i.dataset.deleting=!0;var a=t.currentImageContainer;setTimeout((function(){a.removeChild(i),t.player.debug.log("Removing thumb: ".concat(i.dataset.filename))}),n)}}}))}},{key:"preloadNearby",value:function(e){var t=this,i=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];return new Promise((function(n){setTimeout((function(){var a=t.thumbnails[0].frames[e].text;if(t.showingThumbFilename===a){var s;s=i?t.thumbnails[0].frames.slice(e):t.thumbnails[0].frames.slice(0,e).reverse();var r=!1;s.forEach((function(e){var i=e.text;if(i!==a&&!t.loadedImages.includes(i)){r=!0,t.player.debug.log("Preloading thumb filename: ".concat(i));var s=t.thumbnails[0].urlPrefix+i,o=new Image;o.src=s,o.onload=function(){t.player.debug.log("Preloaded thumb filename: ".concat(i)),t.loadedImages.includes(i)||t.loadedImages.push(i),n()}}})),r||n()}}),300)}))}},{key:"getHigherQuality",value:function(e,t,i,n){var a=this;if(e0&&void 0!==arguments[0]&&arguments[0],t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],i=this.player.config.classNames.previewThumbnails.thumbContainerShown;this.elements.thumb.container.classList.toggle(i,e),!e&&t&&(this.showingThumb=null,this.showingThumbFilename=null)}},{key:"toggleScrubbingContainer",value:function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0],t=this.player.config.classNames.previewThumbnails.scrubbingContainerShown;this.elements.scrubbing.container.classList.toggle(t,e),e||(this.showingThumb=null,this.showingThumbFilename=null)}},{key:"determineContainerAutoSizing",value:function(){(this.elements.thumb.imageContainer.clientHeight>20||this.elements.thumb.imageContainer.clientWidth>20)&&(this.sizeSpecifiedInCSS=!0)}},{key:"setThumbContainerSizeAndPos",value:function(){if(this.sizeSpecifiedInCSS){if(this.elements.thumb.imageContainer.clientHeight>20&&this.elements.thumb.imageContainer.clientWidth<20){var e=Math.floor(this.elements.thumb.imageContainer.clientHeight*this.thumbAspectRatio);this.elements.thumb.imageContainer.style.width="".concat(e,"px")}else if(this.elements.thumb.imageContainer.clientHeight<20&&this.elements.thumb.imageContainer.clientWidth>20){var t=Math.floor(this.elements.thumb.imageContainer.clientWidth/this.thumbAspectRatio);this.elements.thumb.imageContainer.style.height="".concat(t,"px")}}else{var i=Math.floor(this.thumbContainerHeight*this.thumbAspectRatio);this.elements.thumb.imageContainer.style.height="".concat(this.thumbContainerHeight,"px"),this.elements.thumb.imageContainer.style.width="".concat(i,"px")}this.setThumbContainerPos()}},{key:"setThumbContainerPos",value:function(){var e=this.player.elements.progress.getBoundingClientRect(),t=this.player.elements.container.getBoundingClientRect(),i=this.elements.thumb.container,n=t.left-e.left+10,a=t.right-e.left-i.clientWidth-10,s=this.mousePosX-e.left-i.clientWidth/2;sa&&(s=a),i.style.left="".concat(s,"px")}},{key:"setScrubbingContainerSize",value:function(){var e=Tt(this.thumbAspectRatio,{width:this.player.media.clientWidth,height:this.player.media.clientHeight}),t=e.width,i=e.height;this.elements.scrubbing.container.style.width="".concat(t,"px"),this.elements.scrubbing.container.style.height="".concat(i,"px")}},{key:"setImageSizeAndOffset",value:function(e,t){if(this.usingSprites){var i=this.thumbContainerHeight/t.h;e.style.height="".concat(e.naturalHeight*i,"px"),e.style.width="".concat(e.naturalWidth*i,"px"),e.style.left="-".concat(t.x*i,"px"),e.style.top="-".concat(t.y*i,"px")}}},{key:"enabled",get:function(){return this.player.isHTML5&&this.player.isVideo&&this.player.config.previewThumbnails.enabled}},{key:"currentImageContainer",get:function(){return this.mouseDown?this.elements.scrubbing.container:this.elements.thumb.imageContainer}},{key:"usingSprites",get:function(){return Object.keys(this.thumbnails[0].frames[0]).includes("w")}},{key:"thumbAspectRatio",get:function(){return this.usingSprites?this.thumbnails[0].frames[0].w/this.thumbnails[0].frames[0].h:this.thumbnails[0].width/this.thumbnails[0].height}},{key:"thumbContainerHeight",get:function(){return this.mouseDown?Tt(this.thumbAspectRatio,{width:this.player.media.clientWidth,height:this.player.media.clientHeight}).height:this.sizeSpecifiedInCSS?this.elements.thumb.imageContainer.clientHeight:Math.floor(this.player.media.clientWidth/this.thumbAspectRatio/4)}},{key:"currentImageElement",get:function(){return this.mouseDown?this.currentScrubbingImageElement:this.currentThumbnailImageElement},set:function(e){this.mouseDown?this.currentScrubbingImageElement=e:this.currentThumbnailImageElement=e}}]),t}(),At={insertElements:function(e,t){var i=this;U(t)?le(e,this.media,{src:t}):K(t)&&t.forEach((function(t){le(e,i.media,t)}))},change:function(e){var t=this;ne(e,"sources.length")?(je.cancelRequests.call(this),this.destroy.call(this,(function(){t.options.quality=[],ce(t.media),t.media=null,Q(t.elements.container)&&t.elements.container.removeAttribute("class");var i=e.sources,n=e.type,a=r(i,1)[0],s=a.provider,o=void 0===s?at.html5:s,l=a.src,c="html5"===o?n:"div",u="html5"===o?{}:{src:l};Object.assign(t,{provider:o,type:n,supported:Te.check(n,o,t.config.playsinline),media:oe(c,u)}),t.elements.container.appendChild(t.media),W(e.autoplay)&&(t.config.autoplay=e.autoplay),t.isHTML5&&(t.config.crossorigin&&t.media.setAttribute("crossorigin",""),t.config.autoplay&&t.media.setAttribute("autoplay",""),Z(e.poster)||(t.poster=e.poster),t.config.loop.active&&t.media.setAttribute("loop",""),t.config.muted&&t.media.setAttribute("muted",""),t.config.playsinline&&t.media.setAttribute("playsinline","")),dt.addStyleHook.call(t),t.isHTML5&&At.insertElements.call(t,"source",i),t.config.title=e.title,wt.setup.call(t),t.isHTML5&&Object.keys(e).includes("tracks")&&At.insertElements.call(t,"track",e.tracks),(t.isHTML5||t.isEmbed&&!t.supported.ui)&&dt.build.call(t),t.isHTML5&&t.media.load(),Z(e.previewThumbnails)||(Object.assign(t.config.previewThumbnails,e.previewThumbnails),t.previewThumbnails&&t.previewThumbnails.loaded&&(t.previewThumbnails.destroy(),t.previewThumbnails=null),t.config.previewThumbnails.enabled&&(t.previewThumbnails=new Ct(t))),t.fullscreen.update()}),!0)):this.debug.warn("Invalid source format")}};var Pt,St=function(){function t(i,n){var a=this;if(e(this,t),this.timers={},this.ready=!1,this.loading=!1,this.failed=!1,this.touch=Te.touch,this.media=i,U(this.media)&&(this.media=document.querySelectorAll(this.media)),(window.jQuery&&this.media instanceof jQuery||Y(this.media)||K(this.media))&&(this.media=this.media[0]),this.config=ae({},tt,t.defaults,n||{},function(){try{return JSON.parse(a.media.getAttribute("data-plyr-config"))}catch(e){return{}}}()),this.elements={container:null,captions:null,buttons:{},display:{},progress:{},inputs:{},settings:{popup:null,menu:null,panels:{},buttons:{}}},this.captions={active:null,currentTrack:-1,meta:new WeakMap},this.fullscreen={active:!1},this.options={speed:[],quality:[]},this.debug=new lt(this.config.debug),this.debug.log("Config",this.config),this.debug.log("Support",Te),!R(this.media)&&Q(this.media))if(this.media.plyr)this.debug.warn("Target already setup");else if(this.config.enabled)if(Te.check().api){var s=this.media.cloneNode(!0);s.autoplay=!1,this.elements.original=s;var r=this.media.tagName.toLowerCase(),o=null,l=null;switch(r){case"div":if(o=this.media.querySelector("iframe"),Q(o)){if(l=Ge(o.getAttribute("src")),this.provider=function(e){return/^(https?:\/\/)?(www\.)?(youtube\.com|youtube-nocookie\.com|youtu\.?be)\/.+$/.test(e)?at.youtube:/^https?:\/\/player.vimeo.com\/video\/\d{0,9}(?=\b|\/)/.test(e)?at.vimeo:null}(l.toString()),this.elements.container=this.media,this.media=o,this.elements.container.className="",l.search.length){var c=["1","true"];c.includes(l.searchParams.get("autoplay"))&&(this.config.autoplay=!0),c.includes(l.searchParams.get("loop"))&&(this.config.loop.active=!0),this.isYouTube?(this.config.playsinline=c.includes(l.searchParams.get("playsinline")),this.config.youtube.hl=l.searchParams.get("hl")):this.config.playsinline=!0}}else this.provider=this.media.getAttribute(this.config.attributes.embed.provider),this.media.removeAttribute(this.config.attributes.embed.provider);if(Z(this.provider)||!Object.keys(at).includes(this.provider))return void this.debug.error("Setup failed: Invalid provider");this.type=rt;break;case"video":case"audio":this.type=r,this.provider=at.html5,this.media.hasAttribute("crossorigin")&&(this.config.crossorigin=!0),this.media.hasAttribute("autoplay")&&(this.config.autoplay=!0),(this.media.hasAttribute("playsinline")||this.media.hasAttribute("webkit-playsinline"))&&(this.config.playsinline=!0),this.media.hasAttribute("muted")&&(this.config.muted=!0),this.media.hasAttribute("loop")&&(this.config.loop.active=!0);break;default:return void this.debug.error("Setup failed: unsupported type")}this.supported=Te.check(this.type,this.provider,this.config.playsinline),this.supported.api?(this.eventListeners=[],this.listeners=new ht(this),this.storage=new We(this),this.media.plyr=this,Q(this.elements.container)||(this.elements.container=oe("div",{tabindex:0}),se(this.media,this.elements.container)),dt.addStyleHook.call(this),wt.setup.call(this),this.config.debug&&Pe.call(this,this.elements.container,this.config.events.join(" "),(function(e){a.debug.log("event: ".concat(e.type))})),(this.isHTML5||this.isEmbed&&!this.supported.ui)&&dt.build.call(this),this.listeners.container(),this.listeners.global(),this.fullscreen=new ct(this),this.config.ads.enabled&&(this.ads=new kt(this)),this.isHTML5&&this.config.autoplay&&setTimeout((function(){return a.play()}),10),this.lastSeekTime=0,this.config.previewThumbnails.enabled&&(this.previewThumbnails=new Ct(this))):this.debug.error("Setup failed: no support")}else this.debug.error("Setup failed: no support");else this.debug.error("Setup failed: disabled by config");else this.debug.error("Setup failed: no suitable element passed")}return i(t,[{key:"play",value:function(){var e=this;return z(this.media.play)?(this.ads&&this.ads.enabled&&this.ads.managerPromise.then((function(){return e.ads.play()})).catch((function(){return e.media.play()})),this.media.play()):null}},{key:"pause",value:function(){return this.playing&&z(this.media.pause)?this.media.pause():null}},{key:"togglePlay",value:function(e){return(W(e)?e:!this.playing)?this.play():this.pause()}},{key:"stop",value:function(){this.isHTML5?(this.pause(),this.restart()):z(this.media.stop)&&this.media.stop()}},{key:"restart",value:function(){this.currentTime=0}},{key:"rewind",value:function(e){this.currentTime-=B(e)?e:this.config.seekTime}},{key:"forward",value:function(e){this.currentTime+=B(e)?e:this.config.seekTime}},{key:"increaseVolume",value:function(e){var t=this.media.muted?0:this.volume;this.volume=t+(B(e)?e:0)}},{key:"decreaseVolume",value:function(e){this.increaseVolume(-e)}},{key:"toggleCaptions",value:function(e){et.toggle.call(this,e,!1)}},{key:"airplay",value:function(){Te.airplay&&this.media.webkitShowPlaybackTargetPicker()}},{key:"toggleControls",value:function(e){if(this.supported.ui&&!this.isAudio){var t=fe(this.elements.container,this.config.classNames.hideControls),i=void 0===e?void 0:!e,n=me(this.elements.container,this.config.classNames.hideControls,i);if(n&&this.config.controls.includes("settings")&&!Z(this.config.settings)&&$e.toggleMenu.call(this,!1),n!==t){var a=n?"controlshidden":"controlsshown";Me.call(this,this.media,a)}return!n}return!1}},{key:"on",value:function(e,t){Pe.call(this,this.elements.container,e,t)}},{key:"once",value:function(e,t){Ee.call(this,this.elements.container,e,t)}},{key:"off",value:function(e,t){Se(this.elements.container,e,t)}},{key:"destroy",value:function(e){var t=this,i=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if(this.ready){var n=function(){document.body.style.overflow="",t.embed=null,i?(Object.keys(t.elements).length&&(ce(t.elements.buttons.play),ce(t.elements.captions),ce(t.elements.controls),ce(t.elements.wrapper),t.elements.buttons.play=null,t.elements.captions=null,t.elements.controls=null,t.elements.wrapper=null),z(e)&&e()):(Ne.call(t),de(t.elements.original,t.elements.container),Me.call(t,t.elements.original,"destroyed",!0),z(e)&&e.call(t.elements.original),t.ready=!1,setTimeout((function(){t.elements=null,t.media=null}),200))};this.stop(),clearTimeout(this.timers.loading),clearTimeout(this.timers.controls),clearTimeout(this.timers.resized),this.isHTML5?(dt.toggleNativeControls.call(this,!0),n()):this.isYouTube?(clearInterval(this.timers.buffering),clearInterval(this.timers.playing),null!==this.embed&&z(this.embed.destroy)&&this.embed.destroy(),n()):this.isVimeo&&(null!==this.embed&&this.embed.unload().then(n),setTimeout(n,200))}}},{key:"supports",value:function(e){return Te.mime.call(this,e)}},{key:"isHTML5",get:function(){return this.provider===at.html5}},{key:"isEmbed",get:function(){return this.isYouTube||this.isVimeo}},{key:"isYouTube",get:function(){return this.provider===at.youtube}},{key:"isVimeo",get:function(){return this.provider===at.vimeo}},{key:"isVideo",get:function(){return this.type===rt}},{key:"isAudio",get:function(){return this.type===st}},{key:"playing",get:function(){return Boolean(this.ready&&!this.paused&&!this.ended)}},{key:"paused",get:function(){return Boolean(this.media.paused)}},{key:"stopped",get:function(){return Boolean(this.paused&&0===this.currentTime)}},{key:"ended",get:function(){return Boolean(this.media.ended)}},{key:"currentTime",set:function(e){if(this.duration){var t=B(e)&&e>0;this.media.currentTime=t?Math.min(e,this.duration):0,this.debug.log("Seeking to ".concat(this.currentTime," seconds"))}},get:function(){return Number(this.media.currentTime)}},{key:"buffered",get:function(){var e=this.media.buffered;return B(e)?e:e&&e.length&&this.duration>0?e.end(0)/this.duration:0}},{key:"seeking",get:function(){return Boolean(this.media.seeking)}},{key:"duration",get:function(){var e=parseFloat(this.config.duration),t=(this.media||{}).duration,i=B(t)&&t!==1/0?t:0;return e||i}},{key:"volume",set:function(e){var t=e;U(t)&&(t=Number(t)),B(t)||(t=this.storage.get("volume")),B(t)||(t=this.config.volume),t>1&&(t=1),t<0&&(t=0),this.config.volume=t,this.media.volume=t,!Z(e)&&this.muted&&t>0&&(this.muted=!1)},get:function(){return Number(this.media.volume)}},{key:"muted",set:function(e){var t=e;W(t)||(t=this.storage.get("muted")),W(t)||(t=this.config.muted),this.config.muted=t,this.media.muted=t},get:function(){return Boolean(this.media.muted)}},{key:"hasAudio",get:function(){return!this.isHTML5||(!!this.isAudio||(Boolean(this.media.mozHasAudio)||Boolean(this.media.webkitAudioDecodedByteCount)||Boolean(this.media.audioTracks&&this.media.audioTracks.length)))}},{key:"speed",set:function(e){var t=this,i=null;B(e)&&(i=e),B(i)||(i=this.storage.get("speed")),B(i)||(i=this.config.speed.selected);var n=this.minimumSpeed,a=this.maximumSpeed;i=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:255;return Math.min(Math.max(e,t),i)}(i,n,a),this.config.speed.selected=i,setTimeout((function(){t.media.playbackRate=i}),0)},get:function(){return Number(this.media.playbackRate)}},{key:"minimumSpeed",get:function(){return this.isYouTube?Math.min.apply(Math,o(this.options.speed)):this.isVimeo?.5:.0625}},{key:"maximumSpeed",get:function(){return this.isYouTube?Math.max.apply(Math,o(this.options.speed)):this.isVimeo?2:16}},{key:"quality",set:function(e){var t=this.config.quality,i=this.options.quality;if(i.length){var n=[!Z(e)&&Number(e),this.storage.get("quality"),t.selected,t.default].find(B),a=!0;if(!i.includes(n)){var s=function(e,t){return K(e)&&e.length?e.reduce((function(e,i){return Math.abs(i-t)1&&void 0!==arguments[1]?arguments[1]:{},n=null;return U(e)?n=Array.from(document.querySelectorAll(e)):Y(e)?n=Array.from(e):K(e)&&(n=e.filter(Q)),Z(n)?null:n.map((function(e){return new t(e,i)}))}}]),t}();return St.defaults=(Pt=tt,JSON.parse(JSON.stringify(Pt))),St})); +!!document.documentMode,isEdge:window.navigator.userAgent.includes("Edge"),isWebkit:"WebkitAppearance"in document.documentElement.style&&!/Edge/.test(navigator.userAgent),isIPhone:/(iPhone|iPod)/gi.test(navigator.platform),isIos:/(iPad|iPhone|iPod)/gi.test(navigator.platform)};function le(e,t){return t.split(".").reduce((function(e,t){return e&&e[t]}),e)}function ce(){for(var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length,i=new Array(t>1?t-1:0),a=1;a0?t.cloneNode(!0):t,a=e.parentNode,s=e.nextSibling;n.appendChild(e),s?a.insertBefore(n,s):a.appendChild(n)}))}function de(e,t){G(e)&&!ae(t)&&Object.entries(t).filter((function(e){var t=o(e,2)[1];return!W(t)})).forEach((function(t){var i=o(t,2),n=i[0],a=i[1];return e.setAttribute(n,a)}))}function he(e,t,i){var n=document.createElement(e);return z(t)&&de(n,t),Y(i)&&(n.innerText=i),n}function pe(e,t,i,n){G(t)&&t.appendChild(he(e,i,n))}function me(e){J(e)||$(e)?Array.from(e).forEach(me):G(e)&&G(e.parentNode)&&e.parentNode.removeChild(e)}function fe(e){if(G(e))for(var t=e.childNodes.length;t>0;)e.removeChild(e.lastChild),t-=1}function ge(e,t){return G(t)&&G(t.parentNode)&&G(e)?(t.parentNode.replaceChild(e,t),e):null}function ye(e,t){if(!Y(e)||ae(e))return{};var i={},n=ce({},t);return e.split(",").forEach((function(e){var t=e.trim(),a=t.replace(".",""),s=t.replace(/[[\]]/g,"").split("="),r=o(s,1)[0],l=s.length>1?s[1].replace(/["']/g,""):"";switch(t.charAt(0)){case".":Y(n.class)?i.class="".concat(n.class," ").concat(a):i.class=a;break;case"#":i.id=t.replace("#","");break;case"[":i[r]=l}})),ce(n,i)}function ve(e,t){if(G(e)){var i=t;Q(i)||(i=!e.hidden),e.hidden=i}}function be(e,t,i){if(J(e))return Array.from(e).map((function(e){return be(e,t,i)}));if(G(e)){var n="toggle";return void 0!==i&&(n=i?"add":"remove"),e.classList[n](t),e.classList.contains(t)}return!1}function we(e,t){return G(e)&&e.classList.contains(t)}function ke(e,t){var i=Element.prototype;return(i.matches||i.webkitMatchesSelector||i.mozMatchesSelector||i.msMatchesSelector||function(){return Array.from(document.querySelectorAll(t)).includes(this)}).call(e,t)}function Te(e){return this.elements.container.querySelectorAll(e)}function Ce(e){return this.elements.container.querySelector(e)}function Ae(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];G(e)&&(e.focus({preventScroll:!0}),t&&be(e,this.config.classNames.tabFocus))}var Se,Pe={"audio/ogg":"vorbis","audio/wav":"1","video/webm":"vp8, vorbis","video/mp4":"avc1.42E01E, mp4a.40.2","video/ogg":"theora"},Ee={audio:"canPlayType"in document.createElement("audio"),video:"canPlayType"in document.createElement("video"),check:function(e,t,i){var n=oe.isIPhone&&i&&Ee.playsinline,a=Ee[e]||"html5"!==t;return{api:a,ui:a&&Ee.rangeInput&&("video"!==e||!oe.isIPhone||n)}},pip:!(oe.isIPhone||!X(he("video").webkitSetPresentationMode)&&(!document.pictureInPictureEnabled||he("video").disablePictureInPicture)),airplay:X(window.WebKitPlaybackTargetAvailabilityEvent),playsinline:"playsInline"in document.createElement("video"),mime:function(e){if(ae(e))return!1;var t=o(e.split("/"),1)[0],i=e;if(!this.isHTML5||t!==this.type)return!1;Object.keys(Pe).includes(i)&&(i+='; codecs="'.concat(Pe[e],'"'));try{return Boolean(i&&this.media.canPlayType(i).replace(/no/,""))}catch(e){return!1}},textTracks:"textTracks"in document.createElement("video"),rangeInput:(Se=document.createElement("input"),Se.type="range","range"===Se.type),touch:"ontouchstart"in document.documentElement,transitions:!1!==se,reducedMotion:"matchMedia"in window&&window.matchMedia("(prefers-reduced-motion)").matches},Ne=function(){var e=!1;try{var t=Object.defineProperty({},"passive",{get:function(){return e=!0,null}});window.addEventListener("test",null,t),window.removeEventListener("test",null,t)}catch(e){}return e}();function Me(e,t,i){var n=this,a=arguments.length>3&&void 0!==arguments[3]&&arguments[3],s=!(arguments.length>4&&void 0!==arguments[4])||arguments[4],r=arguments.length>5&&void 0!==arguments[5]&&arguments[5];if(e&&"addEventListener"in e&&!ae(t)&&X(i)){var o=t.split(" "),l=r;Ne&&(l={passive:s,capture:r}),o.forEach((function(t){n&&n.eventListeners&&a&&n.eventListeners.push({element:e,type:t,callback:i,options:l}),e[a?"addEventListener":"removeEventListener"](t,i,l)}))}}function xe(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",i=arguments.length>2?arguments[2]:void 0,n=!(arguments.length>3&&void 0!==arguments[3])||arguments[3],a=arguments.length>4&&void 0!==arguments[4]&&arguments[4];Me.call(this,e,t,i,!0,n,a)}function Ie(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",i=arguments.length>2?arguments[2]:void 0,n=!(arguments.length>3&&void 0!==arguments[3])||arguments[3],a=arguments.length>4&&void 0!==arguments[4]&&arguments[4];Me.call(this,e,t,i,!1,n,a)}function Le(e){var t=this,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",n=arguments.length>2?arguments[2]:void 0,a=!(arguments.length>3&&void 0!==arguments[3])||arguments[3],s=arguments.length>4&&void 0!==arguments[4]&&arguments[4],r=function r(){Ie(e,i,r,a,s);for(var o=arguments.length,l=new Array(o),c=0;c1&&void 0!==arguments[1]?arguments[1]:"",i=arguments.length>2&&void 0!==arguments[2]&&arguments[2],n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};if(G(e)&&!ae(t)){var a=new CustomEvent(t,{bubbles:i,detail:s(s({},n),{},{plyr:this})});e.dispatchEvent(a)}}function _e(){this&&this.eventListeners&&(this.eventListeners.forEach((function(e){var t=e.element,i=e.type,n=e.callback,a=e.options;t.removeEventListener(i,n,a)})),this.eventListeners=[])}function je(){var e=this;return new Promise((function(t){return e.ready?setTimeout(t,0):xe.call(e,e.elements.container,"ready",t)})).then((function(){}))}function qe(e){ie(e)&&e.then(null,(function(){}))}function De(e){return!!($(e)||Y(e)&&e.includes(":"))&&($(e)?e:e.split(":")).map(Number).every(K)}function He(e){if(!$(e)||!e.every(K))return null;var t=o(e,2),i=t[0],n=t[1],a=function e(t,i){return 0===i?t:e(i,t%i)}(i,n);return[i/a,n/a]}function Fe(e){var t=function(e){return De(e)?e.split(":").map(Number):null},i=t(e);if(null===i&&(i=t(this.config.ratio)),null===i&&!ae(this.embed)&&$(this.embed.ratio)&&(i=this.embed.ratio),null===i&&this.isHTML5){var n=this.media;i=He([n.videoWidth,n.videoHeight])}return i}function Re(e){if(!this.isVideo)return{};var t=this.elements.wrapper,i=Fe.call(this,e),n=o($(i)?i:[0,0],2),a=100/n[0]*n[1];if(t.style.paddingBottom="".concat(a,"%"),this.isVimeo&&!this.config.vimeo.premium&&this.supported.ui){var s=100/this.media.offsetWidth*parseInt(window.getComputedStyle(this.media).paddingBottom,10),r=(s-a)/(s/50);this.media.style.transform="translateY(-".concat(r,"%)")}else this.isHTML5&&t.classList.toggle(this.config.classNames.videoFixedRatio,null!==i);return{padding:a,ratio:i}}var Ve={getSources:function(){var e=this;return this.isHTML5?Array.from(this.media.querySelectorAll("source")).filter((function(t){var i=t.getAttribute("type");return!!ae(i)||Ee.mime.call(e,i)})):[]},getQualityOptions:function(){return this.config.quality.forced?this.config.quality.options:Ve.getSources.call(this).map((function(e){return Number(e.getAttribute("data-res"))})).filter(Boolean)},setup:function(){if(this.isHTML5){var e=this;e.options.speed=e.config.speed.options,ae(this.config.ratio)||Re.call(e),Object.defineProperty(e.media,"quality",{get:function(){var t=Ve.getSources.call(e).find((function(t){return t.getAttribute("src")===e.source}));return t&&Number(t.getAttribute("data-res"))},set:function(t){if(e.quality!==t){if(e.config.quality.forced&&X(e.config.quality.onChange))e.config.quality.onChange(t);else{var i=Ve.getSources.call(e).find((function(e){return Number(e.getAttribute("data-res"))===t}));if(!i)return;var n=e.media,a=n.currentTime,s=n.paused,r=n.preload,o=n.readyState,l=n.playbackRate;e.media.src=i.getAttribute("src"),("none"!==r||o)&&(e.once("loadedmetadata",(function(){e.speed=l,e.currentTime=a,s||qe(e.play())})),e.media.load())}Oe.call(e,e.media,"qualitychange",!1,{quality:t})}}})}},cancelRequests:function(){this.isHTML5&&(me(Ve.getSources.call(this)),this.media.setAttribute("src",this.config.blankVideo),this.media.load(),this.debug.log("Cancelled network requests"))}};function Be(e){return $(e)?e.filter((function(t,i){return e.indexOf(t)===i})):e}function Ue(e){for(var t=arguments.length,i=new Array(t>1?t-1:0),n=1;n0&&void 0!==arguments[0]?arguments[0]:"",t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"";return e.replace(new RegExp(t.toString().replace(/([.*+?^=!:${}()|[\]/\\])/g,"\\$1"),"g"),i.toString())},ze=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";return e.toString().replace(/\w\S*/g,(function(e){return e.charAt(0).toUpperCase()+e.substr(1).toLowerCase()}))};function Ke(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",t=e.toString();return t=We(t,"-"," "),t=We(t,"_"," "),t=ze(t),We(t," ","")}function Ye(e){var t=document.createElement("div");return t.appendChild(e),t.innerHTML}var Qe={pip:"PIP",airplay:"AirPlay",html5:"HTML5",vimeo:"Vimeo",youtube:"YouTube"},Xe=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(ae(e)||ae(t))return"";var i=le(t.i18n,e);if(ae(i))return Object.keys(Qe).includes(e)?Qe[e]:"";var n={"{seektime}":t.seekTime,"{title}":t.title};return Object.entries(n).forEach((function(e){var t=o(e,2),n=t[0],a=t[1];i=We(i,n,a)})),i},$e=function(){function t(i){e(this,t),this.enabled=i.config.storage.enabled,this.key=i.config.storage.key}return i(t,[{key:"get",value:function(e){if(!t.supported||!this.enabled)return null;var i=window.localStorage.getItem(this.key);if(ae(i))return null;var n=JSON.parse(i);return Y(e)&&e.length?n[e]:n}},{key:"set",value:function(e){if(t.supported&&this.enabled&&z(e)){var i=this.get();ae(i)&&(i={}),ce(i,e),window.localStorage.setItem(this.key,JSON.stringify(i))}}}],[{key:"supported",get:function(){try{if(!("localStorage"in window))return!1;return window.localStorage.setItem("___test","___test"),window.localStorage.removeItem("___test"),!0}catch(e){return!1}}}]),t}();function Je(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"text";return new Promise((function(i,n){try{var a=new XMLHttpRequest;if(!("withCredentials"in a))return;a.addEventListener("load",(function(){if("text"===t)try{i(JSON.parse(a.responseText))}catch(e){i(a.responseText)}else i(a.response)})),a.addEventListener("error",(function(){throw new Error(a.status)})),a.open("GET",e,!0),a.responseType=t,a.send()}catch(e){n(e)}}))}function Ge(e,t){if(Y(e)){var i=Y(t),n=function(){return null!==document.getElementById(t)},a=function(e,t){e.innerHTML=t,i&&n()||document.body.insertAdjacentElement("afterbegin",e)};if(!i||!n()){var s=$e.supported,r=document.createElement("div");if(r.setAttribute("hidden",""),i&&r.setAttribute("id",t),s){var o=window.localStorage.getItem("".concat("cache","-").concat(t));if(null!==o){var l=JSON.parse(o);a(r,l.content)}}Je(e).then((function(e){ae(e)||(s&&window.localStorage.setItem("".concat("cache","-").concat(t),JSON.stringify({content:e})),a(r,e))})).catch((function(){}))}}}var Ze=function(e){return Math.trunc(e/60/60%60,10)},et=function(e){return Math.trunc(e/60%60,10)},tt=function(e){return Math.trunc(e%60,10)};function it(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],i=arguments.length>2&&void 0!==arguments[2]&&arguments[2];if(!K(e))return it(void 0,t,i);var n=function(e){return"0".concat(e).slice(-2)},a=Ze(e),s=et(e),r=tt(e);return a=t||a>0?"".concat(a,":"):"","".concat(i&&e>0?"-":"").concat(a).concat(n(s),":").concat(n(r))}var nt={getIconUrl:function(){var e=new URL(this.config.iconUrl,window.location).host!==window.location.host||oe.isIE&&!window.svg4everybody;return{url:this.config.iconUrl,cors:e}},findElements:function(){try{return this.elements.controls=Ce.call(this,this.config.selectors.controls.wrapper),this.elements.buttons={play:Te.call(this,this.config.selectors.buttons.play),pause:Ce.call(this,this.config.selectors.buttons.pause),restart:Ce.call(this,this.config.selectors.buttons.restart),rewind:Ce.call(this,this.config.selectors.buttons.rewind),fastForward:Ce.call(this,this.config.selectors.buttons.fastForward),mute:Ce.call(this,this.config.selectors.buttons.mute),pip:Ce.call(this,this.config.selectors.buttons.pip),airplay:Ce.call(this,this.config.selectors.buttons.airplay),settings:Ce.call(this,this.config.selectors.buttons.settings),captions:Ce.call(this,this.config.selectors.buttons.captions),fullscreen:Ce.call(this,this.config.selectors.buttons.fullscreen)},this.elements.progress=Ce.call(this,this.config.selectors.progress),this.elements.inputs={seek:Ce.call(this,this.config.selectors.inputs.seek),volume:Ce.call(this,this.config.selectors.inputs.volume)},this.elements.display={buffer:Ce.call(this,this.config.selectors.display.buffer),currentTime:Ce.call(this,this.config.selectors.display.currentTime),duration:Ce.call(this,this.config.selectors.display.duration)},G(this.elements.progress)&&(this.elements.display.seekTooltip=this.elements.progress.querySelector(".".concat(this.config.classNames.tooltip))),!0}catch(e){return this.debug.warn("It looks like there is a problem with your custom controls HTML",e),this.toggleNativeControls(!0),!1}},createIcon:function(e,t){var i=nt.getIconUrl.call(this),n="".concat(i.cors?"":i.url,"#").concat(this.config.iconPrefix),a=document.createElementNS("http://www.w3.org/2000/svg","svg");de(a,ce(t,{"aria-hidden":"true",focusable:"false"}));var s=document.createElementNS("http://www.w3.org/2000/svg","use"),r="".concat(n,"-").concat(e);return"href"in s&&s.setAttributeNS("http://www.w3.org/1999/xlink","href",r),s.setAttributeNS("http://www.w3.org/1999/xlink","xlink:href",r),a.appendChild(s),a},createLabel:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},i=Xe(e,this.config),n=s(s({},t),{},{class:[t.class,this.config.classNames.hidden].filter(Boolean).join(" ")});return he("span",n,i)},createBadge:function(e){if(ae(e))return null;var t=he("span",{class:this.config.classNames.menu.value});return t.appendChild(he("span",{class:this.config.classNames.menu.badge},e)),t},createButton:function(e,t){var i=this,n=ce({},t),a=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",t=e.toString();return(t=Ke(t)).charAt(0).toLowerCase()+t.slice(1)}(e),s={element:"button",toggle:!1,label:null,icon:null,labelPressed:null,iconPressed:null};switch(["element","icon","label"].forEach((function(e){Object.keys(n).includes(e)&&(s[e]=n[e],delete n[e])})),"button"!==s.element||Object.keys(n).includes("type")||(n.type="button"),Object.keys(n).includes("class")?n.class.split(" ").some((function(e){return e===i.config.classNames.control}))||ce(n,{class:"".concat(n.class," ").concat(this.config.classNames.control)}):n.class=this.config.classNames.control,e){case"play":s.toggle=!0,s.label="play",s.labelPressed="pause",s.icon="play",s.iconPressed="pause";break;case"mute":s.toggle=!0,s.label="mute",s.labelPressed="unmute",s.icon="volume",s.iconPressed="muted";break;case"captions":s.toggle=!0,s.label="enableCaptions",s.labelPressed="disableCaptions",s.icon="captions-off",s.iconPressed="captions-on";break;case"fullscreen":s.toggle=!0,s.label="enterFullscreen",s.labelPressed="exitFullscreen",s.icon="enter-fullscreen",s.iconPressed="exit-fullscreen";break;case"play-large":n.class+=" ".concat(this.config.classNames.control,"--overlaid"),a="play",s.label="play",s.icon="play";break;default:ae(s.label)&&(s.label=a),ae(s.icon)&&(s.icon=e)}var r=he(s.element);return s.toggle?(r.appendChild(nt.createIcon.call(this,s.iconPressed,{class:"icon--pressed"})),r.appendChild(nt.createIcon.call(this,s.icon,{class:"icon--not-pressed"})),r.appendChild(nt.createLabel.call(this,s.labelPressed,{class:"label--pressed"})),r.appendChild(nt.createLabel.call(this,s.label,{class:"label--not-pressed"}))):(r.appendChild(nt.createIcon.call(this,s.icon)),r.appendChild(nt.createLabel.call(this,s.label))),ce(n,ye(this.config.selectors.buttons[a],n)),de(r,n),"play"===a?($(this.elements.buttons[a])||(this.elements.buttons[a]=[]),this.elements.buttons[a].push(r)):this.elements.buttons[a]=r,r},createRange:function(e,t){var i=he("input",ce(ye(this.config.selectors.inputs[e]),{type:"range",min:0,max:100,step:.01,value:0,autocomplete:"off",role:"slider","aria-label":Xe(e,this.config),"aria-valuemin":0,"aria-valuemax":100,"aria-valuenow":0},t));return this.elements.inputs[e]=i,nt.updateRangeFill.call(this,i),_.setup(i),i},createProgress:function(e,t){var i=he("progress",ce(ye(this.config.selectors.display[e]),{min:0,max:100,value:0,role:"progressbar","aria-hidden":!0},t));if("volume"!==e){i.appendChild(he("span",null,"0"));var n={played:"played",buffer:"buffered"}[e],a=n?Xe(n,this.config):"";i.innerText="% ".concat(a.toLowerCase())}return this.elements.display[e]=i,i},createTime:function(e,t){var i=ye(this.config.selectors.display[e],t),n=he("div",ce(i,{class:"".concat(i.class?i.class:""," ").concat(this.config.classNames.display.time," ").trim(),"aria-label":Xe(e,this.config)}),"00:00");return this.elements.display[e]=n,n},bindMenuItemShortcuts:function(e,t){var i=this;xe.call(this,e,"keydown keyup",(function(n){if([32,38,39,40].includes(n.which)&&(n.preventDefault(),n.stopPropagation(),"keydown"!==n.type)){var a,s=ke(e,'[role="menuitemradio"]');if(!s&&[32,39].includes(n.which))nt.showMenuPanel.call(i,t,!0);else 32!==n.which&&(40===n.which||s&&39===n.which?(a=e.nextElementSibling,G(a)||(a=e.parentNode.firstElementChild)):(a=e.previousElementSibling,G(a)||(a=e.parentNode.lastElementChild)),Ae.call(i,a,!0))}}),!1),xe.call(this,e,"keyup",(function(e){13===e.which&&nt.focusFirstMenuItem.call(i,null,!0)}))},createMenuItem:function(e){var t=this,i=e.value,n=e.list,a=e.type,s=e.title,r=e.badge,o=void 0===r?null:r,l=e.checked,c=void 0!==l&&l,u=ye(this.config.selectors.inputs[a]),d=he("button",ce(u,{type:"button",role:"menuitemradio",class:"".concat(this.config.classNames.control," ").concat(u.class?u.class:"").trim(),"aria-checked":c,value:i})),h=he("span");h.innerHTML=s,G(o)&&h.appendChild(o),d.appendChild(h),Object.defineProperty(d,"checked",{enumerable:!0,get:function(){return"true"===d.getAttribute("aria-checked")},set:function(e){e&&Array.from(d.parentNode.children).filter((function(e){return ke(e,'[role="menuitemradio"]')})).forEach((function(e){return e.setAttribute("aria-checked","false")})),d.setAttribute("aria-checked",e?"true":"false")}}),this.listeners.bind(d,"click keyup",(function(e){if(!ee(e)||32===e.which){switch(e.preventDefault(),e.stopPropagation(),d.checked=!0,a){case"language":t.currentTrack=Number(i);break;case"quality":t.quality=i;break;case"speed":t.speed=parseFloat(i)}nt.showMenuPanel.call(t,"home",ee(e))}}),a,!1),nt.bindMenuItemShortcuts.call(this,d,a),n.appendChild(d)},formatTime:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if(!K(e))return e;var i=Ze(this.duration)>0;return it(e,i,t)},updateTimeDisplay:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,i=arguments.length>2&&void 0!==arguments[2]&&arguments[2];G(e)&&K(t)&&(e.innerText=nt.formatTime(t,i))},updateVolume:function(){this.supported.ui&&(G(this.elements.inputs.volume)&&nt.setRange.call(this,this.elements.inputs.volume,this.muted?0:this.volume),G(this.elements.buttons.mute)&&(this.elements.buttons.mute.pressed=this.muted||0===this.volume))},setRange:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;G(e)&&(e.value=t,nt.updateRangeFill.call(this,e))},updateProgress:function(e){var t=this;if(this.supported.ui&&Z(e)){var i,n,a=0;if(e)switch(e.type){case"timeupdate":case"seeking":case"seeked":i=this.currentTime,n=this.duration,a=0===i||0===n||Number.isNaN(i)||Number.isNaN(n)?0:(i/n*100).toFixed(2),"timeupdate"===e.type&&nt.setRange.call(this,this.elements.inputs.seek,a);break;case"playing":case"progress":!function(e,i){var n=K(i)?i:0,a=G(e)?e:t.elements.display.buffer;if(G(a)){a.value=n;var s=a.getElementsByTagName("span")[0];G(s)&&(s.childNodes[0].nodeValue=n)}}(this.elements.display.buffer,100*this.buffered)}}},updateRangeFill:function(e){var t=Z(e)?e.target:e;if(G(t)&&"range"===t.getAttribute("type")){if(ke(t,this.config.selectors.inputs.seek)){t.setAttribute("aria-valuenow",this.currentTime);var i=nt.formatTime(this.currentTime),n=nt.formatTime(this.duration),a=Xe("seekLabel",this.config);t.setAttribute("aria-valuetext",a.replace("{currentTime}",i).replace("{duration}",n))}else if(ke(t,this.config.selectors.inputs.volume)){var s=100*t.value;t.setAttribute("aria-valuenow",s),t.setAttribute("aria-valuetext","".concat(s.toFixed(1),"%"))}else t.setAttribute("aria-valuenow",t.value);oe.isWebkit&&t.style.setProperty("--value","".concat(t.value/t.max*100,"%"))}},updateSeekTooltip:function(e){var t=this;if(this.config.tooltips.seek&&G(this.elements.inputs.seek)&&G(this.elements.display.seekTooltip)&&0!==this.duration){var i="".concat(this.config.classNames.tooltip,"--visible"),n=function(e){return be(t.elements.display.seekTooltip,i,e)};if(this.touch)n(!1);else{var a=0,s=this.elements.progress.getBoundingClientRect();if(Z(e))a=100/s.width*(e.pageX-s.left);else{if(!we(this.elements.display.seekTooltip,i))return;a=parseFloat(this.elements.display.seekTooltip.style.left,10)}a<0?a=0:a>100&&(a=100),nt.updateTimeDisplay.call(this,this.elements.display.seekTooltip,this.duration/100*a),this.elements.display.seekTooltip.style.left="".concat(a,"%"),Z(e)&&["mouseenter","mouseleave"].includes(e.type)&&n("mouseenter"===e.type)}}},timeUpdate:function(e){var t=!G(this.elements.display.duration)&&this.config.invertTime;nt.updateTimeDisplay.call(this,this.elements.display.currentTime,t?this.duration-this.currentTime:this.currentTime,t),e&&"timeupdate"===e.type&&this.media.seeking||nt.updateProgress.call(this,e)},durationUpdate:function(){if(this.supported.ui&&(this.config.invertTime||!this.currentTime)){if(this.duration>=Math.pow(2,32))return ve(this.elements.display.currentTime,!0),void ve(this.elements.progress,!0);G(this.elements.inputs.seek)&&this.elements.inputs.seek.setAttribute("aria-valuemax",this.duration);var e=G(this.elements.display.duration);!e&&this.config.displayDuration&&this.paused&&nt.updateTimeDisplay.call(this,this.elements.display.currentTime,this.duration),e&&nt.updateTimeDisplay.call(this,this.elements.display.duration,this.duration),nt.updateSeekTooltip.call(this)}},toggleMenuButton:function(e,t){ve(this.elements.settings.buttons[e],!t)},updateSetting:function(e,t,i){var n=this.elements.settings.panels[e],a=null,s=t;if("captions"===e)a=this.currentTrack;else{if(a=ae(i)?this[e]:i,ae(a)&&(a=this.config[e].default),!ae(this.options[e])&&!this.options[e].includes(a))return void this.debug.warn("Unsupported value of '".concat(a,"' for ").concat(e));if(!this.config[e].options.includes(a))return void this.debug.warn("Disabled value of '".concat(a,"' for ").concat(e))}if(G(s)||(s=n&&n.querySelector('[role="menu"]')),G(s)){this.elements.settings.buttons[e].querySelector(".".concat(this.config.classNames.menu.value)).innerHTML=nt.getLabel.call(this,e,a);var r=s&&s.querySelector('[value="'.concat(a,'"]'));G(r)&&(r.checked=!0)}},getLabel:function(e,t){switch(e){case"speed":return 1===t?Xe("normal",this.config):"".concat(t,"×");case"quality":if(K(t)){var i=Xe("qualityLabel.".concat(t),this.config);return i.length?i:"".concat(t,"p")}return ze(t);case"captions":return rt.getLabel.call(this);default:return null}},setQualityMenu:function(e){var t=this;if(G(this.elements.settings.panels.quality)){var i=this.elements.settings.panels.quality.querySelector('[role="menu"]');$(e)&&(this.options.quality=Be(e).filter((function(e){return t.config.quality.options.includes(e)})));var n=!ae(this.options.quality)&&this.options.quality.length>1;if(nt.toggleMenuButton.call(this,"quality",n),fe(i),nt.checkMenu.call(this),n){var a=function(e){var i=Xe("qualityBadge.".concat(e),t.config);return i.length?nt.createBadge.call(t,i):null};this.options.quality.sort((function(e,i){var n=t.config.quality.options;return n.indexOf(e)>n.indexOf(i)?1:-1})).forEach((function(e){nt.createMenuItem.call(t,{value:e,list:i,type:"quality",title:nt.getLabel.call(t,"quality",e),badge:a(e)})})),nt.updateSetting.call(this,"quality",i)}}},setCaptionsMenu:function(){var e=this;if(G(this.elements.settings.panels.captions)){var t=this.elements.settings.panels.captions.querySelector('[role="menucaptions"]'),i=rt.getTracks.call(this),n=Boolean(i.length);if(nt.toggleMenuButton.call(this,"captions",n),fe(t),nt.checkMenu.call(this),n){var a=i.map((function(i,n){return{value:n,checked:e.captions.toggled&&e.currentTrack===n,title:rt.getLabel.call(e,i),badge:i.language&&nt.createBadge.call(e,i.language.toUpperCase()),list:t,type:"language"}}));a.unshift({value:-1,checked:!this.captions.toggled,title:Xe("disabled",this.config),list:t,type:"language"}),a.forEach(nt.createMenuItem.bind(this)),nt.updateSetting.call(this,"captions",t)}}},setSpeedMenu:function(){var e=this;if(G(this.elements.settings.panels.speed)){var t=this.elements.settings.panels.speed.querySelector('[role="menu"]');this.options.speed=this.options.speed.filter((function(t){return t>=e.minimumSpeed&&t<=e.maximumSpeed}));var i=!ae(this.options.speed)&&this.options.speed.length>1;nt.toggleMenuButton.call(this,"speed",i),fe(t),nt.checkMenu.call(this),i&&(this.options.speed.forEach((function(i){nt.createMenuItem.call(e,{value:i,list:t,type:"speed",title:nt.getLabel.call(e,"speed",i)})})),nt.updateSetting.call(this,"speed",t))}},checkMenu:function(){var e=this.elements.settings.buttons,t=!ae(e)&&Object.values(e).some((function(e){return!e.hidden}));ve(this.elements.settings.menu,!t)},focusFirstMenuItem:function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if(!this.elements.settings.popup.hidden){var i=e;G(i)||(i=Object.values(this.elements.settings.panels).find((function(e){return!e.hidden})));var n=i.querySelector('[role^="menuitem"]');Ae.call(this,n,t)}},toggleMenu:function(e){var t=this.elements.settings.popup,i=this.elements.buttons.settings;if(G(t)&&G(i)){var n=t.hidden,a=n;if(Q(e))a=e;else if(ee(e)&&27===e.which)a=!1;else if(Z(e)){var s=X(e.composedPath)?e.composedPath()[0]:e.target,r=t.contains(s);if(r||!r&&e.target!==i&&a)return}i.setAttribute("aria-expanded",a),ve(t,!a),be(this.elements.container,this.config.classNames.menu.open,a),a&&ee(e)?nt.focusFirstMenuItem.call(this,null,!0):a||n||Ae.call(this,i,ee(e))}},getMenuSize:function(e){var t=e.cloneNode(!0);t.style.position="absolute",t.style.opacity=0,t.removeAttribute("hidden"),e.parentNode.appendChild(t);var i=t.scrollWidth,n=t.scrollHeight;return me(t),{width:i,height:n}},showMenuPanel:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",i=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=this.elements.container.querySelector("#plyr-settings-".concat(this.id,"-").concat(t));if(G(n)){var a=n.parentNode,s=Array.from(a.children).find((function(e){return!e.hidden}));if(Ee.transitions&&!Ee.reducedMotion){a.style.width="".concat(s.scrollWidth,"px"),a.style.height="".concat(s.scrollHeight,"px");var r=nt.getMenuSize.call(this,n),o=function t(i){i.target===a&&["width","height"].includes(i.propertyName)&&(a.style.width="",a.style.height="",Ie.call(e,a,se,t))};xe.call(this,a,se,o),a.style.width="".concat(r.width,"px"),a.style.height="".concat(r.height,"px")}ve(s,!0),ve(n,!1),nt.focusFirstMenuItem.call(this,n,i)}},setDownloadUrl:function(){var e=this.elements.buttons.download;G(e)&&e.setAttribute("href",this.download)},create:function(e){var t=this,i=nt.bindMenuItemShortcuts,n=nt.createButton,a=nt.createProgress,s=nt.createRange,r=nt.createTime,o=nt.setQualityMenu,l=nt.setSpeedMenu,c=nt.showMenuPanel;this.elements.controls=null,$(this.config.controls)&&this.config.controls.includes("play-large")&&this.elements.container.appendChild(n.call(this,"play-large"));var u=he("div",ye(this.config.selectors.controls.wrapper));this.elements.controls=u;var d={class:"plyr__controls__item"};return Be($(this.config.controls)?this.config.controls:[]).forEach((function(o){if("restart"===o&&u.appendChild(n.call(t,"restart",d)),"rewind"===o&&u.appendChild(n.call(t,"rewind",d)),"play"===o&&u.appendChild(n.call(t,"play",d)),"fast-forward"===o&&u.appendChild(n.call(t,"fast-forward",d)),"progress"===o){var l=he("div",{class:"".concat(d.class," plyr__progress__container")}),h=he("div",ye(t.config.selectors.progress));if(h.appendChild(s.call(t,"seek",{id:"plyr-seek-".concat(e.id)})),h.appendChild(a.call(t,"buffer")),t.config.tooltips.seek){var p=he("span",{class:t.config.classNames.tooltip},"00:00");h.appendChild(p),t.elements.display.seekTooltip=p}t.elements.progress=h,l.appendChild(t.elements.progress),u.appendChild(l)}if("current-time"===o&&u.appendChild(r.call(t,"currentTime",d)),"duration"===o&&u.appendChild(r.call(t,"duration",d)),"mute"===o||"volume"===o){var m=t.elements.volume;if(G(m)&&u.contains(m)||(m=he("div",ce({},d,{class:"".concat(d.class," plyr__volume").trim()})),t.elements.volume=m,u.appendChild(m)),"mute"===o&&m.appendChild(n.call(t,"mute")),"volume"===o&&!oe.isIos){var f={max:1,step:.05,value:t.config.volume};m.appendChild(s.call(t,"volume",ce(f,{id:"plyr-volume-".concat(e.id)})))}}if("captions"===o&&u.appendChild(n.call(t,"captions",d)),"settings"===o&&!ae(t.config.settings)){var g=he("div",ce({},d,{class:"".concat(d.class," plyr__menu").trim(),hidden:""}));g.appendChild(n.call(t,"settings",{"aria-haspopup":!0,"aria-controls":"plyr-settings-".concat(e.id),"aria-expanded":!1}));var y=he("div",{class:"plyr__menu__container",id:"plyr-settings-".concat(e.id),hidden:""}),v=he("div"),b=he("div",{id:"plyr-settings-".concat(e.id,"-home")}),w=he("div",{role:"menu"});b.appendChild(w),v.appendChild(b),t.elements.settings.panels.home=b,t.config.settings.forEach((function(n){var a=he("button",ce(ye(t.config.selectors.buttons.settings),{type:"button",class:"".concat(t.config.classNames.control," ").concat(t.config.classNames.control,"--forward"),role:"menuitem","aria-haspopup":!0,hidden:""}));i.call(t,a,n),xe.call(t,a,"click",(function(){c.call(t,n,!1)}));var s=he("span",null,Xe(n,t.config)),r=he("span",{class:t.config.classNames.menu.value});r.innerHTML=e[n],s.appendChild(r),a.appendChild(s),w.appendChild(a);var o=he("div",{id:"plyr-settings-".concat(e.id,"-").concat(n),hidden:""}),l=he("button",{type:"button",class:"".concat(t.config.classNames.control," ").concat(t.config.classNames.control,"--back")});l.appendChild(he("span",{"aria-hidden":!0},Xe(n,t.config))),l.appendChild(he("span",{class:t.config.classNames.hidden},Xe("menuBack",t.config))),xe.call(t,o,"keydown",(function(e){37===e.which&&(e.preventDefault(),e.stopPropagation(),c.call(t,"home",!0))}),!1),xe.call(t,l,"click",(function(){c.call(t,"home",!1)})),o.appendChild(l),o.appendChild(he("div",{role:"menu"})),o.appendChild(he("div",{role:"menucaptions"})),v.appendChild(o),t.elements.settings.buttons[n]=a,t.elements.settings.panels[n]=o})),y.appendChild(v),g.appendChild(y),u.appendChild(g),t.elements.settings.popup=y,t.elements.settings.menu=g}if("pip"===o&&Ee.pip&&u.appendChild(n.call(t,"pip",d)),"airplay"===o&&Ee.airplay&&u.appendChild(n.call(t,"airplay",d)),"download"===o){var k=ce({},d,{element:"a",href:t.download,target:"_blank"});t.isHTML5&&(k.download="");var T=t.config.urls.download;!ne(T)&&t.isEmbed&&ce(k,{icon:"logo-".concat(t.provider),label:t.provider}),u.appendChild(n.call(t,"download",k))}"fullscreen"===o&&u.appendChild(n.call(t,"fullscreen",d))})),this.isHTML5&&o.call(this,Ve.getQualityOptions.call(this)),l.call(this),u},inject:function(){var e=this;if(this.config.loadSprite){var t=nt.getIconUrl.call(this);t.cors&&Ge(t.url,"sprite-plyr")}this.id=Math.floor(1e4*Math.random());var i=null;this.elements.controls=null;var n={id:this.id,seektime:this.config.seekTime,title:this.config.title},a=!0;X(this.config.controls)&&(this.config.controls=this.config.controls.call(this,n)),this.config.controls||(this.config.controls=[]),G(this.config.controls)||Y(this.config.controls)?i=this.config.controls:(i=nt.create.call(this,{id:this.id,seektime:this.config.seekTime,speed:this.speed,quality:this.quality,captions:rt.getLabel.call(this)}),a=!1);var s,r;if(a&&Y(this.config.controls)&&(s=i,Object.entries(n).forEach((function(e){var t=o(e,2),i=t[0],n=t[1];s=We(s,"{".concat(i,"}"),n)})),i=s),Y(this.config.selectors.controls.container)&&(r=document.querySelector(this.config.selectors.controls.container)),G(r)||(r=this.elements.container),r[G(i)?"insertAdjacentElement":"insertAdjacentHTML"]("afterbegin",i),G(this.elements.controls)||nt.findElements.call(this),!ae(this.elements.buttons)){var l=function(t){var i=e.config.classNames.controlPressed;Object.defineProperty(t,"pressed",{enumerable:!0,get:function(){return we(t,i)},set:function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];be(t,i,e)}})};Object.values(this.elements.buttons).filter(Boolean).forEach((function(e){$(e)||J(e)?Array.from(e).filter(Boolean).forEach(l):l(e)}))}if(oe.isEdge&&re(r),this.config.tooltips.controls){var c=this.config,u=c.classNames,d=c.selectors,h="".concat(d.controls.wrapper," ").concat(d.labels," .").concat(u.hidden),p=Te.call(this,h);Array.from(p).forEach((function(t){be(t,e.config.classNames.hidden,!1),be(t,e.config.classNames.tooltip,!0)}))}}};function at(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],i=e;if(t){var n=document.createElement("a");n.href=i,i=n.href}try{return new URL(i)}catch(e){return null}}function st(e){var t=new URLSearchParams;return z(e)&&Object.entries(e).forEach((function(e){var i=o(e,2),n=i[0],a=i[1];t.set(n,a)})),t}var rt={setup:function(){if(this.supported.ui)if(!this.isVideo||this.isYouTube||this.isHTML5&&!Ee.textTracks)$(this.config.controls)&&this.config.controls.includes("settings")&&this.config.settings.includes("captions")&&nt.setCaptionsMenu.call(this);else{if(G(this.elements.captions)||(this.elements.captions=he("div",ye(this.config.selectors.captions)),function(e,t){G(e)&&G(t)&&t.parentNode.insertBefore(e,t.nextSibling)}(this.elements.captions,this.elements.wrapper)),oe.isIE&&window.URL){var e=this.media.querySelectorAll("track");Array.from(e).forEach((function(e){var t=e.getAttribute("src"),i=at(t);null!==i&&i.hostname!==window.location.href.hostname&&["http:","https:"].includes(i.protocol)&&Je(t,"blob").then((function(t){e.setAttribute("src",window.URL.createObjectURL(t))})).catch((function(){me(e)}))}))}var t=Be((navigator.languages||[navigator.language||navigator.userLanguage||"en"]).map((function(e){return e.split("-")[0]}))),i=(this.storage.get("language")||this.config.captions.language||"auto").toLowerCase();if("auto"===i)i=o(t,1)[0];var n=this.storage.get("captions");if(Q(n)||(n=this.config.captions.active),Object.assign(this.captions,{toggled:!1,active:n,language:i,languages:t}),this.isHTML5){var a=this.config.captions.update?"addtrack removetrack":"removetrack";xe.call(this,this.media.textTracks,a,rt.update.bind(this))}setTimeout(rt.update.bind(this),0)}},update:function(){var e=this,t=rt.getTracks.call(this,!0),i=this.captions,n=i.active,a=i.language,s=i.meta,r=i.currentTrackNode,o=Boolean(t.find((function(e){return e.language===a})));this.isHTML5&&this.isVideo&&t.filter((function(e){return!s.get(e)})).forEach((function(t){e.debug.log("Track added",t),s.set(t,{default:"showing"===t.mode}),"showing"===t.mode&&(t.mode="hidden"),xe.call(e,t,"cuechange",(function(){return rt.updateCues.call(e)}))})),(o&&this.language!==a||!t.includes(r))&&(rt.setLanguage.call(this,a),rt.toggle.call(this,n&&o)),be(this.elements.container,this.config.classNames.captions.enabled,!ae(t)),$(this.config.controls)&&this.config.controls.includes("settings")&&this.config.settings.includes("captions")&&nt.setCaptionsMenu.call(this)},toggle:function(e){var t=this,i=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];if(this.supported.ui){var n=this.captions.toggled,a=this.config.classNames.captions.active,s=W(e)?!n:e;if(s!==n){if(i||(this.captions.active=s,this.storage.set({captions:s})),!this.language&&s&&!i){var r=rt.getTracks.call(this),o=rt.findTrack.call(this,[this.captions.language].concat(l(this.captions.languages)),!0);return this.captions.language=o.language,void rt.set.call(this,r.indexOf(o))}this.elements.buttons.captions&&(this.elements.buttons.captions.pressed=s),be(this.elements.container,a,s),this.captions.toggled=s,nt.updateSetting.call(this,"captions"),Oe.call(this,this.media,s?"captionsenabled":"captionsdisabled")}setTimeout((function(){s&&t.captions.toggled&&(t.captions.currentTrackNode.mode="hidden")}))}},set:function(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],i=rt.getTracks.call(this);if(-1!==e)if(K(e))if(e in i){if(this.captions.currentTrack!==e){this.captions.currentTrack=e;var n=i[e],a=n||{},s=a.language;this.captions.currentTrackNode=n,nt.updateSetting.call(this,"captions"),t||(this.captions.language=s,this.storage.set({language:s})),this.isVimeo&&this.embed.enableTextTrack(s),Oe.call(this,this.media,"languagechange")}rt.toggle.call(this,!0,t),this.isHTML5&&this.isVideo&&rt.updateCues.call(this)}else this.debug.warn("Track not found",e);else this.debug.warn("Invalid caption argument",e);else rt.toggle.call(this,!1,t)},setLanguage:function(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];if(Y(e)){var i=e.toLowerCase();this.captions.language=i;var n=rt.getTracks.call(this),a=rt.findTrack.call(this,[i]);rt.set.call(this,n.indexOf(a),t)}else this.debug.warn("Invalid language argument",e)},getTracks:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]&&arguments[0],i=Array.from((this.media||{}).textTracks||[]);return i.filter((function(i){return!e.isHTML5||t||e.captions.meta.has(i)})).filter((function(e){return["captions","subtitles"].includes(e.kind)}))},findTrack:function(e){var t,i=this,n=arguments.length>1&&void 0!==arguments[1]&&arguments[1],a=rt.getTracks.call(this),s=function(e){return Number((i.captions.meta.get(e)||{}).default)},r=Array.from(a).sort((function(e,t){return s(t)-s(e)}));return e.every((function(e){return!(t=r.find((function(t){return t.language===e})))})),t||(n?r[0]:void 0)},getCurrentTrack:function(){return rt.getTracks.call(this)[this.currentTrack]},getLabel:function(e){var t=e;return!te(t)&&Ee.textTracks&&this.captions.toggled&&(t=rt.getCurrentTrack.call(this)),te(t)?ae(t.label)?ae(t.language)?Xe("enabled",this.config):e.language.toUpperCase():t.label:Xe("disabled",this.config)},updateCues:function(e){if(this.supported.ui)if(G(this.elements.captions))if(W(e)||Array.isArray(e)){var t=e;if(!t){var i=rt.getCurrentTrack.call(this);t=Array.from((i||{}).activeCues||[]).map((function(e){return e.getCueAsHTML()})).map(Ye)}var n=t.map((function(e){return e.trim()})).join("\n");if(n!==this.elements.captions.innerHTML){fe(this.elements.captions);var a=he("span",ye(this.config.selectors.caption));a.innerHTML=n,this.elements.captions.appendChild(a),Oe.call(this,this.media,"cuechange")}}else this.debug.warn("updateCues: Invalid input",e);else this.debug.warn("No captions element to render to")}},ot={enabled:!0,title:"",debug:!1,autoplay:!1,autopause:!0,playsinline:!0,seekTime:10,volume:1,muted:!1,duration:null,displayDuration:!0,invertTime:!0,toggleInvert:!0,ratio:null,clickToPlay:!0,hideControls:!0,resetOnEnd:!1,disableContextMenu:!0,loadSprite:!0,iconPrefix:"plyr",iconUrl:"/theme/modules/plyr/plyr.svg",blankVideo:"/theme/modules/plyr/blank.webm",quality:{default:576,options:[4320,2880,2160,1440,1080,720,576,480,360,240],forced:!1,onChange:null},loop:{active:!1},speed:{selected:1,options:[.5,.75,1,1.25,1.5,1.75,2,4]},keyboard:{focused:!0,global:!1},tooltips:{controls:!1,seek:!0},captions:{active:!1,language:"auto",update:!1},fullscreen:{enabled:!0,fallback:!0,iosNative:!1},storage:{enabled:!0,key:"plyr"},controls:["play-large","play","progress","current-time","mute","volume","captions","settings","pip","airplay","fullscreen"],settings:["captions","quality","speed"],i18n:{restart:"Restart",rewind:"Rewind {seektime}s",play:"Play",pause:"Pause",fastForward:"Forward {seektime}s",seek:"Seek",seekLabel:"{currentTime} of {duration}",played:"Played",buffered:"Buffered",currentTime:"Current time",duration:"Duration",volume:"Volume",mute:"Mute",unmute:"Unmute",enableCaptions:"Enable captions",disableCaptions:"Disable captions",download:"Download",enterFullscreen:"Enter fullscreen",exitFullscreen:"Exit fullscreen",frameTitle:"Player for {title}",captions:"Captions",settings:"Settings",pip:"PIP",menuBack:"Go back to previous menu",speed:"Speed",normal:"Normal",quality:"Quality",loop:"Loop",start:"Start",end:"End",all:"All",reset:"Reset",disabled:"Disabled",enabled:"Enabled",advertisement:"Ad",qualityBadge:{2160:"4K",1440:"HD",1080:"HD",720:"HD",576:"SD",480:"SD"}},urls:{download:null,vimeo:{sdk:"https://player.vimeo.com/api/player.js",iframe:"https://player.vimeo.com/video/{0}?{1}",api:"https://vimeo.com/api/v2/video/{0}.json"},youtube:{sdk:"https://www.youtube.com/iframe_api",api:"https://noembed.com/embed?url=https://www.youtube.com/watch?v={0}"},googleIMA:{sdk:"https://imasdk.googleapis.com/js/sdkloader/ima3.js"}},listeners:{seek:null,play:null,pause:null,restart:null,rewind:null,fastForward:null,mute:null,volume:null,captions:null,download:null,fullscreen:null,pip:null,airplay:null,speed:null,quality:null,loop:null,language:null},events:["ended","progress","stalled","playing","waiting","canplay","canplaythrough","loadstart","loadeddata","loadedmetadata","timeupdate","volumechange","play","pause","error","seeking","seeked","emptied","ratechange","cuechange","download","enterfullscreen","exitfullscreen","captionsenabled","captionsdisabled","languagechange","controlshidden","controlsshown","ready","statechange","qualitychange","adsloaded","adscontentpause","adscontentresume","adstarted","adsmidpoint","adscomplete","adsallcomplete","adsimpression","adsclick"],selectors:{editable:"input, textarea, select, [contenteditable]",container:".plyr",controls:{container:null,wrapper:".plyr__controls"},labels:"[data-plyr]",buttons:{play:'[data-plyr="play"]',pause:'[data-plyr="pause"]',restart:'[data-plyr="restart"]',rewind:'[data-plyr="rewind"]',fastForward:'[data-plyr="fast-forward"]',mute:'[data-plyr="mute"]',captions:'[data-plyr="captions"]',download:'[data-plyr="download"]',fullscreen:'[data-plyr="fullscreen"]',pip:'[data-plyr="pip"]',airplay:'[data-plyr="airplay"]',settings:'[data-plyr="settings"]',loop:'[data-plyr="loop"]'},inputs:{seek:'[data-plyr="seek"]',volume:'[data-plyr="volume"]',speed:'[data-plyr="speed"]',language:'[data-plyr="language"]',quality:'[data-plyr="quality"]'},display:{currentTime:".plyr__time--current",duration:".plyr__time--duration",buffer:".plyr__progress__buffer",loop:".plyr__progress__loop",volume:".plyr__volume--display"},progress:".plyr__progress",captions:".plyr__captions",caption:".plyr__caption"},classNames:{type:"plyr--{0}",provider:"plyr--{0}",video:"plyr__video-wrapper",embed:"plyr__video-embed",videoFixedRatio:"plyr__video-wrapper--fixed-ratio",embedContainer:"plyr__video-embed__container",poster:"plyr__poster",posterEnabled:"plyr__poster-enabled",ads:"plyr__ads",control:"plyr__control",controlPressed:"plyr__control--pressed",playing:"plyr--playing",paused:"plyr--paused",stopped:"plyr--stopped",loading:"plyr--loading",hover:"plyr--hover",tooltip:"plyr__tooltip",cues:"plyr__cues",hidden:"plyr__sr-only",hideControls:"plyr--hide-controls",isIos:"plyr--is-ios",isTouch:"plyr--is-touch",uiSupported:"plyr--full-ui",noTransition:"plyr--no-transition",display:{time:"plyr__time"},menu:{value:"plyr__menu__value",badge:"plyr__badge",open:"plyr--menu-open"},captions:{enabled:"plyr--captions-enabled",active:"plyr--captions-active"},fullscreen:{enabled:"plyr--fullscreen-enabled",fallback:"plyr--fullscreen-fallback"},pip:{supported:"plyr--pip-supported",active:"plyr--pip-active"},airplay:{supported:"plyr--airplay-supported",active:"plyr--airplay-active"},tabFocus:"plyr__tab-focus",previewThumbnails:{thumbContainer:"plyr__preview-thumb",thumbContainerShown:"plyr__preview-thumb--is-shown",imageContainer:"plyr__preview-thumb__image-container",timeContainer:"plyr__preview-thumb__time-container",scrubbingContainer:"plyr__preview-scrubbing",scrubbingContainerShown:"plyr__preview-scrubbing--is-shown"}},attributes:{embed:{provider:"data-plyr-provider",id:"data-plyr-embed-id"}},ads:{enabled:!1,publisherId:"",tagUrl:""},previewThumbnails:{enabled:!1,src:""},vimeo:{byline:!1,portrait:!1,title:!1,speed:!0,transparent:!1,premium:!1,referrerPolicy:null},youtube:{noCookie:!0,rel:0,showinfo:0,iv_load_policy:3,modestbranding:1}},lt="picture-in-picture",ct="inline",ut={html5:"html5",youtube:"youtube",vimeo:"vimeo"},dt="audio",ht="video";var pt=function(){},mt=function(){function t(){var i=arguments.length>0&&void 0!==arguments[0]&&arguments[0];e(this,t),this.enabled=window.console&&i,this.enabled&&this.log("Debugging enabled")}return i(t,[{key:"log",get:function(){return this.enabled?Function.prototype.bind.call(console.log,console):pt}},{key:"warn",get:function(){return this.enabled?Function.prototype.bind.call(console.warn,console):pt}},{key:"error",get:function(){return this.enabled?Function.prototype.bind.call(console.error,console):pt}}]),t}(),ft=function(){function t(i){var n=this;e(this,t),this.player=i,this.prefix=t.prefix,this.property=t.property,this.scrollPosition={x:0,y:0},this.forceFallback="force"===i.config.fullscreen.fallback,this.player.elements.fullscreen=i.config.fullscreen.container&&function(e,t){return(Element.prototype.closest||function(){var e=this;do{if(ke.matches(e,t))return e;e=e.parentElement||e.parentNode}while(null!==e&&1===e.nodeType);return null}).call(e,t)}(this.player.elements.container,i.config.fullscreen.container),xe.call(this.player,document,"ms"===this.prefix?"MSFullscreenChange":"".concat(this.prefix,"fullscreenchange"),(function(){n.onChange()})),xe.call(this.player,this.player.elements.container,"dblclick",(function(e){G(n.player.elements.controls)&&n.player.elements.controls.contains(e.target)||n.toggle()})),xe.call(this,this.player.elements.container,"keydown",(function(e){return n.trapFocus(e)})),this.update()}return i(t,[{key:"onChange",value:function(){if(this.enabled){var e=this.player.elements.buttons.fullscreen;G(e)&&(e.pressed=this.active),Oe.call(this.player,this.target,this.active?"enterfullscreen":"exitfullscreen",!0)}}},{key:"toggleFallback",value:function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];if(e?this.scrollPosition={x:window.scrollX||0,y:window.scrollY||0}:window.scrollTo(this.scrollPosition.x,this.scrollPosition.y),document.body.style.overflow=e?"hidden":"",be(this.target,this.player.config.classNames.fullscreen.fallback,e),oe.isIos){var t=document.head.querySelector('meta[name="viewport"]'),i="viewport-fit=cover";t||(t=document.createElement("meta")).setAttribute("name","viewport");var n=Y(t.content)&&t.content.includes(i);e?(this.cleanupViewport=!n,n||(t.content+=",".concat(i))):this.cleanupViewport&&(t.content=t.content.split(",").filter((function(e){return e.trim()!==i})).join(","))}this.onChange()}},{key:"trapFocus",value:function(e){if(!oe.isIos&&this.active&&"Tab"===e.key&&9===e.keyCode){var t=document.activeElement,i=Te.call(this.player,"a[href], button:not(:disabled), input:not(:disabled), [tabindex]"),n=o(i,1)[0],a=i[i.length-1];t!==a||e.shiftKey?t===n&&e.shiftKey&&(a.focus(),e.preventDefault()):(n.focus(),e.preventDefault())}}},{key:"update",value:function(){var e;this.enabled?(e=this.forceFallback?"Fallback (forced)":t.native?"Native":"Fallback",this.player.debug.log("".concat(e," fullscreen enabled"))):this.player.debug.log("Fullscreen not supported and fallback disabled");be(this.player.elements.container,this.player.config.classNames.fullscreen.enabled,this.enabled)}},{key:"enter",value:function(){this.enabled&&(oe.isIos&&this.player.config.fullscreen.iosNative?this.target.webkitEnterFullscreen():!t.native||this.forceFallback?this.toggleFallback(!0):this.prefix?ae(this.prefix)||this.target["".concat(this.prefix,"Request").concat(this.property)]():this.target.requestFullscreen({navigationUI:"hide"}))}},{key:"exit",value:function(){if(this.enabled)if(oe.isIos&&this.player.config.fullscreen.iosNative)this.target.webkitExitFullscreen(),qe(this.player.play());else if(!t.native||this.forceFallback)this.toggleFallback(!1);else if(this.prefix){if(!ae(this.prefix)){var e="moz"===this.prefix?"Cancel":"Exit";document["".concat(this.prefix).concat(e).concat(this.property)]()}}else(document.cancelFullScreen||document.exitFullscreen).call(document)}},{key:"toggle",value:function(){this.active?this.exit():this.enter()}},{key:"usingNative",get:function(){return t.native&&!this.forceFallback}},{key:"enabled",get:function(){return(t.native||this.player.config.fullscreen.fallback)&&this.player.config.fullscreen.enabled&&this.player.supported.ui&&this.player.isVideo}},{key:"active",get:function(){if(!this.enabled)return!1;if(!t.native||this.forceFallback)return we(this.target,this.player.config.classNames.fullscreen.fallback);var e=this.prefix?document["".concat(this.prefix).concat(this.property,"Element")]:document.fullscreenElement;return e&&e.shadowRoot?e===this.target.getRootNode().host:e===this.target}},{key:"target",get:function(){return oe.isIos&&this.player.config.fullscreen.iosNative?this.player.media:this.player.elements.fullscreen||this.player.elements.container}}],[{key:"native",get:function(){return!!(document.fullscreenEnabled||document.webkitFullscreenEnabled||document.mozFullScreenEnabled||document.msFullscreenEnabled)}},{key:"prefix",get:function(){if(X(document.exitFullscreen))return"";var e="";return["webkit","moz","ms"].some((function(t){return!(!X(document["".concat(t,"ExitFullscreen")])&&!X(document["".concat(t,"CancelFullScreen")]))&&(e=t,!0)})),e}},{key:"property",get:function(){return"moz"===this.prefix?"FullScreen":"Fullscreen"}}]),t}();function gt(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1;return new Promise((function(i,n){var a=new Image,s=function(){delete a.onload,delete a.onerror,(a.naturalWidth>=t?i:n)(a)};Object.assign(a,{onload:s,onerror:s,src:e})}))}var yt={addStyleHook:function(){be(this.elements.container,this.config.selectors.container.replace(".",""),!0),be(this.elements.container,this.config.classNames.uiSupported,this.supported.ui)},toggleNativeControls:function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];e&&this.isHTML5?this.media.setAttribute("controls",""):this.media.removeAttribute("controls")},build:function(){var e=this;if(this.listeners.media(),!this.supported.ui)return this.debug.warn("Basic support only for ".concat(this.provider," ").concat(this.type)),void yt.toggleNativeControls.call(this,!0);G(this.elements.controls)||(nt.inject.call(this),this.listeners.controls()),yt.toggleNativeControls.call(this),this.isHTML5&&rt.setup.call(this),this.volume=null,this.muted=null,this.loop=null,this.quality=null,this.speed=null,nt.updateVolume.call(this),nt.timeUpdate.call(this),yt.checkPlaying.call(this),be(this.elements.container,this.config.classNames.pip.supported,Ee.pip&&this.isHTML5&&this.isVideo),be(this.elements.container,this.config.classNames.airplay.supported,Ee.airplay&&this.isHTML5),be(this.elements.container,this.config.classNames.isIos,oe.isIos),be(this.elements.container,this.config.classNames.isTouch,this.touch),this.ready=!0,setTimeout((function(){Oe.call(e,e.media,"ready")}),0),yt.setTitle.call(this),this.poster&&yt.setPoster.call(this,this.poster,!1).catch((function(){})),this.config.duration&&nt.durationUpdate.call(this)},setTitle:function(){var e=Xe("play",this.config);if(Y(this.config.title)&&!ae(this.config.title)&&(e+=", ".concat(this.config.title)),Array.from(this.elements.buttons.play||[]).forEach((function(t){t.setAttribute("aria-label",e)})),this.isEmbed){var t=Ce.call(this,"iframe");if(!G(t))return;var i=ae(this.config.title)?"video":this.config.title,n=Xe("frameTitle",this.config);t.setAttribute("title",n.replace("{title}",i))}},togglePoster:function(e){be(this.elements.container,this.config.classNames.posterEnabled,e)},setPoster:function(e){var t=this,i=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];return i&&this.poster?Promise.reject(new Error("Poster already set")):(this.media.setAttribute("data-poster",e),je.call(this).then((function(){return gt(e)})).catch((function(i){throw e===t.poster&&yt.togglePoster.call(t,!1),i})).then((function(){if(e!==t.poster)throw new Error("setPoster cancelled by later call to setPoster")})).then((function(){return Object.assign(t.elements.poster.style,{backgroundImage:"url('".concat(e,"')"),backgroundSize:""}),yt.togglePoster.call(t,!0),e})))},checkPlaying:function(e){var t=this;be(this.elements.container,this.config.classNames.playing,this.playing),be(this.elements.container,this.config.classNames.paused,this.paused),be(this.elements.container,this.config.classNames.stopped,this.stopped),Array.from(this.elements.buttons.play||[]).forEach((function(e){Object.assign(e,{pressed:t.playing}),e.setAttribute("aria-label",Xe(t.playing?"pause":"play",t.config))})),Z(e)&&"timeupdate"===e.type||yt.toggleControls.call(this)},checkLoading:function(e){var t=this;this.loading=["stalled","waiting"].includes(e.type),clearTimeout(this.timers.loading),this.timers.loading=setTimeout((function(){be(t.elements.container,t.config.classNames.loading,t.loading),yt.toggleControls.call(t)}),this.loading?250:0)},toggleControls:function(e){var t=this.elements.controls;if(t&&this.config.hideControls){var i=this.touch&&this.lastSeekTime+2e3>Date.now();this.toggleControls(Boolean(e||this.loading||this.paused||t.pressed||t.hover||i))}},migrateStyles:function(){var e=this;Object.values(s({},this.media.style)).filter((function(e){return!ae(e)&&e.startsWith("--plyr")})).forEach((function(t){e.elements.container.style.setProperty(t,e.media.style.getPropertyValue(t)),e.media.style.removeProperty(t)})),ae(this.media.style)&&this.media.removeAttribute("style")}},vt=function(){function t(i){e(this,t),this.player=i,this.lastKey=null,this.focusTimer=null,this.lastKeyDown=null,this.handleKey=this.handleKey.bind(this),this.toggleMenu=this.toggleMenu.bind(this),this.setTabFocus=this.setTabFocus.bind(this),this.firstTouch=this.firstTouch.bind(this)}return i(t,[{key:"handleKey",value:function(e){var t=this.player,i=t.elements,n=e.keyCode?e.keyCode:e.which,a="keydown"===e.type,s=a&&n===this.lastKey;if(!(e.altKey||e.ctrlKey||e.metaKey||e.shiftKey)&&K(n)){if(a){var r=document.activeElement;if(G(r)){var o=t.config.selectors.editable;if(r!==i.inputs.seek&&ke(r,o))return;if(32===e.which&&ke(r,'button, [role^="menuitem"]'))return}switch([32,37,38,39,40,48,49,50,51,52,53,54,56,57,67,70,73,75,76,77,79].includes(n)&&(e.preventDefault(),e.stopPropagation()),n){case 48:case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 57:s||(t.currentTime=t.duration/10*(n-48));break;case 32:case 75:s||qe(t.togglePlay());break;case 38:t.increaseVolume(.1);break;case 40:t.decreaseVolume(.1);break;case 77:s||(t.muted=!t.muted);break;case 39:t.forward();break;case 37:t.rewind();break;case 70:t.fullscreen.toggle();break;case 67:s||t.toggleCaptions();break;case 76:t.loop=!t.loop}27===n&&!t.fullscreen.usingNative&&t.fullscreen.active&&t.fullscreen.toggle(),this.lastKey=n}else this.lastKey=null}}},{key:"toggleMenu",value:function(e){nt.toggleMenu.call(this.player,e)}},{key:"firstTouch",value:function(){var e=this.player,t=e.elements;e.touch=!0,be(t.container,e.config.classNames.isTouch,!0)}},{key:"setTabFocus",value:function(e){var t=this.player,i=t.elements;if(clearTimeout(this.focusTimer),"keydown"!==e.type||9===e.which){"keydown"===e.type&&(this.lastKeyDown=e.timeStamp);var n,a=e.timeStamp-this.lastKeyDown<=20;if("focus"!==e.type||a)n=t.config.classNames.tabFocus,be(Te.call(t,".".concat(n)),n,!1),"focusout"!==e.type&&(this.focusTimer=setTimeout((function(){var e=document.activeElement;i.container.contains(e)&&be(document.activeElement,t.config.classNames.tabFocus,!0)}),10))}}},{key:"global",value:function(){var e=!(arguments.length>0&&void 0!==arguments[0])||arguments[0],t=this.player;t.config.keyboard.global&&Me.call(t,window,"keydown keyup",this.handleKey,e,!1),Me.call(t,document.body,"click",this.toggleMenu,e),Le.call(t,document.body,"touchstart",this.firstTouch),Me.call(t,document.body,"keydown focus blur focusout",this.setTabFocus,e,!1,!0)}},{key:"container",value:function(){var e=this.player,t=e.config,i=e.elements,n=e.timers;!t.keyboard.global&&t.keyboard.focused&&xe.call(e,i.container,"keydown keyup",this.handleKey,!1),xe.call(e,i.container,"mousemove mouseleave touchstart touchmove enterfullscreen exitfullscreen",(function(t){var a=i.controls;a&&"enterfullscreen"===t.type&&(a.pressed=!1,a.hover=!1);var s=0;["touchstart","touchmove","mousemove"].includes(t.type)&&(yt.toggleControls.call(e,!0),s=e.touch?3e3:2e3),clearTimeout(n.controls),n.controls=setTimeout((function(){return yt.toggleControls.call(e,!1)}),s)}));var a=function(t){if(!t)return Re.call(e);var n=i.container.getBoundingClientRect(),a=n.width,s=n.height;return Re.call(e,"".concat(a,":").concat(s))},s=function(){clearTimeout(n.resized),n.resized=setTimeout(a,50)};xe.call(e,i.container,"enterfullscreen exitfullscreen",(function(t){var n=e.fullscreen,r=n.target,l=n.usingNative;if(r===i.container&&(e.isEmbed||!ae(e.config.ratio))){var c="enterfullscreen"===t.type,u=a(c);u.padding;!function(t,i,n){if(e.isVimeo&&!e.config.vimeo.premium){var a=e.elements.wrapper.firstChild,s=o(t,2)[1],r=o(Fe.call(e),2),l=r[0],c=r[1];a.style.maxWidth=n?"".concat(s/c*l,"px"):null,a.style.margin=n?"0 auto":null}}(u.ratio,0,c),l||(c?xe.call(e,window,"resize",s):Ie.call(e,window,"resize",s))}}))}},{key:"media",value:function(){var e=this,t=this.player,i=t.elements;if(xe.call(t,t.media,"timeupdate seeking seeked",(function(e){return nt.timeUpdate.call(t,e)})),xe.call(t,t.media,"durationchange loadeddata loadedmetadata",(function(e){return nt.durationUpdate.call(t,e)})),xe.call(t,t.media,"ended",(function(){t.isHTML5&&t.isVideo&&t.config.resetOnEnd&&(t.restart(),t.pause())})),xe.call(t,t.media,"progress playing seeking seeked",(function(e){return nt.updateProgress.call(t,e)})),xe.call(t,t.media,"volumechange",(function(e){return nt.updateVolume.call(t,e)})),xe.call(t,t.media,"playing play pause ended emptied timeupdate",(function(e){return yt.checkPlaying.call(t,e)})),xe.call(t,t.media,"waiting canplay seeked playing",(function(e){return yt.checkLoading.call(t,e)})),t.supported.ui&&t.config.clickToPlay&&!t.isAudio){var n=Ce.call(t,".".concat(t.config.classNames.video));if(!G(n))return;xe.call(t,i.container,"click",(function(a){([i.container,n].includes(a.target)||n.contains(a.target))&&(t.touch&&t.config.hideControls||(t.ended?(e.proxy(a,t.restart,"restart"),e.proxy(a,(function(){qe(t.play())}),"play")):e.proxy(a,(function(){qe(t.togglePlay())}),"play")))}))}t.supported.ui&&t.config.disableContextMenu&&xe.call(t,i.wrapper,"contextmenu",(function(e){e.preventDefault()}),!1),xe.call(t,t.media,"volumechange",(function(){t.storage.set({volume:t.volume,muted:t.muted})})),xe.call(t,t.media,"ratechange",(function(){nt.updateSetting.call(t,"speed"),t.storage.set({speed:t.speed})})),xe.call(t,t.media,"qualitychange",(function(e){nt.updateSetting.call(t,"quality",null,e.detail.quality)})),xe.call(t,t.media,"ready qualitychange",(function(){nt.setDownloadUrl.call(t)}));var a=t.config.events.concat(["keyup","keydown"]).join(" ");xe.call(t,t.media,a,(function(e){var n=e.detail,a=void 0===n?{}:n;"error"===e.type&&(a=t.media.error),Oe.call(t,i.container,e.type,!0,a)}))}},{key:"proxy",value:function(e,t,i){var n=this.player,a=n.config.listeners[i],s=!0;X(a)&&(s=a.call(n,e)),!1!==s&&X(t)&&t.call(n,e)}},{key:"bind",value:function(e,t,i,n){var a=this,s=!(arguments.length>4&&void 0!==arguments[4])||arguments[4],r=this.player,o=r.config.listeners[n],l=X(o);xe.call(r,e,t,(function(e){return a.proxy(e,i,n)}),s&&!l)}},{key:"controls",value:function(){var e=this,t=this.player,i=t.elements,n=oe.isIE?"change":"input";if(i.buttons.play&&Array.from(i.buttons.play).forEach((function(i){e.bind(i,"click",(function(){qe(t.togglePlay())}),"play")})),this.bind(i.buttons.restart,"click",t.restart,"restart"),this.bind(i.buttons.rewind,"click",t.rewind,"rewind"),this.bind(i.buttons.fastForward,"click",t.forward,"fastForward"),this.bind(i.buttons.mute,"click",(function(){t.muted=!t.muted}),"mute"),this.bind(i.buttons.captions,"click",(function(){return t.toggleCaptions()})),this.bind(i.buttons.download,"click",(function(){Oe.call(t,t.media,"download")}),"download"),this.bind(i.buttons.fullscreen,"click",(function(){t.fullscreen.toggle()}),"fullscreen"),this.bind(i.buttons.pip,"click",(function(){t.pip="toggle"}),"pip"),this.bind(i.buttons.airplay,"click",t.airplay,"airplay"),this.bind(i.buttons.settings,"click",(function(e){e.stopPropagation(),e.preventDefault(),nt.toggleMenu.call(t,e)}),null,!1),this.bind(i.buttons.settings,"keyup",(function(e){var i=e.which;[13,32].includes(i)&&(13!==i?(e.preventDefault(),e.stopPropagation(),nt.toggleMenu.call(t,e)):nt.focusFirstMenuItem.call(t,null,!0))}),null,!1),this.bind(i.settings.menu,"keydown",(function(e){27===e.which&&nt.toggleMenu.call(t,e)})),this.bind(i.inputs.seek,"mousedown mousemove",(function(e){var t=i.progress.getBoundingClientRect(),n=100/t.width*(e.pageX-t.left);e.currentTarget.setAttribute("seek-value",n)})),this.bind(i.inputs.seek,"mousedown mouseup keydown keyup touchstart touchend",(function(e){var i=e.currentTarget,n=e.keyCode?e.keyCode:e.which;if(!ee(e)||39===n||37===n){t.lastSeekTime=Date.now();var a=i.hasAttribute("play-on-seeked"),s=["mouseup","touchend","keyup"].includes(e.type);a&&s?(i.removeAttribute("play-on-seeked"),qe(t.play())):!s&&t.playing&&(i.setAttribute("play-on-seeked",""),t.pause())}})),oe.isIos){var a=Te.call(t,'input[type="range"]');Array.from(a).forEach((function(t){return e.bind(t,n,(function(e){return re(e.target)}))}))}this.bind(i.inputs.seek,n,(function(e){var i=e.currentTarget,n=i.getAttribute("seek-value");ae(n)&&(n=i.value),i.removeAttribute("seek-value"),t.currentTime=n/i.max*t.duration}),"seek"),this.bind(i.progress,"mouseenter mouseleave mousemove",(function(e){return nt.updateSeekTooltip.call(t,e)})),this.bind(i.progress,"mousemove touchmove",(function(e){var i=t.previewThumbnails;i&&i.loaded&&i.startMove(e)})),this.bind(i.progress,"mouseleave touchend click",(function(){var e=t.previewThumbnails;e&&e.loaded&&e.endMove(!1,!0)})),this.bind(i.progress,"mousedown touchstart",(function(e){var i=t.previewThumbnails;i&&i.loaded&&i.startScrubbing(e)})),this.bind(i.progress,"mouseup touchend",(function(e){var i=t.previewThumbnails;i&&i.loaded&&i.endScrubbing(e)})),oe.isWebkit&&Array.from(Te.call(t,'input[type="range"]')).forEach((function(i){e.bind(i,"input",(function(e){return nt.updateRangeFill.call(t,e.target)}))})),t.config.toggleInvert&&!G(i.display.duration)&&this.bind(i.display.currentTime,"click",(function(){0!==t.currentTime&&(t.config.invertTime=!t.config.invertTime,nt.timeUpdate.call(t))})),this.bind(i.inputs.volume,n,(function(e){t.volume=e.target.value}),"volume"),this.bind(i.controls,"mouseenter mouseleave",(function(e){i.controls.hover=!t.touch&&"mouseenter"===e.type})),i.fullscreen&&Array.from(i.fullscreen.children).filter((function(e){return!e.contains(i.container)})).forEach((function(n){e.bind(n,"mouseenter mouseleave",(function(e){i.controls.hover=!t.touch&&"mouseenter"===e.type}))})),this.bind(i.controls,"mousedown mouseup touchstart touchend touchcancel",(function(e){i.controls.pressed=["mousedown","touchstart"].includes(e.type)})),this.bind(i.controls,"focusin",(function(){var n=t.config,a=t.timers;be(i.controls,n.classNames.noTransition,!0),yt.toggleControls.call(t,!0),setTimeout((function(){be(i.controls,n.classNames.noTransition,!1)}),0);var s=e.touch?3e3:4e3;clearTimeout(a.controls),a.controls=setTimeout((function(){return yt.toggleControls.call(t,!1)}),s)})),this.bind(i.inputs.volume,"wheel",(function(e){var i=e.webkitDirectionInvertedFromDevice,n=o([e.deltaX,-e.deltaY].map((function(e){return i?-e:e})),2),a=n[0],s=n[1],r=Math.sign(Math.abs(a)>Math.abs(s)?a:s);t.increaseVolume(r/50);var l=t.media.volume;(1===r&&l<1||-1===r&&l>0)&&e.preventDefault()}),"volume",!1)}}]),t}();"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self&&self;var bt=function(e,t){return e(t={exports:{}},t.exports),t.exports}((function(e,t){e.exports=function(){var e=function(){},t={},i={},n={};function a(e,t){if(e){var a=n[e];if(i[e]=t,a)for(;a.length;)a[0](e,t),a.splice(0,1)}}function s(t,i){t.call&&(t={success:t}),i.length?(t.error||e)(i):(t.success||e)(t)}function r(t,i,n,a){var s,o,l=document,c=n.async,u=(n.numRetries||0)+1,d=n.before||e,h=t.replace(/[\?|#].*$/,""),p=t.replace(/^(css|img)!/,"");a=a||0,/(^css!|\.css$)/.test(h)?((o=l.createElement("link")).rel="stylesheet",o.href=p,(s="hideFocus"in o)&&o.relList&&(s=0,o.rel="preload",o.as="style")):/(^img!|\.(png|gif|jpg|svg|webp)$)/.test(h)?(o=l.createElement("img")).src=p:((o=l.createElement("script")).src=t,o.async=void 0===c||c),o.onload=o.onerror=o.onbeforeload=function(e){var l=e.type[0];if(s)try{o.sheet.cssText.length||(l="e")}catch(e){18!=e.code&&(l="e")}if("e"==l){if((a+=1)0&&void 0!==arguments[0]&&arguments[0];if(!t)return clearInterval(this.countdownTimer),void this.elements.container.removeAttribute("data-badge-text");var i=function(){var t=it(Math.max(e.manager.getRemainingTime(),0)),i="".concat(Xe("advertisement",e.player.config)," - ").concat(t);e.elements.container.setAttribute("data-badge-text",i)};this.countdownTimer=setInterval(i,100)}},{key:"onAdsManagerLoaded",value:function(e){var t=this;if(this.enabled){var i=new google.ima.AdsRenderingSettings;i.restoreCustomPlaybackStateOnAdBreakComplete=!0,i.enablePreloading=!0,this.manager=e.getAdsManager(this.player,i),this.cuePoints=this.manager.getCuePoints(),this.manager.addEventListener(google.ima.AdErrorEvent.Type.AD_ERROR,(function(e){return t.onAdError(e)})),Object.keys(google.ima.AdEvent.Type).forEach((function(e){t.manager.addEventListener(google.ima.AdEvent.Type[e],(function(e){return t.onAdEvent(e)}))})),this.trigger("loaded")}}},{key:"addCuePoints",value:function(){var e=this;ae(this.cuePoints)||this.cuePoints.forEach((function(t){if(0!==t&&-1!==t&&t1?i-1:0),a=1;at.width/t.height?(i.width=t.width,i.height=1/e*t.width):(i.height=t.height,i.width=e*t.height),i},Mt=function(){function t(i){e(this,t),this.player=i,this.thumbnails=[],this.loaded=!1,this.lastMouseMoveTime=Date.now(),this.mouseDown=!1,this.loadedImages=[],this.elements={thumb:{},scrubbing:{}},this.load()}return i(t,[{key:"load",value:function(){var e=this;this.player.elements.display.seekTooltip&&(this.player.elements.display.seekTooltip.hidden=this.enabled),this.enabled&&this.getThumbnails().then((function(){e.enabled&&(e.render(),e.determineContainerAutoSizing(),e.loaded=!0)}))}},{key:"getThumbnails",value:function(){var e=this;return new Promise((function(t){var i=e.player.config.previewThumbnails.src;if(ae(i))throw new Error("Missing previewThumbnails.src config attribute");var n=function(){e.thumbnails.sort((function(e,t){return e.height-t.height})),e.player.debug.log("Preview thumbnails",e.thumbnails),t()};if(X(i))i((function(t){e.thumbnails=t,n()}));else{var a=(Y(i)?[i]:i).map((function(t){return e.getThumbnail(t)}));Promise.all(a).then(n)}}))}},{key:"getThumbnail",value:function(e){var t=this;return new Promise((function(i){Je(e).then((function(n){var a,s,r={frames:(a=n,s=[],a.split(/\r\n\r\n|\n\n|\r\r/).forEach((function(e){var t={};e.split(/\r\n|\n|\r/).forEach((function(e){if(K(t.startTime)){if(!ae(e.trim())&&ae(t.text)){var i=e.trim().split("#xywh="),n=o(i,1);if(t.text=n[0],i[1]){var a=o(i[1].split(","),4);t.x=a[0],t.y=a[1],t.w=a[2],t.h=a[3]}}}else{var s=e.match(/([0-9]{2})?:?([0-9]{2}):([0-9]{2}).([0-9]{2,3})( ?--> ?)([0-9]{2})?:?([0-9]{2}):([0-9]{2}).([0-9]{2,3})/);s&&(t.startTime=60*Number(s[1]||0)*60+60*Number(s[2])+Number(s[3])+Number("0.".concat(s[4])),t.endTime=60*Number(s[6]||0)*60+60*Number(s[7])+Number(s[8])+Number("0.".concat(s[9])))}})),t.text&&s.push(t)})),s),height:null,urlPrefix:""};r.frames[0].text.startsWith("/")||r.frames[0].text.startsWith("http://")||r.frames[0].text.startsWith("https://")||(r.urlPrefix=e.substring(0,e.lastIndexOf("/")+1));var l=new Image;l.onload=function(){r.height=l.naturalHeight,r.width=l.naturalWidth,t.thumbnails.push(r),i()},l.src=r.urlPrefix+r.frames[0].text}))}))}},{key:"startMove",value:function(e){if(this.loaded&&Z(e)&&["touchmove","mousemove"].includes(e.type)&&this.player.media.duration){if("touchmove"===e.type)this.seekTime=this.player.media.duration*(this.player.elements.inputs.seek.value/100);else{var t=this.player.elements.progress.getBoundingClientRect(),i=100/t.width*(e.pageX-t.left);this.seekTime=this.player.media.duration*(i/100),this.seekTime<0&&(this.seekTime=0),this.seekTime>this.player.media.duration-1&&(this.seekTime=this.player.media.duration-1),this.mousePosX=e.pageX,this.elements.thumb.time.innerText=it(this.seekTime)}this.showImageAtCurrentTime()}}},{key:"endMove",value:function(){this.toggleThumbContainer(!1,!0)}},{key:"startScrubbing",value:function(e){(W(e.button)||!1===e.button||0===e.button)&&(this.mouseDown=!0,this.player.media.duration&&(this.toggleScrubbingContainer(!0),this.toggleThumbContainer(!1,!0),this.showImageAtCurrentTime()))}},{key:"endScrubbing",value:function(){var e=this;this.mouseDown=!1,Math.ceil(this.lastTime)===Math.ceil(this.player.media.currentTime)?this.toggleScrubbingContainer(!1):Le.call(this.player,this.player.media,"timeupdate",(function(){e.mouseDown||e.toggleScrubbingContainer(!1)}))}},{key:"listeners",value:function(){var e=this;this.player.on("play",(function(){e.toggleThumbContainer(!1,!0)})),this.player.on("seeked",(function(){e.toggleThumbContainer(!1)})),this.player.on("timeupdate",(function(){e.lastTime=e.player.media.currentTime}))}},{key:"render",value:function(){this.elements.thumb.container=he("div",{class:this.player.config.classNames.previewThumbnails.thumbContainer}),this.elements.thumb.imageContainer=he("div",{class:this.player.config.classNames.previewThumbnails.imageContainer}),this.elements.thumb.container.appendChild(this.elements.thumb.imageContainer);var e=he("div",{class:this.player.config.classNames.previewThumbnails.timeContainer});this.elements.thumb.time=he("span",{},"00:00"),e.appendChild(this.elements.thumb.time),this.elements.thumb.container.appendChild(e),G(this.player.elements.progress)&&this.player.elements.progress.appendChild(this.elements.thumb.container),this.elements.scrubbing.container=he("div",{class:this.player.config.classNames.previewThumbnails.scrubbingContainer}),this.player.elements.wrapper.appendChild(this.elements.scrubbing.container)}},{key:"destroy",value:function(){this.elements.thumb.container&&this.elements.thumb.container.remove(),this.elements.scrubbing.container&&this.elements.scrubbing.container.remove()}},{key:"showImageAtCurrentTime",value:function(){var e=this;this.mouseDown?this.setScrubbingContainerSize():this.setThumbContainerSizeAndPos();var t=this.thumbnails[0].frames.findIndex((function(t){return e.seekTime>=t.startTime&&e.seekTime<=t.endTime})),i=t>=0,n=0;this.mouseDown||this.toggleThumbContainer(i),i&&(this.thumbnails.forEach((function(i,a){e.loadedImages.includes(i.frames[t].text)&&(n=a)})),t!==this.showingThumb&&(this.showingThumb=t,this.loadImage(n)))}},{key:"loadImage",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,i=this.showingThumb,n=this.thumbnails[t],a=n.urlPrefix,s=n.frames[i],r=n.frames[i].text,o=a+r;if(this.currentImageElement&&this.currentImageElement.dataset.filename===r)this.showImage(this.currentImageElement,s,t,i,r,!1),this.currentImageElement.dataset.index=i,this.removeOldImages(this.currentImageElement);else{this.loadingImage&&this.usingSprites&&(this.loadingImage.onload=null);var l=new Image;l.src=o,l.dataset.index=i,l.dataset.filename=r,this.showingThumbFilename=r,this.player.debug.log("Loading image: ".concat(o)),l.onload=function(){return e.showImage(l,s,t,i,r,!0)},this.loadingImage=l,this.removeOldImages(l)}}},{key:"showImage",value:function(e,t,i,n,a){var s=!(arguments.length>5&&void 0!==arguments[5])||arguments[5];this.player.debug.log("Showing thumb: ".concat(a,". num: ").concat(n,". qual: ").concat(i,". newimg: ").concat(s)),this.setImageSizeAndOffset(e,t),s&&(this.currentImageContainer.appendChild(e),this.currentImageElement=e,this.loadedImages.includes(a)||this.loadedImages.push(a)),this.preloadNearby(n,!0).then(this.preloadNearby(n,!1)).then(this.getHigherQuality(i,e,t,a))}},{key:"removeOldImages",value:function(e){var t=this;Array.from(this.currentImageContainer.children).forEach((function(i){if("img"===i.tagName.toLowerCase()){var n=t.usingSprites?500:1e3;if(i.dataset.index!==e.dataset.index&&!i.dataset.deleting){i.dataset.deleting=!0;var a=t.currentImageContainer;setTimeout((function(){a.removeChild(i),t.player.debug.log("Removing thumb: ".concat(i.dataset.filename))}),n)}}}))}},{key:"preloadNearby",value:function(e){var t=this,i=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];return new Promise((function(n){setTimeout((function(){var a=t.thumbnails[0].frames[e].text;if(t.showingThumbFilename===a){var s;s=i?t.thumbnails[0].frames.slice(e):t.thumbnails[0].frames.slice(0,e).reverse();var r=!1;s.forEach((function(e){var i=e.text;if(i!==a&&!t.loadedImages.includes(i)){r=!0,t.player.debug.log("Preloading thumb filename: ".concat(i));var s=t.thumbnails[0].urlPrefix+i,o=new Image;o.src=s,o.onload=function(){t.player.debug.log("Preloaded thumb filename: ".concat(i)),t.loadedImages.includes(i)||t.loadedImages.push(i),n()}}})),r||n()}}),300)}))}},{key:"getHigherQuality",value:function(e,t,i,n){var a=this;if(e0&&void 0!==arguments[0]&&arguments[0],t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],i=this.player.config.classNames.previewThumbnails.thumbContainerShown;this.elements.thumb.container.classList.toggle(i,e),!e&&t&&(this.showingThumb=null,this.showingThumbFilename=null)}},{key:"toggleScrubbingContainer",value:function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0],t=this.player.config.classNames.previewThumbnails.scrubbingContainerShown;this.elements.scrubbing.container.classList.toggle(t,e),e||(this.showingThumb=null,this.showingThumbFilename=null)}},{key:"determineContainerAutoSizing",value:function(){(this.elements.thumb.imageContainer.clientHeight>20||this.elements.thumb.imageContainer.clientWidth>20)&&(this.sizeSpecifiedInCSS=!0)}},{key:"setThumbContainerSizeAndPos",value:function(){if(this.sizeSpecifiedInCSS){if(this.elements.thumb.imageContainer.clientHeight>20&&this.elements.thumb.imageContainer.clientWidth<20){var e=Math.floor(this.elements.thumb.imageContainer.clientHeight*this.thumbAspectRatio);this.elements.thumb.imageContainer.style.width="".concat(e,"px")}else if(this.elements.thumb.imageContainer.clientHeight<20&&this.elements.thumb.imageContainer.clientWidth>20){var t=Math.floor(this.elements.thumb.imageContainer.clientWidth/this.thumbAspectRatio);this.elements.thumb.imageContainer.style.height="".concat(t,"px")}}else{var i=Math.floor(this.thumbContainerHeight*this.thumbAspectRatio);this.elements.thumb.imageContainer.style.height="".concat(this.thumbContainerHeight,"px"),this.elements.thumb.imageContainer.style.width="".concat(i,"px")}this.setThumbContainerPos()}},{key:"setThumbContainerPos",value:function(){var e=this.player.elements.progress.getBoundingClientRect(),t=this.player.elements.container.getBoundingClientRect(),i=this.elements.thumb.container,n=t.left-e.left+10,a=t.right-e.left-i.clientWidth-10,s=this.mousePosX-e.left-i.clientWidth/2;sa&&(s=a),i.style.left="".concat(s,"px")}},{key:"setScrubbingContainerSize",value:function(){var e=Nt(this.thumbAspectRatio,{width:this.player.media.clientWidth,height:this.player.media.clientHeight}),t=e.width,i=e.height;this.elements.scrubbing.container.style.width="".concat(t,"px"),this.elements.scrubbing.container.style.height="".concat(i,"px")}},{key:"setImageSizeAndOffset",value:function(e,t){if(this.usingSprites){var i=this.thumbContainerHeight/t.h;e.style.height="".concat(e.naturalHeight*i,"px"),e.style.width="".concat(e.naturalWidth*i,"px"),e.style.left="-".concat(t.x*i,"px"),e.style.top="-".concat(t.y*i,"px")}}},{key:"enabled",get:function(){return this.player.isHTML5&&this.player.isVideo&&this.player.config.previewThumbnails.enabled}},{key:"currentImageContainer",get:function(){return this.mouseDown?this.elements.scrubbing.container:this.elements.thumb.imageContainer}},{key:"usingSprites",get:function(){return Object.keys(this.thumbnails[0].frames[0]).includes("w")}},{key:"thumbAspectRatio",get:function(){return this.usingSprites?this.thumbnails[0].frames[0].w/this.thumbnails[0].frames[0].h:this.thumbnails[0].width/this.thumbnails[0].height}},{key:"thumbContainerHeight",get:function(){return this.mouseDown?Nt(this.thumbAspectRatio,{width:this.player.media.clientWidth,height:this.player.media.clientHeight}).height:this.sizeSpecifiedInCSS?this.elements.thumb.imageContainer.clientHeight:Math.floor(this.player.media.clientWidth/this.thumbAspectRatio/4)}},{key:"currentImageElement",get:function(){return this.mouseDown?this.currentScrubbingImageElement:this.currentThumbnailImageElement},set:function(e){this.mouseDown?this.currentScrubbingImageElement=e:this.currentThumbnailImageElement=e}}]),t}(),xt={insertElements:function(e,t){var i=this;Y(t)?pe(e,this.media,{src:t}):$(t)&&t.forEach((function(t){pe(e,i.media,t)}))},change:function(e){var t=this;le(e,"sources.length")?(Ve.cancelRequests.call(this),this.destroy.call(this,(function(){t.options.quality=[],me(t.media),t.media=null,G(t.elements.container)&&t.elements.container.removeAttribute("class");var i=e.sources,n=e.type,a=o(i,1)[0],s=a.provider,r=void 0===s?ut.html5:s,l=a.src,c="html5"===r?n:"div",u="html5"===r?{}:{src:l};Object.assign(t,{provider:r,type:n,supported:Ee.check(n,r,t.config.playsinline),media:he(c,u)}),t.elements.container.appendChild(t.media),Q(e.autoplay)&&(t.config.autoplay=e.autoplay),t.isHTML5&&(t.config.crossorigin&&t.media.setAttribute("crossorigin",""),t.config.autoplay&&t.media.setAttribute("autoplay",""),ae(e.poster)||(t.poster=e.poster),t.config.loop.active&&t.media.setAttribute("loop",""),t.config.muted&&t.media.setAttribute("muted",""),t.config.playsinline&&t.media.setAttribute("playsinline","")),yt.addStyleHook.call(t),t.isHTML5&&xt.insertElements.call(t,"source",i),t.config.title=e.title,Pt.setup.call(t),t.isHTML5&&Object.keys(e).includes("tracks")&&xt.insertElements.call(t,"track",e.tracks),(t.isHTML5||t.isEmbed&&!t.supported.ui)&&yt.build.call(t),t.isHTML5&&t.media.load(),ae(e.previewThumbnails)||(Object.assign(t.config.previewThumbnails,e.previewThumbnails),t.previewThumbnails&&t.previewThumbnails.loaded&&(t.previewThumbnails.destroy(),t.previewThumbnails=null),t.config.previewThumbnails.enabled&&(t.previewThumbnails=new Mt(t))),t.fullscreen.update()}),!0)):this.debug.warn("Invalid source format")}};var It,Lt=function(){function t(i,n){var a=this;if(e(this,t),this.timers={},this.ready=!1,this.loading=!1,this.failed=!1,this.touch=Ee.touch,this.media=i,Y(this.media)&&(this.media=document.querySelectorAll(this.media)),(window.jQuery&&this.media instanceof jQuery||J(this.media)||$(this.media))&&(this.media=this.media[0]),this.config=ce({},ot,t.defaults,n||{},function(){try{return JSON.parse(a.media.getAttribute("data-plyr-config"))}catch(e){return{}}}()),this.elements={container:null,fullscreen:null,captions:null,buttons:{},display:{},progress:{},inputs:{},settings:{popup:null,menu:null,panels:{},buttons:{}}},this.captions={active:null,currentTrack:-1,meta:new WeakMap},this.fullscreen={active:!1},this.options={speed:[],quality:[]},this.debug=new mt(this.config.debug),this.debug.log("Config",this.config),this.debug.log("Support",Ee),!W(this.media)&&G(this.media))if(this.media.plyr)this.debug.warn("Target already setup");else if(this.config.enabled)if(Ee.check().api){var s=this.media.cloneNode(!0);s.autoplay=!1,this.elements.original=s;var r=this.media.tagName.toLowerCase(),o=null,l=null;switch(r){case"div":if(o=this.media.querySelector("iframe"),G(o)){if(l=at(o.getAttribute("src")),this.provider=function(e){return/^(https?:\/\/)?(www\.)?(youtube\.com|youtube-nocookie\.com|youtu\.?be)\/.+$/.test(e)?ut.youtube:/^https?:\/\/player.vimeo.com\/video\/\d{0,9}(?=\b|\/)/.test(e)?ut.vimeo:null}(l.toString()),this.elements.container=this.media,this.media=o,this.elements.container.className="",l.search.length){var c=["1","true"];c.includes(l.searchParams.get("autoplay"))&&(this.config.autoplay=!0),c.includes(l.searchParams.get("loop"))&&(this.config.loop.active=!0),this.isYouTube?(this.config.playsinline=c.includes(l.searchParams.get("playsinline")),this.config.youtube.hl=l.searchParams.get("hl")):this.config.playsinline=!0}}else this.provider=this.media.getAttribute(this.config.attributes.embed.provider),this.media.removeAttribute(this.config.attributes.embed.provider);if(ae(this.provider)||!Object.keys(ut).includes(this.provider))return void this.debug.error("Setup failed: Invalid provider");this.type=ht;break;case"video":case"audio":this.type=r,this.provider=ut.html5,this.media.hasAttribute("crossorigin")&&(this.config.crossorigin=!0),this.media.hasAttribute("autoplay")&&(this.config.autoplay=!0),(this.media.hasAttribute("playsinline")||this.media.hasAttribute("webkit-playsinline"))&&(this.config.playsinline=!0),this.media.hasAttribute("muted")&&(this.config.muted=!0),this.media.hasAttribute("loop")&&(this.config.loop.active=!0);break;default:return void this.debug.error("Setup failed: unsupported type")}this.supported=Ee.check(this.type,this.provider,this.config.playsinline),this.supported.api?(this.eventListeners=[],this.listeners=new vt(this),this.storage=new $e(this),this.media.plyr=this,G(this.elements.container)||(this.elements.container=he("div",{tabindex:0}),ue(this.media,this.elements.container)),yt.migrateStyles.call(this),yt.addStyleHook.call(this),Pt.setup.call(this),this.config.debug&&xe.call(this,this.elements.container,this.config.events.join(" "),(function(e){a.debug.log("event: ".concat(e.type))})),this.fullscreen=new ft(this),(this.isHTML5||this.isEmbed&&!this.supported.ui)&&yt.build.call(this),this.listeners.container(),this.listeners.global(),this.config.ads.enabled&&(this.ads=new Et(this)),this.isHTML5&&this.config.autoplay&&setTimeout((function(){return qe(a.play())}),10),this.lastSeekTime=0,this.config.previewThumbnails.enabled&&(this.previewThumbnails=new Mt(this))):this.debug.error("Setup failed: no support")}else this.debug.error("Setup failed: no support");else this.debug.error("Setup failed: disabled by config");else this.debug.error("Setup failed: no suitable element passed")}return i(t,[{key:"play",value:function(){var e=this;return X(this.media.play)?(this.ads&&this.ads.enabled&&this.ads.managerPromise.then((function(){return e.ads.play()})).catch((function(){return qe(e.media.play())})),this.media.play()):null}},{key:"pause",value:function(){return this.playing&&X(this.media.pause)?this.media.pause():null}},{key:"togglePlay",value:function(e){return(Q(e)?e:!this.playing)?this.play():this.pause()}},{key:"stop",value:function(){this.isHTML5?(this.pause(),this.restart()):X(this.media.stop)&&this.media.stop()}},{key:"restart",value:function(){this.currentTime=0}},{key:"rewind",value:function(e){this.currentTime-=K(e)?e:this.config.seekTime}},{key:"forward",value:function(e){this.currentTime+=K(e)?e:this.config.seekTime}},{key:"increaseVolume",value:function(e){var t=this.media.muted?0:this.volume;this.volume=t+(K(e)?e:0)}},{key:"decreaseVolume",value:function(e){this.increaseVolume(-e)}},{key:"toggleCaptions",value:function(e){rt.toggle.call(this,e,!1)}},{key:"airplay",value:function(){Ee.airplay&&this.media.webkitShowPlaybackTargetPicker()}},{key:"toggleControls",value:function(e){if(this.supported.ui&&!this.isAudio){var t=we(this.elements.container,this.config.classNames.hideControls),i=void 0===e?void 0:!e,n=be(this.elements.container,this.config.classNames.hideControls,i);if(n&&$(this.config.controls)&&this.config.controls.includes("settings")&&!ae(this.config.settings)&&nt.toggleMenu.call(this,!1),n!==t){var a=n?"controlshidden":"controlsshown";Oe.call(this,this.media,a)}return!n}return!1}},{key:"on",value:function(e,t){xe.call(this,this.elements.container,e,t)}},{key:"once",value:function(e,t){Le.call(this,this.elements.container,e,t)}},{key:"off",value:function(e,t){Ie(this.elements.container,e,t)}},{key:"destroy",value:function(e){var t=this,i=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if(this.ready){var n=function(){document.body.style.overflow="",t.embed=null,i?(Object.keys(t.elements).length&&(me(t.elements.buttons.play),me(t.elements.captions),me(t.elements.controls),me(t.elements.wrapper),t.elements.buttons.play=null,t.elements.captions=null,t.elements.controls=null,t.elements.wrapper=null),X(e)&&e()):(_e.call(t),ge(t.elements.original,t.elements.container),Oe.call(t,t.elements.original,"destroyed",!0),X(e)&&e.call(t.elements.original),t.ready=!1,setTimeout((function(){t.elements=null,t.media=null}),200))};this.stop(),clearTimeout(this.timers.loading),clearTimeout(this.timers.controls),clearTimeout(this.timers.resized),this.isHTML5?(yt.toggleNativeControls.call(this,!0),n()):this.isYouTube?(clearInterval(this.timers.buffering),clearInterval(this.timers.playing),null!==this.embed&&X(this.embed.destroy)&&this.embed.destroy(),n()):this.isVimeo&&(null!==this.embed&&this.embed.unload().then(n),setTimeout(n,200))}}},{key:"supports",value:function(e){return Ee.mime.call(this,e)}},{key:"isHTML5",get:function(){return this.provider===ut.html5}},{key:"isEmbed",get:function(){return this.isYouTube||this.isVimeo}},{key:"isYouTube",get:function(){return this.provider===ut.youtube}},{key:"isVimeo",get:function(){return this.provider===ut.vimeo}},{key:"isVideo",get:function(){return this.type===ht}},{key:"isAudio",get:function(){return this.type===dt}},{key:"playing",get:function(){return Boolean(this.ready&&!this.paused&&!this.ended)}},{key:"paused",get:function(){return Boolean(this.media.paused)}},{key:"stopped",get:function(){return Boolean(this.paused&&0===this.currentTime)}},{key:"ended",get:function(){return Boolean(this.media.ended)}},{key:"currentTime",set:function(e){if(this.duration){var t=K(e)&&e>0;this.media.currentTime=t?Math.min(e,this.duration):0,this.debug.log("Seeking to ".concat(this.currentTime," seconds"))}},get:function(){return Number(this.media.currentTime)}},{key:"buffered",get:function(){var e=this.media.buffered;return K(e)?e:e&&e.length&&this.duration>0?e.end(0)/this.duration:0}},{key:"seeking",get:function(){return Boolean(this.media.seeking)}},{key:"duration",get:function(){var e=parseFloat(this.config.duration),t=(this.media||{}).duration,i=K(t)&&t!==1/0?t:0;return e||i}},{key:"volume",set:function(e){var t=e;Y(t)&&(t=Number(t)),K(t)||(t=this.storage.get("volume")),K(t)||(t=this.config.volume),t>1&&(t=1),t<0&&(t=0),this.config.volume=t,this.media.volume=t,!ae(e)&&this.muted&&t>0&&(this.muted=!1)},get:function(){return Number(this.media.volume)}},{key:"muted",set:function(e){var t=e;Q(t)||(t=this.storage.get("muted")),Q(t)||(t=this.config.muted),this.config.muted=t,this.media.muted=t},get:function(){return Boolean(this.media.muted)}},{key:"hasAudio",get:function(){return!this.isHTML5||(!!this.isAudio||(Boolean(this.media.mozHasAudio)||Boolean(this.media.webkitAudioDecodedByteCount)||Boolean(this.media.audioTracks&&this.media.audioTracks.length)))}},{key:"speed",set:function(e){var t=this,i=null;K(e)&&(i=e),K(i)||(i=this.storage.get("speed")),K(i)||(i=this.config.speed.selected);var n=this.minimumSpeed,a=this.maximumSpeed;i=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:255;return Math.min(Math.max(e,t),i)}(i,n,a),this.config.speed.selected=i,setTimeout((function(){t.media.playbackRate=i}),0)},get:function(){return Number(this.media.playbackRate)}},{key:"minimumSpeed",get:function(){return this.isYouTube?Math.min.apply(Math,l(this.options.speed)):this.isVimeo?.5:.0625}},{key:"maximumSpeed",get:function(){return this.isYouTube?Math.max.apply(Math,l(this.options.speed)):this.isVimeo?2:16}},{key:"quality",set:function(e){var t=this.config.quality,i=this.options.quality;if(i.length){var n=[!ae(e)&&Number(e),this.storage.get("quality"),t.selected,t.default].find(K),a=!0;if(!i.includes(n)){var s=function(e,t){return $(e)&&e.length?e.reduce((function(e,i){return Math.abs(i-t)1&&void 0!==arguments[1]?arguments[1]:{},n=null;return Y(e)?n=Array.from(document.querySelectorAll(e)):J(e)?n=Array.from(e):$(e)&&(n=e.filter(G)),ae(n)?null:n.map((function(e){return new t(e,i)}))}}]),t}();return Lt.defaults=(It=ot,JSON.parse(JSON.stringify(It))),Lt})); //# sourceMappingURL=plyr.min.js.map diff --git a/libretube-theme/static/modules/plyr/plyr.min.js.map b/libretube-theme/static/modules/plyr/plyr.min.js.map index 424d5f5..dfc592b 100644 --- a/libretube-theme/static/modules/plyr/plyr.min.js.map +++ b/libretube-theme/static/modules/plyr/plyr.min.js.map @@ -1 +1 @@ -{"version":3,"sources":["plyr.js","node_modules/rangetouch/dist/rangetouch.mjs","src/js/utils/animation.js","src/js/utils/is.js","src/js/utils/browser.js","src/js/utils/objects.js","src/js/utils/elements.js","src/js/support.js","src/js/utils/events.js","src/js/utils/style.js","src/js/html5.js","src/js/utils/arrays.js","src/js/utils/strings.js","src/js/utils/i18n.js","src/js/storage.js","src/js/utils/fetch.js","src/js/utils/load-sprite.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/states.js","src/js/config/types.js","src/js/console.js","src/js/fullscreen.js","src/js/utils/load-image.js","src/js/ui.js","src/js/listeners.js","node_modules/loadjs/dist/loadjs.umd.js","src/js/utils/load-script.js","src/js/plugins/vimeo.js","src/js/plugins/youtube.js","src/js/media.js","src/js/plugins/ads.js","src/js/plugins/preview-thumbnails.js","src/js/source.js","src/js/plyr.js","src/js/utils/numbers.js"],"names":["navigator","global","factory","exports","module","define","amd","self","Plyr","this","_classCallCheck","instance","Constructor","TypeError","_defineProperties","target","props","i","length","descriptor","enumerable","configurable","writable","Object","defineProperty","key","_createClass","protoProps","staticProps","prototype","_defineProperty","obj","value","ownKeys","object","enumerableOnly","keys","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","push","apply","_objectSpread2","arguments","source","forEach","getOwnPropertyDescriptors","defineProperties","_slicedToArray","arr","Array","isArray","_arrayWithHoles","Symbol","iterator","toString","call","_arr","_n","_d","_e","undefined","_s","_i","next","done","err","_iterableToArrayLimit","_nonIterableRest","_toConsumableArray","arr2","_arrayWithoutHoles","iter","from","_iterableToArray","_nonIterableSpread","e","t","n","r","defaults","addCSS","thumbWidth","watch","matches","document","querySelectorAll","includes","getConstructor","constructor","instanceOf","isNullOrUndefined","isObject","isString","String","isNodeList","NodeList","is","Element","Event","round","concat","match","Math","max","getDecimalPlaces","parseFloat","toFixed","element","events","type","RangeTouch","querySelector","rangeTouch","config","init","enabled","style","userSelect","webKitUserSelect","touchAction","listeners","set","changedTouches","o","getAttribute","s","u","c","getBoundingClientRect","a","width","clientX","left","disabled","preventDefault","get","bubbles","dispatchEvent","trigger","MutationObserver","addedNodes","observe","body","childList","subtree","map","documentElement","input","Boolean","isEmpty","is$1","Number","isNaN","Function","KeyboardEvent","TextTrack","kind","window","URL","string","startsWith","hostname","transitionEndEvent","createElement","WebkitTransition","MozTransition","OTransition","transition","find","event","repaint","delay","setTimeout","hidden","offsetHeight","browser","isIE","documentMode","isEdge","userAgent","isWebkit","test","isIPhone","platform","isIos","getDeep","path","split","reduce","extend","_len","sources","_key","shift","assign","wrap","elements","wrapper","targets","reverse","index","child","cloneNode","parent","parentNode","sibling","nextSibling","appendChild","insertBefore","setAttributes","attributes","entries","_ref","_ref3","_ref4","setAttribute","text","innerText","insertElement","removeElement","removeChild","emptyElement","childNodes","lastChild","replaceElement","newChild","oldChild","replaceChild","getAttributesFromSelector","sel","existingAttributes","existing","selector","trim","className","replace","parts","charAt","class","id","toggleHidden","hide","toggleClass","force","method","classList","contains","hasClass","getElements","container","getElement","setFocus","tabFocus","focus","preventScroll","classNames","range","defaultCodecs","audio/ogg","audio/wav","video/webm","video/mp4","video/ogg","support","audio","video","check","provider","playsinline","canPlayInline","api","ui","rangeInput","pip","webkitSetPresentationMode","pictureInPictureEnabled","disablePictureInPicture","airplay","WebKitPlaybackTargetAvailabilityEvent","mime","mediaType","isHTML5","media","canPlayType","textTracks","touch","transitions","reducedMotion","matchMedia","supportsPassiveListeners","supported","options","addEventListener","removeEventListener","toggleListener","callback","_this","toggle","passive","capture","eventListeners","on","off","once","_this2","onceCallback","args","triggerEvent","detail","CustomEvent","plyr","unbindListeners","item","ready","_this3","Promise","resolve","then","validateRatio","every","reduceAspectRatio","ratio","_ratio","height","divider","getDivider","w","h","getAspectRatio","parse","embed","_this$media","videoWidth","videoHeight","setAspectRatio","isVideo","_ref2","padding","paddingBottom","isVimeo","offset","transform","videoFixedRatio","html5","getSources","getQualityOptions","quality","forced","setup","player","speed","onChange","_player$media","currentTime","paused","preload","readyState","playbackRate","src","play","load","cancelRequests","blankVideo","debug","log","dedupe","array","indexOf","format","replaceAll","RegExp","toTitleCase","toUpperCase","substr","toLowerCase","toPascalCase","getHTML","innerHTML","resources","vimeo","youtube","i18n","{seektime}","seekTime","{title}","title","k","v","Storage","storage","store","localStorage","getItem","json","JSON","setItem","stringify","removeItem","fetch","url","responseType","reject","request","XMLHttpRequest","responseText","response","Error","status","open","send","loadSprite","hasId","exists","getElementById","update","data","insertAdjacentElement","useStorage","cached","content","result","catch","getHours","trunc","getMinutes","getSeconds","formatTime","time","displayHours","inverted","slice","hours","mins","secs","controls","getIconUrl","cors","iconUrl","location","host","svg4everybody","findElements","selectors","buttons","pause","restart","rewind","fastForward","mute","settings","captions","fullscreen","progress","inputs","seek","volume","display","buffer","duration","seekTooltip","tooltip","error","warn","toggleNativeControls","createIcon","iconPath","iconPrefix","icon","createElementNS","role","focusable","use","setAttributeNS","createLabel","attr","join","createBadge","badge","menu","createButton","buttonType","toCamelCase","label","labelPressed","iconPressed","some","control","button","createRange","min","step","autocomplete","aria-label","aria-valuemin","aria-valuemax","aria-valuenow","updateRangeFill","createProgress","aria-hidden","suffixKey","played","suffix","createTime","attrs","bindMenuItemShortcuts","menuItem","which","stopPropagation","isRadioButton","showMenuPanel","nextElementSibling","firstElementChild","previousElementSibling","lastElementChild","focusFirstMenuItem","createMenuItem","list","_ref$badge","_ref$checked","checked","aria-checked","flex","children","node","bind","currentTrack","forceHours","updateTimeDisplay","updateVolume","setRange","muted","pressed","updateProgress","_this4","current","val","getElementsByTagName","nodeValue","setProgress","buffered","percent","setProperty","updateSeekTooltip","_this5","tooltips","visible","show","clientRect","pageX","timeUpdate","invert","invertTime","seeking","durationUpdate","pow","hasDuration","displayDuration","toggleMenuButton","setting","updateSetting","pane","panels","default","getLabel","setQualityMenu","_this6","checkMenu","getBadge","sort","b","sorting","setCaptionsMenu","_this7","tracks","getTracks","track","toggled","language","unshift","setSpeedMenu","_this8","minimumSpeed","maximumSpeed","values","popup","p","firstItem","toggleMenu","composedPath","isMenuItem","getMenuSize","tab","clone","position","opacity","removeAttribute","scrollWidth","scrollHeight","_this9","size","restore","propertyName","setDownloadUrl","download","create","_this10","defaultAttributes","progressContainer","aria-haspopup","aria-controls","aria-expanded","inner","home","backButton","href","urls","isEmbed","inject","_this11","floor","random","seektime","addProperty","controlPressed","_this$config","labels","parseUrl","safe","parser","buildUrlParams","params","URLSearchParams","isYouTube","insertAfter","protocol","blob","createObjectURL","languages","userLanguage","active","trackEvents","_this$captions","meta","currentTrackNode","languageExists","mode","updateCues","setLanguage","activeClass","findTrack","enableTextTrack","has","sortIsDefault","sorted","getCurrentTrack","cues","activeCues","cue","getCueAsHTML","cueText","caption","autoplay","autopause","toggleInvert","clickToPlay","hideControls","resetOnEnd","disableContextMenu","loop","selected","keyboard","focused","fallback","iosNative","seekLabel","unmute","enableCaptions","disableCaptions","enterFullscreen","exitFullscreen","frameTitle","menuBack","normal","start","end","all","reset","advertisement","qualityBadge","2160","1440","1080","720","576","480","sdk","iframe","googleIMA","editable","embedContainer","poster","posterEnabled","ads","playing","stopped","loading","hover","isTouch","uiSupported","noTransition","previewThumbnails","thumbContainer","thumbContainerShown","imageContainer","timeContainer","scrubbingContainer","scrubbingContainerShown","publisherId","tagUrl","byline","portrait","transparent","sidedock","referrerPolicy","noCookie","rel","showinfo","iv_load_policy","modestbranding","providers","types","noop","Console","console","Fullscreen","prefix","property","scrollPosition","x","y","forceFallback","trapFocus","scrollX","scrollY","scrollTo","overflow","viewport","head","hasProperty","cleanupViewport","part","keyCode","activeElement","first","last","shiftKey","native","webkitEnterFullscreen","toggleFallback","requestFullscreen","navigationUI","webkitExitFullscreen","action","cancelFullScreen","exit","enter","fullscreenElement","fullscreenEnabled","webkitFullscreenEnabled","mozFullScreenEnabled","msFullscreenEnabled","pre","loadImage","minWidth","image","Image","handler","onload","onerror","naturalWidth","addStyleHook","build","checkPlaying","setTitle","setPoster","togglePoster","enable","backgroundImage","backgroundSize","toggleControls","checkLoading","clearTimeout","timers","controlsElement","recentTouchSeek","lastSeekTime","Date","now","Listeners","lastKey","focusTimer","lastKeyDown","handleKey","setTabFocus","firstTouch","code","repeat","altKey","ctrlKey","metaKey","togglePlay","increaseVolume","decreaseVolume","forward","toggleCaptions","usingNative","timeStamp","wasKeyDown","setPlayerSize","measure","rect","resized","_player$fullscreen","isEnter","_setPlayerSize","firstChild","_getAspectRatio$call2","videoX","videoY","maxWidth","margin","setGutter","isAudio","ended","proxy","proxyEvents","_event$detail","defaultHandler","customHandlerKey","customHandler","returned","hasCustomHandler","inputEvent","currentTarget","hasAttribute","seekTo","loaded","startMove","endMove","startScrubbing","endScrubbing","webkitDirectionInvertedFromDevice","_map2","deltaX","deltaY","direction","sign","abs","globalThis","loadjs_umd","fn","createCommonjsModule","devnull","bundleIdCache","bundleResultCache","bundleCallbackQueue","publish","bundleId","pathsNotFound","q","splice","executeCallbacks","depsNotFound","success","loadFile","callbackFn","numTries","isLegacyIECss","doc","async","maxTries","numRetries","beforeCallbackFn","before","pathname","pathStripped","relList","as","onbeforeload","ev","sheet","cssText","defaultPrevented","loadjs","paths","arg1","arg2","loadFn","numWaiting","loadFiles","returnPromise","deps","bundleIds","subscribe","isDefined","loadScript","assurePlaybackState","hasPlayed","Vimeo","gesture","$2","thumbnail_large","Player","disableTextTrack","stop","restorePause","setVolume","setCurrentTime","setPlaybackRate","currentSrc","setLoop","getVideoUrl","getVideoWidth","getVideoHeight","dimensions","_dimensions","setAutopause","state","getVideoTitle","getCurrentTime","getDuration","getTextTracks","_ref$cues","strippedCues","fragment","createDocumentFragment","stripHTML","getPaused","seconds","parseInt","getHost","YT","onYouTubeIframeAPIReady","getTitle","videoId","currentId","posterSrc","playerVars","hl","disablekb","cc_load_policy","cc_lang_pref","widget_referrer","onError","message","2","5","100","101","150","onPlaybackRateChange","getPlaybackRate","onReady","playVideo","pauseVideo","stopVideo","speeds","getAvailablePlaybackRates","clearInterval","buffering","setInterval","getVideoLoadedFraction","lastBuffered","onStateChange","unMute","Ads","initialized","displayContainer","manager","loader","cuePoints","safetyTimer","countdownTimer","managerPromise","google","ima","destroy","remove","startSafetyTimer","clearSafetyTimer","setupIMA","setVpaidMode","ImaSdkSettings","VpaidMode","ENABLED","setLocale","setDisableCustomPlaybackForIOS10Plus","AdDisplayContainer","requestAds","AdsLoader","AdsManagerLoadedEvent","Type","ADS_MANAGER_LOADED","onAdsManagerLoaded","AdErrorEvent","AD_ERROR","onAdError","AdsRequest","adTagUrl","linearAdSlotWidth","offsetWidth","linearAdSlotHeight","nonLinearAdSlotWidth","nonLinearAdSlotHeight","forceNonLinearFullSlot","setAdWillPlayMuted","getRemainingTime","AdsRenderingSettings","restoreCustomPlaybackStateOnAdBreakComplete","enablePreloading","getAdsManager","getCuePoints","AdEvent","onAdEvent","cuePoint","seekElement","cuePercentage","ad","getAd","adData","getAdData","LOADED","pollCountdown","isLinear","STARTED","ALL_ADS_COMPLETED","loadAds","CONTENT_PAUSE_REQUESTED","pauseContent","CONTENT_RESUME_REQUESTED","resumeContent","LOG","adError","getMessage","cancel","addCuePoints","contentComplete","seekedTime","discardAdBreak","resize","ViewMode","NORMAL","initialize","zIndex","_this12","handlers","_this13","AV_PUBLISHERID","AV_CHANNELID","AV_URL","cb","AV_WIDTH","AV_HEIGHT","AV_CDIM2","fitRatio","outer","PreviewThumbnails","thumbnails","lastMouseMoveTime","mouseDown","loadedImages","thumb","scrubbing","getThumbnails","render","determineContainerAutoSizing","promises","getThumbnail","vttDataString","processedList","thumbnail","frames","frame","line","startTime","lineSplit","_lineSplit","_lineSplit$1$split2","matchTimes","endTime","urlPrefix","substring","lastIndexOf","tempImage","naturalHeight","percentage","mousePosX","showImageAtCurrentTime","toggleThumbContainer","toggleScrubbingContainer","ceil","lastTime","setScrubbingContainerSize","setThumbContainerSizeAndPos","thumbNum","findIndex","hasThumb","qualityIndex","showingThumb","thumbFilename","thumbUrl","currentImageElement","dataset","filename","showImage","removeOldImages","loadingImage","usingSprites","previewImage","showingThumbFilename","newImage","setImageSizeAndOffset","currentImageContainer","preloadNearby","getHigherQuality","currentImage","tagName","removeDelay","deleting","oldThumbFilename","thumbnailsClone","foundOne","newThumbFilename","thumbURL","currentQualityIndex","previewImageHeight","thumbContainerHeight","clearShowing","clientHeight","clientWidth","sizeSpecifiedInCSS","thumbAspectRatio","thumbHeight","setThumbContainerPos","seekbarRect","plyrRect","minVal","maxVal","right","previewPos","_fitRatio","multiplier","top","currentScrubbingImageElement","currentThumbnailImageElement","insertElements","attribute","change","_sources$","_sources$$provider","crossorigin","failed","jQuery","WeakMap","original","getProviderByUrl","search","truthy","searchParams","tabindex","webkitShowPlaybackTargetPicker","isHidden","hiding","eventName","soft","unload","inputIsValid","fauxDuration","realDuration","Infinity","mozHasAudio","webkitAudioDecodedByteCount","audioTracks","clamp","updateStorage","prev","curr","closest","requestPictureInPicture","exitPictureInPicture","webkitPresentationMode","pictureInPictureElement","inline"],"mappings":"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","file":"plyr.min.js","sourcesContent":["typeof navigator === \"object\" && (function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define('Plyr', factory) :\n (global = global || self, global.Plyr = factory());\n}(this, (function () { 'use strict';\n\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n\n function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n }\n\n function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n }\n\n function ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n }\n\n function _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n }\n\n function _slicedToArray(arr, i) {\n return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest();\n }\n\n function _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread();\n }\n\n function _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) {\n for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) arr2[i] = arr[i];\n\n return arr2;\n }\n }\n\n function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n }\n\n function _iterableToArray(iter) {\n if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter);\n }\n\n function _iterableToArrayLimit(arr, i) {\n if (!(Symbol.iterator in Object(arr) || Object.prototype.toString.call(arr) === \"[object Arguments]\")) {\n return;\n }\n\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n }\n\n function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance\");\n }\n\n function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance\");\n }\n\n function _classCallCheck$1(e, t) {\n if (!(e instanceof t)) throw new TypeError(\"Cannot call a class as a function\");\n }\n\n function _defineProperties$1(e, t) {\n for (var n = 0; n < t.length; n++) {\n var r = t[n];\n r.enumerable = r.enumerable || !1, r.configurable = !0, \"value\" in r && (r.writable = !0), Object.defineProperty(e, r.key, r);\n }\n }\n\n function _createClass$1(e, t, n) {\n return t && _defineProperties$1(e.prototype, t), n && _defineProperties$1(e, n), e;\n }\n\n function _defineProperty$1(e, t, n) {\n return t in e ? Object.defineProperty(e, t, {\n value: n,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }) : e[t] = n, e;\n }\n\n function ownKeys$1(e, t) {\n var n = Object.keys(e);\n\n if (Object.getOwnPropertySymbols) {\n var r = Object.getOwnPropertySymbols(e);\n t && (r = r.filter(function (t) {\n return Object.getOwnPropertyDescriptor(e, t).enumerable;\n })), n.push.apply(n, r);\n }\n\n return n;\n }\n\n function _objectSpread2$1(e) {\n for (var t = 1; t < arguments.length; t++) {\n var n = null != arguments[t] ? arguments[t] : {};\n t % 2 ? ownKeys$1(Object(n), !0).forEach(function (t) {\n _defineProperty$1(e, t, n[t]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(n)) : ownKeys$1(Object(n)).forEach(function (t) {\n Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(n, t));\n });\n }\n\n return e;\n }\n\n var defaults = {\n addCSS: !0,\n thumbWidth: 15,\n watch: !0\n };\n\n function matches(e, t) {\n return function () {\n return Array.from(document.querySelectorAll(t)).includes(this);\n }.call(e, t);\n }\n\n function trigger(e, t) {\n if (e && t) {\n var n = new Event(t, {\n bubbles: !0\n });\n e.dispatchEvent(n);\n }\n }\n\n var getConstructor = function getConstructor(e) {\n return null != e ? e.constructor : null;\n },\n instanceOf = function instanceOf(e, t) {\n return !!(e && t && e instanceof t);\n },\n isNullOrUndefined = function isNullOrUndefined(e) {\n return null == e;\n },\n isObject = function isObject(e) {\n return getConstructor(e) === Object;\n },\n isNumber = function isNumber(e) {\n return getConstructor(e) === Number && !Number.isNaN(e);\n },\n isString = function isString(e) {\n return getConstructor(e) === String;\n },\n isBoolean = function isBoolean(e) {\n return getConstructor(e) === Boolean;\n },\n isFunction = function isFunction(e) {\n return getConstructor(e) === Function;\n },\n isArray = function isArray(e) {\n return Array.isArray(e);\n },\n isNodeList = function isNodeList(e) {\n return instanceOf(e, NodeList);\n },\n isElement = function isElement(e) {\n return instanceOf(e, Element);\n },\n isEvent = function isEvent(e) {\n return instanceOf(e, Event);\n },\n isEmpty = function isEmpty(e) {\n return isNullOrUndefined(e) || (isString(e) || isArray(e) || isNodeList(e)) && !e.length || isObject(e) && !Object.keys(e).length;\n },\n is = {\n nullOrUndefined: isNullOrUndefined,\n object: isObject,\n number: isNumber,\n string: isString,\n boolean: isBoolean,\n function: isFunction,\n array: isArray,\n nodeList: isNodeList,\n element: isElement,\n event: isEvent,\n empty: isEmpty\n };\n\n function getDecimalPlaces(e) {\n var t = \"\".concat(e).match(/(?:\\.(\\d+))?(?:[eE]([+-]?\\d+))?$/);\n return t ? Math.max(0, (t[1] ? t[1].length : 0) - (t[2] ? +t[2] : 0)) : 0;\n }\n\n function round(e, t) {\n if (1 > t) {\n var n = getDecimalPlaces(t);\n return parseFloat(e.toFixed(n));\n }\n\n return Math.round(e / t) * t;\n }\n\n var RangeTouch = function () {\n function e(t, n) {\n _classCallCheck$1(this, e), is.element(t) ? this.element = t : is.string(t) && (this.element = document.querySelector(t)), is.element(this.element) && is.empty(this.element.rangeTouch) && (this.config = _objectSpread2$1({}, defaults, {}, n), this.init());\n }\n\n return _createClass$1(e, [{\n key: \"init\",\n value: function value() {\n e.enabled && (this.config.addCSS && (this.element.style.userSelect = \"none\", this.element.style.webKitUserSelect = \"none\", this.element.style.touchAction = \"manipulation\"), this.listeners(!0), this.element.rangeTouch = this);\n }\n }, {\n key: \"destroy\",\n value: function value() {\n e.enabled && (this.config.addCSS && (this.element.style.userSelect = \"\", this.element.style.webKitUserSelect = \"\", this.element.style.touchAction = \"\"), this.listeners(!1), this.element.rangeTouch = null);\n }\n }, {\n key: \"listeners\",\n value: function value(e) {\n var t = this,\n n = e ? \"addEventListener\" : \"removeEventListener\";\n [\"touchstart\", \"touchmove\", \"touchend\"].forEach(function (e) {\n t.element[n](e, function (e) {\n return t.set(e);\n }, !1);\n });\n }\n }, {\n key: \"get\",\n value: function value(t) {\n if (!e.enabled || !is.event(t)) return null;\n var n,\n r = t.target,\n i = t.changedTouches[0],\n o = parseFloat(r.getAttribute(\"min\")) || 0,\n s = parseFloat(r.getAttribute(\"max\")) || 100,\n u = parseFloat(r.getAttribute(\"step\")) || 1,\n c = r.getBoundingClientRect(),\n a = 100 / c.width * (this.config.thumbWidth / 2) / 100;\n return 0 > (n = 100 / c.width * (i.clientX - c.left)) ? n = 0 : 100 < n && (n = 100), 50 > n ? n -= (100 - 2 * n) * a : 50 < n && (n += 2 * (n - 50) * a), o + round(n / 100 * (s - o), u);\n }\n }, {\n key: \"set\",\n value: function value(t) {\n e.enabled && is.event(t) && !t.target.disabled && (t.preventDefault(), t.target.value = this.get(t), trigger(t.target, \"touchend\" === t.type ? \"change\" : \"input\"));\n }\n }], [{\n key: \"setup\",\n value: function value(t) {\n var n = 1 < arguments.length && void 0 !== arguments[1] ? arguments[1] : {},\n r = null;\n if (is.empty(t) || is.string(t) ? r = Array.from(document.querySelectorAll(is.string(t) ? t : 'input[type=\"range\"]')) : is.element(t) ? r = [t] : is.nodeList(t) ? r = Array.from(t) : is.array(t) && (r = t.filter(is.element)), is.empty(r)) return null;\n\n var i = _objectSpread2$1({}, defaults, {}, n);\n\n if (is.string(t) && i.watch) {\n var o = new MutationObserver(function (n) {\n Array.from(n).forEach(function (n) {\n Array.from(n.addedNodes).forEach(function (n) {\n is.element(n) && matches(n, t) && new e(n, i);\n });\n });\n });\n o.observe(document.body, {\n childList: !0,\n subtree: !0\n });\n }\n\n return r.map(function (t) {\n return new e(t, n);\n });\n }\n }, {\n key: \"enabled\",\n get: function get() {\n return \"ontouchstart\" in document.documentElement;\n }\n }]), e;\n }();\n\n // ==========================================================================\n // Type checking utils\n // ==========================================================================\n var getConstructor$1 = function getConstructor(input) {\n return input !== null && typeof input !== 'undefined' ? input.constructor : null;\n };\n\n var instanceOf$1 = function instanceOf(input, constructor) {\n return Boolean(input && constructor && input instanceof constructor);\n };\n\n var isNullOrUndefined$1 = function isNullOrUndefined(input) {\n return input === null || typeof input === 'undefined';\n };\n\n var isObject$1 = function isObject(input) {\n return getConstructor$1(input) === Object;\n };\n\n var isNumber$1 = function isNumber(input) {\n return getConstructor$1(input) === Number && !Number.isNaN(input);\n };\n\n var isString$1 = function isString(input) {\n return getConstructor$1(input) === String;\n };\n\n var isBoolean$1 = function isBoolean(input) {\n return getConstructor$1(input) === Boolean;\n };\n\n var isFunction$1 = function isFunction(input) {\n return getConstructor$1(input) === Function;\n };\n\n var isArray$1 = function isArray(input) {\n return Array.isArray(input);\n };\n\n var isWeakMap = function isWeakMap(input) {\n return instanceOf$1(input, WeakMap);\n };\n\n var isNodeList$1 = function isNodeList(input) {\n return instanceOf$1(input, NodeList);\n };\n\n var isElement$1 = function isElement(input) {\n return instanceOf$1(input, Element);\n };\n\n var isTextNode = function isTextNode(input) {\n return getConstructor$1(input) === Text;\n };\n\n var isEvent$1 = function isEvent(input) {\n return instanceOf$1(input, Event);\n };\n\n var isKeyboardEvent = function isKeyboardEvent(input) {\n return instanceOf$1(input, KeyboardEvent);\n };\n\n var isCue = function isCue(input) {\n return instanceOf$1(input, window.TextTrackCue) || instanceOf$1(input, window.VTTCue);\n };\n\n var isTrack = function isTrack(input) {\n return instanceOf$1(input, TextTrack) || !isNullOrUndefined$1(input) && isString$1(input.kind);\n };\n\n var isPromise = function isPromise(input) {\n return instanceOf$1(input, Promise);\n };\n\n var isEmpty$1 = function isEmpty(input) {\n return isNullOrUndefined$1(input) || (isString$1(input) || isArray$1(input) || isNodeList$1(input)) && !input.length || isObject$1(input) && !Object.keys(input).length;\n };\n\n var isUrl = function isUrl(input) {\n // Accept a URL object\n if (instanceOf$1(input, window.URL)) {\n return true;\n } // Must be string from here\n\n\n if (!isString$1(input)) {\n return false;\n } // Add the protocol if required\n\n\n var string = input;\n\n if (!input.startsWith('http://') || !input.startsWith('https://')) {\n string = \"http://\".concat(input);\n }\n\n try {\n return !isEmpty$1(new URL(string).hostname);\n } catch (e) {\n return false;\n }\n };\n\n var is$1 = {\n nullOrUndefined: isNullOrUndefined$1,\n object: isObject$1,\n number: isNumber$1,\n string: isString$1,\n boolean: isBoolean$1,\n function: isFunction$1,\n array: isArray$1,\n weakMap: isWeakMap,\n nodeList: isNodeList$1,\n element: isElement$1,\n textNode: isTextNode,\n event: isEvent$1,\n keyboardEvent: isKeyboardEvent,\n cue: isCue,\n track: isTrack,\n promise: isPromise,\n url: isUrl,\n empty: isEmpty$1\n };\n\n // ==========================================================================\n var transitionEndEvent = function () {\n var element = document.createElement('span');\n var events = {\n WebkitTransition: 'webkitTransitionEnd',\n MozTransition: 'transitionend',\n OTransition: 'oTransitionEnd otransitionend',\n transition: 'transitionend'\n };\n var type = Object.keys(events).find(function (event) {\n return element.style[event] !== undefined;\n });\n return is$1.string(type) ? events[type] : false;\n }(); // Force repaint of element\n\n function repaint(element, delay) {\n setTimeout(function () {\n try {\n // eslint-disable-next-line no-param-reassign\n element.hidden = true; // eslint-disable-next-line no-unused-expressions\n\n element.offsetHeight; // eslint-disable-next-line no-param-reassign\n\n element.hidden = false;\n } catch (e) {// Do nothing\n }\n }, delay);\n }\n\n // ==========================================================================\n // Browser sniffing\n // Unfortunately, due to mixed support, UA sniffing is required\n // ==========================================================================\n var browser = {\n isIE:\n /* @cc_on!@ */\n !!document.documentMode,\n isEdge: window.navigator.userAgent.includes('Edge'),\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\n function cloneDeep(object) {\n return JSON.parse(JSON.stringify(object));\n } // Get a nested value in an object\n\n function getDeep(object, path) {\n return path.split('.').reduce(function (obj, key) {\n return obj && obj[key];\n }, object);\n } // Deep extend destination object with N more objects\n\n function extend() {\n var target = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n for (var _len = arguments.length, sources = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n sources[_key - 1] = arguments[_key];\n }\n\n if (!sources.length) {\n return target;\n }\n\n var source = sources.shift();\n\n if (!is$1.object(source)) {\n return target;\n }\n\n Object.keys(source).forEach(function (key) {\n if (is$1.object(source[key])) {\n if (!Object.keys(target).includes(key)) {\n Object.assign(target, _defineProperty({}, key, {}));\n }\n\n extend(target[key], source[key]);\n } else {\n Object.assign(target, _defineProperty({}, key, source[key]));\n }\n });\n return extend.apply(void 0, [target].concat(sources));\n }\n\n function wrap(elements, wrapper) {\n // Convert `elements` to an array, if necessary.\n var targets = elements.length ? elements : [elements]; // Loops backwards to prevent having to clone the wrapper on the\n // first element (see `child` below).\n\n Array.from(targets).reverse().forEach(function (element, index) {\n var child = index > 0 ? wrapper.cloneNode(true) : wrapper; // Cache the current parent and sibling.\n\n var parent = element.parentNode;\n var sibling = element.nextSibling; // Wrap the element (is automatically removed from its current\n // parent).\n\n child.appendChild(element); // 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\n if (sibling) {\n parent.insertBefore(child, sibling);\n } else {\n parent.appendChild(child);\n }\n });\n } // Set attributes\n\n function setAttributes(element, attributes) {\n if (!is$1.element(element) || is$1.empty(attributes)) {\n return;\n } // Assume null and undefined attributes should be left out,\n // Setting them would otherwise convert them to \"null\" and \"undefined\"\n\n\n Object.entries(attributes).filter(function (_ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n value = _ref2[1];\n\n return !is$1.nullOrUndefined(value);\n }).forEach(function (_ref3) {\n var _ref4 = _slicedToArray(_ref3, 2),\n key = _ref4[0],\n value = _ref4[1];\n\n return element.setAttribute(key, value);\n });\n } // Create a DocumentFragment\n\n function createElement(type, attributes, text) {\n // Create a new \n var element = document.createElement(type); // Set all passed attributes\n\n if (is$1.object(attributes)) {\n setAttributes(element, attributes);\n } // Add text node\n\n\n if (is$1.string(text)) {\n element.innerText = text;\n } // Return built element\n\n\n return element;\n } // Inaert an element after another\n\n function insertAfter(element, target) {\n if (!is$1.element(element) || !is$1.element(target)) {\n return;\n }\n\n target.parentNode.insertBefore(element, target.nextSibling);\n } // Insert a DocumentFragment\n\n function insertElement(type, parent, attributes, text) {\n if (!is$1.element(parent)) {\n return;\n }\n\n parent.appendChild(createElement(type, attributes, text));\n } // Remove element(s)\n\n function removeElement(element) {\n if (is$1.nodeList(element) || is$1.array(element)) {\n Array.from(element).forEach(removeElement);\n return;\n }\n\n if (!is$1.element(element) || !is$1.element(element.parentNode)) {\n return;\n }\n\n element.parentNode.removeChild(element);\n } // Remove all child elements\n\n function emptyElement(element) {\n if (!is$1.element(element)) {\n return;\n }\n\n var length = element.childNodes.length;\n\n while (length > 0) {\n element.removeChild(element.lastChild);\n length -= 1;\n }\n } // Replace element\n\n function replaceElement(newChild, oldChild) {\n if (!is$1.element(oldChild) || !is$1.element(oldChild.parentNode) || !is$1.element(newChild)) {\n return null;\n }\n\n oldChild.parentNode.replaceChild(newChild, oldChild);\n return newChild;\n } // Get an attribute object from a string selector\n\n 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 if (!is$1.string(sel) || is$1.empty(sel)) {\n return {};\n }\n\n var attributes = {};\n var existing = extend({}, existingAttributes);\n sel.split(',').forEach(function (s) {\n // Remove whitespace\n var selector = s.trim();\n var className = selector.replace('.', '');\n var stripped = selector.replace(/[[\\]]/g, ''); // Get the parts and value\n\n var parts = stripped.split('=');\n\n var _parts = _slicedToArray(parts, 1),\n key = _parts[0];\n\n var value = parts.length > 1 ? parts[1].replace(/[\"']/g, '') : ''; // Get the first character\n\n var start = selector.charAt(0);\n\n switch (start) {\n case '.':\n // Add to existing classname\n if (is$1.string(existing.class)) {\n attributes.class = \"\".concat(existing.class, \" \").concat(className);\n } else {\n attributes.class = className;\n }\n\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 break;\n }\n });\n return extend(existing, attributes);\n } // Toggle hidden\n\n function toggleHidden(element, hidden) {\n if (!is$1.element(element)) {\n return;\n }\n\n var hide = hidden;\n\n if (!is$1.boolean(hide)) {\n hide = !element.hidden;\n } // eslint-disable-next-line no-param-reassign\n\n\n element.hidden = hide;\n } // Mirror Element.classList.toggle, with IE compatibility for \"force\" argument\n\n function toggleClass(element, className, force) {\n if (is$1.nodeList(element)) {\n return Array.from(element).map(function (e) {\n return toggleClass(e, className, force);\n });\n }\n\n if (is$1.element(element)) {\n var method = 'toggle';\n\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 false;\n } // Has class name\n\n function hasClass(element, className) {\n return is$1.element(element) && element.classList.contains(className);\n } // Element matches selector\n\n function matches$1(element, selector) {\n\n function match() {\n return Array.from(document.querySelectorAll(selector)).includes(this);\n }\n\n var method = match;\n return method.call(element, selector);\n } // Find all elements\n\n function getElements(selector) {\n return this.elements.container.querySelectorAll(selector);\n } // Find a single element\n\n function getElement(selector) {\n return this.elements.container.querySelector(selector);\n } // Set focus and tab focus class\n\n function setFocus() {\n var element = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;\n var tabFocus = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n if (!is$1.element(element)) {\n return;\n } // Set regular focus\n\n\n element.focus({\n preventScroll: true\n }); // If we want to mimic keyboard focus via tab\n\n if (tabFocus) {\n toggleClass(element, this.config.classNames.tabFocus);\n }\n }\n\n var 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 }; // Check for feature support\n\n var support = {\n // Basic support\n audio: 'canPlayType' in document.createElement('audio'),\n video: 'canPlayType' in document.createElement('video'),\n // Check for support\n // Basic functionality vs full UI\n check: function check(type, provider, playsinline) {\n var canPlayInline = browser.isIPhone && playsinline && support.playsinline;\n var api = support[type] || provider !== 'html5';\n var ui = api && support.rangeInput && (type !== 'video' || !browser.isIPhone || canPlayInline);\n return {\n api: api,\n ui: ui\n };\n },\n // Picture-in-picture support\n // Safari & Chrome only currently\n pip: function () {\n if (browser.isIPhone) {\n return false;\n } // Safari\n // https://developer.apple.com/documentation/webkitjs/adding_picture_in_picture_to_your_safari_media_controls\n\n\n if (is$1.function(createElement('video').webkitSetPresentationMode)) {\n return true;\n } // Chrome\n // https://developers.google.com/web/updates/2018/10/watch-video-using-picture-in-picture\n\n\n if (document.pictureInPictureEnabled && !createElement('video').disablePictureInPicture) {\n return true;\n }\n\n return false;\n }(),\n // Airplay support\n // Safari only currently\n airplay: is$1.function(window.WebKitPlaybackTargetAvailabilityEvent),\n // Inline playback support\n // https://webkit.org/blog/6784/new-video-policies-for-ios/\n playsinline: 'playsInline' in document.createElement('video'),\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: function mime(input) {\n if (is$1.empty(input)) {\n return false;\n }\n\n var _input$split = input.split('/'),\n _input$split2 = _slicedToArray(_input$split, 1),\n mediaType = _input$split2[0];\n\n var type = input; // Verify we're using HTML5 and there's no media type mismatch\n\n if (!this.isHTML5 || mediaType !== this.type) {\n return false;\n } // Add codec if required\n\n\n if (Object.keys(defaultCodecs).includes(type)) {\n type += \"; codecs=\\\"\".concat(defaultCodecs[input], \"\\\"\");\n }\n\n try {\n return Boolean(type && this.media.canPlayType(type).replace(/no/, ''));\n } catch (e) {\n return false;\n }\n },\n // Check for textTracks support\n textTracks: 'textTracks' in document.createElement('video'),\n // Sliders\n rangeInput: function () {\n var range = document.createElement('input');\n range.type = 'range';\n return range.type === 'range';\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 // Detect transitions support\n transitions: transitionEndEvent !== false,\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\n // https://github.com/WICG/EventListenerOptions/blob/gh-pages/explainer.md\n // https://www.youtube.com/watch?v=NPM6172J22g\n\n var supportsPassiveListeners = function () {\n // Test via a getter in the options object to see if the passive property is accessed\n var supported = false;\n\n try {\n var options = Object.defineProperty({}, 'passive', {\n get: function get() {\n supported = true;\n return null;\n }\n });\n window.addEventListener('test', null, options);\n window.removeEventListener('test', null, options);\n } catch (e) {// Do nothing\n }\n\n return supported;\n }(); // Toggle event listener\n\n\n function toggleListener(element, event, callback) {\n var _this = this;\n\n var toggle = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;\n var passive = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : true;\n var capture = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : false;\n\n // Bail if no element, event, or callback\n if (!element || !('addEventListener' in element) || is$1.empty(event) || !is$1.function(callback)) {\n return;\n } // Allow multiple events\n\n\n var events = event.split(' '); // Build options\n // Default to just the capture boolean for browsers with no passive listener support\n\n var options = capture; // If passive events listeners are supported\n\n if (supportsPassiveListeners) {\n options = {\n // Whether the listener can be passive (i.e. default never prevented)\n passive: passive,\n // Whether the listener is a capturing listener or not\n capture: capture\n };\n } // If a single node is passed, bind the event listener\n\n\n events.forEach(function (type) {\n if (_this && _this.eventListeners && toggle) {\n // Cache event listener\n _this.eventListeners.push({\n element: element,\n type: type,\n callback: callback,\n options: options\n });\n }\n\n element[toggle ? 'addEventListener' : 'removeEventListener'](type, callback, options);\n });\n } // Bind event handler\n\n function on(element) {\n var events = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n var callback = arguments.length > 2 ? arguments[2] : undefined;\n var passive = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : true;\n var capture = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;\n toggleListener.call(this, element, events, callback, true, passive, capture);\n } // Unbind event handler\n\n function off(element) {\n var events = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n var callback = arguments.length > 2 ? arguments[2] : undefined;\n var passive = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : true;\n var capture = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;\n toggleListener.call(this, element, events, callback, false, passive, capture);\n } // Bind once-only event handler\n\n function once(element) {\n var _this2 = this;\n\n var events = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n var callback = arguments.length > 2 ? arguments[2] : undefined;\n var passive = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : true;\n var capture = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;\n\n var onceCallback = function onceCallback() {\n off(element, events, onceCallback, passive, capture);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n callback.apply(_this2, args);\n };\n\n toggleListener.call(this, element, events, onceCallback, true, passive, capture);\n } // Trigger event\n\n function triggerEvent(element) {\n var type = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n var bubbles = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n var detail = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n\n // Bail if no element\n if (!is$1.element(element) || is$1.empty(type)) {\n return;\n } // Create and dispatch the event\n\n\n var event = new CustomEvent(type, {\n bubbles: bubbles,\n detail: _objectSpread2({}, detail, {\n plyr: this\n })\n }); // Dispatch the event\n\n element.dispatchEvent(event);\n } // Unbind all cached event listeners\n\n function unbindListeners() {\n if (this && this.eventListeners) {\n this.eventListeners.forEach(function (item) {\n var element = item.element,\n type = item.type,\n callback = item.callback,\n options = item.options;\n element.removeEventListener(type, callback, options);\n });\n this.eventListeners = [];\n }\n } // Run method when / if player is ready\n\n function ready() {\n var _this3 = this;\n\n return new Promise(function (resolve) {\n return _this3.ready ? setTimeout(resolve, 0) : on.call(_this3, _this3.elements.container, 'ready', resolve);\n }).then(function () {});\n }\n\n function validateRatio(input) {\n if (!is$1.array(input) && (!is$1.string(input) || !input.includes(':'))) {\n return false;\n }\n\n var ratio = is$1.array(input) ? input : input.split(':');\n return ratio.map(Number).every(is$1.number);\n }\n function reduceAspectRatio(ratio) {\n if (!is$1.array(ratio) || !ratio.every(is$1.number)) {\n return null;\n }\n\n var _ratio = _slicedToArray(ratio, 2),\n width = _ratio[0],\n height = _ratio[1];\n\n var getDivider = function getDivider(w, h) {\n return h === 0 ? w : getDivider(h, w % h);\n };\n\n var divider = getDivider(width, height);\n return [width / divider, height / divider];\n }\n function getAspectRatio(input) {\n var parse = function parse(ratio) {\n return validateRatio(ratio) ? ratio.split(':').map(Number) : null;\n }; // Try provided ratio\n\n\n var ratio = parse(input); // Get from config\n\n if (ratio === null) {\n ratio = parse(this.config.ratio);\n } // Get from embed\n\n\n if (ratio === null && !is$1.empty(this.embed) && is$1.array(this.embed.ratio)) {\n ratio = this.embed.ratio;\n } // Get from HTML5 video\n\n\n if (ratio === null && this.isHTML5) {\n var _this$media = this.media,\n videoWidth = _this$media.videoWidth,\n videoHeight = _this$media.videoHeight;\n ratio = reduceAspectRatio([videoWidth, videoHeight]);\n }\n\n return ratio;\n } // Set aspect ratio for responsive container\n\n function setAspectRatio(input) {\n if (!this.isVideo) {\n return {};\n }\n\n var wrapper = this.elements.wrapper;\n var ratio = getAspectRatio.call(this, input);\n\n var _ref = is$1.array(ratio) ? ratio : [0, 0],\n _ref2 = _slicedToArray(_ref, 2),\n w = _ref2[0],\n h = _ref2[1];\n\n var padding = 100 / w * h;\n wrapper.style.paddingBottom = \"\".concat(padding, \"%\"); // For Vimeo we have an extra
to hide the standard controls and UI\n\n if (this.isVimeo && this.supported.ui) {\n var height = 240;\n var offset = (height - padding) / (height / 50);\n this.media.style.transform = \"translateY(-\".concat(offset, \"%)\");\n } else if (this.isHTML5) {\n wrapper.classList.toggle(this.config.classNames.videoFixedRatio, ratio !== null);\n }\n\n return {\n padding: padding,\n ratio: ratio\n };\n }\n\n // ==========================================================================\n var html5 = {\n getSources: function getSources() {\n var _this = this;\n\n if (!this.isHTML5) {\n return [];\n }\n\n var sources = Array.from(this.media.querySelectorAll('source')); // Filter out unsupported sources (if type is specified)\n\n return sources.filter(function (source) {\n var type = source.getAttribute('type');\n\n if (is$1.empty(type)) {\n return true;\n }\n\n return support.mime.call(_this, type);\n });\n },\n // Get quality levels\n getQualityOptions: function getQualityOptions() {\n // Whether we're forcing all options (e.g. for streaming)\n if (this.config.quality.forced) {\n return this.config.quality.options;\n } // Get sizes from elements\n\n\n return html5.getSources.call(this).map(function (source) {\n return Number(source.getAttribute('data-res'));\n }).filter(Boolean);\n },\n setup: function setup() {\n if (!this.isHTML5) {\n return;\n }\n\n var player = this; // Set speed options from config\n\n player.options.speed = player.config.speed.options; // Set aspect ratio if fixed\n\n if (!is$1.empty(this.config.ratio)) {\n setAspectRatio.call(player);\n } // Quality\n\n\n Object.defineProperty(player.media, 'quality', {\n get: function get() {\n // Get sources\n var sources = html5.getSources.call(player);\n var source = sources.find(function (s) {\n return s.getAttribute('src') === player.source;\n }); // Return size, if match is found\n\n return source && Number(source.getAttribute('data-res'));\n },\n set: function set(input) {\n if (player.quality === input) {\n return;\n } // If we're using an an external handler...\n\n\n if (player.config.quality.forced && is$1.function(player.config.quality.onChange)) {\n player.config.quality.onChange(input);\n } else {\n // Get sources\n var sources = html5.getSources.call(player); // Get first match for requested size\n\n var source = sources.find(function (s) {\n return Number(s.getAttribute('data-res')) === input;\n }); // No matching source found\n\n if (!source) {\n return;\n } // Get current state\n\n\n var _player$media = player.media,\n currentTime = _player$media.currentTime,\n paused = _player$media.paused,\n preload = _player$media.preload,\n readyState = _player$media.readyState,\n playbackRate = _player$media.playbackRate; // Set new source\n\n player.media.src = source.getAttribute('src'); // Prevent loading if preload=\"none\" and the current source isn't loaded (#1044)\n\n if (preload !== 'none' || readyState) {\n // Restore time\n player.once('loadedmetadata', function () {\n player.speed = playbackRate;\n player.currentTime = currentTime; // Resume playing\n\n if (!paused) {\n player.play();\n }\n }); // Load new source\n\n player.media.load();\n }\n } // Trigger change event\n\n\n triggerEvent.call(player, player.media, 'qualitychange', false, {\n quality: input\n });\n }\n });\n },\n // Cancel current network requests\n // See https://github.com/sampotts/plyr/issues/174\n cancelRequests: function cancelRequests() {\n if (!this.isHTML5) {\n return;\n } // Remove child sources\n\n\n removeElement(html5.getSources.call(this)); // 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\n this.media.setAttribute('src', this.config.blankVideo); // Load the new empty source\n // This will cancel existing requests\n // See https://github.com/sampotts/plyr/issues/174\n\n this.media.load(); // Debugging\n\n this.debug.log('Cancelled network requests');\n }\n };\n\n // ==========================================================================\n\n function dedupe(array) {\n if (!is$1.array(array)) {\n return array;\n }\n\n return array.filter(function (item, index) {\n return array.indexOf(item) === index;\n });\n } // Get the closest value in an array\n\n function closest(array, value) {\n if (!is$1.array(array) || !array.length) {\n return null;\n }\n\n return array.reduce(function (prev, curr) {\n return Math.abs(curr - value) < Math.abs(prev - value) ? curr : prev;\n });\n }\n\n // ==========================================================================\n\n function generateId(prefix) {\n return \"\".concat(prefix, \"-\").concat(Math.floor(Math.random() * 10000));\n } // Format string\n\n function format(input) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n if (is$1.empty(input)) {\n return input;\n }\n\n return input.toString().replace(/{(\\d+)}/g, function (match, i) {\n return args[i].toString();\n });\n } // Get percentage\n\n 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 } // Replace all occurances of a string in a string\n\n function replaceAll() {\n var input = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';\n var find = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n var replace = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '';\n return input.replace(new RegExp(find.toString().replace(/([.*+?^=!:${}()|[\\]/\\\\])/g, '\\\\$1'), 'g'), replace.toString());\n } // Convert to title case\n\n function toTitleCase() {\n var input = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';\n return input.toString().replace(/\\w\\S*/g, function (text) {\n return text.charAt(0).toUpperCase() + text.substr(1).toLowerCase();\n });\n } // Convert string to pascalCase\n\n function toPascalCase() {\n var input = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';\n var string = input.toString(); // Convert kebab case\n\n string = replaceAll(string, '-', ' '); // Convert snake case\n\n string = replaceAll(string, '_', ' '); // Convert to title case\n\n string = toTitleCase(string); // Convert to pascal case\n\n return replaceAll(string, ' ', '');\n } // Convert string to pascalCase\n\n function toCamelCase() {\n var input = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';\n var string = input.toString(); // Convert to pascal case\n\n string = toPascalCase(string); // Convert first character to lowercase\n\n return string.charAt(0).toLowerCase() + string.slice(1);\n } // Remove HTML from a string\n\n function stripHTML(source) {\n var fragment = document.createDocumentFragment();\n var element = document.createElement('div');\n fragment.appendChild(element);\n element.innerHTML = source;\n return fragment.firstChild.innerText;\n } // Like outerHTML, but also works for DocumentFragment\n\n function getHTML(element) {\n var wrapper = document.createElement('div');\n wrapper.appendChild(element);\n return wrapper.innerHTML;\n }\n\n var resources = {\n pip: 'PIP',\n airplay: 'AirPlay',\n html5: 'HTML5',\n vimeo: 'Vimeo',\n youtube: 'YouTube'\n };\n var i18n = {\n get: function get() {\n var key = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';\n var config = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n if (is$1.empty(key) || is$1.empty(config)) {\n return '';\n }\n\n var string = getDeep(config.i18n, key);\n\n if (is$1.empty(string)) {\n if (Object.keys(resources).includes(key)) {\n return resources[key];\n }\n\n return '';\n }\n\n var replace = {\n '{seektime}': config.seekTime,\n '{title}': config.title\n };\n Object.entries(replace).forEach(function (_ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n k = _ref2[0],\n v = _ref2[1];\n\n string = replaceAll(string, k, v);\n });\n return string;\n }\n };\n\n var Storage = /*#__PURE__*/function () {\n function Storage(player) {\n _classCallCheck(this, Storage);\n\n this.enabled = player.config.storage.enabled;\n this.key = player.config.storage.key;\n } // Check for actual support (see if we can use it)\n\n\n _createClass(Storage, [{\n key: \"get\",\n value: function get(key) {\n if (!Storage.supported || !this.enabled) {\n return null;\n }\n\n var store = window.localStorage.getItem(this.key);\n\n if (is$1.empty(store)) {\n return null;\n }\n\n var json = JSON.parse(store);\n return is$1.string(key) && key.length ? json[key] : json;\n }\n }, {\n key: \"set\",\n value: function set(object) {\n // Bail if we don't have localStorage support or it's disabled\n if (!Storage.supported || !this.enabled) {\n return;\n } // Can only store objectst\n\n\n if (!is$1.object(object)) {\n return;\n } // Get current storage\n\n\n var storage = this.get(); // Default to empty object\n\n if (is$1.empty(storage)) {\n storage = {};\n } // Update the working copy of the values\n\n\n extend(storage, object); // Update storage\n\n window.localStorage.setItem(this.key, JSON.stringify(storage));\n }\n }], [{\n key: \"supported\",\n get: function get() {\n try {\n if (!('localStorage' in window)) {\n return false;\n }\n\n var test = '___test'; // 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\n window.localStorage.setItem(test, test);\n window.localStorage.removeItem(test);\n return true;\n } catch (e) {\n return false;\n }\n }\n }]);\n\n return Storage;\n }();\n\n // ==========================================================================\n // Fetch wrapper\n // Using XHR to avoid issues with older browsers\n // ==========================================================================\n function fetch(url) {\n var responseType = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'text';\n return new Promise(function (resolve, reject) {\n try {\n var request = new XMLHttpRequest(); // Check for CORS support\n\n if (!('withCredentials' in request)) {\n return;\n }\n\n request.addEventListener('load', function () {\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 request.addEventListener('error', function () {\n throw new Error(request.status);\n });\n request.open('GET', url, true); // Set the required response type\n\n request.responseType = responseType;\n request.send();\n } catch (e) {\n reject(e);\n }\n });\n }\n\n // ==========================================================================\n\n function loadSprite(url, id) {\n if (!is$1.string(url)) {\n return;\n }\n\n var prefix = 'cache';\n var hasId = is$1.string(id);\n var isCached = false;\n\n var exists = function exists() {\n return document.getElementById(id) !== null;\n };\n\n var update = function update(container, data) {\n // eslint-disable-next-line no-param-reassign\n container.innerHTML = data; // Check again incase of race condition\n\n if (hasId && exists()) {\n return;\n } // Inject the SVG to the body\n\n\n document.body.insertAdjacentElement('afterbegin', container);\n }; // Only load once if ID set\n\n\n if (!hasId || !exists()) {\n var useStorage = Storage.supported; // Create container\n\n var container = document.createElement('div');\n container.setAttribute('hidden', '');\n\n if (hasId) {\n container.setAttribute('id', id);\n } // Check in cache\n\n\n if (useStorage) {\n var cached = window.localStorage.getItem(\"\".concat(prefix, \"-\").concat(id));\n isCached = cached !== null;\n\n if (isCached) {\n var data = JSON.parse(cached);\n update(container, data.content);\n }\n } // Get the sprite\n\n\n fetch(url).then(function (result) {\n if (is$1.empty(result)) {\n return;\n }\n\n if (useStorage) {\n window.localStorage.setItem(\"\".concat(prefix, \"-\").concat(id), JSON.stringify({\n content: result\n }));\n }\n\n update(container, result);\n }).catch(function () {});\n }\n }\n\n // ==========================================================================\n\n var getHours = function getHours(value) {\n return Math.trunc(value / 60 / 60 % 60, 10);\n };\n var getMinutes = function getMinutes(value) {\n return Math.trunc(value / 60 % 60, 10);\n };\n var getSeconds = function getSeconds(value) {\n return Math.trunc(value % 60, 10);\n }; // Format time to UI friendly string\n\n function formatTime() {\n var time = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n var displayHours = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var inverted = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n // Bail if the value isn't a number\n if (!is$1.number(time)) {\n return formatTime(undefined, displayHours, inverted);\n } // Format time component to add leading zero\n\n\n var format = function format(value) {\n return \"0\".concat(value).slice(-2);\n }; // Breakdown to hours, mins, secs\n\n\n var hours = getHours(time);\n var mins = getMinutes(time);\n var secs = getSeconds(time); // Do we need to display hours?\n\n if (displayHours || hours > 0) {\n hours = \"\".concat(hours, \":\");\n } else {\n hours = '';\n } // Render\n\n\n return \"\".concat(inverted && time > 0 ? '-' : '').concat(hours).concat(format(mins), \":\").concat(format(secs));\n }\n\n var controls = {\n // Get icon URL\n getIconUrl: function getIconUrl() {\n var url = new URL(this.config.iconUrl, window.location);\n var cors = url.host !== window.location.host || browser.isIE && !window.svg4everybody;\n return {\n url: this.config.iconUrl,\n cors: cors\n };\n },\n // Find the UI controls\n findElements: function findElements() {\n try {\n this.elements.controls = getElement.call(this, this.config.selectors.controls.wrapper); // Buttons\n\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 }; // Progress\n\n this.elements.progress = getElement.call(this, this.config.selectors.progress); // Inputs\n\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 }; // Display\n\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 }; // Seek tooltip\n\n if (is$1.element(this.elements.progress)) {\n this.elements.display.seekTooltip = this.elements.progress.querySelector(\".\".concat(this.config.classNames.tooltip));\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); // Restore native video controls\n\n this.toggleNativeControls(true);\n return false;\n }\n },\n // Create icon\n createIcon: function createIcon(type, attributes) {\n var namespace = 'http://www.w3.org/2000/svg';\n var iconUrl = controls.getIconUrl.call(this);\n var iconPath = \"\".concat(!iconUrl.cors ? iconUrl.url : '', \"#\").concat(this.config.iconPrefix); // Create \n\n var icon = document.createElementNS(namespace, 'svg');\n setAttributes(icon, extend(attributes, {\n role: 'presentation',\n focusable: 'false'\n })); // Create the to reference sprite\n\n var use = document.createElementNS(namespace, 'use');\n var path = \"\".concat(iconPath, \"-\").concat(type); // 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\n if ('href' in use) {\n use.setAttributeNS('http://www.w3.org/1999/xlink', 'href', path);\n } // Always set the older attribute even though it's \"deprecated\" (it'll be around for ages)\n\n\n use.setAttributeNS('http://www.w3.org/1999/xlink', 'xlink:href', path); // Add to \n\n icon.appendChild(use);\n return icon;\n },\n // Create hidden text label\n createLabel: function createLabel(key) {\n var attr = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var text = i18n.get(key, this.config);\n\n var attributes = _objectSpread2({}, attr, {\n class: [attr.class, this.config.classNames.hidden].filter(Boolean).join(' ')\n });\n\n return createElement('span', attributes, text);\n },\n // Create a badge\n createBadge: function createBadge(text) {\n if (is$1.empty(text)) {\n return null;\n }\n\n var badge = createElement('span', {\n class: this.config.classNames.menu.value\n });\n badge.appendChild(createElement('span', {\n class: this.config.classNames.menu.badge\n }, text));\n return badge;\n },\n // Create a
if needed\n\n if (is$1.empty(source)) {\n source = player.media.getAttribute(player.config.attributes.embed.id);\n }\n\n var id = parseId(source); // Build an iframe\n\n var iframe = createElement('iframe');\n var 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'); // Set the referrer policy if required\n\n if (!is$1.empty(config.referrerPolicy)) {\n iframe.setAttribute('referrerPolicy', config.referrerPolicy);\n } // Get poster, if already set\n\n\n var poster = player.poster; // Inject the package\n\n var wrapper = createElement('div', {\n poster: poster,\n class: player.config.classNames.embedContainer\n });\n wrapper.appendChild(iframe);\n player.media = replaceElement(wrapper, player.media); // Get poster image\n\n fetch(format(player.config.urls.vimeo.api, id), 'json').then(function (response) {\n if (is$1.empty(response)) {\n return;\n } // Get the URL for thumbnail\n\n\n var url = new URL(response[0].thumbnail_large); // Get original image\n\n url.pathname = \"\".concat(url.pathname.split('_')[0], \".jpg\"); // Set and show poster\n\n ui.setPoster.call(player, url.href).catch(function () {});\n }); // Setup instance\n // https://github.com/vimeo/player.js\n\n player.embed = new window.Vimeo.Player(iframe, {\n autopause: player.config.autopause,\n muted: player.muted\n });\n player.media.paused = true;\n player.media.currentTime = 0; // Disable native text track rendering\n\n if (player.supported.ui) {\n player.embed.disableTextTrack();\n } // Create a faux HTML5 API using the Vimeo API\n\n\n player.media.play = function () {\n assurePlaybackState.call(player, true);\n return player.embed.play();\n };\n\n player.media.pause = function () {\n assurePlaybackState.call(player, false);\n return player.embed.pause();\n };\n\n player.media.stop = function () {\n player.pause();\n player.currentTime = 0;\n }; // Seeking\n\n\n var currentTime = player.media.currentTime;\n Object.defineProperty(player.media, 'currentTime', {\n get: function get() {\n return currentTime;\n },\n set: function set(time) {\n // Vimeo will automatically play on seek if the video hasn't been played before\n // Get current paused state and volume etc\n var embed = player.embed,\n media = player.media,\n paused = player.paused,\n volume = player.volume;\n var restorePause = paused && !embed.hasPlayed; // Set seeking state and trigger event\n\n media.seeking = true;\n triggerEvent.call(player, media, 'seeking'); // If paused, mute until seek is complete\n\n Promise.resolve(restorePause && embed.setVolume(0)) // Seek\n .then(function () {\n return embed.setCurrentTime(time);\n }) // Restore paused\n .then(function () {\n return restorePause && embed.pause();\n }) // Restore volume\n .then(function () {\n return restorePause && embed.setVolume(volume);\n }).catch(function () {// Do nothing\n });\n }\n }); // Playback speed\n\n var speed = player.config.speed.selected;\n Object.defineProperty(player.media, 'playbackRate', {\n get: function get() {\n return speed;\n },\n set: function set(input) {\n player.embed.setPlaybackRate(input).then(function () {\n speed = input;\n triggerEvent.call(player, player.media, 'ratechange');\n });\n }\n }); // Volume\n\n var volume = player.config.volume;\n Object.defineProperty(player.media, 'volume', {\n get: function get() {\n return volume;\n },\n set: function set(input) {\n player.embed.setVolume(input).then(function () {\n volume = input;\n triggerEvent.call(player, player.media, 'volumechange');\n });\n }\n }); // Muted\n\n var muted = player.config.muted;\n Object.defineProperty(player.media, 'muted', {\n get: function get() {\n return muted;\n },\n set: function set(input) {\n var toggle = is$1.boolean(input) ? input : false;\n player.embed.setVolume(toggle ? 0 : player.config.volume).then(function () {\n muted = toggle;\n triggerEvent.call(player, player.media, 'volumechange');\n });\n }\n }); // Loop\n\n var loop = player.config.loop;\n Object.defineProperty(player.media, 'loop', {\n get: function get() {\n return loop;\n },\n set: function set(input) {\n var toggle = is$1.boolean(input) ? input : player.config.loop.active;\n player.embed.setLoop(toggle).then(function () {\n loop = toggle;\n });\n }\n }); // Source\n\n var currentSrc;\n player.embed.getVideoUrl().then(function (value) {\n currentSrc = value;\n controls.setDownloadUrl.call(player);\n }).catch(function (error) {\n _this.debug.warn(error);\n });\n Object.defineProperty(player.media, 'currentSrc', {\n get: function get() {\n return currentSrc;\n }\n }); // Ended\n\n Object.defineProperty(player.media, 'ended', {\n get: function get() {\n return player.currentTime === player.duration;\n }\n }); // Set aspect ratio based on video size\n\n Promise.all([player.embed.getVideoWidth(), player.embed.getVideoHeight()]).then(function (dimensions) {\n var _dimensions = _slicedToArray(dimensions, 2),\n width = _dimensions[0],\n height = _dimensions[1];\n\n player.embed.ratio = [width, height];\n setAspectRatio.call(_this);\n }); // Set autopause\n\n player.embed.setAutopause(player.config.autopause).then(function (state) {\n player.config.autopause = state;\n }); // Get title\n\n player.embed.getVideoTitle().then(function (title) {\n player.config.title = title;\n ui.setTitle.call(_this);\n }); // Get current time\n\n player.embed.getCurrentTime().then(function (value) {\n currentTime = value;\n triggerEvent.call(player, player.media, 'timeupdate');\n }); // Get duration\n\n player.embed.getDuration().then(function (value) {\n player.media.duration = value;\n triggerEvent.call(player, player.media, 'durationchange');\n }); // Get captions\n\n player.embed.getTextTracks().then(function (tracks) {\n player.media.textTracks = tracks;\n captions.setup.call(player);\n });\n player.embed.on('cuechange', function (_ref) {\n var _ref$cues = _ref.cues,\n cues = _ref$cues === void 0 ? [] : _ref$cues;\n var strippedCues = cues.map(function (cue) {\n return stripHTML(cue.text);\n });\n captions.updateCues.call(player, strippedCues);\n });\n player.embed.on('loaded', function () {\n // Assure state and events are updated on autoplay\n player.embed.getPaused().then(function (paused) {\n assurePlaybackState.call(player, !paused);\n\n if (!paused) {\n triggerEvent.call(player, player.media, 'playing');\n }\n });\n\n if (is$1.element(player.embed.element) && player.supported.ui) {\n var frame = player.embed.element; // Fix keyboard focus issues\n // https://github.com/sampotts/plyr/issues/317\n\n frame.setAttribute('tabindex', -1);\n }\n });\n player.embed.on('bufferstart', function () {\n triggerEvent.call(player, player.media, 'waiting');\n });\n player.embed.on('bufferend', function () {\n triggerEvent.call(player, player.media, 'playing');\n });\n player.embed.on('play', function () {\n assurePlaybackState.call(player, true);\n triggerEvent.call(player, player.media, 'playing');\n });\n player.embed.on('pause', function () {\n assurePlaybackState.call(player, false);\n });\n player.embed.on('timeupdate', function (data) {\n player.media.seeking = false;\n currentTime = data.seconds;\n triggerEvent.call(player, player.media, 'timeupdate');\n });\n player.embed.on('progress', function (data) {\n player.media.buffered = data.percent;\n triggerEvent.call(player, player.media, 'progress'); // Check all loaded\n\n if (parseInt(data.percent, 10) === 1) {\n triggerEvent.call(player, player.media, 'canplaythrough');\n } // Get duration as if we do it before load, it gives an incorrect value\n // https://github.com/sampotts/plyr/issues/891\n\n\n player.embed.getDuration().then(function (value) {\n if (value !== player.media.duration) {\n player.media.duration = value;\n triggerEvent.call(player, player.media, 'durationchange');\n }\n });\n });\n player.embed.on('seeked', function () {\n player.media.seeking = false;\n triggerEvent.call(player, player.media, 'seeked');\n });\n player.embed.on('ended', function () {\n player.media.paused = true;\n triggerEvent.call(player, player.media, 'ended');\n });\n player.embed.on('error', function (detail) {\n player.media.error = detail;\n triggerEvent.call(player, player.media, 'error');\n }); // Rebuild UI\n\n setTimeout(function () {\n return ui.build.call(player);\n }, 0);\n }\n };\n\n // ==========================================================================\n\n function parseId$1(url) {\n if (is$1.empty(url)) {\n return null;\n }\n\n var regex = /^.*(youtu.be\\/|v\\/|u\\/\\w\\/|embed\\/|watch\\?v=|&v=)([^#&?]*).*/;\n return url.match(regex) ? RegExp.$2 : url;\n } // Set playback state and trigger change (only on actual change)\n\n\n function assurePlaybackState$1(play) {\n if (play && !this.embed.hasPlayed) {\n this.embed.hasPlayed = true;\n }\n\n if (this.media.paused === play) {\n this.media.paused = !play;\n triggerEvent.call(this, this.media, play ? 'play' : 'pause');\n }\n }\n\n function getHost(config) {\n if (config.noCookie) {\n return 'https://www.youtube-nocookie.com';\n }\n\n if (window.location.protocol === 'http:') {\n return 'http://www.youtube.com';\n } // Use YouTube's default\n\n\n return undefined;\n }\n\n var youtube = {\n setup: function setup() {\n var _this = this;\n\n // Add embed class for responsive\n toggleClass(this.elements.wrapper, this.config.classNames.embed, true); // Setup API\n\n if (is$1.object(window.YT) && is$1.function(window.YT.Player)) {\n youtube.ready.call(this);\n } else {\n // Reference current global callback\n var callback = window.onYouTubeIframeAPIReady; // Set callback to process queue\n\n window.onYouTubeIframeAPIReady = function () {\n // Call global callback if set\n if (is$1.function(callback)) {\n callback();\n }\n\n youtube.ready.call(_this);\n }; // Load the SDK\n\n\n loadScript(this.config.urls.youtube.sdk).catch(function (error) {\n _this.debug.warn('YouTube API failed to load', error);\n });\n }\n },\n // Get the media title\n getTitle: function getTitle(videoId) {\n var _this2 = this;\n\n var url = format(this.config.urls.youtube.api, videoId);\n fetch(url).then(function (data) {\n if (is$1.object(data)) {\n var title = data.title,\n height = data.height,\n width = data.width; // Set title\n\n _this2.config.title = title;\n ui.setTitle.call(_this2); // Set aspect ratio\n\n _this2.embed.ratio = [width, height];\n }\n\n setAspectRatio.call(_this2);\n }).catch(function () {\n // Set aspect ratio\n setAspectRatio.call(_this2);\n });\n },\n // API ready\n ready: function ready() {\n var player = this; // Ignore already setup (race condition)\n\n var currentId = player.media && player.media.getAttribute('id');\n\n if (!is$1.empty(currentId) && currentId.startsWith('youtube-')) {\n return;\n } // Get the source URL or ID\n\n\n var source = player.media.getAttribute('src'); // Get from
if needed\n\n if (is$1.empty(source)) {\n source = player.media.getAttribute(this.config.attributes.embed.id);\n } // Replace the