diff --git a/libretube-theme/static/modules/plyr/plyr.css b/libretube-theme/static/modules/plyr/plyr.css index a08fb98..799e7e7 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;direction:ltr;font-family:Avenir,"Avenir Next","Helvetica Neue","Segoe UI",Helvetica,Arial,sans-serif;font-variant-numeric:tabular-nums;font-weight:500;line-height:1.7;max-width:100%;min-width:200px;position:relative;text-shadow:none;transition:box-shadow .3s ease}.plyr audio,.plyr video{border-radius:inherit;height:auto;vertical-align:middle;width:100%}.plyr button{font:inherit;line-height:inherit;width:auto}.plyr:focus{outline:0}.plyr--full-ui{box-sizing:border-box}.plyr--full-ui *,.plyr--full-ui ::after,.plyr--full-ui ::before{box-sizing:inherit}.plyr--full-ui a,.plyr--full-ui button,.plyr--full-ui input,.plyr--full-ui label{touch-action:manipulation}.plyr__badge{background:#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--audio .plyr__control.plyr__tab-focus,.plyr--audio .plyr__control:hover,.plyr--audio .plyr__control[aria-expanded=true]{background:#00b3ff;color:#fff}.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 ::-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 .plyr__controls__item.plyr__volume{padding-right:5px}.plyr__controls .plyr__controls__item.plyr__volume:first-child{padding-right:0}.plyr__controls:empty{display:none}.plyr--audio .plyr__controls{background:#fff;border-radius:inherit;color:#4a5764;padding:10px}.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 [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=menucaptions]{padding:7px;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:#4a5764;display:flex;font-size:14px;padding:4px 11px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:100%}.plyr__menu__container .plyr__control>span{align-items:inherit;display:flex;width:100%}.plyr__menu__container .plyr__control::after{border:4px solid transparent;content:'';position:absolute;top:50%;transform:translateY(-50%)}.plyr__menu__container .plyr__control--forward{padding-right:28px}.plyr__menu__container .plyr__control--forward::after{border-left-color:rgba(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:#c1c9d1;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;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;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;transition:box-shadow .3s ease;-moz-user-select:none;user-select:none}.plyr--full-ui input[type=range]::-moz-range-thumb{background:#fff;border:0;border-radius:100%;box-shadow:0 1px 1px rgba(0,0,0,.15),0 0 0 1px rgba(35,41,47,.2);height:13px;position:relative;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;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;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;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;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--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--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__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--video .plyr__time{text-shadow:0 1px 1px rgba(0,0,0,.15)}.plyr__tooltip{background:rgba(255,255,255,.9);border-radius:3px;bottom:100%;box-shadow:0 1px 2px rgba(0,0,0,.15);color:#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--video{background:#000;overflow:hidden}.plyr--video.plyr--menu-open{overflow:visible}.plyr__video-wrapper{background:#000;border-radius:inherit;overflow:hidden;position:relative;z-index:0}.plyr__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;height:100%;left:0;position:absolute;top:0;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:100%}.plyr--full-ui .plyr__video-embed>.plyr__video-embed__container{padding-bottom:240%;position:relative;transform:translateY(-38.28125%)}.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;transition:width .2s ease}.plyr__progress__buffer::-moz-progress-bar{background:currentColor;border-radius:100px;min-width:5px;transition:width .2s ease}.plyr__progress__buffer::-ms-fill{border-radius:100px;transition:width .2s ease}.plyr--video .plyr__progress__buffer{box-shadow:0 1px 1px rgba(0,0,0,.15);color:rgba(255,255,255,.25)}.plyr--audio .plyr__progress__buffer{color:rgba(193,201,209,.66)}.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;flex:1;position:relative}.plyr__volume input[type=range]{margin-left:5px;position:relative;z-index:2}@media (min-width:480px){.plyr__volume{max-width:90px}}@media (min-width:768px){.plyr__volume{max-width:110px}}.plyr--is-ios .plyr__volume{display:none!important}.plyr--is-ios.plyr--vimeo [data-plyr=mute]{display:none!important}.plyr:-webkit-full-screen{background:#000;border-radius:0!important;height:100%;margin:0;width:100%}.plyr:-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;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;-o-object-fit:contain;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}}@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 diff --git a/libretube-theme/static/modules/plyr/plyr.js b/libretube-theme/static/modules/plyr/plyr.js index ee5733f..fba084b 100644 --- a/libretube-theme/static/modules/plyr/plyr.js +++ b/libretube-theme/static/modules/plyr/plyr.js @@ -2,7 +2,7 @@ typeof navigator === "object" && (function (global, factory) { typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : typeof define === 'function' && define.amd ? define('Plyr', factory) : (global = global || self, global.Plyr = factory()); -}(this, function () { 'use strict'; +}(this, (function () { 'use strict'; function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { @@ -41,6 +41,40 @@ typeof navigator === "object" && (function (global, factory) { return obj; } + function ownKeys(object, enumerableOnly) { + var keys = Object.keys(object); + + if (Object.getOwnPropertySymbols) { + var symbols = Object.getOwnPropertySymbols(object); + if (enumerableOnly) symbols = symbols.filter(function (sym) { + return Object.getOwnPropertyDescriptor(object, sym).enumerable; + }); + keys.push.apply(keys, symbols); + } + + return keys; + } + + function _objectSpread2(target) { + for (var i = 1; i < arguments.length; i++) { + var source = arguments[i] != null ? arguments[i] : {}; + + if (i % 2) { + ownKeys(Object(source), true).forEach(function (key) { + _defineProperty(target, key, source[key]); + }); + } else if (Object.getOwnPropertyDescriptors) { + Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); + } else { + ownKeys(Object(source)).forEach(function (key) { + Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); + }); + } + } + + return target; + } + function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); } @@ -66,6 +100,10 @@ typeof navigator === "object" && (function (global, factory) { } function _iterableToArrayLimit(arr, i) { + if (!(Symbol.iterator in Object(arr) || Object.prototype.toString.call(arr) === "[object Arguments]")) { + return; + } + var _arr = []; var _n = true; var _d = false; @@ -99,94 +137,117 @@ typeof navigator === "object" && (function (global, factory) { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } - var defaults = { - addCSS: true, - // Add CSS to the element to improve usability (required here or in your CSS!) - thumbWidth: 15, - // The width of the thumb handle - watch: true // Watch for new elements that match a string target + function _classCallCheck$1(e, t) { + if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function"); + } - }; + function _defineProperties$1(e, t) { + for (var n = 0; n < t.length; n++) { + var r = t[n]; + r.enumerable = r.enumerable || !1, r.configurable = !0, "value" in r && (r.writable = !0), Object.defineProperty(e, r.key, r); + } + } - // Element matches a selector - function matches(element, selector) { + function _createClass$1(e, t, n) { + return t && _defineProperties$1(e.prototype, t), n && _defineProperties$1(e, n), e; + } - function match() { - return Array.from(document.querySelectorAll(selector)).includes(this); + function _defineProperty$1(e, t, n) { + return t in e ? Object.defineProperty(e, t, { + value: n, + enumerable: !0, + configurable: !0, + writable: !0 + }) : e[t] = n, e; + } + + function ownKeys$1(e, t) { + var n = Object.keys(e); + + if (Object.getOwnPropertySymbols) { + var r = Object.getOwnPropertySymbols(e); + t && (r = r.filter(function (t) { + return Object.getOwnPropertyDescriptor(e, t).enumerable; + })), n.push.apply(n, r); } - var matches = match; - return matches.call(element, selector); + return n; } - // Trigger event - function trigger(element, type) { - if (!element || !type) { - return; - } // Create and dispatch the event + function _objectSpread2$1(e) { + for (var t = 1; t < arguments.length; t++) { + var n = null != arguments[t] ? arguments[t] : {}; + t % 2 ? ownKeys$1(Object(n), !0).forEach(function (t) { + _defineProperty$1(e, t, n[t]); + }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(n)) : ownKeys$1(Object(n)).forEach(function (t) { + Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(n, t)); + }); + } - - var event = new Event(type); // Dispatch the event - - element.dispatchEvent(event); + return e; } - // ========================================================================== - // Type checking utils - // ========================================================================== - var getConstructor = function getConstructor(input) { - return input !== null && typeof input !== 'undefined' ? input.constructor : null; + var defaults = { + addCSS: !0, + thumbWidth: 15, + watch: !0 }; - var instanceOf = function instanceOf(input, constructor) { - return Boolean(input && constructor && input instanceof constructor); - }; + function matches(e, t) { + return function () { + return Array.from(document.querySelectorAll(t)).includes(this); + }.call(e, t); + } - var isNullOrUndefined = function isNullOrUndefined(input) { - return input === null || typeof input === 'undefined'; - }; + function trigger(e, t) { + if (e && t) { + var n = new Event(t, { + bubbles: !0 + }); + e.dispatchEvent(n); + } + } - var isObject = function isObject(input) { - return getConstructor(input) === Object; - }; - - var isNumber = function isNumber(input) { - return getConstructor(input) === Number && !Number.isNaN(input); - }; - - var isString = function isString(input) { - return getConstructor(input) === String; - }; - - var isBoolean = function isBoolean(input) { - return getConstructor(input) === Boolean; - }; - - var isFunction = function isFunction(input) { - return getConstructor(input) === Function; - }; - - var isArray = function isArray(input) { - return Array.isArray(input); - }; - - var isNodeList = function isNodeList(input) { - return instanceOf(input, NodeList); - }; - - var isElement = function isElement(input) { - return instanceOf(input, Element); - }; - - var isEvent = function isEvent(input) { - return instanceOf(input, Event); - }; - - var isEmpty = function isEmpty(input) { - return isNullOrUndefined(input) || (isString(input) || isArray(input) || isNodeList(input)) && !input.length || isObject(input) && !Object.keys(input).length; - }; - - var is = { + var getConstructor = function getConstructor(e) { + return null != e ? e.constructor : null; + }, + instanceOf = function instanceOf(e, t) { + return !!(e && t && e instanceof t); + }, + isNullOrUndefined = function isNullOrUndefined(e) { + return null == e; + }, + isObject = function isObject(e) { + return getConstructor(e) === Object; + }, + isNumber = function isNumber(e) { + return getConstructor(e) === Number && !Number.isNaN(e); + }, + isString = function isString(e) { + return getConstructor(e) === String; + }, + isBoolean = function isBoolean(e) { + return getConstructor(e) === Boolean; + }, + isFunction = function isFunction(e) { + return getConstructor(e) === Function; + }, + isArray = function isArray(e) { + return Array.isArray(e); + }, + isNodeList = function isNodeList(e) { + return instanceOf(e, NodeList); + }, + isElement = function isElement(e) { + return instanceOf(e, Element); + }, + isEvent = function isEvent(e) { + return instanceOf(e, Event); + }, + isEmpty = function isEmpty(e) { + return isNullOrUndefined(e) || (isString(e) || isArray(e) || isNodeList(e)) && !e.length || isObject(e) && !Object.keys(e).length; + }, + is = { nullOrUndefined: isNullOrUndefined, object: isObject, number: isNumber, @@ -200,219 +261,98 @@ typeof navigator === "object" && (function (global, factory) { empty: isEmpty }; - // Get the number of decimal places - function getDecimalPlaces(value) { - var match = "".concat(value).match(/(?:\.(\d+))?(?:[eE]([+-]?\d+))?$/); - - if (!match) { - return 0; - } - - return Math.max(0, // Number of digits right of decimal point. - (match[1] ? match[1].length : 0) - ( // Adjust for scientific notation. - match[2] ? +match[2] : 0)); - } // Round to the nearest step - - function round(number, step) { - if (step < 1) { - var places = getDecimalPlaces(step); - return parseFloat(number.toFixed(places)); - } - - return Math.round(number / step) * step; + function getDecimalPlaces(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; } - var RangeTouch = - /*#__PURE__*/ - function () { - /** - * Setup a new instance - * @param {String|Element} target - * @param {Object} options - */ - function RangeTouch(target, options) { - _classCallCheck(this, RangeTouch); - - if (is.element(target)) { - // An Element is passed, use it directly - this.element = target; - } else if (is.string(target)) { - // A CSS Selector is passed, fetch it from the DOM - this.element = document.querySelector(target); - } - - if (!is.element(this.element) || !is.empty(this.element.rangeTouch)) { - return; - } - - this.config = Object.assign({}, defaults, options); - this.init(); + function round(e, t) { + if (1 > t) { + var n = getDecimalPlaces(t); + return parseFloat(e.toFixed(n)); } - _createClass(RangeTouch, [{ + return Math.round(e / t) * t; + } + + var RangeTouch = function () { + function e(t, 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()); + } + + return _createClass$1(e, [{ key: "init", - value: function init() { - // Bail if not a touch enabled device - if (!RangeTouch.enabled) { - return; - } // Add useful CSS - - - if (this.config.addCSS) { - // TODO: Restore original values on destroy - this.element.style.userSelect = 'none'; - this.element.style.webKitUserSelect = 'none'; - this.element.style.touchAction = 'manipulation'; - } - - this.listeners(true); - this.element.rangeTouch = this; + value: function value() { + 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 destroy() { - // Bail if not a touch enabled device - if (!RangeTouch.enabled) { - return; - } - - this.listeners(false); - this.element.rangeTouch = null; + value: function value() { + 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 listeners(toggle) { - var _this = this; - - var method = toggle ? 'addEventListener' : 'removeEventListener'; // Listen for events - - ['touchstart', 'touchmove', 'touchend'].forEach(function (type) { - _this.element[method](type, function (event) { - return _this.set(event); - }, false); + value: function value(e) { + var t = this, + n = e ? "addEventListener" : "removeEventListener"; + ["touchstart", "touchmove", "touchend"].forEach(function (e) { + t.element[n](e, function (e) { + return t.set(e); + }, !1); }); } - /** - * Get the value based on touch position - * @param {Event} event - */ - }, { key: "get", - value: function get(event) { - if (!RangeTouch.enabled || !is.event(event)) { - return null; - } - - var input = event.target; - var touch = event.changedTouches[0]; - var min = parseFloat(input.getAttribute('min')) || 0; - var max = parseFloat(input.getAttribute('max')) || 100; - var step = parseFloat(input.getAttribute('step')) || 1; - var delta = max - min; // Calculate percentage - - var percent; - var clientRect = input.getBoundingClientRect(); - var thumbWidth = 100 / clientRect.width * (this.config.thumbWidth / 2) / 100; // Determine left percentage - - percent = 100 / clientRect.width * (touch.clientX - clientRect.left); // Don't allow outside bounds - - if (percent < 0) { - percent = 0; - } else if (percent > 100) { - percent = 100; - } // Factor in the thumb offset - - - if (percent < 50) { - percent -= (100 - percent * 2) * thumbWidth; - } else if (percent > 50) { - percent += (percent - 50) * 2 * thumbWidth; - } // Find the closest step to the mouse position - - - return min + round(delta * (percent / 100), step); + value: function value(t) { + if (!e.enabled || !is.event(t)) return null; + var n, + r = t.target, + i = t.changedTouches[0], + o = parseFloat(r.getAttribute("min")) || 0, + s = parseFloat(r.getAttribute("max")) || 100, + u = parseFloat(r.getAttribute("step")) || 1, + c = r.getBoundingClientRect(), + a = 100 / c.width * (this.config.thumbWidth / 2) / 100; + 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); } - /** - * Update range value based on position - * @param {Event} event - */ - }, { key: "set", - value: function set(event) { - if (!RangeTouch.enabled || !is.event(event) || event.target.disabled) { - return; - } // Prevent text highlight on iOS - - - event.preventDefault(); // Set value - - event.target.value = this.get(event); // Trigger event - - trigger(event.target, event.type === 'touchend' ? 'change' : 'input'); + value: function value(t) { + e.enabled && is.event(t) && !t.target.disabled && (t.preventDefault(), t.target.value = this.get(t), trigger(t.target, "touchend" === t.type ? "change" : "input")); } }], [{ key: "setup", + value: function value(t) { + var n = 1 < arguments.length && void 0 !== arguments[1] ? arguments[1] : {}, + r = null; + 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; - /** - * Setup multiple instances - * @param {String|Element|NodeList|Array} target - * @param {Object} options - */ - value: function setup(target) { - var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; - var targets = null; + var i = _objectSpread2$1({}, defaults, {}, n); - if (is.empty(target) || is.string(target)) { - targets = Array.from(document.querySelectorAll(is.string(target) ? target : 'input[type="range"]')); - } else if (is.element(target)) { - targets = [target]; - } else if (is.nodeList(target)) { - targets = Array.from(target); - } else if (is.array(target)) { - targets = target.filter(is.element); - } - - if (is.empty(targets)) { - return null; - } - - var config = Object.assign({}, defaults, options); - - if (is.string(target) && config.watch) { - // Create an observer instance - var observer = new MutationObserver(function (mutations) { - Array.from(mutations).forEach(function (mutation) { - Array.from(mutation.addedNodes).forEach(function (node) { - if (!is.element(node) || !matches(node, target)) { - return; - } // eslint-disable-next-line no-unused-vars - - - var range = new RangeTouch(node, config); + if (is.string(t) && i.watch) { + var o = new MutationObserver(function (n) { + Array.from(n).forEach(function (n) { + Array.from(n.addedNodes).forEach(function (n) { + is.element(n) && matches(n, t) && new e(n, i); }); }); - }); // Pass in the target node, as well as the observer options - - observer.observe(document.body, { - childList: true, - subtree: true + }); + o.observe(document.body, { + childList: !0, + subtree: !0 }); } - return targets.map(function (t) { - return new RangeTouch(t, options); + return r.map(function (t) { + return new e(t, n); }); } }, { key: "enabled", get: function get() { - return 'ontouchstart' in document.documentElement; + return "ontouchstart" in document.documentElement; } - }]); - - return RangeTouch; + }]), e; }(); // ========================================================================== @@ -583,152 +523,6 @@ typeof navigator === "object" && (function (global, factory) { isIos: /(iPad|iPhone|iPod)/gi.test(navigator.platform) }; - // ========================================================================== - // https://github.com/WICG/EventListenerOptions/blob/gh-pages/explainer.md - // https://www.youtube.com/watch?v=NPM6172J22g - - var supportsPassiveListeners = function () { - // Test via a getter in the options object to see if the passive property is accessed - var supported = false; - - try { - var options = Object.defineProperty({}, 'passive', { - get: function get() { - supported = true; - return null; - } - }); - window.addEventListener('test', null, options); - window.removeEventListener('test', null, options); - } catch (e) {// Do nothing - } - - return supported; - }(); // Toggle event listener - - - function toggleListener(element, event, callback) { - var _this = this; - - var toggle = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false; - var passive = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : true; - var capture = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : false; - - // Bail if no element, event, or callback - if (!element || !('addEventListener' in element) || is$1.empty(event) || !is$1.function(callback)) { - return; - } // Allow multiple events - - - var events = event.split(' '); // Build options - // Default to just the capture boolean for browsers with no passive listener support - - var options = capture; // If passive events listeners are supported - - if (supportsPassiveListeners) { - options = { - // Whether the listener can be passive (i.e. default never prevented) - passive: passive, - // Whether the listener is a capturing listener or not - capture: capture - }; - } // If a single node is passed, bind the event listener - - - events.forEach(function (type) { - if (_this && _this.eventListeners && toggle) { - // Cache event listener - _this.eventListeners.push({ - element: element, - type: type, - callback: callback, - options: options - }); - } - - element[toggle ? 'addEventListener' : 'removeEventListener'](type, callback, options); - }); - } // Bind event handler - - function on(element) { - var events = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : ''; - var callback = arguments.length > 2 ? arguments[2] : undefined; - var passive = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : true; - var capture = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false; - toggleListener.call(this, element, events, callback, true, passive, capture); - } // Unbind event handler - - function off(element) { - var events = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : ''; - var callback = arguments.length > 2 ? arguments[2] : undefined; - var passive = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : true; - var capture = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false; - toggleListener.call(this, element, events, callback, false, passive, capture); - } // Bind once-only event handler - - function once(element) { - var _this2 = this; - - var events = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : ''; - var callback = arguments.length > 2 ? arguments[2] : undefined; - var passive = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : true; - var capture = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false; - - var onceCallback = function onceCallback() { - off(element, events, onceCallback, passive, capture); - - for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { - args[_key] = arguments[_key]; - } - - callback.apply(_this2, args); - }; - - toggleListener.call(this, element, events, onceCallback, true, passive, capture); - } // Trigger event - - function triggerEvent(element) { - var type = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : ''; - var bubbles = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false; - var detail = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {}; - - // Bail if no element - if (!is$1.element(element) || is$1.empty(type)) { - return; - } // Create and dispatch the event - - - var event = new CustomEvent(type, { - bubbles: bubbles, - detail: Object.assign({}, detail, { - plyr: this - }) - }); // Dispatch the event - - element.dispatchEvent(event); - } // Unbind all cached event listeners - - function unbindListeners() { - if (this && this.eventListeners) { - this.eventListeners.forEach(function (item) { - var element = item.element, - type = item.type, - callback = item.callback, - options = item.options; - element.removeEventListener(type, callback, options); - }); - this.eventListeners = []; - } - } // Run method when / if player is ready - - function ready() { - var _this3 = this; - - return new Promise(function (resolve) { - return _this3.ready ? setTimeout(resolve, 0) : on.call(_this3, _this3.elements.container, 'ready', resolve); - }).then(function () {}); - } - function cloneDeep(object) { return JSON.parse(JSON.stringify(object)); } // Get a nested value in an object @@ -929,9 +723,6 @@ typeof navigator === "object" && (function (global, factory) { // Attribute selector attributes[key] = value; break; - - default: - break; } }); return extend(existing, attributes); @@ -993,41 +784,6 @@ typeof navigator === "object" && (function (global, factory) { function getElement(selector) { return this.elements.container.querySelector(selector); - } // Trap focus inside container - - function trapFocus() { - var element = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null; - var toggle = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; - - if (!is$1.element(element)) { - return; - } - - var focusable = getElements.call(this, 'button:not(:disabled), input:not(:disabled), [tabindex]'); - var first = focusable[0]; - var last = focusable[focusable.length - 1]; - - var trap = function trap(event) { - // Bail if not tab key or not fullscreen - if (event.key !== 'Tab' || event.keyCode !== 9) { - return; - } // Get the current focused element - - - var focused = document.activeElement; - - if (focused === last && !event.shiftKey) { - // Move focus to first element that can be tabbed if Shift isn't used - first.focus(); - event.preventDefault(); - } else if (focused === first && event.shiftKey) { - // Move focus to last element that can be tabbed if Shift is used - last.focus(); - event.preventDefault(); - } - }; - - toggleListener.call(this, this.elements.container, 'keydown', trap, toggle, false); } // Set focus and tab focus class function setFocus() { @@ -1145,6 +901,151 @@ typeof navigator === "object" && (function (global, factory) { reducedMotion: 'matchMedia' in window && window.matchMedia('(prefers-reduced-motion)').matches }; + // https://github.com/WICG/EventListenerOptions/blob/gh-pages/explainer.md + // https://www.youtube.com/watch?v=NPM6172J22g + + var supportsPassiveListeners = function () { + // Test via a getter in the options object to see if the passive property is accessed + var supported = false; + + try { + var options = Object.defineProperty({}, 'passive', { + get: function get() { + supported = true; + return null; + } + }); + window.addEventListener('test', null, options); + window.removeEventListener('test', null, options); + } catch (e) {// Do nothing + } + + return supported; + }(); // Toggle event listener + + + function toggleListener(element, event, callback) { + var _this = this; + + var toggle = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false; + var passive = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : true; + var capture = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : false; + + // Bail if no element, event, or callback + if (!element || !('addEventListener' in element) || is$1.empty(event) || !is$1.function(callback)) { + return; + } // Allow multiple events + + + var events = event.split(' '); // Build options + // Default to just the capture boolean for browsers with no passive listener support + + var options = capture; // If passive events listeners are supported + + if (supportsPassiveListeners) { + options = { + // Whether the listener can be passive (i.e. default never prevented) + passive: passive, + // Whether the listener is a capturing listener or not + capture: capture + }; + } // If a single node is passed, bind the event listener + + + events.forEach(function (type) { + if (_this && _this.eventListeners && toggle) { + // Cache event listener + _this.eventListeners.push({ + element: element, + type: type, + callback: callback, + options: options + }); + } + + element[toggle ? 'addEventListener' : 'removeEventListener'](type, callback, options); + }); + } // Bind event handler + + function on(element) { + var events = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : ''; + var callback = arguments.length > 2 ? arguments[2] : undefined; + var passive = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : true; + var capture = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false; + toggleListener.call(this, element, events, callback, true, passive, capture); + } // Unbind event handler + + function off(element) { + var events = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : ''; + var callback = arguments.length > 2 ? arguments[2] : undefined; + var passive = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : true; + var capture = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false; + toggleListener.call(this, element, events, callback, false, passive, capture); + } // Bind once-only event handler + + function once(element) { + var _this2 = this; + + var events = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : ''; + var callback = arguments.length > 2 ? arguments[2] : undefined; + var passive = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : true; + var capture = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false; + + var onceCallback = function onceCallback() { + off(element, events, onceCallback, passive, capture); + + for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } + + callback.apply(_this2, args); + }; + + toggleListener.call(this, element, events, onceCallback, true, passive, capture); + } // Trigger event + + function triggerEvent(element) { + var type = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : ''; + var bubbles = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false; + var detail = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {}; + + // Bail if no element + if (!is$1.element(element) || is$1.empty(type)) { + return; + } // Create and dispatch the event + + + var event = new CustomEvent(type, { + bubbles: bubbles, + detail: _objectSpread2({}, detail, { + plyr: this + }) + }); // Dispatch the event + + element.dispatchEvent(event); + } // Unbind all cached event listeners + + function unbindListeners() { + if (this && this.eventListeners) { + this.eventListeners.forEach(function (item) { + var element = item.element, + type = item.type, + callback = item.callback, + options = item.options; + element.removeEventListener(type, callback, options); + }); + this.eventListeners = []; + } + } // Run method when / if player is ready + + function ready() { + var _this3 = this; + + return new Promise(function (resolve) { + return _this3.ready ? setTimeout(resolve, 0) : on.call(_this3, _this3.elements.container, 'ready', resolve); + }).then(function () {}); + } + function validateRatio(input) { if (!is$1.array(input) && (!is$1.string(input) || !input.includes(':'))) { return false; @@ -1202,6 +1103,7 @@ typeof navigator === "object" && (function (global, factory) { return {}; } + var wrapper = this.elements.wrapper; var ratio = getAspectRatio.call(this, input); var _ref = is$1.array(ratio) ? ratio : [0, 0], @@ -1210,14 +1112,14 @@ typeof navigator === "object" && (function (global, factory) { h = _ref2[1]; var padding = 100 / w * h; - this.elements.wrapper.style.paddingBottom = "".concat(padding, "%"); // For Vimeo we have an extra
to hide the standard controls and UI + 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; var offset = (height - padding) / (height / 50); this.media.style.transform = "translateY(-".concat(offset, "%)"); } else if (this.isHTML5) { - this.elements.wrapper.classList.toggle(this.config.classNames.videoFixedRatio, ratio !== null); + wrapper.classList.toggle(this.config.classNames.videoFixedRatio, ratio !== null); } return { @@ -1249,17 +1151,24 @@ typeof navigator === "object" && (function (global, factory) { }, // Get quality levels getQualityOptions: function getQualityOptions() { - // Get sizes from elements + // Whether we're forcing all options (e.g. for streaming) + if (this.config.quality.forced) { + return this.config.quality.options; + } // Get sizes from elements + + return html5.getSources.call(this).map(function (source) { return Number(source.getAttribute('data-res')); }).filter(Boolean); }, - extend: function extend() { + setup: function setup() { if (!this.isHTML5) { return; } - var player = this; // Set aspect ratio if fixed + var player = this; // Set speed options from config + + player.options.speed = player.config.speed.options; // Set aspect ratio if fixed if (!is$1.empty(this.config.ratio)) { setAspectRatio.call(player); @@ -1277,37 +1186,48 @@ typeof navigator === "object" && (function (global, factory) { return source && Number(source.getAttribute('data-res')); }, set: function set(input) { - // Get sources - var sources = html5.getSources.call(player); // Get first match for requested size - - var source = sources.find(function (s) { - return Number(s.getAttribute('data-res')) === input; - }); // No matching source found - - if (!source) { + if (player.quality === input) { return; - } // Get current state + } // If we're using an an external handler... - var _player$media = player.media, - currentTime = _player$media.currentTime, - paused = _player$media.paused, - preload = _player$media.preload, - readyState = _player$media.readyState; // Set new source + if (player.config.quality.forced && is$1.function(player.config.quality.onChange)) { + player.config.quality.onChange(input); + } else { + // Get sources + var sources = html5.getSources.call(player); // Get first match for requested size - player.media.src = source.getAttribute('src'); // Prevent loading if preload="none" and the current source isn't loaded (#1044) + var source = sources.find(function (s) { + return Number(s.getAttribute('data-res')) === input; + }); // No matching source found - if (preload !== 'none' || readyState) { - // Restore time - player.once('loadedmetadata', function () { - player.currentTime = currentTime; // Resume playing + if (!source) { + return; + } // Get current state - if (!paused) { - player.play(); - } - }); // Load new source - player.media.load(); + var _player$media = player.media, + currentTime = _player$media.currentTime, + paused = _player$media.paused, + preload = _player$media.preload, + readyState = _player$media.readyState, + playbackRate = _player$media.playbackRate; // Set new source + + player.media.src = source.getAttribute('src'); // Prevent loading if preload="none" and the current source isn't loaded (#1044) + + if (preload !== 'none' || readyState) { + // Restore time + player.once('loadedmetadata', function () { + player.speed = playbackRate; + player.currentTime = currentTime; // Resume playing + + if (!paused) { + player.play(); + } + }); // Load new source + + player.media.load(); + } } // Trigger change event @@ -1480,9 +1400,7 @@ typeof navigator === "object" && (function (global, factory) { } }; - var Storage = - /*#__PURE__*/ - function () { + var Storage = /*#__PURE__*/function () { function Storage(player) { _classCallCheck(this, Storage); @@ -1678,7 +1596,7 @@ typeof navigator === "object" && (function (global, factory) { // Bail if the value isn't a number if (!is$1.number(time)) { - return formatTime(null, displayHours, inverted); + return formatTime(undefined, displayHours, inverted); } // Format time component to add leading zero @@ -1787,9 +1705,11 @@ typeof navigator === "object" && (function (global, factory) { createLabel: function createLabel(key) { var attr = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; var text = i18n.get(key, this.config); - var attributes = Object.assign({}, attr, { + + var attributes = _objectSpread2({}, attr, { class: [attr.class, this.config.classNames.hidden].filter(Boolean).join(' ') }); + return createElement('span', attributes, text); }, // Create a badge @@ -1999,7 +1919,7 @@ typeof navigator === "object" && (function (global, factory) { var _this2 = this; // Navigate through menus via arrow keys and space - on(menuItem, 'keydown keyup', function (event) { + on.call(this, menuItem, 'keydown keyup', function (event) { // We only care about space and ⬆️ ⬇️️ ➡️ if (![32, 38, 39, 40].includes(event.which)) { return; @@ -2041,7 +1961,7 @@ typeof navigator === "object" && (function (global, factory) { }, false); // Enter will fire a `click` event but we still need to manage focus // So we bind to keyup which fires after and set focus here - on(menuItem, 'keyup', function (event) { + on.call(this, menuItem, 'keyup', function (event) { if (event.which !== 13) { return; } @@ -2118,9 +2038,6 @@ typeof navigator === "object" && (function (global, factory) { case 'speed': _this3.speed = parseFloat(value); break; - - default: - break; } controls.showMenuPanel.call(_this3, 'home', is$1.keyboardEvent(event)); @@ -2229,9 +2146,6 @@ typeof navigator === "object" && (function (global, factory) { case 'progress': setProgress(this.elements.display.buffer, this.buffered * 100); break; - - default: - break; } } }, @@ -2551,7 +2465,7 @@ typeof navigator === "object" && (function (global, factory) { var type = 'captions'; - var list = this.elements.settings.panels.captions.querySelector('[role="menucaptions"]'); + var list = this.elements.settings.panels.captions.querySelector('[role="menu"]'); var tracks = captions.getTracks.call(this); var toggle = Boolean(tracks.length); // Toggle the pane and tab @@ -2589,7 +2503,7 @@ typeof navigator === "object" && (function (global, factory) { controls.updateSetting.call(this, type, list); }, // Set a list of available captions languages - setSpeedMenu: function setSpeedMenu(options) { + setSpeedMenu: function setSpeedMenu() { var _this8 = this; // Menu required @@ -2598,17 +2512,10 @@ typeof navigator === "object" && (function (global, factory) { } var type = 'speed'; - var list = this.elements.settings.panels.speed.querySelector('[role="menu"]'); // Set the speed options + var list = this.elements.settings.panels.speed.querySelector('[role="menu"]'); // Filter out invalid speeds - if (is$1.array(options)) { - this.options.speed = options; - } else if (this.isHTML5 || this.isVimeo) { - this.options.speed = [0.5, 0.75, 1, 1.25, 1.5, 1.75, 2]; - } // Set options if passed and filter based on config - - - this.options.speed = this.options.speed.filter(function (speed) { - return _this8.config.speed.options.includes(speed); + this.options.speed = this.options.speed.filter(function (o) { + return o >= _this8.minimumSpeed && o <= _this8.maximumSpeed; }); // Toggle the pane and tab var toggle = !is$1.empty(this.options.speed) && this.options.speed.length > 1; @@ -2885,9 +2792,11 @@ typeof navigator === "object" && (function (global, factory) { if (control === 'mute') { volume.appendChild(createButton.call(_this10, 'mute')); } // Volume range control + // Ignored on iOS as it's handled globally + // https://developer.apple.com/library/safari/documentation/AudioVideo/Conceptual/Using_HTML5_Audio_Video/Device-SpecificConsiderations/Device-SpecificConsiderations.html - if (control === 'volume') { + if (control === 'volume' && !browser.isIos) { // Set the attributes var attributes = { max: 1, @@ -2946,7 +2855,7 @@ typeof navigator === "object" && (function (global, factory) { bindMenuItemShortcuts.call(_this10, menuItem, type); // Show menu on click - on(menuItem, 'click', function () { + on.call(_this10, menuItem, 'click', function () { showMenuPanel.call(_this10, type, false); }); var flex = createElement('span', null, i18n.get(type, _this10.config)); @@ -2977,7 +2886,7 @@ typeof navigator === "object" && (function (global, factory) { class: _this10.config.classNames.hidden }, i18n.get('menuBack', _this10.config))); // Go back via keyboard - on(pane, 'keydown', function (event) { + on.call(_this10, pane, 'keydown', function (event) { // We only care about <- if (event.which !== 37) { return; @@ -2990,7 +2899,7 @@ typeof navigator === "object" && (function (global, factory) { showMenuPanel.call(_this10, 'home', true); }, false); // Go back via button click - on(backButton, 'click', function () { + on.call(_this10, backButton, 'click', function () { showMenuPanel.call(_this10, 'home', false); }); // Add to pane @@ -2998,10 +2907,6 @@ 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; @@ -3031,7 +2936,12 @@ typeof navigator === "object" && (function (global, factory) { element: 'a', href: _this10.download, target: '_blank' - }); + }); // Set download attribute for HTML5 only + + + if (_this10.isHTML5) { + _attributes.download = ''; + } var download = _this10.config.urls.download; @@ -3656,7 +3566,10 @@ typeof navigator === "object" && (function (global, factory) { // Quality default quality: { default: 576, - options: [4320, 2880, 2160, 1440, 1080, 720, 576, 480, 360, 240] + // The options to display in the UI, if available for the source media + options: [4320, 2880, 2160, 1440, 1080, 720, 576, 480, 360, 240], + forced: false, + onChange: null }, // Set loops loop: { @@ -3667,7 +3580,8 @@ typeof navigator === "object" && (function (global, factory) { // Speed default and options to display speed: { selected: 1, - options: [0.5, 0.75, 1, 1.25, 1.5, 1.75, 2] + // The options to display in the UI, if available for the source media (e.g. Vimeo and YouTube only support 0.5x-4x) + options: [0.5, 0.75, 1, 1.25, 1.5, 1.75, 2, 4] }, // Keyboard shortcut settings keyboard: { @@ -3733,6 +3647,7 @@ typeof navigator === "object" && (function (global, factory) { frameTitle: 'Player for {title}', captions: 'Captions', settings: 'Settings', + pip: 'PIP', menuBack: 'Go back to previous menu', speed: 'Speed', normal: 'Normal', @@ -3929,7 +3844,13 @@ typeof navigator === "object" && (function (global, factory) { portrait: false, title: false, speed: true, - transparent: false + transparent: false, + // These settings require a pro or premium account to work + sidedock: false, + controls: false, + // Custom settings from Plyr + referrerPolicy: null // https://developer.mozilla.org/en-US/docs/Web/API/HTMLIFrameElement/referrerPolicy + }, // YouTube plugin youtube: { @@ -3990,9 +3911,7 @@ typeof navigator === "object" && (function (global, factory) { // ========================================================================== var noop = function noop() {}; - var Console = - /*#__PURE__*/ - function () { + var Console = /*#__PURE__*/function () { function Console() { var enabled = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false; @@ -4028,76 +3947,7 @@ typeof navigator === "object" && (function (global, factory) { return Console; }(); - function onChange() { - if (!this.enabled) { - return; - } // Update toggle button - - - var button = this.player.elements.buttons.fullscreen; - - if (is$1.element(button)) { - button.pressed = this.active; - } // Trigger an event - - - triggerEvent.call(this.player, this.target, this.active ? 'enterfullscreen' : 'exitfullscreen', true); // Trap focus in container - - if (!browser.isIos) { - trapFocus.call(this.player, this.target, this.active); - } - } - - function toggleFallback() { - var toggle = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false; - - // Store or restore scroll position - if (toggle) { - this.scrollPosition = { - x: window.scrollX || 0, - y: window.scrollY || 0 - }; - } else { - window.scrollTo(this.scrollPosition.x, this.scrollPosition.y); - } // Toggle scroll - - - document.body.style.overflow = toggle ? 'hidden' : ''; // Toggle class hook - - toggleClass(this.target, this.player.config.classNames.fullscreen.fallback, toggle); // Force full viewport on iPhone X+ - - if (browser.isIos) { - var viewport = document.head.querySelector('meta[name="viewport"]'); - var property = 'viewport-fit=cover'; // Inject the viewport meta if required - - if (!viewport) { - viewport = document.createElement('meta'); - viewport.setAttribute('name', 'viewport'); - } // Check if the property already exists - - - var hasProperty = is$1.string(viewport.content) && viewport.content.includes(property); - - if (toggle) { - this.cleanupViewport = !hasProperty; - - if (!hasProperty) { - viewport.content += ",".concat(property); - } - } else if (this.cleanupViewport) { - viewport.content = viewport.content.split(',').filter(function (part) { - return part.trim() !== property; - }).join(','); - } - } // Toggle button and fire events - - - onChange.call(this); - } - - var Fullscreen = - /*#__PURE__*/ - function () { + var Fullscreen = /*#__PURE__*/function () { function Fullscreen(player) { var _this = this; @@ -4119,7 +3969,7 @@ typeof navigator === "object" && (function (global, factory) { on.call(this.player, document, this.prefix === 'ms' ? 'MSFullscreenChange' : "".concat(this.prefix, "fullscreenchange"), function () { // TODO: Filter for target?? - onChange.call(_this); + _this.onChange(); }); // Fullscreen toggle on double click on.call(this.player, this.player.elements.container, 'dblclick', function (event) { @@ -4129,6 +3979,10 @@ typeof navigator === "object" && (function (global, factory) { } _this.toggle(); + }); // Tap focus when in fullscreen + + on.call(this, this.player.elements.container, 'keydown', function (event) { + return _this.trapFocus(event); }); // Update the UI this.update(); @@ -4136,8 +3990,101 @@ typeof navigator === "object" && (function (global, factory) { _createClass(Fullscreen, [{ + key: "onChange", + value: function onChange() { + if (!this.enabled) { + return; + } // Update toggle button + + + var button = this.player.elements.buttons.fullscreen; + + if (is$1.element(button)) { + button.pressed = this.active; + } // Trigger an event + + + triggerEvent.call(this.player, this.target, this.active ? 'enterfullscreen' : 'exitfullscreen', true); + } + }, { + key: "toggleFallback", + value: function toggleFallback() { + var toggle = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false; + + // Store or restore scroll position + if (toggle) { + this.scrollPosition = { + x: window.scrollX || 0, + y: window.scrollY || 0 + }; + } else { + window.scrollTo(this.scrollPosition.x, this.scrollPosition.y); + } // Toggle scroll + + + document.body.style.overflow = toggle ? 'hidden' : ''; // Toggle class hook + + toggleClass(this.target, this.player.config.classNames.fullscreen.fallback, toggle); // Force full viewport on iPhone X+ + + if (browser.isIos) { + var viewport = document.head.querySelector('meta[name="viewport"]'); + var property = 'viewport-fit=cover'; // Inject the viewport meta if required + + if (!viewport) { + viewport = document.createElement('meta'); + viewport.setAttribute('name', 'viewport'); + } // Check if the property already exists + + + var hasProperty = is$1.string(viewport.content) && viewport.content.includes(property); + + if (toggle) { + this.cleanupViewport = !hasProperty; + + if (!hasProperty) { + viewport.content += ",".concat(property); + } + } else if (this.cleanupViewport) { + viewport.content = viewport.content.split(',').filter(function (part) { + return part.trim() !== property; + }).join(','); + } + } // Toggle button and fire events + + + this.onChange(); + } // Trap focus inside container + + }, { + key: "trapFocus", + value: function trapFocus(event) { + // Bail if iOS, not active, not the tab key + if (browser.isIos || !this.active || event.key !== 'Tab' || event.keyCode !== 9) { + return; + } // Get the current focused element + + + var focused = document.activeElement; + var focusable = getElements.call(this.player, 'a[href], button:not(:disabled), input:not(:disabled), [tabindex]'); + + var _focusable = _slicedToArray(focusable, 1), + first = _focusable[0]; + + var last = focusable[focusable.length - 1]; + + if (focused === last && !event.shiftKey) { + // Move focus to first element that can be tabbed if Shift isn't used + first.focus(); + event.preventDefault(); + } else if (focused === first && event.shiftKey) { + // Move focus to last element that can be tabbed if Shift is used + last.focus(); + event.preventDefault(); + } + } // Update UI + + }, { key: "update", - // Update UI value: function update() { if (this.enabled) { var mode; @@ -4170,9 +4117,11 @@ typeof navigator === "object" && (function (global, factory) { if (browser.isIos && this.player.config.fullscreen.iosNative) { this.target.webkitEnterFullscreen(); } else if (!Fullscreen.native || this.forceFallback) { - toggleFallback.call(this, true); + this.toggleFallback(true); } else if (!this.prefix) { - this.target.requestFullscreen(); + this.target.requestFullscreen({ + navigationUI: 'hide' + }); } else if (!is$1.empty(this.prefix)) { this.target["".concat(this.prefix, "Request").concat(this.property)](); } @@ -4190,7 +4139,7 @@ typeof navigator === "object" && (function (global, factory) { this.target.webkitExitFullscreen(); this.player.play(); } else if (!Fullscreen.native || this.forceFallback) { - toggleFallback.call(this, false); + this.toggleFallback(false); } else if (!this.prefix) { (document.cancelFullScreen || document.exitFullscreen).call(document); } else if (!is$1.empty(this.prefix)) { @@ -4438,7 +4387,12 @@ typeof navigator === "object" && (function (global, factory) { } // Set property synchronously to respect the call order - this.media.setAttribute('poster', poster); // Wait until ui is ready + this.media.setAttribute('poster', poster); // HTML5 uses native poster attribute + + if (this.isHTML5) { + return Promise.resolve(poster); + } // Wait until ui is ready + return ready.call(this) // Load image .then(function () { @@ -4479,6 +4433,7 @@ typeof navigator === "object" && (function (global, factory) { Object.assign(target, { pressed: _this3.playing }); + target.setAttribute('aria-label', i18n.get(_this3.playing ? 'pause' : 'play', _this3.config)); }); // Only update controls on non timeupdate events if (is$1.event(event) && event.type === 'timeupdate') { @@ -4516,9 +4471,7 @@ typeof navigator === "object" && (function (global, factory) { } }; - var Listeners = - /*#__PURE__*/ - function () { + var Listeners = /*#__PURE__*/function () { function Listeners(player) { _classCallCheck(this, Listeners); @@ -4659,18 +4612,6 @@ typeof navigator === "object" && (function (global, factory) { // L key player.loop = !player.loop; break; - // case 73: - // this.setLoop('start'); - // break; - // case 76: - // this.setLoop(); - // break; - // case 79: - // this.setLoop('end'); - // break; - - default: - break; } // Escape is handle natively when in full screen // So we only need to worry about non native @@ -4887,19 +4828,15 @@ typeof navigator === "object" && (function (global, factory) { on.call(player, player.media, 'durationchange loadeddata loadedmetadata', function (event) { return controls.durationUpdate.call(player, event); - }); // Check for audio tracks on load - // We can't use `loadedmetadata` as it doesn't seem to have audio tracks at that point - - on.call(player, player.media, 'canplay loadeddata', function () { - toggleHidden(elements.volume, !player.hasAudio); - toggleHidden(elements.buttons.mute, !player.hasAudio); }); // Handle the media finishing on.call(player, player.media, 'ended', function () { // Show poster on end if (player.isHTML5 && player.isVideo && player.config.resetOnEnd) { // Restart - player.restart(); + player.restart(); // Call pause otherwise IE11 will start playing the video again + + player.pause(); } }); // Check for buffer progress @@ -5012,7 +4949,7 @@ typeof navigator === "object" && (function (global, factory) { } // Only call default handler if not prevented in custom handler - if (returned && is$1.function(defaultHandler)) { + if (returned !== false && is$1.function(defaultHandler)) { defaultHandler.call(player, event); } } // Trigger custom and default handlers @@ -5079,9 +5016,11 @@ typeof navigator === "object" && (function (global, factory) { this.bind(elements.buttons.settings, 'click', function (event) { // Prevent the document click listener closing the menu event.stopPropagation(); + event.preventDefault(); controls.toggleMenu.call(player, event); - }); // Settings menu - keyboard toggle + }, null, false); // Can't be passive as we're preventing default + // Settings menu - keyboard toggle // We have to bind to keyup otherwise Firefox triggers a click when a keydown event handler shifts focus // https://bugzilla.mozilla.org/show_bug.cgi?id=1220143 @@ -5183,7 +5122,7 @@ typeof navigator === "object" && (function (global, factory) { } }); // Hide thumbnail preview - on mouse click, mouse leave, and video play/seek. All four are required, e.g., for buffering - this.bind(elements.progress, 'mouseleave click', function () { + this.bind(elements.progress, 'mouseleave touchend click', function () { var previewThumbnails = player.previewThumbnails; if (previewThumbnails && previewThumbnails.loaded) { @@ -5400,12 +5339,13 @@ typeof navigator === "object" && (function (global, factory) { async = args.async, maxTries = (args.numRetries || 0) + 1, beforeCallbackFn = args.before || devnull, + pathname = path.replace(/[\?|#].*$/, ''), pathStripped = path.replace(/^(css|img)!/, ''), isLegacyIECss, e; numTries = numTries || 0; - if (/(^css!|\.css$)/.test(path)) { + if (/(^css!|\.css$)/.test(pathname)) { // css e = doc.createElement('link'); e.rel = 'stylesheet'; @@ -5418,7 +5358,7 @@ typeof navigator === "object" && (function (global, factory) { e.rel = 'preload'; e.as = 'style'; } - } else if (/(^img!|\.(png|gif|jpg|svg)$)/.test(path)) { + } else if (/(^img!|\.(png|gif|jpg|svg|webp)$)/.test(pathname)) { // image e = doc.createElement('img'); e.src = pathStripped; @@ -5628,26 +5568,27 @@ typeof navigator === "object" && (function (global, factory) { var vimeo = { setup: function setup() { - var _this = this; + var player = this; // Add embed class for responsive - // Add embed class for responsive - toggleClass(this.elements.wrapper, this.config.classNames.embed, true); // Set intial ratio + toggleClass(player.elements.wrapper, player.config.classNames.embed, true); // Set speed options from config - setAspectRatio.call(this); // Load the SDK if not already + player.options.speed = player.config.speed.options; // Set intial ratio + + setAspectRatio.call(player); // Load the SDK if not already if (!is$1.object(window.Vimeo)) { - loadScript(this.config.urls.vimeo.sdk).then(function () { - vimeo.ready.call(_this); + loadScript(player.config.urls.vimeo.sdk).then(function () { + vimeo.ready.call(player); }).catch(function (error) { - _this.debug.warn('Vimeo SDK (player.js) failed to load', error); + player.debug.warn('Vimeo SDK (player.js) failed to load', error); }); } else { - vimeo.ready.call(this); + vimeo.ready.call(player); } }, // API Ready ready: function ready() { - var _this2 = this; + var _this = this; var player = this; var config = player.config.vimeo; // Get Vimeo params for the iframe @@ -5673,7 +5614,12 @@ typeof navigator === "object" && (function (global, factory) { iframe.setAttribute('src', src); iframe.setAttribute('allowfullscreen', ''); iframe.setAttribute('allowtransparency', ''); - iframe.setAttribute('allow', 'autoplay'); // Get poster, if already set + iframe.setAttribute('allow', 'autoplay'); // Set the referrer policy if required + + if (!is$1.empty(config.referrerPolicy)) { + iframe.setAttribute('referrerPolicy', config.referrerPolicy); + } // Get poster, if already set + var poster = player.poster; // Inject the package @@ -5766,11 +5712,6 @@ typeof navigator === "object" && (function (global, factory) { player.embed.setPlaybackRate(input).then(function () { speed = input; triggerEvent.call(player, player.media, 'ratechange'); - }).catch(function (error) { - // Hide menu item (and menu if empty) - if (error.name === 'Error') { - controls.setSpeedMenu.call(player, []); - } }); } }); // Volume @@ -5820,7 +5761,7 @@ typeof navigator === "object" && (function (global, factory) { currentSrc = value; controls.setDownloadUrl.call(player); }).catch(function (error) { - _this2.debug.warn(error); + _this.debug.warn(error); }); Object.defineProperty(player.media, 'currentSrc', { get: function get() { @@ -5840,7 +5781,7 @@ typeof navigator === "object" && (function (global, factory) { height = _dimensions[1]; player.embed.ratio = [width, height]; - setAspectRatio.call(_this2); + setAspectRatio.call(_this); }); // Set autopause player.embed.setAutopause(player.config.autopause).then(function (state) { @@ -5849,7 +5790,7 @@ typeof navigator === "object" && (function (global, factory) { player.embed.getVideoTitle().then(function (title) { player.config.title = title; - ui.setTitle.call(_this2); + ui.setTitle.call(_this); }); // Get current time player.embed.getCurrentTime().then(function (value) { @@ -5891,6 +5832,12 @@ typeof navigator === "object" && (function (global, factory) { frame.setAttribute('tabindex', -1); } }); + player.embed.on('bufferstart', function () { + triggerEvent.call(player, player.media, 'waiting'); + }); + player.embed.on('bufferend', function () { + triggerEvent.call(player, player.media, 'playing'); + }); player.embed.on('play', function () { assurePlaybackState.call(player, true); triggerEvent.call(player, player.media, 'playing'); @@ -6218,7 +6165,11 @@ typeof navigator === "object" && (function (global, factory) { } }); // Get available speeds - player.options.speed = instance.getAvailablePlaybackRates(); // Set the tabindex to avoid focus entering iframe + var speeds = instance.getAvailablePlaybackRates(); // Filter based on config + + player.options.speed = speeds.filter(function (s) { + return player.config.speed.options.includes(s); + }); // Set the tabindex to avoid focus entering iframe if (player.supported.ui) { player.media.setAttribute('tabindex', -1); @@ -6324,7 +6275,9 @@ typeof navigator === "object" && (function (global, factory) { assurePlaybackState$1.call(player, false); break; - default: + case 3: + // Trigger waiting event to add loading classes to container as the video buffers. + triggerEvent.call(player, player.media, 'waiting'); break; } @@ -6366,14 +6319,16 @@ typeof navigator === "object" && (function (global, factory) { wrap(this.media, this.elements.wrapper); // Faux poster container - this.elements.poster = createElement('div', { - class: this.config.classNames.poster - }); - this.elements.wrapper.appendChild(this.elements.poster); + if (this.isEmbed) { + this.elements.poster = createElement('div', { + class: this.config.classNames.poster + }); + this.elements.wrapper.appendChild(this.elements.poster); + } } if (this.isHTML5) { - html5.extend.call(this); + html5.setup.call(this); } else if (this.isYouTube) { youtube.setup.call(this); } else if (this.isVimeo) { @@ -6396,9 +6351,7 @@ typeof navigator === "object" && (function (global, factory) { instance.elements.container.remove(); }; - var Ads = - /*#__PURE__*/ - function () { + var Ads = /*#__PURE__*/function () { /** * Ads constructor. * @param {Object} player @@ -6739,9 +6692,6 @@ typeof navigator === "object" && (function (global, factory) { } break; - - default: - break; } } /** @@ -7013,7 +6963,7 @@ typeof navigator === "object" && (function (global, factory) { cb: Date.now(), AV_WIDTH: 640, AV_HEIGHT: 480, - AV_CDIM2: this.publisherId + AV_CDIM2: config.publisherId }; var base = 'https://go.aniview.com/api/adserver6/vast/'; return "".concat(base, "?").concat(buildUrlParams(params)); @@ -7078,9 +7028,22 @@ typeof navigator === "object" && (function (global, factory) { */ - var PreviewThumbnails = - /*#__PURE__*/ - function () { + var fitRatio = function fitRatio(ratio, outer) { + var targetRatio = outer.width / outer.height; + var result = {}; + + if (ratio > targetRatio) { + result.width = outer.width; + result.height = 1 / ratio * outer.width; + } else { + result.height = outer.height; + result.width = ratio * outer.height; + } + + return result; + }; + + var PreviewThumbnails = /*#__PURE__*/function () { /** * PreviewThumbnails constructor. * @param {Plyr} player @@ -7107,7 +7070,7 @@ typeof navigator === "object" && (function (global, factory) { value: function load() { var _this = this; - // Togglethe regular seek tooltip + // Toggle the regular seek tooltip if (this.player.elements.display.seekTooltip) { this.player.elements.display.seekTooltip.hidden = this.enabled; } @@ -7248,8 +7211,8 @@ typeof navigator === "object" && (function (global, factory) { }, { key: "startScrubbing", value: function startScrubbing(event) { - // Only act on left mouse button (0), or touch device (event.button is false) - if (event.button === false || event.button === 0) { + // Only act on left mouse button (0), or touch device (event.button does not exist or is false) + if (is$1.nullOrUndefined(event.button) || event.button === false || event.button === 0) { this.mouseDown = true; // Wait until media has a duration if (this.player.media.duration) { @@ -7334,6 +7297,17 @@ typeof navigator === "object" && (function (global, factory) { }); this.player.elements.wrapper.appendChild(this.elements.scrubbing.container); } + }, { + key: "destroy", + value: function destroy() { + if (this.elements.thumb.container) { + this.elements.thumb.container.remove(); + } + + if (this.elements.scrubbing.container) { + this.elements.scrubbing.container.remove(); + } + } }, { key: "showImageAtCurrentTime", value: function showImageAtCurrentTime() { @@ -7579,7 +7553,7 @@ typeof navigator === "object" && (function (global, factory) { }, { key: "determineContainerAutoSizing", value: function determineContainerAutoSizing() { - if (this.elements.thumb.imageContainer.clientHeight > 20) { + if (this.elements.thumb.imageContainer.clientHeight > 20 || this.elements.thumb.imageContainer.clientWidth > 20) { // This will prevent auto sizing in this.setThumbContainerSizeAndPos() this.sizeSpecifiedInCSS = true; } @@ -7592,6 +7566,13 @@ typeof navigator === "object" && (function (global, factory) { var thumbWidth = Math.floor(this.thumbContainerHeight * this.thumbAspectRatio); this.elements.thumb.imageContainer.style.height = "".concat(this.thumbContainerHeight, "px"); this.elements.thumb.imageContainer.style.width = "".concat(thumbWidth, "px"); + } else if (this.elements.thumb.imageContainer.clientHeight > 20 && this.elements.thumb.imageContainer.clientWidth < 20) { + var _thumbWidth = Math.floor(this.elements.thumb.imageContainer.clientHeight * this.thumbAspectRatio); + + this.elements.thumb.imageContainer.style.width = "".concat(_thumbWidth, "px"); + } else if (this.elements.thumb.imageContainer.clientHeight < 20 && this.elements.thumb.imageContainer.clientWidth > 20) { + var thumbHeight = Math.floor(this.elements.thumb.imageContainer.clientWidth / this.thumbAspectRatio); + this.elements.thumb.imageContainer.style.height = "".concat(thumbHeight, "px"); } this.setThumbContainerPos(); @@ -7622,9 +7603,15 @@ typeof navigator === "object" && (function (global, factory) { }, { key: "setScrubbingContainerSize", value: function setScrubbingContainerSize() { - this.elements.scrubbing.container.style.width = "".concat(this.player.media.clientWidth, "px"); // Can't use media.clientHeight - html5 video goes big and does black bars above and below + var _fitRatio = fitRatio(this.thumbAspectRatio, { + width: this.player.media.clientWidth, + height: this.player.media.clientHeight + }), + width = _fitRatio.width, + height = _fitRatio.height; - this.elements.scrubbing.container.style.height = "".concat(this.player.media.clientWidth / this.thumbAspectRatio, "px"); + this.elements.scrubbing.container.style.width = "".concat(width, "px"); + this.elements.scrubbing.container.style.height = "".concat(height, "px"); } // Sprites need to be offset to the correct location }, { @@ -7637,9 +7624,9 @@ typeof navigator === "object" && (function (global, factory) { var multiplier = this.thumbContainerHeight / frame.h; // eslint-disable-next-line no-param-reassign - previewImage.style.height = "".concat(Math.floor(previewImage.naturalHeight * multiplier), "px"); // eslint-disable-next-line no-param-reassign + previewImage.style.height = "".concat(previewImage.naturalHeight * multiplier, "px"); // eslint-disable-next-line no-param-reassign - previewImage.style.width = "".concat(Math.floor(previewImage.naturalWidth * multiplier), "px"); // eslint-disable-next-line no-param-reassign + previewImage.style.width = "".concat(previewImage.naturalWidth * multiplier, "px"); // eslint-disable-next-line no-param-reassign previewImage.style.left = "-".concat(frame.x * multiplier, "px"); // eslint-disable-next-line no-param-reassign @@ -7677,8 +7664,18 @@ typeof navigator === "object" && (function (global, factory) { key: "thumbContainerHeight", get: function get() { if (this.mouseDown) { - // Can't use media.clientHeight - HTML5 video goes big and does black bars above and below - return Math.floor(this.player.media.clientWidth / this.thumbAspectRatio); + var _fitRatio2 = fitRatio(this.thumbAspectRatio, { + width: this.player.media.clientWidth, + height: this.player.media.clientHeight + }), + height = _fitRatio2.height; + + return height; + } // If css is used this needs to return the css height for sprites to work (see setImageSizeAndOffset) + + + if (this.sizeSpecifiedInCSS) { + return this.elements.thumb.imageContainer.clientHeight; } return Math.floor(this.player.media.clientWidth / this.thumbAspectRatio / 4); @@ -7828,11 +7825,22 @@ typeof navigator === "object" && (function (global, factory) { if (_this2.isHTML5) { _this2.media.load(); - } // Reload thumbnails + } // Update previewThumbnails config & reload plugin - if (_this2.previewThumbnails) { - _this2.previewThumbnails.load(); + if (!is$1.empty(input.previewThumbnails)) { + Object.assign(_this2.config.previewThumbnails, input.previewThumbnails); // Cleanup previewThumbnails plugin if it was loaded + + if (_this2.previewThumbnails && _this2.previewThumbnails.loaded) { + _this2.previewThumbnails.destroy(); + + _this2.previewThumbnails = null; + } // Create new instance if it is still enabled + + + if (_this2.config.previewThumbnails.enabled) { + _this2.previewThumbnails = new PreviewThumbnails(_this2); + } } // Update the fullscreen support @@ -7864,9 +7872,7 @@ typeof navigator === "object" && (function (global, factory) { // const globals = new WeakMap(); // Plyr instance - var Plyr = - /*#__PURE__*/ - function () { + var Plyr = /*#__PURE__*/function () { function Plyr(target, options) { var _this = this; @@ -8162,10 +8168,10 @@ typeof navigator === "object" && (function (global, factory) { key: "pause", value: function pause() { if (!this.playing || !is$1.function(this.media.pause)) { - return; + return null; } - this.media.pause(); + return this.media.pause(); } /** * Get playing state @@ -8183,10 +8189,10 @@ typeof navigator === "object" && (function (global, factory) { var toggle = is$1.boolean(input) ? input : !this.playing; if (toggle) { - this.play(); - } else { - this.pause(); + return this.play(); } + + return this.pause(); } /** * Stop playback @@ -8219,7 +8225,7 @@ typeof navigator === "object" && (function (global, factory) { }, { key: "rewind", value: function rewind(seekTime) { - this.currentTime = this.currentTime - (is$1.number(seekTime) ? seekTime : this.config.seekTime); + this.currentTime -= is$1.number(seekTime) ? seekTime : this.config.seekTime; } /** * Fast forward @@ -8229,7 +8235,7 @@ typeof navigator === "object" && (function (global, factory) { }, { key: "forward", value: function forward(seekTime) { - this.currentTime = this.currentTime + (is$1.number(seekTime) ? seekTime : this.config.seekTime); + this.currentTime += is$1.number(seekTime) ? seekTime : this.config.seekTime; } /** * Seek to a time @@ -9131,4 +9137,4 @@ typeof navigator === "object" && (function (global, factory) { return Plyr; -})); +}))); diff --git a/libretube-theme/static/modules/plyr/plyr.min.js b/libretube-theme/static/modules/plyr/plyr.min.js index bbe2542..42a1632 100644 --- a/libretube-theme/static/modules/plyr/plyr.min.js +++ b/libretube-theme/static/modules/plyr/plyr.min.js @@ -1,2 +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 n=0;n100&&(n=100),n<50?n-=(100-2*n)*u:n>50&&(n+=2*(n-50)*u),s+g(l*(n/100),o)}},{key:"set",value:function(e){t.enabled&&f.event(e)&&!e.target.disabled&&(e.preventDefault(),e.target.value=this.get(e),function(e,t){if(e&&t){var n=new Event(t);e.dispatchEvent(n)}}(e.target,"touchend"===e.type?"change":"input"))}}],[{key:"setup",value:function(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},i=null;if(f.empty(e)||f.string(e)?i=Array.from(document.querySelectorAll(f.string(e)?e:'input[type="range"]')):f.element(e)?i=[e]:f.nodeList(e)?i=Array.from(e):f.array(e)&&(i=e.filter(f.element)),f.empty(i))return null;var a=Object.assign({},r,n);if(f.string(e)&&a.watch){var s=new MutationObserver(function(n){Array.from(n).forEach(function(n){Array.from(n.addedNodes).forEach(function(n){if(f.element(n)&&o(n,e))new t(n,a)})})});s.observe(document.body,{childList:!0,subtree:!0})}return i.map(function(e){return new t(e,n)})}},{key:"enabled",get:function(){return"ontouchstart"in document.documentElement}}]),t}(),w=function(e){return null!=e?e.constructor:null},T=function(e,t){return Boolean(e&&t&&e instanceof t)},C=function(e){return null==e},A=function(e){return w(e)===Object},E=function(e){return w(e)===String},S=function(e){return Array.isArray(e)},P=function(e){return T(e,NodeList)},N=function(e){return C(e)||(E(e)||S(e)||P(e))&&!e.length||A(e)&&!Object.keys(e).length},M={nullOrUndefined:C,object:A,number:function(e){return w(e)===Number&&!Number.isNaN(e)},string:E,boolean:function(e){return w(e)===Boolean},function:function(e){return w(e)===Function},array:S,weakMap:function(e){return T(e,WeakMap)},nodeList:P,element:function(e){return T(e,Element)},textNode:function(e){return w(e)===Text},event:function(e){return T(e,Event)},keyboardEvent:function(e){return T(e,KeyboardEvent)},cue:function(e){return T(e,window.TextTrackCue)||T(e,window.VTTCue)},track:function(e){return T(e,TextTrack)||!C(e)&&E(e.kind)},promise:function(e){return T(e,Promise)},url:function(e){if(T(e,window.URL))return!0;if(!E(e))return!1;var t=e;e.startsWith("http://")&&e.startsWith("https://")||(t="http://".concat(e));try{return!N(new URL(t).hostname)}catch(e){return!1}},empty:N},x=(y=document.createElement("span"),v={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd otransitionend",transition:"transitionend"},b=Object.keys(v).find(function(e){return void 0!==y.style[e]}),!!M.string(b)&&v[b]);function L(e,t){setTimeout(function(){try{e.hidden=!0,e.offsetHeight,e.hidden=!1}catch(e){}},t)}var I={isIE:!!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(){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 O(e,t,n){var i=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&&!M.empty(t)&&M.function(n)){var o=t.split(" "),l=r;_&&(l={passive:s,capture:r}),o.forEach(function(t){i&&i.eventListeners&&a&&i.eventListeners.push({element:e,type:t,callback:n,options:l}),e[a?"addEventListener":"removeEventListener"](t,n,l)})}}function j(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",n=arguments.length>2?arguments[2]:void 0,i=!(arguments.length>3&&void 0!==arguments[3])||arguments[3],a=arguments.length>4&&void 0!==arguments[4]&&arguments[4];O.call(this,e,t,n,!0,i,a)}function q(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",n=arguments.length>2?arguments[2]:void 0,i=!(arguments.length>3&&void 0!==arguments[3])||arguments[3],a=arguments.length>4&&void 0!==arguments[4]&&arguments[4];O.call(this,e,t,n,!1,i,a)}function H(e){var t=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",i=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];O.call(this,e,n,function r(){q(e,n,r,a,s);for(var o=arguments.length,l=new Array(o),c=0;c1&&void 0!==arguments[1]?arguments[1]:"",n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};if(M.element(e)&&!M.empty(t)){var a=new CustomEvent(t,{bubbles:n,detail:Object.assign({},i,{plyr:this})});e.dispatchEvent(a)}}function F(){this&&this.eventListeners&&(this.eventListeners.forEach(function(e){var t=e.element,n=e.type,i=e.callback,a=e.options;t.removeEventListener(n,i,a)}),this.eventListeners=[])}function R(){var e=this;return new Promise(function(t){return e.ready?setTimeout(t,0):j.call(e,e.elements.container,"ready",t)}).then(function(){})}function V(e,t){return t.split(".").reduce(function(e,t){return e&&e[t]},e)}function B(){for(var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length,n=new Array(t>1?t-1:0),a=1;a0?t.cloneNode(!0):t,a=e.parentNode,s=e.nextSibling;i.appendChild(e),s?a.insertBefore(i,s):a.appendChild(i)})}function W(e,t){M.element(e)&&!M.empty(t)&&Object.entries(t).filter(function(e){var t=a(e,2)[1];return!M.nullOrUndefined(t)}).forEach(function(t){var n=a(t,2),i=n[0],s=n[1];return e.setAttribute(i,s)})}function z(e,t,n){var i=document.createElement(e);return M.object(t)&&W(i,t),M.string(n)&&(i.innerText=n),i}function K(e,t,n,i){M.element(t)&&t.appendChild(z(e,n,i))}function Y(e){M.nodeList(e)||M.array(e)?Array.from(e).forEach(Y):M.element(e)&&M.element(e.parentNode)&&e.parentNode.removeChild(e)}function Q(e){if(M.element(e))for(var t=e.childNodes.length;t>0;)e.removeChild(e.lastChild),t-=1}function X(e,t){return M.element(t)&&M.element(t.parentNode)&&M.element(e)?(t.parentNode.replaceChild(e,t),e):null}function J(e,t){if(!M.string(e)||M.empty(e))return{};var n={},i=B({},t);return e.split(",").forEach(function(e){var t=e.trim(),s=t.replace(".",""),r=t.replace(/[[\]]/g,"").split("="),o=a(r,1)[0],l=r.length>1?r[1].replace(/["']/g,""):"";switch(t.charAt(0)){case".":M.string(i.class)?n.class="".concat(i.class," ").concat(s):n.class=s;break;case"#":n.id=t.replace("#","");break;case"[":n[o]=l}}),B(i,n)}function $(e,t){if(M.element(e)){var n=t;M.boolean(n)||(n=!e.hidden),e.hidden=n}}function G(e,t,n){if(M.nodeList(e))return Array.from(e).map(function(e){return G(e,t,n)});if(M.element(e)){var i="toggle";return void 0!==n&&(i=n?"add":"remove"),e.classList[i](t),e.classList.contains(t)}return!1}function Z(e,t){return M.element(e)&&e.classList.contains(t)}function ee(e,t){return function(){return Array.from(document.querySelectorAll(t)).includes(this)}.call(e,t)}function te(e){return this.elements.container.querySelectorAll(e)}function ne(e){return this.elements.container.querySelector(e)}function ie(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];M.element(e)&&(e.focus({preventScroll:!0}),t&&G(e,this.config.classNames.tabFocus))}var ae,se={"audio/ogg":"vorbis","audio/wav":"1","video/webm":"vp8, vorbis","video/mp4":"avc1.42E01E, mp4a.40.2","video/ogg":"theora"},re={audio:"canPlayType"in document.createElement("audio"),video:"canPlayType"in document.createElement("video"),check:function(e,t,n){var i=I.isIPhone&&n&&re.playsinline,a=re[e]||"html5"!==t;return{api:a,ui:a&&re.rangeInput&&("video"!==e||!I.isIPhone||i)}},pip:!(I.isIPhone||!M.function(z("video").webkitSetPresentationMode)&&(!document.pictureInPictureEnabled||z("video").disablePictureInPicture)),airplay:M.function(window.WebKitPlaybackTargetAvailabilityEvent),playsinline:"playsInline"in document.createElement("video"),mime:function(e){if(M.empty(e))return!1;var t=a(e.split("/"),1)[0],n=e;if(!this.isHTML5||t!==this.type)return!1;Object.keys(se).includes(n)&&(n+='; codecs="'.concat(se[e],'"'));try{return Boolean(n&&this.media.canPlayType(n).replace(/no/,""))}catch(e){return!1}},textTracks:"textTracks"in document.createElement("video"),rangeInput:(ae=document.createElement("input"),ae.type="range","range"===ae.type),touch:"ontouchstart"in document.documentElement,transitions:!1!==x,reducedMotion:"matchMedia"in window&&window.matchMedia("(prefers-reduced-motion)").matches};function oe(e){return!!(M.array(e)||M.string(e)&&e.includes(":"))&&(M.array(e)?e:e.split(":")).map(Number).every(M.number)}function le(e){if(!M.array(e)||!e.every(M.number))return null;var t=a(e,2),n=t[0],i=t[1],s=function e(t,n){return 0===n?t:e(n,t%n)}(n,i);return[n/s,i/s]}function ce(e){var t=function(e){return oe(e)?e.split(":").map(Number):null},n=t(e);if(null===n&&(n=t(this.config.ratio)),null===n&&!M.empty(this.embed)&&M.array(this.embed.ratio)&&(n=this.embed.ratio),null===n&&this.isHTML5){var i=this.media;n=le([i.videoWidth,i.videoHeight])}return n}function ue(e){if(!this.isVideo)return{};var t=ce.call(this,e),n=a(M.array(t)?t:[0,0],2),i=100/n[0]*n[1];if(this.elements.wrapper.style.paddingBottom="".concat(i,"%"),this.isVimeo&&this.supported.ui){var s=(240-i)/4.8;this.media.style.transform="translateY(-".concat(s,"%)")}else this.isHTML5&&this.elements.wrapper.classList.toggle(this.config.classNames.videoFixedRatio,null!==t);return{padding:i,ratio:t}}var de={getSources:function(){var e=this;return this.isHTML5?Array.from(this.media.querySelectorAll("source")).filter(function(t){var n=t.getAttribute("type");return!!M.empty(n)||re.mime.call(e,n)}):[]},getQualityOptions:function(){return de.getSources.call(this).map(function(e){return Number(e.getAttribute("data-res"))}).filter(Boolean)},extend:function(){if(this.isHTML5){var e=this;M.empty(this.config.ratio)||ue.call(e),Object.defineProperty(e.media,"quality",{get:function(){var t=de.getSources.call(e).find(function(t){return t.getAttribute("src")===e.source});return t&&Number(t.getAttribute("data-res"))},set:function(t){var n=de.getSources.call(e).find(function(e){return Number(e.getAttribute("data-res"))===t});if(n){var i=e.media,a=i.currentTime,s=i.paused,r=i.preload,o=i.readyState;e.media.src=n.getAttribute("src"),("none"!==r||o)&&(e.once("loadedmetadata",function(){e.currentTime=a,s||e.play()}),e.media.load()),D.call(e,e.media,"qualitychange",!1,{quality:t})}}})}},cancelRequests:function(){this.isHTML5&&(Y(de.getSources.call(this)),this.media.setAttribute("src",this.config.blankVideo),this.media.load(),this.debug.log("Cancelled network requests"))}};function he(e){return M.array(e)?e.filter(function(t,n){return e.indexOf(t)===n}):e}function me(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),i=1;i0&&void 0!==arguments[0]?arguments[0]:"",t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"";return e.replace(new RegExp(t.toString().replace(/([.*+?^=!:${}()|[\]/\\])/g,"\\$1"),"g"),n.toString())}function fe(){return(arguments.length>0&&void 0!==arguments[0]?arguments[0]:"").toString().replace(/\w\S*/g,function(e){return e.charAt(0).toUpperCase()+e.substr(1).toLowerCase()})}function ge(){var e=(arguments.length>0&&void 0!==arguments[0]?arguments[0]:"").toString();return(e=function(){var e=(arguments.length>0&&void 0!==arguments[0]?arguments[0]:"").toString();return e=pe(e,"-"," "),e=pe(e,"_"," "),pe(e=fe(e)," ","")}(e)).charAt(0).toLowerCase()+e.slice(1)}function ye(e){var t=document.createElement("div");return t.appendChild(e),t.innerHTML}var ve={pip:"PIP",airplay:"AirPlay",html5:"HTML5",vimeo:"Vimeo",youtube:"YouTube"},be=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(M.empty(e)||M.empty(t))return"";var n=V(t.i18n,e);if(M.empty(n))return Object.keys(ve).includes(e)?ve[e]:"";var i={"{seektime}":t.seekTime,"{title}":t.title};return Object.entries(i).forEach(function(e){var t=a(e,2),i=t[0],s=t[1];n=pe(n,i,s)}),n},ke=function(){function t(n){e(this,t),this.enabled=n.config.storage.enabled,this.key=n.config.storage.key}return n(t,[{key:"get",value:function(e){if(!t.supported||!this.enabled)return null;var n=window.localStorage.getItem(this.key);if(M.empty(n))return null;var i=JSON.parse(n);return M.string(e)&&e.length?i[e]:i}},{key:"set",value:function(e){if(t.supported&&this.enabled&&M.object(e)){var n=this.get();M.empty(n)&&(n={}),B(n,e),window.localStorage.setItem(this.key,JSON.stringify(n))}}}],[{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 we(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"text";return new Promise(function(n,i){try{var a=new XMLHttpRequest;if(!("withCredentials"in a))return;a.addEventListener("load",function(){if("text"===t)try{n(JSON.parse(a.responseText))}catch(e){n(a.responseText)}else n(a.response)}),a.addEventListener("error",function(){throw new Error(a.status)}),a.open("GET",e,!0),a.responseType=t,a.send()}catch(e){i(e)}})}function Te(e,t){if(M.string(e)){var n=M.string(t),i=function(){return null!==document.getElementById(t)},a=function(e,t){e.innerHTML=t,n&&i()||document.body.insertAdjacentElement("afterbegin",e)};if(!n||!i()){var s=ke.supported,r=document.createElement("div");if(r.setAttribute("hidden",""),n&&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)}}we(e).then(function(e){M.empty(e)||(s&&window.localStorage.setItem("".concat("cache","-").concat(t),JSON.stringify({content:e})),a(r,e))}).catch(function(){})}}}var Ce=function(e){return Math.trunc(e/60/60%60,10)},Ae=function(e){return Math.trunc(e/60%60,10)},Ee=function(e){return Math.trunc(e%60,10)};function Se(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=arguments.length>2&&void 0!==arguments[2]&&arguments[2];if(!M.number(e))return Se(null,t,n);var i=function(e){return"0".concat(e).slice(-2)},a=Ce(e),s=Ae(e),r=Ee(e);return a=t||a>0?"".concat(a,":"):"","".concat(n&&e>0?"-":"").concat(a).concat(i(s),":").concat(i(r))}var Pe={getIconUrl:function(){var e=new URL(this.config.iconUrl,window.location).host!==window.location.host||I.isIE&&!window.svg4everybody;return{url:this.config.iconUrl,cors:e}},findElements:function(){try{return this.elements.controls=ne.call(this,this.config.selectors.controls.wrapper),this.elements.buttons={play:te.call(this,this.config.selectors.buttons.play),pause:ne.call(this,this.config.selectors.buttons.pause),restart:ne.call(this,this.config.selectors.buttons.restart),rewind:ne.call(this,this.config.selectors.buttons.rewind),fastForward:ne.call(this,this.config.selectors.buttons.fastForward),mute:ne.call(this,this.config.selectors.buttons.mute),pip:ne.call(this,this.config.selectors.buttons.pip),airplay:ne.call(this,this.config.selectors.buttons.airplay),settings:ne.call(this,this.config.selectors.buttons.settings),captions:ne.call(this,this.config.selectors.buttons.captions),fullscreen:ne.call(this,this.config.selectors.buttons.fullscreen)},this.elements.progress=ne.call(this,this.config.selectors.progress),this.elements.inputs={seek:ne.call(this,this.config.selectors.inputs.seek),volume:ne.call(this,this.config.selectors.inputs.volume)},this.elements.display={buffer:ne.call(this,this.config.selectors.display.buffer),currentTime:ne.call(this,this.config.selectors.display.currentTime),duration:ne.call(this,this.config.selectors.display.duration)},M.element(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 n=Pe.getIconUrl.call(this),i="".concat(n.cors?"":n.url,"#").concat(this.config.iconPrefix),a=document.createElementNS("http://www.w3.org/2000/svg","svg");W(a,B(t,{role:"presentation",focusable:"false"}));var s=document.createElementNS("http://www.w3.org/2000/svg","use"),r="".concat(i,"-").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]:{},n=be(e,this.config),i=Object.assign({},t,{class:[t.class,this.config.classNames.hidden].filter(Boolean).join(" ")});return z("span",i,n)},createBadge:function(e){if(M.empty(e))return null;var t=z("span",{class:this.config.classNames.menu.value});return t.appendChild(z("span",{class:this.config.classNames.menu.badge},e)),t},createButton:function(e,t){var n=this,i=B({},t),a=ge(e),s={element:"button",toggle:!1,label:null,icon:null,labelPressed:null,iconPressed:null};switch(["element","icon","label"].forEach(function(e){Object.keys(i).includes(e)&&(s[e]=i[e],delete i[e])}),"button"!==s.element||Object.keys(i).includes("type")||(i.type="button"),Object.keys(i).includes("class")?i.class.split(" ").some(function(e){return e===n.config.classNames.control})||B(i,{class:"".concat(i.class," ").concat(this.config.classNames.control)}):i.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":i.class+=" ".concat(this.config.classNames.control,"--overlaid"),a="play",s.label="play",s.icon="play";break;default:M.empty(s.label)&&(s.label=a),M.empty(s.icon)&&(s.icon=e)}var r=z(s.element);return s.toggle?(r.appendChild(Pe.createIcon.call(this,s.iconPressed,{class:"icon--pressed"})),r.appendChild(Pe.createIcon.call(this,s.icon,{class:"icon--not-pressed"})),r.appendChild(Pe.createLabel.call(this,s.labelPressed,{class:"label--pressed"})),r.appendChild(Pe.createLabel.call(this,s.label,{class:"label--not-pressed"}))):(r.appendChild(Pe.createIcon.call(this,s.icon)),r.appendChild(Pe.createLabel.call(this,s.label))),B(i,J(this.config.selectors.buttons[a],i)),W(r,i),"play"===a?(M.array(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 n=z("input",B(J(this.config.selectors.inputs[e]),{type:"range",min:0,max:100,step:.01,value:0,autocomplete:"off",role:"slider","aria-label":be(e,this.config),"aria-valuemin":0,"aria-valuemax":100,"aria-valuenow":0},t));return this.elements.inputs[e]=n,Pe.updateRangeFill.call(this,n),k.setup(n),n},createProgress:function(e,t){var n=z("progress",B(J(this.config.selectors.display[e]),{min:0,max:100,value:0,role:"progressbar","aria-hidden":!0},t));if("volume"!==e){n.appendChild(z("span",null,"0"));var i={played:"played",buffer:"buffered"}[e],a=i?be(i,this.config):"";n.innerText="% ".concat(a.toLowerCase())}return this.elements.display[e]=n,n},createTime:function(e,t){var n=J(this.config.selectors.display[e],t),i=z("div",B(n,{class:"".concat(n.class?n.class:""," ").concat(this.config.classNames.display.time," ").trim(),"aria-label":be(e,this.config)}),"00:00");return this.elements.display[e]=i,i},bindMenuItemShortcuts:function(e,t){var n=this;j(e,"keydown keyup",function(i){if([32,38,39,40].includes(i.which)&&(i.preventDefault(),i.stopPropagation(),"keydown"!==i.type)){var a,s=ee(e,'[role="menuitemradio"]');if(!s&&[32,39].includes(i.which))Pe.showMenuPanel.call(n,t,!0);else 32!==i.which&&(40===i.which||s&&39===i.which?(a=e.nextElementSibling,M.element(a)||(a=e.parentNode.firstElementChild)):(a=e.previousElementSibling,M.element(a)||(a=e.parentNode.lastElementChild)),ie.call(n,a,!0))}},!1),j(e,"keyup",function(e){13===e.which&&Pe.focusFirstMenuItem.call(n,null,!0)})},createMenuItem:function(e){var t=this,n=e.value,i=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=J(this.config.selectors.inputs[a]),d=z("button",B(u,{type:"button",role:"menuitemradio",class:"".concat(this.config.classNames.control," ").concat(u.class?u.class:"").trim(),"aria-checked":c,value:n})),h=z("span");h.innerHTML=s,M.element(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 ee(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(!M.keyboardEvent(e)||32===e.which){switch(e.preventDefault(),e.stopPropagation(),d.checked=!0,a){case"language":t.currentTrack=Number(n);break;case"quality":t.quality=n;break;case"speed":t.speed=parseFloat(n)}Pe.showMenuPanel.call(t,"home",M.keyboardEvent(e))}},a,!1),Pe.bindMenuItemShortcuts.call(this,d,a),i.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(!M.number(e))return e;var n=Ce(this.duration)>0;return Se(e,n,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,n=arguments.length>2&&void 0!==arguments[2]&&arguments[2];M.element(e)&&M.number(t)&&(e.innerText=Pe.formatTime(t,n))},updateVolume:function(){this.supported.ui&&(M.element(this.elements.inputs.volume)&&Pe.setRange.call(this,this.elements.inputs.volume,this.muted?0:this.volume),M.element(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;M.element(e)&&(e.value=t,Pe.updateRangeFill.call(this,e))},updateProgress:function(e){var t=this;if(this.supported.ui&&M.event(e)){var n,i,a=0;if(e)switch(e.type){case"timeupdate":case"seeking":case"seeked":n=this.currentTime,i=this.duration,a=0===n||0===i||Number.isNaN(n)||Number.isNaN(i)?0:(n/i*100).toFixed(2),"timeupdate"===e.type&&Pe.setRange.call(this,this.elements.inputs.seek,a);break;case"playing":case"progress":!function(e,n){var i=M.number(n)?n:0,a=M.element(e)?e:t.elements.display.buffer;if(M.element(a)){a.value=i;var s=a.getElementsByTagName("span")[0];M.element(s)&&(s.childNodes[0].nodeValue=i)}}(this.elements.display.buffer,100*this.buffered)}}},updateRangeFill:function(e){var t=M.event(e)?e.target:e;if(M.element(t)&&"range"===t.getAttribute("type")){if(ee(t,this.config.selectors.inputs.seek)){t.setAttribute("aria-valuenow",this.currentTime);var n=Pe.formatTime(this.currentTime),i=Pe.formatTime(this.duration),a=be("seekLabel",this.config);t.setAttribute("aria-valuetext",a.replace("{currentTime}",n).replace("{duration}",i))}else if(ee(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);I.isWebkit&&t.style.setProperty("--value","".concat(t.value/t.max*100,"%"))}},updateSeekTooltip:function(e){var t=this;if(this.config.tooltips.seek&&M.element(this.elements.inputs.seek)&&M.element(this.elements.display.seekTooltip)&&0!==this.duration){var n="".concat(this.config.classNames.tooltip,"--visible"),i=function(e){return G(t.elements.display.seekTooltip,n,e)};if(this.touch)i(!1);else{var a=0,s=this.elements.progress.getBoundingClientRect();if(M.event(e))a=100/s.width*(e.pageX-s.left);else{if(!Z(this.elements.display.seekTooltip,n))return;a=parseFloat(this.elements.display.seekTooltip.style.left,10)}a<0?a=0:a>100&&(a=100),Pe.updateTimeDisplay.call(this,this.elements.display.seekTooltip,this.duration/100*a),this.elements.display.seekTooltip.style.left="".concat(a,"%"),M.event(e)&&["mouseenter","mouseleave"].includes(e.type)&&i("mouseenter"===e.type)}}},timeUpdate:function(e){var t=!M.element(this.elements.display.duration)&&this.config.invertTime;Pe.updateTimeDisplay.call(this,this.elements.display.currentTime,t?this.duration-this.currentTime:this.currentTime,t),e&&"timeupdate"===e.type&&this.media.seeking||Pe.updateProgress.call(this,e)},durationUpdate:function(){if(this.supported.ui&&(this.config.invertTime||!this.currentTime)){if(this.duration>=Math.pow(2,32))return $(this.elements.display.currentTime,!0),void $(this.elements.progress,!0);M.element(this.elements.inputs.seek)&&this.elements.inputs.seek.setAttribute("aria-valuemax",this.duration);var e=M.element(this.elements.display.duration);!e&&this.config.displayDuration&&this.paused&&Pe.updateTimeDisplay.call(this,this.elements.display.currentTime,this.duration),e&&Pe.updateTimeDisplay.call(this,this.elements.display.duration,this.duration),Pe.updateSeekTooltip.call(this)}},toggleMenuButton:function(e,t){$(this.elements.settings.buttons[e],!t)},updateSetting:function(e,t,n){var i=this.elements.settings.panels[e],a=null,s=t;if("captions"===e)a=this.currentTrack;else{if(a=M.empty(n)?this[e]:n,M.empty(a)&&(a=this.config[e].default),!M.empty(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(M.element(s)||(s=i&&i.querySelector('[role="menu"]')),M.element(s)){this.elements.settings.buttons[e].querySelector(".".concat(this.config.classNames.menu.value)).innerHTML=Pe.getLabel.call(this,e,a);var r=s&&s.querySelector('[value="'.concat(a,'"]'));M.element(r)&&(r.checked=!0)}},getLabel:function(e,t){switch(e){case"speed":return 1===t?be("normal",this.config):"".concat(t,"×");case"quality":if(M.number(t)){var n=be("qualityLabel.".concat(t),this.config);return n.length?n:"".concat(t,"p")}return fe(t);case"captions":return xe.getLabel.call(this);default:return null}},setQualityMenu:function(e){var t=this;if(M.element(this.elements.settings.panels.quality)){var n=this.elements.settings.panels.quality.querySelector('[role="menu"]');M.array(e)&&(this.options.quality=he(e).filter(function(e){return t.config.quality.options.includes(e)}));var i=!M.empty(this.options.quality)&&this.options.quality.length>1;if(Pe.toggleMenuButton.call(this,"quality",i),Q(n),Pe.checkMenu.call(this),i){var a=function(e){var n=be("qualityBadge.".concat(e),t.config);return n.length?Pe.createBadge.call(t,n):null};this.options.quality.sort(function(e,n){var i=t.config.quality.options;return i.indexOf(e)>i.indexOf(n)?1:-1}).forEach(function(e){Pe.createMenuItem.call(t,{value:e,list:n,type:"quality",title:Pe.getLabel.call(t,"quality",e),badge:a(e)})}),Pe.updateSetting.call(this,"quality",n)}}},setCaptionsMenu:function(){var e=this;if(M.element(this.elements.settings.panels.captions)){var t=this.elements.settings.panels.captions.querySelector('[role="menucaptions"]'),n=xe.getTracks.call(this),i=Boolean(n.length);if(Pe.toggleMenuButton.call(this,"captions",i),Q(t),Pe.checkMenu.call(this),i){var a=n.map(function(n,i){return{value:i,checked:e.captions.toggled&&e.currentTrack===i,title:xe.getLabel.call(e,n),badge:n.language&&Pe.createBadge.call(e,n.language.toUpperCase()),list:t,type:"language"}});a.unshift({value:-1,checked:!this.captions.toggled,title:be("disabled",this.config),list:t,type:"language"}),a.forEach(Pe.createMenuItem.bind(this)),Pe.updateSetting.call(this,"captions",t)}}},setSpeedMenu:function(e){var t=this;if(M.element(this.elements.settings.panels.speed)){var n=this.elements.settings.panels.speed.querySelector('[role="menu"]');M.array(e)?this.options.speed=e:(this.isHTML5||this.isVimeo)&&(this.options.speed=[.5,.75,1,1.25,1.5,1.75,2]),this.options.speed=this.options.speed.filter(function(e){return t.config.speed.options.includes(e)});var i=!M.empty(this.options.speed)&&this.options.speed.length>1;Pe.toggleMenuButton.call(this,"speed",i),Q(n),Pe.checkMenu.call(this),i&&(this.options.speed.forEach(function(e){Pe.createMenuItem.call(t,{value:e,list:n,type:"speed",title:Pe.getLabel.call(t,"speed",e)})}),Pe.updateSetting.call(this,"speed",n))}},checkMenu:function(){var e=this.elements.settings.buttons,t=!M.empty(e)&&Object.values(e).some(function(e){return!e.hidden});$(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 n=e;M.element(n)||(n=Object.values(this.elements.settings.panels).find(function(e){return!e.hidden}));var i=n.querySelector('[role^="menuitem"]');ie.call(this,i,t)}},toggleMenu:function(e){var t=this.elements.settings.popup,n=this.elements.buttons.settings;if(M.element(t)&&M.element(n)){var i=t.hidden,a=i;if(M.boolean(e))a=e;else if(M.keyboardEvent(e)&&27===e.which)a=!1;else if(M.event(e)){var s=M.function(e.composedPath)?e.composedPath()[0]:e.target,r=t.contains(s);if(r||!r&&e.target!==n&&a)return}n.setAttribute("aria-expanded",a),$(t,!a),G(this.elements.container,this.config.classNames.menu.open,a),a&&M.keyboardEvent(e)?Pe.focusFirstMenuItem.call(this,null,!0):a||i||ie.call(this,n,M.keyboardEvent(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 n=t.scrollWidth,i=t.scrollHeight;return Y(t),{width:n,height:i}},showMenuPanel:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",n=arguments.length>1&&void 0!==arguments[1]&&arguments[1],i=this.elements.container.querySelector("#plyr-settings-".concat(this.id,"-").concat(t));if(M.element(i)){var a=i.parentNode,s=Array.from(a.children).find(function(e){return!e.hidden});if(re.transitions&&!re.reducedMotion){a.style.width="".concat(s.scrollWidth,"px"),a.style.height="".concat(s.scrollHeight,"px");var r=Pe.getMenuSize.call(this,i),o=function t(n){n.target===a&&["width","height"].includes(n.propertyName)&&(a.style.width="",a.style.height="",q.call(e,a,x,t))};j.call(this,a,x,o),a.style.width="".concat(r.width,"px"),a.style.height="".concat(r.height,"px")}$(s,!0),$(i,!1),Pe.focusFirstMenuItem.call(this,i,n)}},setDownloadUrl:function(){var e=this.elements.buttons.download;M.element(e)&&e.setAttribute("href",this.download)},create:function(e){var t=this,n=Pe.bindMenuItemShortcuts,i=Pe.createButton,a=Pe.createProgress,s=Pe.createRange,r=Pe.createTime,o=Pe.setQualityMenu,l=Pe.setSpeedMenu,c=Pe.showMenuPanel;this.elements.controls=null,this.config.controls.includes("play-large")&&this.elements.container.appendChild(i.call(this,"play-large"));var u=z("div",J(this.config.selectors.controls.wrapper));this.elements.controls=u;var d={class:"plyr__controls__item"};return he(this.config.controls).forEach(function(o){if("restart"===o&&u.appendChild(i.call(t,"restart",d)),"rewind"===o&&u.appendChild(i.call(t,"rewind",d)),"play"===o&&u.appendChild(i.call(t,"play",d)),"fast-forward"===o&&u.appendChild(i.call(t,"fast-forward",d)),"progress"===o){var l=z("div",{class:"".concat(d.class," plyr__progress__container")}),h=z("div",J(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 m=z("span",{class:t.config.classNames.tooltip},"00:00");h.appendChild(m),t.elements.display.seekTooltip=m}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 p=t.elements.volume;if(M.element(p)&&u.contains(p)||(p=z("div",B({},d,{class:"".concat(d.class," plyr__volume").trim()})),t.elements.volume=p,u.appendChild(p)),"mute"===o&&p.appendChild(i.call(t,"mute")),"volume"===o){var f={max:1,step:.05,value:t.config.volume};p.appendChild(s.call(t,"volume",B(f,{id:"plyr-volume-".concat(e.id)})))}}if("captions"===o&&u.appendChild(i.call(t,"captions",d)),"settings"===o&&!M.empty(t.config.settings)){var g=z("div",B({},d,{class:"".concat(d.class," plyr__menu").trim(),hidden:""}));g.appendChild(i.call(t,"settings",{"aria-haspopup":!0,"aria-controls":"plyr-settings-".concat(e.id),"aria-expanded":!1}));var y=z("div",{class:"plyr__menu__container",id:"plyr-settings-".concat(e.id),hidden:""}),v=z("div"),b=z("div",{id:"plyr-settings-".concat(e.id,"-home")}),k=z("div",{role:"menu"});b.appendChild(k),v.appendChild(b),t.elements.settings.panels.home=b,t.config.settings.forEach(function(i){var a=z("button",B(J(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:""}));n.call(t,a,i),j(a,"click",function(){c.call(t,i,!1)});var s=z("span",null,be(i,t.config)),r=z("span",{class:t.config.classNames.menu.value});r.innerHTML=e[i],s.appendChild(r),a.appendChild(s),k.appendChild(a);var o=z("div",{id:"plyr-settings-".concat(e.id,"-").concat(i),hidden:""}),l=z("button",{type:"button",class:"".concat(t.config.classNames.control," ").concat(t.config.classNames.control,"--back")});l.appendChild(z("span",{"aria-hidden":!0},be(i,t.config))),l.appendChild(z("span",{class:t.config.classNames.hidden},be("menuBack",t.config))),j(o,"keydown",function(e){37===e.which&&(e.preventDefault(),e.stopPropagation(),c.call(t,"home",!0))},!1),j(l,"click",function(){c.call(t,"home",!1)}),o.appendChild(l),o.appendChild(z("div",{role:"menu"})),o.appendChild(z("div",{role:"menucaptions"})),v.appendChild(o),t.elements.settings.buttons[i]=a,t.elements.settings.panels[i]=o}),y.appendChild(v),g.appendChild(y),u.appendChild(g),t.elements.settings.popup=y,t.elements.settings.menu=g}if("pip"===o&&re.pip&&u.appendChild(i.call(t,"pip",d)),"airplay"===o&&re.airplay&&u.appendChild(i.call(t,"airplay",d)),"download"===o){var w=B({},d,{element:"a",href:t.download,target:"_blank"}),T=t.config.urls.download;!M.url(T)&&t.isEmbed&&B(w,{icon:"logo-".concat(t.provider),label:t.provider}),u.appendChild(i.call(t,"download",w))}"fullscreen"===o&&u.appendChild(i.call(t,"fullscreen",d))}),this.isHTML5&&o.call(this,de.getQualityOptions.call(this)),l.call(this),u},inject:function(){var e=this;if(this.config.loadSprite){var t=Pe.getIconUrl.call(this);t.cors&&Te(t.url,"sprite-plyr")}this.id=Math.floor(1e4*Math.random());var n=null;this.elements.controls=null;var i={id:this.id,seektime:this.config.seekTime,title:this.config.title},s=!0;M.function(this.config.controls)&&(this.config.controls=this.config.controls.call(this,i)),this.config.controls||(this.config.controls=[]),M.element(this.config.controls)||M.string(this.config.controls)?n=this.config.controls:(n=Pe.create.call(this,{id:this.id,seektime:this.config.seekTime,speed:this.speed,quality:this.quality,captions:xe.getLabel.call(this)}),s=!1);var r,o=function(e){var t=e;return Object.entries(i).forEach(function(e){var n=a(e,2),i=n[0],s=n[1];t=pe(t,"{".concat(i,"}"),s)}),t};if(s&&(M.string(this.config.controls)?n=o(n):M.element(n)&&(n.innerHTML=o(n.innerHTML))),M.string(this.config.selectors.controls.container)&&(r=document.querySelector(this.config.selectors.controls.container)),M.element(r)||(r=this.elements.container),r[M.element(n)?"insertAdjacentElement":"insertAdjacentHTML"]("afterbegin",n),M.element(this.elements.controls)||Pe.findElements.call(this),!M.empty(this.elements.buttons)){var l=function(t){var n=e.config.classNames.controlPressed;Object.defineProperty(t,"pressed",{enumerable:!0,get:function(){return Z(t,n)},set:function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];G(t,n,e)}})};Object.values(this.elements.buttons).filter(Boolean).forEach(function(e){M.array(e)||M.nodeList(e)?Array.from(e).filter(Boolean).forEach(l):l(e)})}if(I.isEdge&&L(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),m=te.call(this,h);Array.from(m).forEach(function(t){G(t,e.config.classNames.hidden,!1),G(t,e.config.classNames.tooltip,!0)})}}};function Ne(e){var t=e;if(!(arguments.length>1&&void 0!==arguments[1])||arguments[1]){var n=document.createElement("a");n.href=t,t=n.href}try{return new URL(t)}catch(e){return null}}function Me(e){var t=new URLSearchParams;return M.object(e)&&Object.entries(e).forEach(function(e){var n=a(e,2),i=n[0],s=n[1];t.set(i,s)}),t}var xe={setup:function(){if(this.supported.ui)if(!this.isVideo||this.isYouTube||this.isHTML5&&!re.textTracks)M.array(this.config.controls)&&this.config.controls.includes("settings")&&this.config.settings.includes("captions")&&Pe.setCaptionsMenu.call(this);else{if(M.element(this.elements.captions)||(this.elements.captions=z("div",J(this.config.selectors.captions)),function(e,t){M.element(e)&&M.element(t)&&t.parentNode.insertBefore(e,t.nextSibling)}(this.elements.captions,this.elements.wrapper)),I.isIE&&window.URL){var e=this.media.querySelectorAll("track");Array.from(e).forEach(function(e){var t=e.getAttribute("src"),n=Ne(t);null!==n&&n.hostname!==window.location.href.hostname&&["http:","https:"].includes(n.protocol)&&we(t,"blob").then(function(t){e.setAttribute("src",window.URL.createObjectURL(t))}).catch(function(){Y(e)})})}var t=he((navigator.languages||[navigator.language||navigator.userLanguage||"en"]).map(function(e){return e.split("-")[0]})),n=(this.storage.get("language")||this.config.captions.language||"auto").toLowerCase();if("auto"===n)n=a(t,1)[0];var i=this.storage.get("captions");if(M.boolean(i)||(i=this.config.captions.active),Object.assign(this.captions,{toggled:!1,active:i,language:n,languages:t}),this.isHTML5){var s=this.config.captions.update?"addtrack removetrack":"removetrack";j.call(this,this.media.textTracks,s,xe.update.bind(this))}setTimeout(xe.update.bind(this),0)}},update:function(){var e=this,t=xe.getTracks.call(this,!0),n=this.captions,i=n.active,a=n.language,s=n.meta,r=n.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",j.call(e,t,"cuechange",function(){return xe.updateCues.call(e)})}),(o&&this.language!==a||!t.includes(r))&&(xe.setLanguage.call(this,a),xe.toggle.call(this,i&&o)),G(this.elements.container,this.config.classNames.captions.enabled,!M.empty(t)),(this.config.controls||[]).includes("settings")&&this.config.settings.includes("captions")&&Pe.setCaptionsMenu.call(this)},toggle:function(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];if(this.supported.ui){var n=this.captions.toggled,i=this.config.classNames.captions.active,a=M.nullOrUndefined(e)?!n:e;if(a!==n){if(t||(this.captions.active=a,this.storage.set({captions:a})),!this.language&&a&&!t){var r=xe.getTracks.call(this),o=xe.findTrack.call(this,[this.captions.language].concat(s(this.captions.languages)),!0);return this.captions.language=o.language,void xe.set.call(this,r.indexOf(o))}this.elements.buttons.captions&&(this.elements.buttons.captions.pressed=a),G(this.elements.container,i,a),this.captions.toggled=a,Pe.updateSetting.call(this,"captions"),D.call(this,this.media,a?"captionsenabled":"captionsdisabled")}}},set:function(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],n=xe.getTracks.call(this);if(-1!==e)if(M.number(e))if(e in n){if(this.captions.currentTrack!==e){this.captions.currentTrack=e;var i=n[e],a=i||{},s=a.language;this.captions.currentTrackNode=i,Pe.updateSetting.call(this,"captions"),t||(this.captions.language=s,this.storage.set({language:s})),this.isVimeo&&this.embed.enableTextTrack(s),D.call(this,this.media,"languagechange")}xe.toggle.call(this,!0,t),this.isHTML5&&this.isVideo&&xe.updateCues.call(this)}else this.debug.warn("Track not found",e);else this.debug.warn("Invalid caption argument",e);else xe.toggle.call(this,!1,t)},setLanguage:function(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];if(M.string(e)){var n=e.toLowerCase();this.captions.language=n;var i=xe.getTracks.call(this),a=xe.findTrack.call(this,[n]);xe.set.call(this,i.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],n=Array.from((this.media||{}).textTracks||[]);return n.filter(function(n){return!e.isHTML5||t||e.captions.meta.has(n)}).filter(function(e){return["captions","subtitles"].includes(e.kind)})},findTrack:function(e){var t,n=this,i=arguments.length>1&&void 0!==arguments[1]&&arguments[1],a=xe.getTracks.call(this),s=function(e){return Number((n.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||(i?r[0]:void 0)},getCurrentTrack:function(){return xe.getTracks.call(this)[this.currentTrack]},getLabel:function(e){var t=e;return!M.track(t)&&re.textTracks&&this.captions.toggled&&(t=xe.getCurrentTrack.call(this)),M.track(t)?M.empty(t.label)?M.empty(t.language)?be("enabled",this.config):e.language.toUpperCase():t.label:be("disabled",this.config)},updateCues:function(e){if(this.supported.ui)if(M.element(this.elements.captions))if(M.nullOrUndefined(e)||Array.isArray(e)){var t=e;if(!t){var n=xe.getCurrentTrack.call(this);t=Array.from((n||{}).activeCues||[]).map(function(e){return e.getCueAsHTML()}).map(ye)}var i=t.map(function(e){return e.trim()}).join("\n");if(i!==this.elements.captions.innerHTML){Q(this.elements.captions);var a=z("span",J(this.config.selectors.caption));a.innerHTML=i,this.elements.captions.appendChild(a),D.call(this,this.media,"cuechange")}}else this.debug.warn("updateCues: Invalid input",e);else this.debug.warn("No captions element to render to")}},Le={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]},loop:{active:!1},speed:{selected:1,options:[.5,.75,1,1.25,1.5,1.75,2]},keyboard:{focused:!0,global:!1},tooltips:{controls:!1,seek:!0},captions:{active:!1,language:"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",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},youtube:{noCookie:!1,rel:0,showinfo:0,iv_load_policy:3,modestbranding:1}},Ie="picture-in-picture",_e="inline",Oe={html5:"html5",youtube:"youtube",vimeo:"vimeo"},je={audio:"audio",video:"video"};var qe=function(){},He=function(){function t(){var n=arguments.length>0&&void 0!==arguments[0]&&arguments[0];e(this,t),this.enabled=window.console&&n,this.enabled&&this.log("Debugging enabled")}return n(t,[{key:"log",get:function(){return this.enabled?Function.prototype.bind.call(console.log,console):qe}},{key:"warn",get:function(){return this.enabled?Function.prototype.bind.call(console.warn,console):qe}},{key:"error",get:function(){return this.enabled?Function.prototype.bind.call(console.error,console):qe}}]),t}();function De(){if(this.enabled){var e=this.player.elements.buttons.fullscreen;M.element(e)&&(e.pressed=this.active),D.call(this.player,this.target,this.active?"enterfullscreen":"exitfullscreen",!0),I.isIos||function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if(M.element(e)){var n=te.call(this,"button:not(:disabled), input:not(:disabled), [tabindex]"),i=n[0],a=n[n.length-1];O.call(this,this.elements.container,"keydown",function(e){if("Tab"===e.key&&9===e.keyCode){var t=document.activeElement;t!==a||e.shiftKey?t===i&&e.shiftKey&&(a.focus(),e.preventDefault()):(i.focus(),e.preventDefault())}},t,!1)}}.call(this.player,this.target,this.active)}}function Fe(){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":"",G(this.target,this.player.config.classNames.fullscreen.fallback,e),I.isIos){var t=document.head.querySelector('meta[name="viewport"]'),n="viewport-fit=cover";t||(t=document.createElement("meta")).setAttribute("name","viewport");var i=M.string(t.content)&&t.content.includes(n);e?(this.cleanupViewport=!i,i||(t.content+=",".concat(n))):this.cleanupViewport&&(t.content=t.content.split(",").filter(function(e){return e.trim()!==n}).join(","))}De.call(this)}var Re=function(){function t(n){var i=this;e(this,t),this.player=n,this.prefix=t.prefix,this.property=t.property,this.scrollPosition={x:0,y:0},this.forceFallback="force"===n.config.fullscreen.fallback,j.call(this.player,document,"ms"===this.prefix?"MSFullscreenChange":"".concat(this.prefix,"fullscreenchange"),function(){De.call(i)}),j.call(this.player,this.player.elements.container,"dblclick",function(e){M.element(i.player.elements.controls)&&i.player.elements.controls.contains(e.target)||i.toggle()}),this.update()}return n(t,[{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");G(this.player.elements.container,this.player.config.classNames.fullscreen.enabled,this.enabled)}},{key:"enter",value:function(){this.enabled&&(I.isIos&&this.player.config.fullscreen.iosNative?this.target.webkitEnterFullscreen():!t.native||this.forceFallback?Fe.call(this,!0):this.prefix?M.empty(this.prefix)||this.target["".concat(this.prefix,"Request").concat(this.property)]():this.target.requestFullscreen())}},{key:"exit",value:function(){if(this.enabled)if(I.isIos&&this.player.config.fullscreen.iosNative)this.target.webkitExitFullscreen(),this.player.play();else if(!t.native||this.forceFallback)Fe.call(this,!1);else if(this.prefix){if(!M.empty(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?Z(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 I.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(M.function(document.exitFullscreen))return"";var e="";return["webkit","moz","ms"].some(function(t){return!(!M.function(document["".concat(t,"ExitFullscreen")])&&!M.function(document["".concat(t,"CancelFullScreen")]))&&(e=t,!0)}),e}},{key:"property",get:function(){return"moz"===this.prefix?"FullScreen":"Fullscreen"}}]),t}();function Ve(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1;return new Promise(function(n,i){var a=new Image,s=function(){delete a.onload,delete a.onerror,(a.naturalWidth>=t?n:i)(a)};Object.assign(a,{onload:s,onerror:s,src:e})})}var Be={addStyleHook:function(){G(this.elements.container,this.config.selectors.container.replace(".",""),!0),G(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 Be.toggleNativeControls.call(this,!0);M.element(this.elements.controls)||(Pe.inject.call(this),this.listeners.controls()),Be.toggleNativeControls.call(this),this.isHTML5&&xe.setup.call(this),this.volume=null,this.muted=null,this.loop=null,this.quality=null,this.speed=null,Pe.updateVolume.call(this),Pe.timeUpdate.call(this),Be.checkPlaying.call(this),G(this.elements.container,this.config.classNames.pip.supported,re.pip&&this.isHTML5&&this.isVideo),G(this.elements.container,this.config.classNames.airplay.supported,re.airplay&&this.isHTML5),G(this.elements.container,this.config.classNames.isIos,I.isIos),G(this.elements.container,this.config.classNames.isTouch,this.touch),this.ready=!0,setTimeout(function(){D.call(e,e.media,"ready")},0),Be.setTitle.call(this),this.poster&&Be.setPoster.call(this,this.poster,!1).catch(function(){}),this.config.duration&&Pe.durationUpdate.call(this)},setTitle:function(){var e=be("play",this.config);if(M.string(this.config.title)&&!M.empty(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=ne.call(this,"iframe");if(!M.element(t))return;var n=M.empty(this.config.title)?"video":this.config.title,i=be("frameTitle",this.config);t.setAttribute("title",i.replace("{title}",n))}},togglePoster:function(e){G(this.elements.container,this.config.classNames.posterEnabled,e)},setPoster:function(e){var t=this,n=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];return n&&this.poster?Promise.reject(new Error("Poster already set")):(this.media.setAttribute("poster",e),R.call(this).then(function(){return Ve(e)}).catch(function(n){throw e===t.poster&&Be.togglePoster.call(t,!1),n}).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:""}),Be.togglePoster.call(t,!0),e}))},checkPlaying:function(e){var t=this;G(this.elements.container,this.config.classNames.playing,this.playing),G(this.elements.container,this.config.classNames.paused,this.paused),G(this.elements.container,this.config.classNames.stopped,this.stopped),Array.from(this.elements.buttons.play||[]).forEach(function(e){Object.assign(e,{pressed:t.playing})}),M.event(e)&&"timeupdate"===e.type||Be.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(){G(t.elements.container,t.config.classNames.loading,t.loading),Be.toggleControls.call(t)},this.loading?250:0)},toggleControls:function(e){var t=this.elements.controls;if(t&&this.config.hideControls){var n=this.touch&&this.lastSeekTime+2e3>Date.now();this.toggleControls(Boolean(e||this.loading||this.paused||t.pressed||t.hover||n))}}},Ue=function(){function t(n){e(this,t),this.player=n,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 n(t,[{key:"handleKey",value:function(e){var t=this.player,n=t.elements,i=e.keyCode?e.keyCode:e.which,a="keydown"===e.type,s=a&&i===this.lastKey;if(!(e.altKey||e.ctrlKey||e.metaKey||e.shiftKey)&&M.number(i)){if(a){var r=document.activeElement;if(M.element(r)){var o=t.config.selectors.editable;if(r!==n.inputs.seek&&ee(r,o))return;if(32===e.which&&ee(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(i)&&(e.preventDefault(),e.stopPropagation()),i){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*(i-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===i&&!t.fullscreen.usingNative&&t.fullscreen.active&&t.fullscreen.toggle(),this.lastKey=i}else this.lastKey=null}}},{key:"toggleMenu",value:function(e){Pe.toggleMenu.call(this.player,e)}},{key:"firstTouch",value:function(){var e=this.player,t=e.elements;e.touch=!0,G(t.container,e.config.classNames.isTouch,!0)}},{key:"setTabFocus",value:function(e){var t=this.player,n=t.elements;if(clearTimeout(this.focusTimer),"keydown"!==e.type||9===e.which){"keydown"===e.type&&(this.lastKeyDown=e.timeStamp);var i,a=e.timeStamp-this.lastKeyDown<=20;if("focus"!==e.type||a)i=t.config.classNames.tabFocus,G(te.call(t,".".concat(i)),i,!1),this.focusTimer=setTimeout(function(){var e=document.activeElement;n.container.contains(e)&&G(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&&O.call(t,window,"keydown keyup",this.handleKey,e,!1),O.call(t,document.body,"click",this.toggleMenu,e),H.call(t,document.body,"touchstart",this.firstTouch),O.call(t,document.body,"keydown focus blur",this.setTabFocus,e,!1,!0)}},{key:"container",value:function(){var e=this.player,t=e.config,n=e.elements,i=e.timers;!t.keyboard.global&&t.keyboard.focused&&j.call(e,n.container,"keydown keyup",this.handleKey,!1),j.call(e,n.container,"mousemove mouseleave touchstart touchmove enterfullscreen exitfullscreen",function(t){var a=n.controls;a&&"enterfullscreen"===t.type&&(a.pressed=!1,a.hover=!1);var s=0;["touchstart","touchmove","mousemove"].includes(t.type)&&(Be.toggleControls.call(e,!0),s=e.touch?3e3:2e3),clearTimeout(i.controls),i.controls=setTimeout(function(){return Be.toggleControls.call(e,!1)},s)});var s=function(t){if(!t)return ue.call(e);var i=n.container.getBoundingClientRect(),a=i.width,s=i.height;return ue.call(e,"".concat(a,":").concat(s))},r=function(){clearTimeout(i.resized),i.resized=setTimeout(s,50)};j.call(e,n.container,"enterfullscreen exitfullscreen",function(t){var i=e.fullscreen,o=i.target,l=i.usingNative;if(o===n.container&&(e.isEmbed||!M.empty(e.config.ratio))){var c="enterfullscreen"===t.type,u=s(c);u.padding;!function(t,n,i){if(e.isVimeo){var s=e.elements.wrapper.firstChild,r=a(t,2)[1],o=a(ce.call(e),2),l=o[0],c=o[1];s.style.maxWidth=i?"".concat(r/c*l,"px"):null,s.style.margin=i?"0 auto":null}}(u.ratio,0,c),l||(c?j.call(e,window,"resize",r):q.call(e,window,"resize",r))}})}},{key:"media",value:function(){var e=this,t=this.player,n=t.elements;if(j.call(t,t.media,"timeupdate seeking seeked",function(e){return Pe.timeUpdate.call(t,e)}),j.call(t,t.media,"durationchange loadeddata loadedmetadata",function(e){return Pe.durationUpdate.call(t,e)}),j.call(t,t.media,"canplay loadeddata",function(){$(n.volume,!t.hasAudio),$(n.buttons.mute,!t.hasAudio)}),j.call(t,t.media,"ended",function(){t.isHTML5&&t.isVideo&&t.config.resetOnEnd&&t.restart()}),j.call(t,t.media,"progress playing seeking seeked",function(e){return Pe.updateProgress.call(t,e)}),j.call(t,t.media,"volumechange",function(e){return Pe.updateVolume.call(t,e)}),j.call(t,t.media,"playing play pause ended emptied timeupdate",function(e){return Be.checkPlaying.call(t,e)}),j.call(t,t.media,"waiting canplay seeked playing",function(e){return Be.checkLoading.call(t,e)}),t.supported.ui&&t.config.clickToPlay&&!t.isAudio){var i=ne.call(t,".".concat(t.config.classNames.video));if(!M.element(i))return;j.call(t,n.container,"click",function(a){([n.container,i].includes(a.target)||i.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&&j.call(t,n.wrapper,"contextmenu",function(e){e.preventDefault()},!1),j.call(t,t.media,"volumechange",function(){t.storage.set({volume:t.volume,muted:t.muted})}),j.call(t,t.media,"ratechange",function(){Pe.updateSetting.call(t,"speed"),t.storage.set({speed:t.speed})}),j.call(t,t.media,"qualitychange",function(e){Pe.updateSetting.call(t,"quality",null,e.detail.quality)}),j.call(t,t.media,"ready qualitychange",function(){Pe.setDownloadUrl.call(t)});var a=t.config.events.concat(["keyup","keydown"]).join(" ");j.call(t,t.media,a,function(e){var i=e.detail,a=void 0===i?{}:i;"error"===e.type&&(a=t.media.error),D.call(t,n.container,e.type,!0,a)})}},{key:"proxy",value:function(e,t,n){var i=this.player,a=i.config.listeners[n],s=!0;M.function(a)&&(s=a.call(i,e)),s&&M.function(t)&&t.call(i,e)}},{key:"bind",value:function(e,t,n,i){var a=this,s=!(arguments.length>4&&void 0!==arguments[4])||arguments[4],r=this.player,o=r.config.listeners[i],l=M.function(o);j.call(r,e,t,function(e){return a.proxy(e,n,i)},s&&!l)}},{key:"controls",value:function(){var e=this,t=this.player,n=t.elements,i=I.isIE?"change":"input";if(n.buttons.play&&Array.from(n.buttons.play).forEach(function(n){e.bind(n,"click",t.togglePlay,"play")}),this.bind(n.buttons.restart,"click",t.restart,"restart"),this.bind(n.buttons.rewind,"click",t.rewind,"rewind"),this.bind(n.buttons.fastForward,"click",t.forward,"fastForward"),this.bind(n.buttons.mute,"click",function(){t.muted=!t.muted},"mute"),this.bind(n.buttons.captions,"click",function(){return t.toggleCaptions()}),this.bind(n.buttons.download,"click",function(){D.call(t,t.media,"download")},"download"),this.bind(n.buttons.fullscreen,"click",function(){t.fullscreen.toggle()},"fullscreen"),this.bind(n.buttons.pip,"click",function(){t.pip="toggle"},"pip"),this.bind(n.buttons.airplay,"click",t.airplay,"airplay"),this.bind(n.buttons.settings,"click",function(e){e.stopPropagation(),Pe.toggleMenu.call(t,e)}),this.bind(n.buttons.settings,"keyup",function(e){var n=e.which;[13,32].includes(n)&&(13!==n?(e.preventDefault(),e.stopPropagation(),Pe.toggleMenu.call(t,e)):Pe.focusFirstMenuItem.call(t,null,!0))},null,!1),this.bind(n.settings.menu,"keydown",function(e){27===e.which&&Pe.toggleMenu.call(t,e)}),this.bind(n.inputs.seek,"mousedown mousemove",function(e){var t=n.progress.getBoundingClientRect(),i=100/t.width*(e.pageX-t.left);e.currentTarget.setAttribute("seek-value",i)}),this.bind(n.inputs.seek,"mousedown mouseup keydown keyup touchstart touchend",function(e){var n=e.currentTarget,i=e.keyCode?e.keyCode:e.which;if(!M.keyboardEvent(e)||39===i||37===i){t.lastSeekTime=Date.now();var a=n.hasAttribute("play-on-seeked"),s=["mouseup","touchend","keyup"].includes(e.type);a&&s?(n.removeAttribute("play-on-seeked"),t.play()):!s&&t.playing&&(n.setAttribute("play-on-seeked",""),t.pause())}}),I.isIos){var s=te.call(t,'input[type="range"]');Array.from(s).forEach(function(t){return e.bind(t,i,function(e){return L(e.target)})})}this.bind(n.inputs.seek,i,function(e){var n=e.currentTarget,i=n.getAttribute("seek-value");M.empty(i)&&(i=n.value),n.removeAttribute("seek-value"),t.currentTime=i/n.max*t.duration},"seek"),this.bind(n.progress,"mouseenter mouseleave mousemove",function(e){return Pe.updateSeekTooltip.call(t,e)}),this.bind(n.progress,"mousemove touchmove",function(e){var n=t.previewThumbnails;n&&n.loaded&&n.startMove(e)}),this.bind(n.progress,"mouseleave click",function(){var e=t.previewThumbnails;e&&e.loaded&&e.endMove(!1,!0)}),this.bind(n.progress,"mousedown touchstart",function(e){var n=t.previewThumbnails;n&&n.loaded&&n.startScrubbing(e)}),this.bind(n.progress,"mouseup touchend",function(e){var n=t.previewThumbnails;n&&n.loaded&&n.endScrubbing(e)}),I.isWebkit&&Array.from(te.call(t,'input[type="range"]')).forEach(function(n){e.bind(n,"input",function(e){return Pe.updateRangeFill.call(t,e.target)})}),t.config.toggleInvert&&!M.element(n.display.duration)&&this.bind(n.display.currentTime,"click",function(){0!==t.currentTime&&(t.config.invertTime=!t.config.invertTime,Pe.timeUpdate.call(t))}),this.bind(n.inputs.volume,i,function(e){t.volume=e.target.value},"volume"),this.bind(n.controls,"mouseenter mouseleave",function(e){n.controls.hover=!t.touch&&"mouseenter"===e.type}),this.bind(n.controls,"mousedown mouseup touchstart touchend touchcancel",function(e){n.controls.pressed=["mousedown","touchstart"].includes(e.type)}),this.bind(n.controls,"focusin",function(){var i=t.config,a=t.timers;G(n.controls,i.classNames.noTransition,!0),Be.toggleControls.call(t,!0),setTimeout(function(){G(n.controls,i.classNames.noTransition,!1)},0);var s=e.touch?3e3:4e3;clearTimeout(a.controls),a.controls=setTimeout(function(){return Be.toggleControls.call(t,!1)},s)}),this.bind(n.inputs.volume,"wheel",function(e){var n=e.webkitDirectionInvertedFromDevice,i=a([e.deltaX,-e.deltaY].map(function(e){return n?-e:e}),2),s=i[0],r=i[1],o=Math.sign(Math.abs(s)>Math.abs(r)?s:r);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 We=function(e,t){return e(t={exports:{}},t.exports),t.exports}(function(e,t){e.exports=function(){var e=function(){},t={},n={},i={};function a(e,t){if(e){var a=i[e];if(n[e]=t,a)for(;a.length;)a[0](e,t),a.splice(0,1)}}function s(t,n){t.call&&(t={success:t}),n.length?(t.error||e)(n):(t.success||e)(t)}function r(t,n,i,a){var s,o,l=document,c=i.async,u=(i.numRetries||0)+1,d=i.before||e,h=t.replace(/^(css|img)!/,"");a=a||0,/(^css!|\.css$)/.test(t)?((o=l.createElement("link")).rel="stylesheet",o.href=h,(s="hideFocus"in o)&&o.relList&&(s=0,o.rel="preload",o.as="style")):/(^img!|\.(png|gif|jpg|svg)$)/.test(t)?(o=l.createElement("img")).src=h:((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 n=function(){var t=Se(Math.max(e.manager.getRemainingTime(),0)),n="".concat(be("advertisement",e.player.config)," - ").concat(t);e.elements.container.setAttribute("data-badge-text",n)};this.countdownTimer=setInterval(n,100)}},{key:"onAdsManagerLoaded",value:function(e){var t=this;if(this.enabled){var n=new google.ima.AdsRenderingSettings;n.restoreCustomPlaybackStateOnAdBreakComplete=!0,n.enablePreloading=!0,this.manager=e.getAdsManager(this.player,n),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;M.empty(this.cuePoints)||this.cuePoints.forEach(function(t){if(0!==t&&-1!==t&&t1?n-1:0),a=1;a ?)([0-9]{2})?:?([0-9]{2}):([0-9]{2}).([0-9]{2,3})/);r&&(t.startTime=60*Number(r[1]||0)*60+60*Number(r[2])+Number(r[3])+Number("0.".concat(r[4])),t.endTime=60*Number(r[6]||0)*60+60*Number(r[7])+Number(r[8])+Number("0.".concat(r[9])))}}),t.text&&r.push(t)}),r),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),n()},l.src=o.urlPrefix+o.frames[0].text})})}},{key:"startMove",value:function(e){if(this.loaded&&M.event(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(),n=100/t.width*(e.pageX-t.left);this.seekTime=this.player.media.duration*(n/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=Se(this.seekTime)}this.showImageAtCurrentTime()}}},{key:"endMove",value:function(){this.toggleThumbContainer(!1,!0)}},{key:"startScrubbing",value:function(e){!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):H.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=z("div",{class:this.player.config.classNames.previewThumbnails.thumbContainer}),this.elements.thumb.imageContainer=z("div",{class:this.player.config.classNames.previewThumbnails.imageContainer}),this.elements.thumb.container.appendChild(this.elements.thumb.imageContainer);var e=z("div",{class:this.player.config.classNames.previewThumbnails.timeContainer});this.elements.thumb.time=z("span",{},"00:00"),e.appendChild(this.elements.thumb.time),this.elements.thumb.container.appendChild(e),M.element(this.player.elements.progress)&&this.player.elements.progress.appendChild(this.elements.thumb.container),this.elements.scrubbing.container=z("div",{class:this.player.config.classNames.previewThumbnails.scrubbingContainer}),this.player.elements.wrapper.appendChild(this.elements.scrubbing.container)}},{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}),n=t>=0,i=0;this.mouseDown||this.toggleThumbContainer(n),n&&(this.thumbnails.forEach(function(n,a){e.loadedImages.includes(n.frames[t].text)&&(i=a)}),t!==this.showingThumb&&(this.showingThumb=t,this.loadImage(i)))}},{key:"loadImage",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,n=this.showingThumb,i=this.thumbnails[t],a=i.urlPrefix,s=i.frames[n],r=i.frames[n].text,o=a+r;if(this.currentImageElement&&this.currentImageElement.dataset.filename===r)this.showImage(this.currentImageElement,s,t,n,r,!1),this.currentImageElement.dataset.index=n,this.removeOldImages(this.currentImageElement);else{this.loadingImage&&this.usingSprites&&(this.loadingImage.onload=null);var l=new Image;l.src=o,l.dataset.index=n,l.dataset.filename=r,this.showingThumbFilename=r,this.player.debug.log("Loading image: ".concat(o)),l.onload=function(){return e.showImage(l,s,t,n,r,!0)},this.loadingImage=l,this.removeOldImages(l)}}},{key:"showImage",value:function(e,t,n,i,a){var s=!(arguments.length>5&&void 0!==arguments[5])||arguments[5];this.player.debug.log("Showing thumb: ".concat(a,". num: ").concat(i,". qual: ").concat(n,". 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(i,!0).then(this.preloadNearby(i,!1)).then(this.getHigherQuality(n,e,t,a))}},{key:"removeOldImages",value:function(e){var t=this;Array.from(this.currentImageContainer.children).forEach(function(n){if("img"===n.tagName.toLowerCase()){var i=t.usingSprites?500:1e3;if(n.dataset.index!==e.dataset.index&&!n.dataset.deleting){n.dataset.deleting=!0;var a=t.currentImageContainer;setTimeout(function(){a.removeChild(n),t.player.debug.log("Removing thumb: ".concat(n.dataset.filename))},i)}}})}},{key:"preloadNearby",value:function(e){var t=this,n=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];return new Promise(function(i){setTimeout(function(){var a=t.thumbnails[0].frames[e].text;if(t.showingThumbFilename===a){var s;s=n?t.thumbnails[0].frames.slice(e):t.thumbnails[0].frames.slice(0,e).reverse();var r=!1;s.forEach(function(e){var n=e.text;if(n!==a&&!t.loadedImages.includes(n)){r=!0,t.player.debug.log("Preloading thumb filename: ".concat(n));var s=t.thumbnails[0].urlPrefix+n,o=new Image;o.src=s,o.onload=function(){t.player.debug.log("Preloaded thumb filename: ".concat(n)),t.loadedImages.includes(n)||t.loadedImages.push(n),i()}}}),r||i()}},300)})}},{key:"getHigherQuality",value:function(e,t,n,i){var a=this;if(e0&&void 0!==arguments[0]&&arguments[0],t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=this.player.config.classNames.previewThumbnails.thumbContainerShown;this.elements.thumb.container.classList.toggle(n,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.sizeSpecifiedInCSS=!0)}},{key:"setThumbContainerSizeAndPos",value:function(){if(!this.sizeSpecifiedInCSS){var e=Math.floor(this.thumbContainerHeight*this.thumbAspectRatio);this.elements.thumb.imageContainer.style.height="".concat(this.thumbContainerHeight,"px"),this.elements.thumb.imageContainer.style.width="".concat(e,"px")}this.setThumbContainerPos()}},{key:"setThumbContainerPos",value:function(){var e=this.player.elements.progress.getBoundingClientRect(),t=this.player.elements.container.getBoundingClientRect(),n=this.elements.thumb.container,i=t.left-e.left+10,a=t.right-e.left-n.clientWidth-10,s=this.mousePosX-e.left-n.clientWidth/2;sa&&(s=a),n.style.left="".concat(s,"px")}},{key:"setScrubbingContainerSize",value:function(){this.elements.scrubbing.container.style.width="".concat(this.player.media.clientWidth,"px"),this.elements.scrubbing.container.style.height="".concat(this.player.media.clientWidth/this.thumbAspectRatio,"px")}},{key:"setImageSizeAndOffset",value:function(e,t){if(this.usingSprites){var n=this.thumbContainerHeight/t.h;e.style.height="".concat(Math.floor(e.naturalHeight*n),"px"),e.style.width="".concat(Math.floor(e.naturalWidth*n),"px"),e.style.left="-".concat(t.x*n,"px"),e.style.top="-".concat(t.y*n,"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?Math.floor(this.player.media.clientWidth/this.thumbAspectRatio):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}(),et={insertElements:function(e,t){var n=this;M.string(t)?K(e,this.media,{src:t}):M.array(t)&&t.forEach(function(t){K(e,n.media,t)})},change:function(e){var t=this;V(e,"sources.length")?(de.cancelRequests.call(this),this.destroy.call(this,function(){t.options.quality=[],Y(t.media),t.media=null,M.element(t.elements.container)&&t.elements.container.removeAttribute("class");var n=e.sources,i=e.type,s=a(n,1)[0],r=s.provider,o=void 0===r?Oe.html5:r,l=s.src,c="html5"===o?i:"div",u="html5"===o?{}:{src:l};Object.assign(t,{provider:o,type:i,supported:re.check(i,o,t.config.playsinline),media:z(c,u)}),t.elements.container.appendChild(t.media),M.boolean(e.autoplay)&&(t.config.autoplay=e.autoplay),t.isHTML5&&(t.config.crossorigin&&t.media.setAttribute("crossorigin",""),t.config.autoplay&&t.media.setAttribute("autoplay",""),M.empty(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","")),Be.addStyleHook.call(t),t.isHTML5&&et.insertElements.call(t,"source",n),t.config.title=e.title,$e.setup.call(t),t.isHTML5&&Object.keys(e).includes("tracks")&&et.insertElements.call(t,"track",e.tracks),(t.isHTML5||t.isEmbed&&!t.supported.ui)&&Be.build.call(t),t.isHTML5&&t.media.load(),t.previewThumbnails&&t.previewThumbnails.load(),t.fullscreen.update()},!0)):this.debug.warn("Invalid source format")}};var tt,nt=function(){function t(n,i){var a=this;if(e(this,t),this.timers={},this.ready=!1,this.loading=!1,this.failed=!1,this.touch=re.touch,this.media=n,M.string(this.media)&&(this.media=document.querySelectorAll(this.media)),(window.jQuery&&this.media instanceof jQuery||M.nodeList(this.media)||M.array(this.media))&&(this.media=this.media[0]),this.config=B({},Le,t.defaults,i||{},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 He(this.config.debug),this.debug.log("Config",this.config),this.debug.log("Support",re),!M.nullOrUndefined(this.media)&&M.element(this.media))if(this.media.plyr)this.debug.warn("Target already setup");else if(this.config.enabled)if(re.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"),M.element(o)){if(l=Ne(o.getAttribute("src")),this.provider=function(e){return/^(https?:\/\/)?(www\.)?(youtube\.com|youtube-nocookie\.com|youtu\.?be)\/.+$/.test(e)?Oe.youtube:/^https?:\/\/player.vimeo.com\/video\/\d{0,9}(?=\b|\/)/.test(e)?Oe.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(M.empty(this.provider)||!Object.keys(Oe).includes(this.provider))return void this.debug.error("Setup failed: Invalid provider");this.type=je.video;break;case"video":case"audio":this.type=r,this.provider=Oe.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=re.check(this.type,this.provider,this.config.playsinline),this.supported.api?(this.eventListeners=[],this.listeners=new Ue(this),this.storage=new ke(this),this.media.plyr=this,M.element(this.elements.container)||(this.elements.container=z("div",{tabindex:0}),U(this.media,this.elements.container)),Be.addStyleHook.call(this),$e.setup.call(this),this.config.debug&&j.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)&&Be.build.call(this),this.listeners.container(),this.listeners.global(),this.fullscreen=new Re(this),this.config.ads.enabled&&(this.ads=new Ge(this)),this.isHTML5&&this.config.autoplay&&setTimeout(function(){return a.play()},10),this.lastSeekTime=0,this.config.previewThumbnails.enabled&&(this.previewThumbnails=new Ze(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 n(t,[{key:"play",value:function(){var e=this;return M.function(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(){this.playing&&M.function(this.media.pause)&&this.media.pause()}},{key:"togglePlay",value:function(e){(M.boolean(e)?e:!this.playing)?this.play():this.pause()}},{key:"stop",value:function(){this.isHTML5?(this.pause(),this.restart()):M.function(this.media.stop)&&this.media.stop()}},{key:"restart",value:function(){this.currentTime=0}},{key:"rewind",value:function(e){this.currentTime=this.currentTime-(M.number(e)?e:this.config.seekTime)}},{key:"forward",value:function(e){this.currentTime=this.currentTime+(M.number(e)?e:this.config.seekTime)}},{key:"increaseVolume",value:function(e){var t=this.media.muted?0:this.volume;this.volume=t+(M.number(e)?e:0)}},{key:"decreaseVolume",value:function(e){this.increaseVolume(-e)}},{key:"toggleCaptions",value:function(e){xe.toggle.call(this,e,!1)}},{key:"airplay",value:function(){re.airplay&&this.media.webkitShowPlaybackTargetPicker()}},{key:"toggleControls",value:function(e){if(this.supported.ui&&!this.isAudio){var t=Z(this.elements.container,this.config.classNames.hideControls),n=void 0===e?void 0:!e,i=G(this.elements.container,this.config.classNames.hideControls,n);if(i&&this.config.controls.includes("settings")&&!M.empty(this.config.settings)&&Pe.toggleMenu.call(this,!1),i!==t){var a=i?"controlshidden":"controlsshown";D.call(this,this.media,a)}return!i}return!1}},{key:"on",value:function(e,t){j.call(this,this.elements.container,e,t)}},{key:"once",value:function(e,t){H.call(this,this.elements.container,e,t)}},{key:"off",value:function(e,t){q(this.elements.container,e,t)}},{key:"destroy",value:function(e){var t=this,n=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if(this.ready){var i=function(){document.body.style.overflow="",t.embed=null,n?(Object.keys(t.elements).length&&(Y(t.elements.buttons.play),Y(t.elements.captions),Y(t.elements.controls),Y(t.elements.wrapper),t.elements.buttons.play=null,t.elements.captions=null,t.elements.controls=null,t.elements.wrapper=null),M.function(e)&&e()):(F.call(t),X(t.elements.original,t.elements.container),D.call(t,t.elements.original,"destroyed",!0),M.function(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?(Be.toggleNativeControls.call(this,!0),i()):this.isYouTube?(clearInterval(this.timers.buffering),clearInterval(this.timers.playing),null!==this.embed&&M.function(this.embed.destroy)&&this.embed.destroy(),i()):this.isVimeo&&(null!==this.embed&&this.embed.unload().then(i),setTimeout(i,200))}}},{key:"supports",value:function(e){return re.mime.call(this,e)}},{key:"isHTML5",get:function(){return this.provider===Oe.html5}},{key:"isEmbed",get:function(){return this.isYouTube||this.isVimeo}},{key:"isYouTube",get:function(){return this.provider===Oe.youtube}},{key:"isVimeo",get:function(){return this.provider===Oe.vimeo}},{key:"isVideo",get:function(){return this.type===je.video}},{key:"isAudio",get:function(){return this.type===je.audio}},{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=M.number(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 M.number(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,n=M.number(t)&&t!==1/0?t:0;return e||n}},{key:"volume",set:function(e){var t=e;M.string(t)&&(t=Number(t)),M.number(t)||(t=this.storage.get("volume")),M.number(t)||(t=this.config.volume),t>1&&(t=1),t<0&&(t=0),this.config.volume=t,this.media.volume=t,!M.empty(e)&&this.muted&&t>0&&(this.muted=!1)},get:function(){return Number(this.media.volume)}},{key:"muted",set:function(e){var t=e;M.boolean(t)||(t=this.storage.get("muted")),M.boolean(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,n=null;M.number(e)&&(n=e),M.number(n)||(n=this.storage.get("speed")),M.number(n)||(n=this.config.speed.selected);var i=this.minimumSpeed,a=this.maximumSpeed;n=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:255;return Math.min(Math.max(e,t),n)}(n,i,a),this.config.speed.selected=n,setTimeout(function(){t.media.playbackRate=n},0)},get:function(){return Number(this.media.playbackRate)}},{key:"minimumSpeed",get:function(){return this.isYouTube?Math.min.apply(Math,s(this.options.speed)):this.isVimeo?.5:.0625}},{key:"maximumSpeed",get:function(){return this.isYouTube?Math.max.apply(Math,s(this.options.speed)):this.isVimeo?2:16}},{key:"quality",set:function(e){var t=this.config.quality,n=this.options.quality;if(n.length){var i=[!M.empty(e)&&Number(e),this.storage.get("quality"),t.selected,t.default].find(M.number),a=!0;if(!n.includes(i)){var s=function(e,t){return M.array(e)&&e.length?e.reduce(function(e,n){return Math.abs(n-t)1&&void 0!==arguments[1]?arguments[1]:{},i=null;return M.string(e)?i=Array.from(document.querySelectorAll(e)):M.nodeList(e)?i=Array.from(e):M.array(e)&&(i=e.filter(M.element)),M.empty(i)?null:i.map(function(e){return new t(e,n)})}}]),t}();return nt.defaults=(tt=Le,JSON.parse(JSON.stringify(tt))),nt}); +"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: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})); //# 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 7bb0e87..424d5f5 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/src/js/config.js","node_modules/rangetouch/src/js/utils/css.js","node_modules/rangetouch/src/js/utils/is.js","node_modules/rangetouch/src/js/utils/numbers.js","src/js/utils/animation.js","node_modules/rangetouch/src/js/rangetouch.js","node_modules/rangetouch/src/js/utils/events.js","src/js/utils/is.js","src/js/utils/browser.js","src/js/utils/events.js","src/js/utils/objects.js","src/js/utils/elements.js","src/js/support.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","_slicedToArray","arr","Array","isArray","_arrayWithHoles","_arr","_n","_d","_e","undefined","_s","_i","Symbol","iterator","next","done","push","err","_iterableToArrayLimit","_nonIterableRest","_toConsumableArray","arr2","_arrayWithoutHoles","iter","toString","call","from","_iterableToArray","_nonIterableSpread","defaults","addCSS","thumbWidth","watch","matches","element","selector","document","querySelectorAll","includes","getConstructor","input","constructor","instanceOf","Boolean","isNullOrUndefined","isObject","isString","String","isNodeList","NodeList","is","nullOrUndefined","object","number","Number","isNaN","string","boolean","function","Function","array","nodeList","Element","event","Event","empty","keys","round","step","places","match","concat","Math","max","parseFloat","toFixed","events","type","RangeTouch","options","querySelector","rangeTouch","config","assign","init","enabled","style","userSelect","webKitUserSelect","touchAction","listeners","toggle","_this","method","forEach","set","percent","touch","changedTouches","min","getAttribute","delta","clientRect","getBoundingClientRect","width","clientX","left","disabled","preventDefault","get","dispatchEvent","trigger","arguments","targets","filter","observer","MutationObserver","mutations","mutation","addedNodes","node","observe","body","childList","subtree","map","t","documentElement","isEmpty","is$1","weakMap","WeakMap","textNode","Text","keyboardEvent","KeyboardEvent","cue","window","TextTrackCue","VTTCue","track","TextTrack","kind","promise","Promise","url","URL","startsWith","hostname","e","transitionEndEvent","createElement","WebkitTransition","MozTransition","OTransition","transition","find","repaint","delay","setTimeout","hidden","offsetHeight","browser","isIE","documentMode","isEdge","userAgent","isWebkit","test","isIPhone","platform","isIos","supportsPassiveListeners","supported","addEventListener","removeEventListener","toggleListener","callback","passive","capture","split","eventListeners","on","off","once","_this2","onceCallback","_len","args","_key","apply","triggerEvent","bubbles","detail","CustomEvent","plyr","unbindListeners","item","ready","_this3","resolve","elements","container","then","getDeep","path","reduce","extend","sources","source","shift","wrap","wrapper","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","s","trim","className","replace","parts","charAt","class","id","toggleHidden","hide","toggleClass","force","classList","contains","hasClass","getElements","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","transitions","reducedMotion","matchMedia","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","player","_player$media","currentTime","paused","preload","readyState","src","play","load","quality","cancelRequests","blankVideo","debug","log","dedupe","indexOf","format","replaceAll","RegExp","toTitleCase","toUpperCase","substr","toLowerCase","toCamelCase","toPascalCase","slice","getHTML","innerHTML","resources","vimeo","youtube","i18n","{seektime}","seekTime","{title}","title","k","v","Storage","storage","store","localStorage","getItem","json","JSON","setItem","stringify","removeItem","fetch","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","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","label","labelPressed","iconPressed","some","c","control","button","createRange","autocomplete","aria-label","aria-valuemin","aria-valuemax","aria-valuenow","updateRangeFill","setup","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","bind","currentTrack","speed","forceHours","updateTimeDisplay","updateVolume","setRange","muted","pressed","updateProgress","_this4","current","val","getElementsByTagName","nodeValue","setProgress","buffered","setProperty","updateSeekTooltip","_this5","tooltips","visible","show","pageX","timeUpdate","invert","invertTime","seeking","durationUpdate","pow","hasDuration","displayDuration","toggleMenuButton","setting","updateSetting","pane","panels","default","getLabel","setQualityMenu","_this6","checkMenu","getBadge","sort","a","b","sorting","setCaptionsMenu","_this7","tracks","getTracks","toggled","language","unshift","setSpeedMenu","_this8","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","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","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","noCookie","rel","showinfo","iv_load_policy","modestbranding","providers","types","noop","Console","console","onChange","first","last","keyCode","activeElement","shiftKey","toggleFallback","scrollPosition","x","scrollX","y","scrollY","scrollTo","overflow","viewport","head","property","hasProperty","cleanupViewport","part","Fullscreen","prefix","forceFallback","native","webkitEnterFullscreen","requestFullscreen","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","hasAudio","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","pathStripped","relList","as","onbeforeload","ev","sheet","cssText","defaultPrevented","loadjs","paths","arg1","arg2","loadFn","numWaiting","loadFiles","returnPromise","deps","bundleIds","r","subscribe","isDefined","loadScript","assurePlaybackState","hasPlayed","Vimeo","gesture","$2","thumbnail_large","pathname","Player","disableTextTrack","stop","restorePause","setVolume","setCurrentTime","setPlaybackRate","name","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","playbackRate","getPlaybackRate","onReady","playVideo","pauseVideo","stopVideo","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","PreviewThumbnails","thumbnails","lastMouseMoveTime","mouseDown","loadedImages","thumb","scrubbing","getThumbnails","render","determineContainerAutoSizing","promises","u","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","sizeSpecifiedInCSS","thumbAspectRatio","setThumbContainerPos","seekbarRect","plyrRect","minVal","maxVal","right","clientWidth","previewPos","multiplier","top","currentScrubbingImageElement","currentThumbnailImageElement","insertElements","attribute","change","_sources$","_sources$$provider","crossorigin","failed","jQuery","original","getProviderByUrl","search","truthy","searchParams","tabindex","webkitShowPlaybackTargetPicker","isHidden","hiding","eventName","soft","unload","inputIsValid","fauxDuration","realDuration","Infinity","mozHasAudio","webkitAudioDecodedByteCount","audioTracks","minimumSpeed","maximumSpeed","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 _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 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 var defaults = {\n addCSS: true,\n // Add CSS to the element to improve usability (required here or in your CSS!)\n thumbWidth: 15,\n // The width of the thumb handle\n watch: true // Watch for new elements that match a string target\n\n };\n\n // Element matches a selector\n function matches(element, selector) {\n\n function match() {\n return Array.from(document.querySelectorAll(selector)).includes(this);\n }\n\n var matches = match;\n return matches.call(element, selector);\n }\n\n // Trigger event\n function trigger(element, type) {\n if (!element || !type) {\n return;\n } // Create and dispatch the event\n\n\n var event = new Event(type); // Dispatch the event\n\n element.dispatchEvent(event);\n }\n\n // ==========================================================================\n // Type checking utils\n // ==========================================================================\n var getConstructor = function getConstructor(input) {\n return input !== null && typeof input !== 'undefined' ? input.constructor : null;\n };\n\n var instanceOf = function instanceOf(input, constructor) {\n return Boolean(input && constructor && input instanceof constructor);\n };\n\n var isNullOrUndefined = function isNullOrUndefined(input) {\n return input === null || typeof input === 'undefined';\n };\n\n var isObject = function isObject(input) {\n return getConstructor(input) === Object;\n };\n\n var isNumber = function isNumber(input) {\n return getConstructor(input) === Number && !Number.isNaN(input);\n };\n\n var isString = function isString(input) {\n return getConstructor(input) === String;\n };\n\n var isBoolean = function isBoolean(input) {\n return getConstructor(input) === Boolean;\n };\n\n var isFunction = function isFunction(input) {\n return getConstructor(input) === Function;\n };\n\n var isArray = function isArray(input) {\n return Array.isArray(input);\n };\n\n var isNodeList = function isNodeList(input) {\n return instanceOf(input, NodeList);\n };\n\n var isElement = function isElement(input) {\n return instanceOf(input, Element);\n };\n\n var isEvent = function isEvent(input) {\n return instanceOf(input, Event);\n };\n\n var isEmpty = function isEmpty(input) {\n return isNullOrUndefined(input) || (isString(input) || isArray(input) || isNodeList(input)) && !input.length || isObject(input) && !Object.keys(input).length;\n };\n\n var 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 // Get the number of decimal places\n function getDecimalPlaces(value) {\n var match = \"\".concat(value).match(/(?:\\.(\\d+))?(?:[eE]([+-]?\\d+))?$/);\n\n if (!match) {\n return 0;\n }\n\n return Math.max(0, // Number of digits right of decimal point.\n (match[1] ? match[1].length : 0) - ( // Adjust for scientific notation.\n match[2] ? +match[2] : 0));\n } // Round to the nearest step\n\n function round(number, step) {\n if (step < 1) {\n var places = getDecimalPlaces(step);\n return parseFloat(number.toFixed(places));\n }\n\n return Math.round(number / step) * step;\n }\n\n var RangeTouch =\n /*#__PURE__*/\n function () {\n /**\n * Setup a new instance\n * @param {String|Element} target\n * @param {Object} options\n */\n function RangeTouch(target, options) {\n _classCallCheck(this, RangeTouch);\n\n if (is.element(target)) {\n // An Element is passed, use it directly\n this.element = target;\n } else if (is.string(target)) {\n // A CSS Selector is passed, fetch it from the DOM\n this.element = document.querySelector(target);\n }\n\n if (!is.element(this.element) || !is.empty(this.element.rangeTouch)) {\n return;\n }\n\n this.config = Object.assign({}, defaults, options);\n this.init();\n }\n\n _createClass(RangeTouch, [{\n key: \"init\",\n value: function init() {\n // Bail if not a touch enabled device\n if (!RangeTouch.enabled) {\n return;\n } // Add useful CSS\n\n\n if (this.config.addCSS) {\n // TODO: Restore original values on destroy\n this.element.style.userSelect = 'none';\n this.element.style.webKitUserSelect = 'none';\n this.element.style.touchAction = 'manipulation';\n }\n\n this.listeners(true);\n this.element.rangeTouch = this;\n }\n }, {\n key: \"destroy\",\n value: function destroy() {\n // Bail if not a touch enabled device\n if (!RangeTouch.enabled) {\n return;\n }\n\n this.listeners(false);\n this.element.rangeTouch = null;\n }\n }, {\n key: \"listeners\",\n value: function listeners(toggle) {\n var _this = this;\n\n var method = toggle ? 'addEventListener' : 'removeEventListener'; // Listen for events\n\n ['touchstart', 'touchmove', 'touchend'].forEach(function (type) {\n _this.element[method](type, function (event) {\n return _this.set(event);\n }, false);\n });\n }\n /**\n * Get the value based on touch position\n * @param {Event} event\n */\n\n }, {\n key: \"get\",\n value: function get(event) {\n if (!RangeTouch.enabled || !is.event(event)) {\n return null;\n }\n\n var input = event.target;\n var touch = event.changedTouches[0];\n var min = parseFloat(input.getAttribute('min')) || 0;\n var max = parseFloat(input.getAttribute('max')) || 100;\n var step = parseFloat(input.getAttribute('step')) || 1;\n var delta = max - min; // Calculate percentage\n\n var percent;\n var clientRect = input.getBoundingClientRect();\n var thumbWidth = 100 / clientRect.width * (this.config.thumbWidth / 2) / 100; // Determine left percentage\n\n percent = 100 / clientRect.width * (touch.clientX - clientRect.left); // Don't allow outside bounds\n\n if (percent < 0) {\n percent = 0;\n } else if (percent > 100) {\n percent = 100;\n } // Factor in the thumb offset\n\n\n if (percent < 50) {\n percent -= (100 - percent * 2) * thumbWidth;\n } else if (percent > 50) {\n percent += (percent - 50) * 2 * thumbWidth;\n } // Find the closest step to the mouse position\n\n\n return min + round(delta * (percent / 100), step);\n }\n /**\n * Update range value based on position\n * @param {Event} event\n */\n\n }, {\n key: \"set\",\n value: function set(event) {\n if (!RangeTouch.enabled || !is.event(event) || event.target.disabled) {\n return;\n } // Prevent text highlight on iOS\n\n\n event.preventDefault(); // Set value\n\n event.target.value = this.get(event); // Trigger event\n\n trigger(event.target, event.type === 'touchend' ? 'change' : 'input');\n }\n }], [{\n key: \"setup\",\n\n /**\n * Setup multiple instances\n * @param {String|Element|NodeList|Array} target\n * @param {Object} options\n */\n value: function setup(target) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var targets = null;\n\n if (is.empty(target) || is.string(target)) {\n targets = Array.from(document.querySelectorAll(is.string(target) ? target : 'input[type=\"range\"]'));\n } else if (is.element(target)) {\n targets = [target];\n } else if (is.nodeList(target)) {\n targets = Array.from(target);\n } else if (is.array(target)) {\n targets = target.filter(is.element);\n }\n\n if (is.empty(targets)) {\n return null;\n }\n\n var config = Object.assign({}, defaults, options);\n\n if (is.string(target) && config.watch) {\n // Create an observer instance\n var observer = new MutationObserver(function (mutations) {\n Array.from(mutations).forEach(function (mutation) {\n Array.from(mutation.addedNodes).forEach(function (node) {\n if (!is.element(node) || !matches(node, target)) {\n return;\n } // eslint-disable-next-line no-unused-vars\n\n\n var range = new RangeTouch(node, config);\n });\n });\n }); // Pass in the target node, as well as the observer options\n\n observer.observe(document.body, {\n childList: true,\n subtree: true\n });\n }\n\n return targets.map(function (t) {\n return new RangeTouch(t, options);\n });\n }\n }, {\n key: \"enabled\",\n get: function get() {\n return 'ontouchstart' in document.documentElement;\n }\n }]);\n\n return RangeTouch;\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 // ==========================================================================\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: Object.assign({}, 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 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 default:\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 } // Trap focus inside container\n\n function trapFocus() {\n var element = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;\n var toggle = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n if (!is$1.element(element)) {\n return;\n }\n\n var focusable = getElements.call(this, 'button:not(:disabled), input:not(:disabled), [tabindex]');\n var first = focusable[0];\n var last = focusable[focusable.length - 1];\n\n var trap = function trap(event) {\n // Bail if not tab key or not fullscreen\n if (event.key !== 'Tab' || event.keyCode !== 9) {\n return;\n } // Get the current focused element\n\n\n var focused = document.activeElement;\n\n if (focused === last && !event.shiftKey) {\n // Move focus to first element that can be tabbed if Shift isn't used\n first.focus();\n event.preventDefault();\n } else if (focused === first && event.shiftKey) {\n // Move focus to last element that can be tabbed if Shift is used\n last.focus();\n event.preventDefault();\n }\n };\n\n toggleListener.call(this, this.elements.container, 'keydown', trap, toggle, false);\n } // 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 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 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 this.elements.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 this.elements.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 // Get sizes from elements\n return html5.getSources.call(this).map(function (source) {\n return Number(source.getAttribute('data-res'));\n }).filter(Boolean);\n },\n extend: function extend() {\n if (!this.isHTML5) {\n return;\n }\n\n var player = this; // 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 // 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; // 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.currentTime = currentTime; // Resume playing\n\n if (!paused) {\n player.play();\n }\n }); // Load new source\n\n player.media.load();\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 =\n /*#__PURE__*/\n 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(null, 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 var attributes = Object.assign({}, attr, {\n class: [attr.class, this.config.classNames.hidden].filter(Boolean).join(' ')\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'); // Get poster, if already set\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 }).catch(function (error) {\n // Hide menu item (and menu if empty)\n if (error.name === 'Error') {\n controls.setSpeedMenu.call(player, []);\n }\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 _this2.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(_this2);\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(_this2);\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('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