@openplayerjs/player 3.1.2 → 3.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/openplayer.css
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
@keyframes progress{0%{background-position:0 0}to{background-position:-75px 0}}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(359deg)}}@keyframes op-pause-flash-out{0%,40%{opacity:1}to{opacity:0}}.op-player{background:#000;font-family:sans-serif;line-height:1.15;min-height:30px;position:relative;-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%}.op-player__video{overflow:hidden}.op-player,.op-player *,.op-player :after,.op-player :before{box-sizing:border-box}.op-player__sr-only{border:0;clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}.op-media{align-items:center;cursor:pointer;display:flex;justify-content:center;position:relative}.op-player__media{display:inline-block;height:auto;min-height:260px;object-fit:contain;position:relative;width:100%!important}.op-player [aria-hidden=true]{display:none}.op-player__loader{animation:spin 1s linear infinite;border:5px solid #fff;border-radius:50%;border-top-color:red;display:block;height:60px;left:50%;margin-left:-30px;margin-top:-30px;position:absolute;top:calc(50% - 20px);width:60px;z-index:2}.op-player__unmute{background:rgba(0,0,0,.8);border:1px solid hsla(0,0%,100%,.5);color:#fff;cursor:pointer;direction:ltr;font-size:14px;font-weight:400;line-height:normal;min-width:50px;padding:10px 7px;pointer-events:auto;position:absolute;right:12px;-webkit-tap-highlight-color:rgba(0,0,0,0);text-align:center;top:12px;width:auto;z-index:4}.op-player:focus,.op-player>.op-controls :focus,.op-player__play:focus{outline:2px solid rgba(27,127,204,.8)}.op-player.op-player__keyboard--inactive .op-player__play:focus,.op-player.op-player__keyboard--inactive:focus,.op-player.op-player__keyboard--inactive>.op-controls :focus{outline:none}.op-player__play{-webkit-appearance:button;appearance:button;background:transparent;border:0;border-color:transparent transparent transparent #fff;border-style:solid;border-width:26px 0 26px 46px;cursor:pointer;display:block;font-family:inherit;font-size:100%;height:52px;line-height:1.15;margin:-23px 0 0 -18px;overflow:visible;padding:0;position:absolute;text-transform:none;transition:all .1s ease;width:0;will-change:border-width;z-index:2}.op-player__play>span{border:0;clip:rect(0,0,0,0);-webkit-clip-path:inset(50%);clip-path:inset(50%);height:1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}.op-player__play:hover{border-color:transparent transparent transparent red}.op-player__play.op-player__play--flash{animation:op-pause-flash-out .35s ease-out forwards;background:linear-gradient(90deg,hsla(0,0%,100%,.9) 0,hsla(0,0%,100%,.9) 30%,transparent 0,transparent 70%,hsla(0,0%,100%,.9) 0);border-width:0;height:52px;margin-left:-20px;width:40px}.op-player__play.op-player__play--flash:hover{border-color:transparent}.op-controls{background:rgba(0,0,0,.2);border-bottom-left-radius:inherit;border-bottom-right-radius:inherit;bottom:0;color:#fff;display:flex;flex-direction:column;font-size:.85em;padding:4px;pointer-events:all;position:absolute;transition:bottom .3s ease;width:100%;z-index:4}.op-player__audio .op-controls{background:transparent;position:relative}.op-controls--hidden .op-controls{bottom:-36px;pointer-events:none}.op-player__video .op-controls{margin-top:5px;padding-top:11px}.op-controls button{-webkit-appearance:button;appearance:button;background:transparent;border:none;cursor:pointer;font-family:inherit;font-size:100%;line-height:1.15;margin:0;overflow:visible;padding:2px 4px 3px;position:relative;text-transform:none;z-index:4}.op-controls button:before{color:#fff;display:inline-block;height:15px;margin-left:.2em;margin-right:.2em;text-align:center;width:15px}.op-controls time{margin-left:5px;margin-right:5px}.op-controls-layer__bottom,.op-controls-layer__center,.op-controls-layer__top,.op-controls__left,.op-controls__middle,.op-controls__right{align-items:center;display:flex}.op-controls-layer__bottom,.op-controls-layer__center,.op-controls-layer__top{justify-content:space-between}.op-controls-layer__bottom>*,.op-controls-layer__center>*,.op-controls-layer__top>*{flex:0 0 auto;min-width:0}.op-controls button:hover{opacity:.5}.op-controls button,.op-controls input[type=range]{touch-action:manipulation}.op-controls .op-controls-time{margin:4px 3px}.op-controls__playpause:before{content:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbDpzcGFjZT0icHJlc2VydmUiIHZpZXdCb3g9IjAgMCAzNSAzNSI+PHBhdGggZmlsbD0iI2ZmZiIgZD0iTTMxLjEgMTYuMmMuNy4zIDEgMSAuNyAxLjctLjEuMy0uNC42LS43LjdMNSAzNC43Yy0xLjEuNy0yIC4yLTItMS4xVjEuNEMzIC4xIDQtLjQgNSAuM3oiLz48L3N2Zz4=)}.op-controls__playpause--pause:before{content:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbDpzcGFjZT0icHJlc2VydmUiIHZpZXdCb3g9IjAgMCAzNSAzNSI+PHBhdGggZmlsbD0iI2ZmZiIgZD0iTTQuNyAwaDQuOGMxLjIgMCAyLjIgMSAyLjIgMi4ydjMwLjZjMCAxLjItMSAyLjItMi4yIDIuMkg0LjdjLTEuMiAwLTIuMi0xLTIuMi0yLjJWMi4yQzIuNSAxIDMuNSAwIDQuNyAwTTI2LjIgMEgzMWMxLjIgMCAyLjIgMSAyLjIgMi4ydjMwLjZjMCAxLjItMSAyLjItMi4yIDIuMmgtNC44QzI1IDM1IDI0IDM0IDI0IDMyLjhWMi4yQzI0IDEgMjUgMCAyNi4yIDAiLz48L3N2Zz4=)}.op-controls__playpause--replay:before{content:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbDpzcGFjZT0icHJlc2VydmUiIHZpZXdCb3g9IjAgMCAzNSAzNSI+PHBhdGggZmlsbD0iI2ZmZiIgZD0iTTI2LjYgOS40YzQuMiA1LjMgMy4zIDEyLjktMiAxNy4xcy0xMi45IDMuMy0xNy4xLTJDMy44IDE5LjkgNCAxMy4zIDggOC45TDQuNiA1LjRjLTYuNCA2LjktNiAxNy42LjkgMjRzMTcuNiA2IDI0LS45YzUuOS02LjMgNi4xLTE2IC41LTIyLjZ6Ii8+PHBhdGggZmlsbD0iI2ZmZiIgZD0iTTIwLjQgMi44Yy0uMi0uOC4zLTEuNiAxLjEtMS44LjItLjEuNS0uMS43IDBMMzQgMi42YzEuMi4yIDEuNCAxIC42IDEuOEwyMy45IDE1LjFjLS44LjgtMS42LjYtMS44LS42eiIvPjwvc3ZnPg==)}.op-controls__fullscreen:before{content:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbDpzcGFjZT0icHJlc2VydmUiIHZpZXdCb3g9IjAgMCAzNSAzNSI+PHBhdGggZmlsbD0ibm9uZSIgZD0iTTAgMGgzNXYzNUgweiIvPjxwYXRoIGZpbGw9IiNmZmYiIGZpbGwtcnVsZT0iZXZlbm9kZCIgZD0iTTEwLjIgMjAuNEg3LjN2Ny4zaDcuM3YtMi45aC00LjR6bS0yLjktNS44aDIuOXYtNC40aDQuNFY3LjNINy4zem0xNy41IDEwLjJoLTQuNHYyLjloNy4zdi03LjNoLTIuOXpNMjAuNCA3LjN2Mi45aDQuNHY0LjRoMi45VjcuM3oiIGNsaXAtcnVsZT0iZXZlbm9kZCIvPjwvc3ZnPg==);width:20px!important}.op-controls__fullscreen--out:before{content:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbDpzcGFjZT0icHJlc2VydmUiIHZpZXdCb3g9IjAgMCAzNSAzNSI+PHBhdGggZmlsbD0ibm9uZSIgZD0iTTAgMGgzNXYzNUgweiIvPjxwYXRoIGZpbGw9IiNmZmYiIGZpbGwtcnVsZT0iZXZlbm9kZCIgZD0iTTcuMyAyMy4zaDQuNHY0LjRoMi45di03LjNINy4zem00LjQtMTEuNkg3LjN2Mi45aDcuM1Y3LjNoLTIuOXptOC43IDE2aDIuOXYtNC4zaDQuNHYtMi45aC03LjN6bTIuOS0xNlY3LjNoLTIuOXY3LjNoNy4zdi0yLjl6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiLz48L3N2Zz4=);width:20px!important}.op-controls__mute:before{content:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbDpzcGFjZT0icHJlc2VydmUiIHZpZXdCb3g9IjAgMCAzNSAzNSI+PHBhdGggZmlsbD0iI2ZmZiIgZD0iTTI3LjggMjguN2MtLjYgMC0xLjItLjMtMS41LS45LS41LS44LS4yLTEuOS42LTIuNCA0LjQtMi42IDUuOS04LjIgMy40LTEyLjYtLjgtMS40LTItMi42LTMuNC0zLjQtLjktLjMtMS4zLTEuNC0uOS0yLjNzMS40LTEuMyAyLjMtLjhjLjEgMCAuMi4xLjMuMiA2LjEgMy42IDguMSAxMS40IDQuNSAxNy41LTEuMSAxLjktMi43IDMuNC00LjUgNC41LS4yLjItLjUuMi0uOC4yIi8+PHBhdGggZmlsbD0iI2ZmZiIgZD0iTTI0LjUgMjMuMWMtLjYgMC0xLjItLjMtMS41LS45LS41LS44LS4yLTEuOS42LTIuNCAxLjMtLjcgMS43LTIuMyAxLTMuNi0uMi0uNC0uNi0uOC0xLTEtLjgtLjYtMS0xLjctLjQtMi40LjUtLjcgMS40LS45IDIuMi0uNiAyLjkgMS43IDMuOSA1LjQgMi4zIDguMy0uNS45LTEuMyAxLjctMi4zIDIuM3EtLjQ1LjMtLjkuM00xNy44IDQuMWwtOC4xIDYuNC0uMi4ySDFjLS42IDAtMSAuNC0xIDF2MTEuNmMwIC42LjQgMSAxIDFoOC41bC4xLjIgOC4xIDYuNWMuNC4zIDEuMS4zIDEuNC0uMi4xLS4yLjItLjQuMi0uNlY0LjljMC0uNi0uNS0xLTEtMS0uMi4xLS40LjEtLjUuMiIvPjwvc3ZnPg==);margin-top:2px;width:18px!important}.op-controls__mute--half:before{content:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbDpzcGFjZT0icHJlc2VydmUiIHZpZXdCb3g9IjAgMCAzNSAzNSI+PHBhdGggZmlsbD0iI2ZmZiIgZD0iTTMwLjEgMjQuM2MtLjggMC0xLjUtLjQtMS45LTEuMS0uNi0xLS4yLTIuMy44LTMgMS42LS45IDIuMS0yLjggMS4zLTQuNC0uMy0uNS0uNy0xLTEuMy0xLjMtMS0uNi0xLjMtMi0uNy0zczEuOS0xLjMgMi45LS43YzMuNiAyLjEgNC45IDYuNyAyLjggMTAuMy0uNyAxLjItMS42IDIuMS0yLjggMi44LS4zLjMtLjcuNC0xLjEuNE0yMS45IDEgMTIgOC45bC0uMi4xSDEuMkMuNSA5IDAgOS42IDAgMTAuM3YxNC4zYzAgLjcuNSAxLjIgMS4yIDEuMmgxMC41bC4yLjIgOS45IDcuOWMuNS40IDEuMy40IDEuNy0uMi4yLS4yLjMtLjUuMy0uOFYyYy4xLS42LS40LTEuMi0xLTEuMy0uMyAwLS43LjEtLjkuMyIvPjwvc3ZnPg==);width:18px!important}.op-controls__mute--muted:before{content:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbDpzcGFjZT0icHJlc2VydmUiIHZpZXdCb3g9IjAgMCAzNSAzNSI+PHBhdGggZmlsbD0iI2ZmZiIgZD0iTTI4IC4yIDE3LjYgOC41bC0uMi4yaC0xMWMtLjctLjEtMS4zLjQtMS40IDEuMXYxNWMwIC43LjYgMS4zIDEuMyAxLjNoMTFsLjIuMiAxMC40IDguM2MuNi40IDEuNC40IDEuOC0uMi4yLS4yLjMtLjUuMy0uOFYxLjJjMC0uNy0uNS0xLjItMS4yLTEuMi0uMyAwLS42LjEtLjguMiIvPjwvc3ZnPg==);margin-top:5px;width:15px!important}.op-controls__captions:before{content:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbDpzcGFjZT0icHJlc2VydmUiIHZpZXdCb3g9IjAgMCAzNSAzNSI+PHBhdGggZmlsbD0iI2ZmZiIgZmlsbC1ydWxlPSJldmVub2RkIiBkPSJNMCA0LjR2MjYuMmgzNVY0LjR6bTMwLjQgMjFjLS4yLjMtLjYuNS0uOS43LTEuMS44LTYuMSAxLjEtMTEuOSAxLjFzLTExLS4zLTEyLjEtMS4xYy0uMy0uMi0uNy0uNC0uOS0uNy0xLjEtMS40LTEuMi0zLjQtMS4zLThzLjItNi42IDEuMy04Yy4zLS4zLjYtLjUuOS0uNyAxLS44IDYuMy0xLjEgMTIuMS0xLjFzMTAuOC4zIDExLjkgMS4xYy4zLjIuNi40LjkuNyAxLjEgMS40IDEuMyAzLjQgMS4zIDhzLS4yIDYuNi0xLjMgOCIgY2xpcC1ydWxlPSJldmVub2RkIi8+PHBhdGggZmlsbD0iI2ZmZiIgZmlsbC1ydWxlPSJldmVub2RkIiBkPSJNMTYuOSAxNi4yYy0uMy0zLjYtMi4yLTUuNy01LjYtNS43LTMuMSAwLTUuNiAyLjgtNS42IDcuM3MyLjIgNy40IDUuOSA3LjRjMyAwIDUtMi4yIDUuMy01LjhoLTMuNWMtLjEgMS4zLS43IDIuNC0xLjkgMi40LTEuOSAwLTIuMi0xLjgtMi4yLTMuOCAwLTIuNy44LTQuMSAyLjEtNC4xIDEuMSAwIDEuOS44IDIgMi4zek0yOSAxNi4yYy0uMy0zLjYtMi4yLTUuNy01LjYtNS43LTMuMSAwLTUuNiAyLjgtNS42IDcuM3MyLjIgNy40IDUuOSA3LjRjMyAwIDUtMi4yIDUuMy01LjhoLTMuNWMtLjEgMS4zLS43IDIuNC0xLjkgMi40LTEuOSAwLTIuMi0xLjgtMi4yLTMuOCAwLTIuNy44LTQuMSAyLjEtNC4xczEuOS44IDIgMi4zeiIgY2xpcC1ydWxlPSJldmVub2RkIi8+PC9zdmc+);width:20px!important}.op-controls__captions.op-controls__captions--on:before{filter:invert(73%) sepia(71%) saturate(6868%) hue-rotate(356deg) brightness(101%) contrast(126%)}.op-controls__settings:before{content:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbDpzcGFjZT0icHJlc2VydmUiIHZpZXdCb3g9IjAgMCAzNSAzNSI+PHBhdGggZmlsbD0iI2ZmZiIgZD0iTTMwLjUgMTkuMmMuMS0uNi4xLTEuMi4xLTEuNyAwLS42LS4xLTEuMi0uMS0xLjdsMy43LTIuOWMuMy0uMy40LS44LjItMS4xbC0zLjUtNi4xYy0uMi0uNC0uNy0uNS0xLjEtLjRMMjUuNCA3Yy0uOS0uNy0xLjktMS4zLTIuOS0xLjdMMjEuOC43YzAtLjQtLjMtLjctLjgtLjdoLTdjLS40IDAtLjguMy0uOC43bC0uNyA0LjZjLTEuMS40LTIuMSAxLTMgMS43TDUuMiA1LjNjLS40LS4yLS45IDAtMS4xLjRMLjYgMTEuOGMtLjIuNC0uMS45LjIgMS4xbDMuNyAyLjljLS4xLjYtLjEgMS4yLS4xIDEuNyAwIC42LjEgMS4yLjEgMS43TC44IDIyLjFjLS4zLjMtLjQuOC0uMiAxLjFsMy41IDYuMWMuMi40LjcuNSAxLjEuNEw5LjYgMjhjLjkuNyAxLjkgMS4zIDIuOSAxLjdsLjcgNC42Yy4xLjQuNC43LjkuN2g3Yy40IDAgLjgtLjMuOC0uN2wuNy00LjZjMS4xLS40IDItMSAyLjktMS43bDQuNCAxLjdjLjQuMi45IDAgMS4xLS40bDMuNS02LjFjLjItLjQuMS0uOS0uMi0xLjF6bS0xMyA0LjRjLTMuNCAwLTYuMS0yLjctNi4xLTYuMXMyLjctNi4xIDYuMS02LjEgNi4xIDIuNyA2LjEgNi4xLTIuOCA2LjEtNi4xIDYuMSIvPjwvc3ZnPg==)}.op-controls input[type=range],.op-controls progress{-webkit-appearance:none;appearance:none;border:0;height:5px;left:0;margin:0;position:absolute;top:0;transition:none;width:100%}.op-controls input[type=range]{background:transparent;height:0;padding:2.5px 0;-webkit-tap-highlight-color:transparent;z-index:3}.op-controls input[type=range]:focus,.op-controls progress{outline:none}.op-controls input[type=range]::-moz-focus-outer{border:0}.op-controls input[type=range]::-webkit-slider-runnable-track{background:0 0;border:0;cursor:pointer;height:8px;-webkit-user-select:none;user-select:none}.op-controls input[type=range]::-moz-range-track{background:0 0;border:0;cursor:pointer;height:8px;user-select:none}.op-controls input[type=range]::-ms-track{background:0 0;border:0;cursor:pointer;height:8px;-ms-user-select:none;user-select:none}.op-controls input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;background:#fff;border:2px solid transparent;border-radius:100%;box-sizing:border-box;height:12px;margin-top:-2px;position:relative;width:12px}.op-controls input[type=range]::-moz-range-thumb{appearance:none;background:#fff;border:2px solid transparent;border-radius:100%;box-sizing:border-box;height:12px;margin-top:-2px;position:relative;width:12px}.op-controls input[type=range]::-ms-thumb{appearance:none;background:#fff;border:2px solid transparent;border-radius:100%;box-sizing:border-box;height:12px;margin-top:-2px;position:relative;width:12px}.op-controls input[type=range]::-ms-tooltip{display:none}.op-controls input[type=range]::-ms-fill-lower,.op-controls input[type=range]::-ms-fill-upper{background:transparent}.op-controls input[type=range]::-ms-ticks-after,.op-controls input[type=range]::-ms-ticks-before{display:none!important}.op-controls progress{display:inline-block;vertical-align:baseline}.op-controls progress::-webkit-progress-bar{background:0 0}.op-controls progress::-moz-progress-bar{background:0 0;background:currentColor}.op-controls progress::-webkit-progress-value{background:currentColor}.op-controls__progress,.op-controls__volume{display:inline-block;height:5px;min-width:0;pointer-events:all;position:relative}.op-controls__left:has(.op-controls__progress),.op-controls__middle:has(.op-controls__progress),.op-controls__right:has(.op-controls__progress){flex:1 1 0}.op-controls__progress[aria-disabled=true] progress{cursor:not-allowed;opacity:.8;pointer-events:none}.op-controls .op-controls__progress[aria-disabled=true].loading{animation:progress 2s linear infinite;background:linear-gradient(-45deg,hsla(0,0%,100%,.3) 25%,transparent 0,transparent 50%,hsla(0,0%,100%,.3) 0,hsla(0,0%,100%,.3) 75%,transparent 0,transparent);background-repeat:repeat-x;background-size:25px 25px}.op-controls--hidden .op-controls .op-controls__progress[aria-disabled=true] input[type=range]::-webkit-slider-thumb{background:transparent}.op-controls--hidden .op-controls .op-controls__progress[aria-disabled=true] input[type=range]::-moz-range-thumb{background:transparent}.op-controls--hidden .op-controls .op-controls__progress[aria-disabled=true] input[type=range]::-ms-thumb{background:transparent}.op-controls .op-controls__progress{flex-grow:2;min-width:0;width:100%}.op-controls .op-controls__progress,.op-controls .op-controls__progress:hover,.op-controls .op-controls__volume,.op-controls .op-controls__volume:hover{cursor:pointer}.op-controls__progress--buffer::-webkit-progress-value{-webkit-transition:width .2s ease;transition:width .2s ease}.op-controls__progress--played::-webkit-progress-value,.op-controls__volume--display::-webkit-progress-value{max-width:99%;-webkit-transition:none;transition:none}.op-controls__progress--buffer::-moz-progress-bar{-moz-transition:width .2s ease;transition:width .2s ease}.op-controls__progress--played::-moz-progress-bar,.op-controls__volume--display::-moz-progress-bar{max-width:99%;-moz-transition:none;transition:none}.op-controls .op-controls__progress--played,.op-controls .op-controls__volume--display{background:0 0;color:red;transition:all .2s ease;z-index:2}.op-controls .op-controls__progress[aria-disabled=true]{cursor:default}.op-controls .op-controls__progress[aria-disabled=true]>progress{color:#fecb2f;pointer-events:none}.op-controls .op-controls__volume--display{background:hsla(0,0%,100%,.35)}.op-controls .op-controls__progress--buffer{background:hsla(0,0%,100%,.3);color:hsla(0,0%,100%,.25);color:transparent}.op-controls .op-controls__progress[aria-disabled=true] input[type=range]::-webkit-slider-thumb{display:none}.op-controls .op-controls__progress[aria-disabled=true] input[type=range]::-moz-range-thumb{display:none}.op-controls .op-controls__progress[aria-disabled=true] input[type=range]::-ms-thumb{display:none}.op-controls .op-controls__progress[aria-disabled=true] input[type=range]::-webkit-slider-runnable-track{cursor:default}.op-controls .op-controls__progress[aria-disabled=true] input[type=range]::-moz-range-track{cursor:default}.op-controls .op-controls__progress[aria-disabled=true] input[type=range]::-ms-track{cursor:default}.op-controls__tooltip{background:#eee;border:1px solid #000;bottom:100%;color:#000;display:none;left:0;margin-bottom:10px;padding:1px 4px;position:absolute;text-align:center;transform:translateX(0)}.op-player__video .op-controls__tooltip{margin-bottom:10px}.op-controls__tooltip:after,.op-controls__tooltip:before{content:"";height:0;left:0;margin:0 auto;position:absolute;right:0;top:100%;width:0}.op-controls__tooltip:before{border-left:8px solid transparent;border-right:8px solid transparent;border-top:8px solid #000}.op-controls__tooltip:after{border-left:7px solid transparent;border-right:7px solid transparent;border-top:7px solid #eee}.op-controls__tooltip--visible{display:block}.op-controls__volume--container{align-items:center;display:flex}.op-controls__volume{margin-left:0;margin-right:10px;width:70px}.op-controls__mute{width:30px}.op-controls .op-controls__mute:before{text-align:left}.op-fullscreen__on .op-media{height:100%;width:100%}.op-fullscreen__on .op-controls{z-index:2147483648}.op-fullscreen__on.op-controls--hidden{cursor:none}.op-fullscreen__on.op-controls--hidden .op-controls{bottom:-40px}.op-player video::-webkit-media-controls{display:none!important}.op-ads{position:absolute;top:0}.op-ads video{background:#000;display:inline-block;height:auto;object-fit:contain;position:relative;width:100%!important}.op-ads__skip{bottom:100px;display:none;pointer-events:auto;position:absolute;right:12px;z-index:3}.op-ads__skip button{background:rgba(0,0,0,.8);border:1px solid hsla(0,0%,100%,.5);color:#fff;cursor:pointer;direction:ltr;font-size:14px;font-weight:400;line-height:normal;min-width:50px;padding:10px 7px;-webkit-tap-highlight-color:rgba(0,0,0,0);text-align:center;width:auto}.op-ads__skip button:hover{border-color:#fff}.op-player__video:not(.op-controls--hidden) .op-ads__nonlinear{bottom:60px!important;bottom:calc(var(--op-controls-height, 48px) + 12px)!important}.op-menu{background:rgba(28,28,28,.7);bottom:48px;color:#fff;font-size:.85em;overflow:hidden;position:absolute;right:5px;text-shadow:0 0 2px rgba(0,0,0,.5);transition:right .2s ease;-webkit-user-select:none;-ms-user-select:none;user-select:none;will-change:width,height;z-index:4}.op-menu__submenu{display:flex;flex-direction:column;padding:6px 6px 3px}.op-menu__header,.op-menu__submenu button{align-items:center;color:#fff;display:flex}.op-menu__header{padding:4px 0 6px;position:relative}.op-menu__header:after{background-color:#fff;bottom:-4px;content:"";height:1px;position:absolute;width:100%}.op-menu__header+.op-controls__menu-item:first-of-type{padding-top:12px}.op-menu__item-check{display:block;height:16px;margin-right:6px;width:16px}.op-menu__item-check.checked:before{content:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCI+PHBhdGggZmlsbD0iI2ZmZiIgZD0iTTkgMTYuMiA0LjggMTJsLTEuNCAxLjRMOSAxOSAyMSA3bC0xLjQtMS40eiIvPjwvc3ZnPg==")}.op-submenu__back:before{content:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAzMiAzMiI+PHBhdGggZmlsbD0iI2ZmZiIgZD0ibTE5LjQxIDIwLjA5LTQuNTgtNC41OSA0LjU4LTQuNTlMMTggOS41bC02IDYgNiA2eiIvPjwvc3ZnPg==");margin-left:-6px!important;margin-top:-8px;width:24px!important}.op-player__video video::cue{background:rgba(0,0,0,.6);color:#fff;font-size:16px;line-height:1.35;text-shadow:0 1px 2px rgba(0,0,0,.8)}.op-player__video:not(.op-controls--hidden) video::-webkit-media-text-track-display{transform:translateY(calc((48px + env(safe-area-inset-bottom, 0px))*-1));transform:translateY(calc((var(--op-controls-height, 48px) + env(safe-area-inset-bottom, 0px))*-1))}.op-player__video:not(.op-controls--hidden) video::cue{transform:translateY(calc(-56px + env(safe-area-inset-bottom, 0px)*-1));transform:translateY(calc(var(--op-controls-height, 48px)*-1 + env(safe-area-inset-bottom, 0px)*-1 + -8px))}.op-player :focus-visible{outline:2px solid currentColor;outline-offset:2px}.op-player [role=button],.op-player button{min-height:24px;min-width:24px}@media (prefers-reduced-motion:reduce){.op-player *,.op-player :after,.op-player :before{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.01ms!important}}
|
|
1
|
+
@keyframes progress{0%{background-position:0 0}to{background-position:-75px 0}}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(359deg)}}@keyframes op-pause-flash-out{0%,40%{opacity:1}to{opacity:0}}.op-player{background:#000;font-family:sans-serif;line-height:1.15;min-height:30px;position:relative;-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%}.op-player__video{overflow:hidden}.op-player,.op-player *,.op-player :after,.op-player :before{box-sizing:border-box}.op-player__sr-only{height:1px;clip:rect(0 0 0 0);-webkit-clip-path:inset(50%);clip-path:inset(50%);overflow:hidden;position:absolute;white-space:nowrap;width:1px}.op-media{align-items:center;cursor:pointer;display:flex;justify-content:center;position:relative}.op-player__media{display:inline-block;height:auto;min-height:260px;object-fit:contain;position:relative;width:100%!important}.op-player [aria-hidden=true]{display:none}.op-player__loader{animation:spin 1s linear infinite;border:5px solid #fff;border-radius:50%;border-top-color:red;display:block;height:60px;left:50%;margin-left:-30px;margin-top:-30px;position:absolute;top:calc(50% - 20px);width:60px;z-index:2}.op-player__unmute{background:rgba(0,0,0,.8);border:1px solid hsla(0,0%,100%,.5);color:#fff;cursor:pointer;direction:ltr;font-size:14px;font-weight:400;line-height:normal;min-width:50px;padding:10px 7px;pointer-events:auto;position:absolute;right:12px;-webkit-tap-highlight-color:rgba(0,0,0,0);text-align:center;top:12px;width:auto;z-index:4}.op-player:focus,.op-player>.op-controls :focus,.op-player__play:focus{outline:2px solid rgba(27,127,204,.8)}.op-player.op-player__keyboard--inactive .op-player__play:focus,.op-player.op-player__keyboard--inactive:focus,.op-player.op-player__keyboard--inactive>.op-controls :focus{outline:none}.op-player__play{-webkit-appearance:button;appearance:button;background:transparent;border:0;border-color:transparent transparent transparent #fff;border-style:solid;border-width:26px 0 26px 46px;cursor:pointer;display:block;font-family:inherit;font-size:100%;height:52px;line-height:1.15;margin:-23px 0 0 -18px;overflow:visible;padding:0;position:absolute;text-transform:none;transition:all .1s ease;width:0;will-change:border-width;z-index:2}.op-player__play>span{border:0;clip:rect(0,0,0,0);-webkit-clip-path:inset(50%);clip-path:inset(50%);height:1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}.op-player__play:hover{border-color:transparent transparent transparent red}.op-player__play.op-player__play--flash{animation:op-pause-flash-out .35s ease-out forwards;background:linear-gradient(90deg,hsla(0,0%,100%,.9) 0,hsla(0,0%,100%,.9) 30%,transparent 0,transparent 70%,hsla(0,0%,100%,.9) 0);border-width:0;height:52px;margin-left:-20px;width:40px}.op-player__play.op-player__play--flash:hover{border-color:transparent}.op-controls{background:rgba(0,0,0,.2);border-bottom-left-radius:inherit;border-bottom-right-radius:inherit;bottom:0;color:#fff;display:flex;flex-direction:column;font-size:.85em;padding:4px;pointer-events:all;position:absolute;transition:bottom .3s ease;width:100%;z-index:4}.op-player__audio .op-controls{background:transparent;position:relative;z-index:4}.op-controls--hidden .op-controls{bottom:-36px;pointer-events:none}.op-player__video .op-controls{margin-top:5px;padding-top:11px}.op-controls button{-webkit-appearance:button;appearance:button;background:transparent;border:none;cursor:pointer;font-family:inherit;font-size:100%;line-height:1.15;margin:0;overflow:visible;padding:2px 4px 3px;position:relative;text-transform:none;z-index:4}.op-controls button:before{color:#fff;display:inline-block;height:15px;margin-left:.2em;margin-right:.2em;text-align:center;width:15px}.op-controls time{margin-left:5px;margin-right:5px}.op-controls-layer__bottom,.op-controls-layer__center,.op-controls-layer__top,.op-controls__left,.op-controls__middle,.op-controls__right{align-items:center;display:flex}.op-controls-layer__bottom,.op-controls-layer__center,.op-controls-layer__top{justify-content:space-between}.op-controls-layer__bottom>*,.op-controls-layer__center>*,.op-controls-layer__top>*{flex:0 0 auto;min-width:0}.op-controls button:hover{opacity:.5}.op-controls button,.op-controls input[type=range]{touch-action:manipulation}.op-controls .op-controls-time{margin:4px 3px}.op-controls__playpause:before{content:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbDpzcGFjZT0icHJlc2VydmUiIHZpZXdCb3g9IjAgMCAzNSAzNSI+PHBhdGggZmlsbD0iI2ZmZiIgZD0iTTMxLjEgMTYuMmMuNy4zIDEgMSAuNyAxLjctLjEuMy0uNC42LS43LjdMNSAzNC43Yy0xLjEuNy0yIC4yLTItMS4xVjEuNEMzIC4xIDQtLjQgNSAuM3oiLz48L3N2Zz4=)}.op-controls__playpause--pause:before{content:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbDpzcGFjZT0icHJlc2VydmUiIHZpZXdCb3g9IjAgMCAzNSAzNSI+PHBhdGggZmlsbD0iI2ZmZiIgZD0iTTQuNyAwaDQuOGMxLjIgMCAyLjIgMSAyLjIgMi4ydjMwLjZjMCAxLjItMSAyLjItMi4yIDIuMkg0LjdjLTEuMiAwLTIuMi0xLTIuMi0yLjJWMi4yQzIuNSAxIDMuNSAwIDQuNyAwTTI2LjIgMEgzMWMxLjIgMCAyLjIgMSAyLjIgMi4ydjMwLjZjMCAxLjItMSAyLjItMi4yIDIuMmgtNC44QzI1IDM1IDI0IDM0IDI0IDMyLjhWMi4yQzI0IDEgMjUgMCAyNi4yIDAiLz48L3N2Zz4=)}.op-controls__playpause--replay:before{content:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbDpzcGFjZT0icHJlc2VydmUiIHZpZXdCb3g9IjAgMCAzNSAzNSI+PHBhdGggZmlsbD0iI2ZmZiIgZD0iTTI2LjYgOS40YzQuMiA1LjMgMy4zIDEyLjktMiAxNy4xcy0xMi45IDMuMy0xNy4xLTJDMy44IDE5LjkgNCAxMy4zIDggOC45TDQuNiA1LjRjLTYuNCA2LjktNiAxNy42LjkgMjRzMTcuNiA2IDI0LS45YzUuOS02LjMgNi4xLTE2IC41LTIyLjZ6Ii8+PHBhdGggZmlsbD0iI2ZmZiIgZD0iTTIwLjQgMi44Yy0uMi0uOC4zLTEuNiAxLjEtMS44LjItLjEuNS0uMS43IDBMMzQgMi42YzEuMi4yIDEuNCAxIC42IDEuOEwyMy45IDE1LjFjLS44LjgtMS42LjYtMS44LS42eiIvPjwvc3ZnPg==)}.op-controls__fullscreen:before{content:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbDpzcGFjZT0icHJlc2VydmUiIHZpZXdCb3g9IjAgMCAzNSAzNSI+PHBhdGggZmlsbD0ibm9uZSIgZD0iTTAgMGgzNXYzNUgweiIvPjxwYXRoIGZpbGw9IiNmZmYiIGZpbGwtcnVsZT0iZXZlbm9kZCIgZD0iTTEwLjIgMjAuNEg3LjN2Ny4zaDcuM3YtMi45aC00LjR6bS0yLjktNS44aDIuOXYtNC40aDQuNFY3LjNINy4zem0xNy41IDEwLjJoLTQuNHYyLjloNy4zdi03LjNoLTIuOXpNMjAuNCA3LjN2Mi45aDQuNHY0LjRoMi45VjcuM3oiIGNsaXAtcnVsZT0iZXZlbm9kZCIvPjwvc3ZnPg==);width:20px!important}.op-controls__fullscreen--out:before{content:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbDpzcGFjZT0icHJlc2VydmUiIHZpZXdCb3g9IjAgMCAzNSAzNSI+PHBhdGggZmlsbD0ibm9uZSIgZD0iTTAgMGgzNXYzNUgweiIvPjxwYXRoIGZpbGw9IiNmZmYiIGZpbGwtcnVsZT0iZXZlbm9kZCIgZD0iTTcuMyAyMy4zaDQuNHY0LjRoMi45di03LjNINy4zem00LjQtMTEuNkg3LjN2Mi45aDcuM1Y3LjNoLTIuOXptOC43IDE2aDIuOXYtNC4zaDQuNHYtMi45aC03LjN6bTIuOS0xNlY3LjNoLTIuOXY3LjNoNy4zdi0yLjl6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiLz48L3N2Zz4=);width:20px!important}.op-controls__mute:before{content:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbDpzcGFjZT0icHJlc2VydmUiIHZpZXdCb3g9IjAgMCAzNSAzNSI+PHBhdGggZmlsbD0iI2ZmZiIgZD0iTTI3LjggMjguN2MtLjYgMC0xLjItLjMtMS41LS45LS41LS44LS4yLTEuOS42LTIuNCA0LjQtMi42IDUuOS04LjIgMy40LTEyLjYtLjgtMS40LTItMi42LTMuNC0zLjQtLjktLjMtMS4zLTEuNC0uOS0yLjNzMS40LTEuMyAyLjMtLjhjLjEgMCAuMi4xLjMuMiA2LjEgMy42IDguMSAxMS40IDQuNSAxNy41LTEuMSAxLjktMi43IDMuNC00LjUgNC41LS4yLjItLjUuMi0uOC4yIi8+PHBhdGggZmlsbD0iI2ZmZiIgZD0iTTI0LjUgMjMuMWMtLjYgMC0xLjItLjMtMS41LS45LS41LS44LS4yLTEuOS42LTIuNCAxLjMtLjcgMS43LTIuMyAxLTMuNi0uMi0uNC0uNi0uOC0xLTEtLjgtLjYtMS0xLjctLjQtMi40LjUtLjcgMS40LS45IDIuMi0uNiAyLjkgMS43IDMuOSA1LjQgMi4zIDguMy0uNS45LTEuMyAxLjctMi4zIDIuM3EtLjQ1LjMtLjkuM00xNy44IDQuMWwtOC4xIDYuNC0uMi4ySDFjLS42IDAtMSAuNC0xIDF2MTEuNmMwIC42LjQgMSAxIDFoOC41bC4xLjIgOC4xIDYuNWMuNC4zIDEuMS4zIDEuNC0uMi4xLS4yLjItLjQuMi0uNlY0LjljMC0uNi0uNS0xLTEtMS0uMi4xLS40LjEtLjUuMiIvPjwvc3ZnPg==);margin-top:2px;width:18px!important}.op-controls__mute--half:before{content:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbDpzcGFjZT0icHJlc2VydmUiIHZpZXdCb3g9IjAgMCAzNSAzNSI+PHBhdGggZmlsbD0iI2ZmZiIgZD0iTTMwLjEgMjQuM2MtLjggMC0xLjUtLjQtMS45LTEuMS0uNi0xLS4yLTIuMy44LTMgMS42LS45IDIuMS0yLjggMS4zLTQuNC0uMy0uNS0uNy0xLTEuMy0xLjMtMS0uNi0xLjMtMi0uNy0zczEuOS0xLjMgMi45LS43YzMuNiAyLjEgNC45IDYuNyAyLjggMTAuMy0uNyAxLjItMS42IDIuMS0yLjggMi44LS4zLjMtLjcuNC0xLjEuNE0yMS45IDEgMTIgOC45bC0uMi4xSDEuMkMuNSA5IDAgOS42IDAgMTAuM3YxNC4zYzAgLjcuNSAxLjIgMS4yIDEuMmgxMC41bC4yLjIgOS45IDcuOWMuNS40IDEuMy40IDEuNy0uMi4yLS4yLjMtLjUuMy0uOFYyYy4xLS42LS40LTEuMi0xLTEuMy0uMyAwLS43LjEtLjkuMyIvPjwvc3ZnPg==);width:18px!important}.op-controls__mute--muted:before{content:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbDpzcGFjZT0icHJlc2VydmUiIHZpZXdCb3g9IjAgMCAzNSAzNSI+PHBhdGggZmlsbD0iI2ZmZiIgZD0iTTI4IC4yIDE3LjYgOC41bC0uMi4yaC0xMWMtLjctLjEtMS4zLjQtMS40IDEuMXYxNWMwIC43LjYgMS4zIDEuMyAxLjNoMTFsLjIuMiAxMC40IDguM2MuNi40IDEuNC40IDEuOC0uMi4yLS4yLjMtLjUuMy0uOFYxLjJjMC0uNy0uNS0xLjItMS4yLTEuMi0uMyAwLS42LjEtLjguMiIvPjwvc3ZnPg==);margin-top:5px;width:15px!important}.op-controls__captions:before{content:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbDpzcGFjZT0icHJlc2VydmUiIHZpZXdCb3g9IjAgMCAzNSAzNSI+PHBhdGggZmlsbD0iI2ZmZiIgZmlsbC1ydWxlPSJldmVub2RkIiBkPSJNMCA0LjR2MjYuMmgzNVY0LjR6bTMwLjQgMjFjLS4yLjMtLjYuNS0uOS43LTEuMS44LTYuMSAxLjEtMTEuOSAxLjFzLTExLS4zLTEyLjEtMS4xYy0uMy0uMi0uNy0uNC0uOS0uNy0xLjEtMS40LTEuMi0zLjQtMS4zLThzLjItNi42IDEuMy04Yy4zLS4zLjYtLjUuOS0uNyAxLS44IDYuMy0xLjEgMTIuMS0xLjFzMTAuOC4zIDExLjkgMS4xYy4zLjIuNi40LjkuNyAxLjEgMS40IDEuMyAzLjQgMS4zIDhzLS4yIDYuNi0xLjMgOCIgY2xpcC1ydWxlPSJldmVub2RkIi8+PHBhdGggZmlsbD0iI2ZmZiIgZmlsbC1ydWxlPSJldmVub2RkIiBkPSJNMTYuOSAxNi4yYy0uMy0zLjYtMi4yLTUuNy01LjYtNS43LTMuMSAwLTUuNiAyLjgtNS42IDcuM3MyLjIgNy40IDUuOSA3LjRjMyAwIDUtMi4yIDUuMy01LjhoLTMuNWMtLjEgMS4zLS43IDIuNC0xLjkgMi40LTEuOSAwLTIuMi0xLjgtMi4yLTMuOCAwLTIuNy44LTQuMSAyLjEtNC4xIDEuMSAwIDEuOS44IDIgMi4zek0yOSAxNi4yYy0uMy0zLjYtMi4yLTUuNy01LjYtNS43LTMuMSAwLTUuNiAyLjgtNS42IDcuM3MyLjIgNy40IDUuOSA3LjRjMyAwIDUtMi4yIDUuMy01LjhoLTMuNWMtLjEgMS4zLS43IDIuNC0xLjkgMi40LTEuOSAwLTIuMi0xLjgtMi4yLTMuOCAwLTIuNy44LTQuMSAyLjEtNC4xczEuOS44IDIgMi4zeiIgY2xpcC1ydWxlPSJldmVub2RkIi8+PC9zdmc+);width:20px!important}.op-controls__captions.op-controls__captions--on:before{filter:invert(73%) sepia(71%) saturate(6868%) hue-rotate(356deg) brightness(101%) contrast(126%)}.op-controls__settings:before{content:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbDpzcGFjZT0icHJlc2VydmUiIHZpZXdCb3g9IjAgMCAzNSAzNSI+PHBhdGggZmlsbD0iI2ZmZiIgZD0iTTMwLjUgMTkuMmMuMS0uNi4xLTEuMi4xLTEuNyAwLS42LS4xLTEuMi0uMS0xLjdsMy43LTIuOWMuMy0uMy40LS44LjItMS4xbC0zLjUtNi4xYy0uMi0uNC0uNy0uNS0xLjEtLjRMMjUuNCA3Yy0uOS0uNy0xLjktMS4zLTIuOS0xLjdMMjEuOC43YzAtLjQtLjMtLjctLjgtLjdoLTdjLS40IDAtLjguMy0uOC43bC0uNyA0LjZjLTEuMS40LTIuMSAxLTMgMS43TDUuMiA1LjNjLS40LS4yLS45IDAtMS4xLjRMLjYgMTEuOGMtLjIuNC0uMS45LjIgMS4xbDMuNyAyLjljLS4xLjYtLjEgMS4yLS4xIDEuNyAwIC42LjEgMS4yLjEgMS43TC44IDIyLjFjLS4zLjMtLjQuOC0uMiAxLjFsMy41IDYuMWMuMi40LjcuNSAxLjEuNEw5LjYgMjhjLjkuNyAxLjkgMS4zIDIuOSAxLjdsLjcgNC42Yy4xLjQuNC43LjkuN2g3Yy40IDAgLjgtLjMuOC0uN2wuNy00LjZjMS4xLS40IDItMSAyLjktMS43bDQuNCAxLjdjLjQuMi45IDAgMS4xLS40bDMuNS02LjFjLjItLjQuMS0uOS0uMi0xLjF6bS0xMyA0LjRjLTMuNCAwLTYuMS0yLjctNi4xLTYuMXMyLjctNi4xIDYuMS02LjEgNi4xIDIuNyA2LjEgNi4xLTIuOCA2LjEtNi4xIDYuMSIvPjwvc3ZnPg==)}.op-controls input[type=range],.op-controls progress{-webkit-appearance:none;appearance:none;border:0;height:5px;left:0;margin:0;position:absolute;top:0;transition:none;width:100%}.op-controls input[type=range]{background:transparent;height:0;padding:2.5px 0;-webkit-tap-highlight-color:transparent;z-index:3}.op-controls input[type=range]:focus,.op-controls progress{outline:none}.op-controls input[type=range]::-moz-focus-outer{border:0}.op-controls input[type=range]::-webkit-slider-runnable-track{background:0 0;border:0;cursor:pointer;height:8px;-webkit-user-select:none;user-select:none}.op-controls input[type=range]::-moz-range-track{background:0 0;border:0;cursor:pointer;height:8px;user-select:none}.op-controls input[type=range]::-ms-track{background:0 0;border:0;cursor:pointer;height:8px;-ms-user-select:none;user-select:none}.op-controls input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;background:#fff;border:2px solid transparent;border-radius:100%;box-sizing:border-box;height:12px;margin-top:-2px;position:relative;width:12px}.op-controls input[type=range]::-moz-range-thumb{appearance:none;background:#fff;border:2px solid transparent;border-radius:100%;box-sizing:border-box;height:12px;margin-top:-2px;position:relative;width:12px}.op-controls input[type=range]::-ms-thumb{appearance:none;background:#fff;border:2px solid transparent;border-radius:100%;box-sizing:border-box;height:12px;margin-top:-2px;position:relative;width:12px}.op-controls input[type=range]::-ms-tooltip{display:none}.op-controls input[type=range]::-ms-fill-lower,.op-controls input[type=range]::-ms-fill-upper{background:transparent}.op-controls input[type=range]::-ms-ticks-after,.op-controls input[type=range]::-ms-ticks-before{display:none!important}.op-controls progress{display:inline-block;vertical-align:baseline}.op-controls progress::-webkit-progress-bar{background:0 0}.op-controls progress::-moz-progress-bar{background:0 0;background:currentColor}.op-controls progress::-webkit-progress-value{background:currentColor}.op-controls__progress,.op-controls__volume{display:inline-block;height:5px;min-width:0;pointer-events:all;position:relative}.op-controls__left:has(.op-controls__progress),.op-controls__middle:has(.op-controls__progress),.op-controls__right:has(.op-controls__progress){flex:1 1 0}.op-controls__progress[aria-disabled=true] progress{cursor:not-allowed;opacity:.8;pointer-events:none}.op-controls .op-controls__progress[aria-disabled=true].loading{animation:progress 2s linear infinite;background:linear-gradient(-45deg,hsla(0,0%,100%,.3) 25%,transparent 0,transparent 50%,hsla(0,0%,100%,.3) 0,hsla(0,0%,100%,.3) 75%,transparent 0,transparent);background-repeat:repeat-x;background-size:25px 25px}.op-controls--hidden .op-controls .op-controls__progress[aria-disabled=true] input[type=range]::-webkit-slider-thumb{background:transparent}.op-controls--hidden .op-controls .op-controls__progress[aria-disabled=true] input[type=range]::-moz-range-thumb{background:transparent}.op-controls--hidden .op-controls .op-controls__progress[aria-disabled=true] input[type=range]::-ms-thumb{background:transparent}.op-controls .op-controls__progress{flex-grow:2;min-width:0;width:100%}.op-controls .op-controls__progress,.op-controls .op-controls__progress:hover,.op-controls .op-controls__volume,.op-controls .op-controls__volume:hover{cursor:pointer}.op-controls__progress--buffer::-webkit-progress-value{-webkit-transition:width .2s ease;transition:width .2s ease}.op-controls__progress--played::-webkit-progress-value,.op-controls__volume--display::-webkit-progress-value{max-width:99%;-webkit-transition:none;transition:none}.op-controls__progress--buffer::-moz-progress-bar{-moz-transition:width .2s ease;transition:width .2s ease}.op-controls__progress--played::-moz-progress-bar,.op-controls__volume--display::-moz-progress-bar{max-width:99%;-moz-transition:none;transition:none}.op-controls .op-controls__progress--played,.op-controls .op-controls__volume--display{background:0 0;color:red;transition:all .2s ease;z-index:2}.op-controls .op-controls__progress[aria-disabled=true]{cursor:default}.op-controls .op-controls__progress[aria-disabled=true]>progress{color:#fecb2f;pointer-events:none}.op-controls .op-controls__volume--display{background:hsla(0,0%,100%,.35)}.op-controls .op-controls__progress--buffer{background:hsla(0,0%,100%,.3);color:hsla(0,0%,100%,.25);color:transparent}.op-controls .op-controls__progress[aria-disabled=true] input[type=range]::-webkit-slider-thumb{display:none}.op-controls .op-controls__progress[aria-disabled=true] input[type=range]::-moz-range-thumb{display:none}.op-controls .op-controls__progress[aria-disabled=true] input[type=range]::-ms-thumb{display:none}.op-controls .op-controls__progress[aria-disabled=true] input[type=range]::-webkit-slider-runnable-track{cursor:default}.op-controls .op-controls__progress[aria-disabled=true] input[type=range]::-moz-range-track{cursor:default}.op-controls .op-controls__progress[aria-disabled=true] input[type=range]::-ms-track{cursor:default}.op-controls__tooltip{background:#eee;border:1px solid #000;bottom:100%;color:#000;display:none;left:0;margin-bottom:10px;padding:1px 4px;position:absolute;text-align:center;transform:translateX(0)}.op-player__video .op-controls__tooltip{margin-bottom:10px}.op-controls__tooltip:after,.op-controls__tooltip:before{content:"";height:0;left:0;margin:0 auto;position:absolute;right:0;top:100%;width:0}.op-controls__tooltip:before{border-left:8px solid transparent;border-right:8px solid transparent;border-top:8px solid #000}.op-controls__tooltip:after{border-left:7px solid transparent;border-right:7px solid transparent;border-top:7px solid #eee}.op-controls__tooltip--visible{display:block}.op-controls__volume--container{align-items:center;display:flex}.op-controls__volume{margin-left:0;margin-right:10px;width:70px}.op-controls__mute{width:30px}.op-controls .op-controls__mute:before{text-align:left}.op-fullscreen__on .op-media{height:100%;width:100%}.op-fullscreen__on .op-controls{z-index:2147483648}.op-fullscreen__on.op-controls--hidden{cursor:none}.op-fullscreen__on.op-controls--hidden .op-controls{bottom:-40px}.op-player video::-webkit-media-controls{display:none!important}.op-ads{position:absolute;top:0}.op-ads video{background:#000;display:inline-block;height:auto;object-fit:contain;position:relative;width:100%!important}.op-ads__skip{bottom:100px;display:none;pointer-events:auto;position:absolute;right:12px;z-index:3}.op-ads__skip button{background:rgba(0,0,0,.8);border:1px solid hsla(0,0%,100%,.5);color:#fff;cursor:pointer;direction:ltr;font-size:14px;font-weight:400;line-height:normal;min-width:50px;padding:10px 7px;-webkit-tap-highlight-color:rgba(0,0,0,0);text-align:center;width:auto}.op-ads__skip button:hover{border-color:#fff}.op-player__video:not(.op-controls--hidden) .op-ads__nonlinear{bottom:60px!important;bottom:calc(var(--op-controls-height, 48px) + 12px)!important}.op-menu{background:rgba(28,28,28,.7);bottom:48px;color:#fff;font-size:.85em;overflow:hidden;position:absolute;right:5px;text-shadow:0 0 2px rgba(0,0,0,.5);transition:right .2s ease;-webkit-user-select:none;-ms-user-select:none;user-select:none;will-change:width,height;z-index:4}.op-menu__submenu{display:flex;flex-direction:column;padding:6px 6px 3px}.op-menu__header,.op-menu__submenu button{align-items:center;color:#fff;display:flex}.op-menu__header{padding:4px 0 6px;position:relative}.op-menu__header:after{background-color:#fff;bottom:-4px;content:"";height:1px;position:absolute;width:100%}.op-menu__header+.op-controls__menu-item:first-of-type{padding-top:12px}.op-menu__item-check{display:block;height:16px;margin-right:6px;width:16px}.op-menu__item-check.checked:before{content:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCI+PHBhdGggZmlsbD0iI2ZmZiIgZD0iTTkgMTYuMiA0LjggMTJsLTEuNCAxLjRMOSAxOSAyMSA3bC0xLjQtMS40eiIvPjwvc3ZnPg==")}.op-submenu__back:before{content:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAzMiAzMiI+PHBhdGggZmlsbD0iI2ZmZiIgZD0ibTE5LjQxIDIwLjA5LTQuNTgtNC41OSA0LjU4LTQuNTlMMTggOS41bC02IDYgNiA2eiIvPjwvc3ZnPg==");margin-left:-6px!important;margin-top:-8px;width:24px!important}.op-player__video video::cue{background:rgba(0,0,0,.6);color:#fff;font-size:16px;line-height:1.35;text-shadow:0 1px 2px rgba(0,0,0,.8)}.op-player__video:not(.op-controls--hidden) video::-webkit-media-text-track-display{transform:translateY(calc((48px + env(safe-area-inset-bottom, 0px))*-1));transform:translateY(calc((var(--op-controls-height, 48px) + env(safe-area-inset-bottom, 0px))*-1))}.op-player__video:not(.op-controls--hidden) video::cue{transform:translateY(calc(-56px + env(safe-area-inset-bottom, 0px)*-1));transform:translateY(calc(var(--op-controls-height, 48px)*-1 + env(safe-area-inset-bottom, 0px)*-1 + -8px))}.op-player :focus-visible{outline:2px solid currentColor;outline-offset:2px}.op-player [role=button],.op-player button{min-height:24px;min-width:24px}@media (prefers-reduced-motion:reduce){.op-player *,.op-player :after,.op-player :before{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.01ms!important}}.op-ads__skip-btn,.op-controls [role=button],.op-controls button,.op-player__unmute{min-height:24px;min-width:24px}@media (pointer:coarse){.op-ads__skip-btn,.op-controls [role=button],.op-controls button,.op-player__unmute{min-height:44px;min-width:44px}}.op-ads__skip-btn:focus-visible,.op-controls [role=button]:focus-visible,.op-controls button:focus-visible,.op-controls input[type=range]:focus-visible,.op-media:focus-visible,.op-player__unmute:focus-visible{border-radius:2px;box-shadow:0 0 0 5px rgba(0,0,0,.8);outline:3px solid #fff;outline-offset:2px}.op-ads__skip-btn:focus:not(:focus-visible),.op-controls button:focus:not(:focus-visible),.op-controls input[type=range]:focus:not(:focus-visible),.op-player__unmute:focus:not(:focus-visible){outline:none}@media (prefers-reduced-motion:reduce){.op-ads__audio-banner,.op-ads__skip-btn,.op-controls,.op-controls *,.op-player__unmute{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}@media (forced-colors:active){.op-ads__skip-btn,.op-controls [role=button],.op-controls button,.op-player__unmute{background:ButtonFace;border:1px solid ButtonText;color:ButtonText;forced-color-adjust:none}.op-ads__skip-btn:focus-visible,.op-controls button:focus-visible,.op-player__unmute:focus-visible{outline:3px solid Highlight;outline-offset:2px}.op-controls input[type=range],.op-controls progress{accent-color:Highlight;forced-color-adjust:none}.op-controls button[aria-pressed=true]{background:Highlight;border-color:Highlight;color:HighlightText}}
|
package/dist/openplayer.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e="undefined"!=typeof globalThis?globalThis:e||self).OpenPlayerJS=t()}(this,function(){"use strict";const e={passive:!1};class t{constructor(e){Object.defineProperty(this,"media",{enumerable:!0,configurable:!0,writable:!0,value:e}),Object.defineProperty(this,"element",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.element=e}get currentSrc(){return this.media.currentSrc||this.media.src||""}get currentTime(){return this.media.currentTime||0}set currentTime(e){this.media.currentTime=e}get duration(){return this.media.duration}set duration(e){}get volume(){return this.media.volume}set volume(e){this.media.volume=e}get muted(){return this.media.muted}set muted(e){this.media.muted=e}get playbackRate(){return this.media.playbackRate}set playbackRate(e){this.media.playbackRate=e}get paused(){return this.media.paused}get ended(){return this.media.ended}load(e){e?.src&&this.media.src!==e.src&&(this.media.src=e.src),this.media.load()}play(){return this.media.play()}pause(){this.media.pause()}on(e,t,i){const r=i=>{t("error"!==e?void 0:this.media.error??i)};return this.media.addEventListener(e,r,i),()=>this.media.removeEventListener(e,r,i)}}function i(t,i){return[t.on("loadstart",()=>i.emit("loadstart"),e),t.on("loadedmetadata",()=>i.emit("loadedmetadata"),e),t.on("durationchange",()=>i.emit("durationchange"),e),t.on("timeupdate",()=>i.emit("timeupdate"),e),t.on("waiting",()=>i.emit("waiting"),e),t.on("seeking",()=>i.emit("seeking"),e),t.on("seeked",()=>i.emit("seeked"),e),t.on("ended",()=>i.emit("ended"),e),t.on("error",e=>i.emit("error",e),e),t.on("play",()=>i.emit("play"),e),t.on("playing",()=>i.emit("playing"),e),t.on("pause",()=>i.emit("pause"),e),t.on("volumechange",()=>i.emit("volumechange"),e),t.on("ratechange",()=>i.emit("ratechange"),e)]}class r{constructor(){Object.defineProperty(this,"surface",{enumerable:!0,configurable:!0,writable:!0,value:null}),Object.defineProperty(this,"events",{enumerable:!0,configurable:!0,writable:!0,value:null}),Object.defineProperty(this,"commands",{enumerable:!0,configurable:!0,writable:!0,value:[]}),Object.defineProperty(this,"surfaceListeners",{enumerable:!0,configurable:!0,writable:!0,value:[]})}bindSurfaceEvents(e,t){this.surface=e,this.events=t,this.surfaceListeners=i(e,t)}unbindSurfaceEvents(){this.surfaceListeners.forEach(e=>e()),this.surfaceListeners=[]}bindMediaEvents(e,t){const r={get currentTime(){return e.currentTime},set currentTime(t){e.currentTime=t},get duration(){return e.duration},set duration(e){},get volume(){return e.volume},set volume(t){e.volume=t},get muted(){return e.muted},set muted(t){e.muted=t},get playbackRate(){return e.playbackRate},set playbackRate(t){e.playbackRate=t},get paused(){return e.paused},get ended(){return e.ended},play:()=>e.play(),pause:()=>e.pause(),on:(t,i)=>{const r=()=>i();return e.addEventListener(t,r),()=>e.removeEventListener(t,r)}};this.surfaceListeners=i(r,t)}unbindMediaEvents(){this.unbindSurfaceEvents()}addMediaListener(e,t,i,r){e.addEventListener(t,i,r),this.surfaceListeners.push(()=>e.removeEventListener(t,i,r))}canHandlePlayback(e){const t=e.core.leases.owner("playback");return!t||t===this.name}bindCommands(e){const{events:t}=e;this.commands.push(t.on("cmd:seek",t=>{if(this.canHandlePlayback(e))try{e.surface.currentTime=t}catch{}})),this.commands.push(t.on("cmd:setVolume",t=>{try{e.surface.volume=t}catch{}})),this.commands.push(t.on("cmd:setMuted",t=>{try{e.surface.muted=t}catch{}})),this.commands.push(t.on("cmd:setRate",t=>{if(this.canHandlePlayback(e))try{e.surface.playbackRate=t}catch{}})),this.bindPlayPauseCommands(e)}unbindCommands(){for(const e of this.commands)e();this.commands=[]}bindPlayPauseCommands(e){const{events:t}=e;this.commands.push(t.on("cmd:play",()=>{this.canHandlePlayback(e)&&this.playImpl(e.surface)})),this.commands.push(t.on("cmd:pause",()=>{this.canHandlePlayback(e)&&this.pauseImpl(e.surface)}))}playImpl(e){const t=e.play();t&&"function"==typeof t.catch&&t.catch(()=>{})}pauseImpl(e){e.pause()}}class n extends r{constructor(){super(...arguments),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"default-engine"}),Object.defineProperty(this,"version",{enumerable:!0,configurable:!0,writable:!0,value:"1.0.0"}),Object.defineProperty(this,"capabilities",{enumerable:!0,configurable:!0,writable:!0,value:["media-engine"]}),Object.defineProperty(this,"priority",{enumerable:!0,configurable:!0,writable:!0,value:0})}canPlay(e){return""!==document.createElement("video").canPlayType(e.type||"")}attach(e){const t=e.resetSurface();try{t.load?.(e.activeSource)}catch{}this.bindSurfaceEvents(t,e.events),this.bindCommands(e),this.commands.push(e.events.on("cmd:startLoad",()=>{const i=e.core.state.current;if(!["ready","playing","paused","waiting","seeking","ended"].includes(i)&&"none"===e.media.preload){e.media.preload="metadata";try{t.load?.(e.activeSource)}catch{}}}))}detach(){this.unbindCommands(),this.unbindSurfaceEvents()}}const a={startTime:0,duration:0};class s{constructor(){Object.defineProperty(this,"disposers",{enumerable:!0,configurable:!0,writable:!0,value:[]}),Object.defineProperty(this,"disposed",{enumerable:!0,configurable:!0,writable:!0,value:!1})}get isDisposed(){return this.disposed}add(e){const t=e??(()=>{});if(this.disposed){try{t()}catch{}return()=>{}}return this.disposers.push(t),t}addEventListener(e,t,i,r){return e.addEventListener(t,i,r),this.add(()=>e.removeEventListener(t,i,r))}dispose(){if(!this.disposed){this.disposed=!0;for(let e=this.disposers.length-1;e>=0;e--)try{this.disposers[e]()}catch{}this.disposers=[]}}}class o{constructor(){Object.defineProperty(this,"listeners",{enumerable:!0,configurable:!0,writable:!0,value:new Map})}on(e,t){return this.listeners.has(e)||this.listeners.set(e,new Set),this.listeners.get(e).add(t),()=>this.listeners.get(e).delete(t)}emit(e,t){this.listeners.get(e)?.forEach(e=>e(t))}listenerCount(e){return this.listeners.get(e)?.size??0}clear(){this.listeners.clear()}}class l{constructor(){Object.defineProperty(this,"owners",{enumerable:!0,configurable:!0,writable:!0,value:new Map}),Object.defineProperty(this,"listeners",{enumerable:!0,configurable:!0,writable:!0,value:[]})}onChange(e){return this.listeners.push(e),()=>{this.listeners=this.listeners.filter(t=>t!==e)}}notify(e){const t=this.owners.get(e);for(const i of this.listeners)try{i(e,t)}catch{}}acquire(e,t){return!this.owners.has(e)&&(this.owners.set(e,t),this.notify(e),!0)}release(e,t){this.owners.get(e)===t&&(this.owners.delete(e),this.notify(e))}owner(e){return this.owners.get(e)}}class c{constructor(){Object.defineProperty(this,"plugins",{enumerable:!0,configurable:!0,writable:!0,value:[]})}register(e){this.plugins.push(e)}all(){return this.plugins}}class u{constructor(e){Object.defineProperty(this,"state",{enumerable:!0,configurable:!0,writable:!0,value:e})}get current(){return this.state}transition(e){this.state=e}}function d(e,t){const i=Math.floor(e%1*(t||0));let r=Math.floor(e),n=Math.floor(r/60);const a=Math.floor(n/60),s=e=>{const t=e.toString();return e<10?e<=0?"00":`0${t}`:t};return n%=60,r%=60,`${a>0?`${s(a)}:`:""}${s(n)}:${s(r)}${i?`:${s(i)}`:""}`}const h=e=>{const t=Number.isFinite(e)?Math.max(0,e):0,i=Math.floor(t),r=Math.floor(i/3600),n=Math.floor(i%3600/60);return`PT${r?`${r}H`:""}${n?`${n}M`:""}${i%60}S`};function p(e){const t=e.getBoundingClientRect();return{left:t.left+(window.pageXOffset||document.documentElement.scrollLeft),top:t.top+(window.pageYOffset||document.documentElement.scrollTop)}}function m(e){return e instanceof HTMLAudioElement}function b(){return/ipad|iphone|ipod/i.test(window.navigator.userAgent)&&!window.MSStream||/android/i.test(window.navigator.userAgent)}function f(e,t){let i;try{i=new URL(t).pathname}catch{return m(e)?"audio/mp3":"video/mp4"}const r=i.split("."),n=r.length>1?r.pop().toLowerCase():"";if(!n)return m(e)?"audio/mp3":"video/mp4";switch(n){case"m3u8":case"m3u":return"application/x-mpegURL";case"mpd":return"application/dash+xml";case"mp4":return m(e)?"audio/mp4":"video/mp4";case"mp3":return"audio/mp3";case"webm":return m(e)?"audio/webm":"video/webm";case"ogg":return m(e)?"audio/ogg":"video/ogg";case"ogv":return"video/ogg";case"oga":return"audio/ogg";case"3gp":return"audio/3gpp";case"wav":return"audio/wav";case"aac":return"audio/aac";case"flac":return"audio/flac";default:return m(e)?"audio/mp3":"video/mp4"}}const v=e=>Math.min(1,Math.max(0,e));class y{constructor(e,i={}){if(Object.defineProperty(this,"media",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"isLive",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(this,"events",{enumerable:!0,configurable:!0,writable:!0,value:new o}),Object.defineProperty(this,"leases",{enumerable:!0,configurable:!0,writable:!0,value:new l}),Object.defineProperty(this,"state",{enumerable:!0,configurable:!0,writable:!0,value:new u("idle")}),Object.defineProperty(this,"config",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"userInteracted",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(this,"canAutoplay",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(this,"canAutoplayMuted",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(this,"nativeSurface",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"activeSurface",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"interactionUnsubs",{enumerable:!0,configurable:!0,writable:!0,value:[]}),Object.defineProperty(this,"plugins",{enumerable:!0,configurable:!0,writable:!0,value:new c}),Object.defineProperty(this,"pluginDisposables",{enumerable:!0,configurable:!0,writable:!0,value:new WeakMap}),Object.defineProperty(this,"_src",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_volume",{enumerable:!0,configurable:!0,writable:!0,value:1}),Object.defineProperty(this,"_playbackRate",{enumerable:!0,configurable:!0,writable:!0,value:1}),Object.defineProperty(this,"_currentTime",{enumerable:!0,configurable:!0,writable:!0,value:0}),Object.defineProperty(this,"_muted",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(this,"_duration",{enumerable:!0,configurable:!0,writable:!0,value:0}),Object.defineProperty(this,"detectedSources",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"activeEngine",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"playerContext",{enumerable:!0,configurable:!0,writable:!0,value:null}),Object.defineProperty(this,"autoplaySupport",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"autoplaySupportPromise",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"readyPromise",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"readyResolve",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"readyReject",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"playRequestPromise",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),"string"==typeof e){const t=document.querySelector(e);if(!(t&&t instanceof HTMLMediaElement))throw new Error(`OpenPlayer: could not find media element for selector: ${e}`);this.media=t}else this.media=e;this.nativeSurface=new t(this.media),this.activeSurface=this.nativeSurface,this.registerPlugin(new n),this.config={...a,...i},this.media.currentTime=this.config.startTime||this.media.currentTime,this._currentTime=this.config.startTime||this.activeSurface.currentTime,this._duration=this.config.duration||this.activeSurface.duration;const r=v(this.config.startVolume??this.activeSurface.volume);this.activeSurface.volume=r,this._volume=r,void 0!==this.config.startVolume?(this.activeSurface.muted=r<=0,this._muted=r<=0):this._muted=this.activeSurface.muted,this.activeSurface.playbackRate=this.config.startPlaybackRate||this.activeSurface.playbackRate,this._playbackRate=this.config.startPlaybackRate||this.activeSurface.playbackRate,(this.config.plugins||[]).forEach(e=>this.registerPlugin(e)),this.bindStateTransitions(),this.bindSurfaceSync(),this.bindLeaseSync(),this.bindFirstInteraction(),queueMicrotask(()=>this.maybeAutoLoad())}get surface(){return this.activeSurface}on(e,t){return this.events.on(e,t)}emit(e,t){this.events.emit(e,t),this.plugins.all().filter(e=>!e.capabilities?.includes("media-engine")).forEach(i=>{i.onEvent?.(e,t)})}registerPlugin(e){this.plugins.register(e);const t=new s;this.pluginDisposables.set(e,t),e.setup?.({core:this,media:this.media,events:this.events,state:this.state,leases:this.leases,dispose:t,add:e=>t.add(e??void 0),on:(e,i)=>t.add(this.events.on(e,i)),listen:(e,i,r,n)=>t.addEventListener(e,i,r,n)})}set src(e){this._src=e,e&&(this.detectedSources=[{src:e,type:f(this.media,e)}],this.emit("source:set",e),this.playerContext&&(this.activeEngine?.detach?.(this.playerContext),this.activeEngine=void 0,this.playerContext=null),this.state.transition("idle"),this.readyPromise=void 0,this.readyResolve=void 0,this.readyReject=void 0,this.playRequestPromise=void 0,queueMicrotask(()=>this.load()))}get src(){return this._src}get volume(){return this._volume}set volume(e){const t=v(e);this._volume=t,this.emit("cmd:setVolume",t)}get muted(){return this._muted}set muted(e){this._muted=e,this.emit("cmd:setMuted",e)}set playbackRate(e){this._playbackRate=e,this.emit("cmd:setRate",e)}get playbackRate(){return this._playbackRate}set currentTime(e){this._currentTime=e,this.emit("cmd:seek",e)}get currentTime(){return this._currentTime}get duration(){return this._duration}load(){if("idle"!==this.state.current)return;this.emit("cmd:startLoad"),this.createReadyPromise();const e=this.detectedSources??this.readMediaSources(this.media);this.detectedSources=e;const{engine:t,source:i}=this.resolveMediaEngine(e);this.playerContext=this.createPlayerContext(i),this.activeEngine?.detach?.(this.playerContext),this.activeEngine=t,this.emit("loadstart"),this.emit("cmd:load"),this.activeEngine.attach(this.playerContext),this.emit("cmd:setVolume",this._volume),this.emit("cmd:setMuted",this._muted),this.emit("cmd:setRate",this._playbackRate),this._currentTime&&this.emit("cmd:seek",this._currentTime)}async whenReady(){if("ready"!==this.state.current&&"playing"!==this.state.current&&"paused"!==this.state.current&&"waiting"!==this.state.current&&"seeking"!==this.state.current&&"ended"!==this.state.current)return this.activeEngine||this.load(),this.createReadyPromise(),this.readyPromise??Promise.resolve()}async play(){return this.playRequestPromise||(this.activeEngine||this.load(),this.emit("cmd:play"),this.playRequestPromise=this.whenReady().finally(()=>{this.playRequestPromise=void 0})),this.playRequestPromise}async determineAutoplaySupport(){if(this.autoplaySupport)return this.autoplaySupport;if(this.autoplaySupportPromise)return this.autoplaySupportPromise;await this.whenReady().catch(()=>{});const e=this.media,t=e.volume,i=e.muted,r=()=>{try{e.volume=t}catch{}try{e.muted=i}catch{}this._volume=t,this._muted=i};return this.autoplaySupportPromise=(async()=>{try{try{const t=e.play();void 0!==t&&await t;try{e.pause()}catch{}return this.canAutoplay=!0,this.canAutoplayMuted=!1,{autoplay:!0,muted:!1}}catch{try{e.volume=0,e.muted=!0,this._volume=0,this._muted=!0}catch{}try{const t=e.play();void 0!==t&&await t;try{e.pause()}catch{}return this.canAutoplay=!0,this.canAutoplayMuted=!0,{autoplay:!0,muted:!0}}catch{return this.canAutoplay=!1,this.canAutoplayMuted=!1,{autoplay:!1,muted:!1}}}}finally{r()}})(),this.autoplaySupport=await this.autoplaySupportPromise,this.autoplaySupportPromise}pause(){"idle"!==this.state.current&&"loading"!==this.state.current&&this.emit("cmd:pause")}destroy(){this.events.emit("player:destroy"),this.playerContext&&this.activeEngine?.detach?.(this.playerContext),this.playerContext=null,this.plugins.all().forEach(e=>{try{this.pluginDisposables.get(e)?.dispose()}catch{}try{e.destroy?.()}catch{}}),this.interactionUnsubs.forEach(e=>e()),this.interactionUnsubs=[],this.events.clear()}addCaptions(e){const t=document.createElement("track");return t.kind=e.kind||"captions",t.src=e.src,e.srclang&&(t.srclang=e.srclang),e.label&&(t.label=e.label),e.default&&(t.default=!0),this.media.appendChild(t),this.emit("texttrack:add",t),this.emit("texttrack:listchange"),t}getPlugin(e){return this.plugins.all().find(t=>t?.name===e)}extend(e){if(!e||"object"!=typeof e)return this;for(const t of Object.keys(e))if(void 0===this[t])this[t]=e[t];else if(this[t]&&"object"==typeof this[t]&&e[t]&&"object"==typeof e[t]){const i=this[t],r=e[t];for(const e of Object.keys(r))void 0===i[e]&&(i[e]=r[e])}return this}bindFirstInteraction(){const e="undefined"!=typeof document?document:null;if(!e)return;const t=()=>{this.userInteracted||(this.userInteracted=!0,this.emit("player:interacted"),this.interactionUnsubs.forEach(e=>e()),this.interactionUnsubs=[])},i={capture:!0,passive:!0},r={capture:!0},n=n=>{e.addEventListener(n,t,i),this.interactionUnsubs.push(()=>e.removeEventListener(n,t,r))};n("pointerdown"),n("mousedown"),n("touchstart"),n("keydown")}resolveMediaEngine(e){if(0===e.length)throw new Error("Player cannot resolve media with an empty source");const t=[...this.plugins.all().filter(e=>!(!e||!e.capabilities?.includes("media-engine")||"function"!=typeof e.canPlay))].sort((e,t)=>(t.priority??0)-(e.priority??0)||e.name.localeCompare(t.name));for(const i of e)for(const e of t)if(e.canPlay?.(i))return{engine:e,source:i};throw new Error("No compatible media engine found")}bindStateTransitions(){this.events.on("loadstart",()=>this.state.transition("loading")),this.events.on("loadedmetadata",()=>{this.state.transition("ready"),this.readyResolve&&(this.readyResolve(),this.readyResolve=void 0,this.readyReject=void 0)}),this.events.on("playing",()=>this.state.transition("playing")),this.events.on("pause",()=>this.state.transition("paused")),this.events.on("waiting",()=>this.state.transition("waiting")),this.events.on("seeking",()=>this.state.transition("seeking")),this.events.on("seeked",()=>this.state.transition("ready")),this.events.on("ended",()=>this.state.transition("ended")),this.events.on("error",e=>{this.state.transition("error"),this.readyReject&&(this.readyReject(e),this.readyResolve=void 0,this.readyReject=void 0)})}bindSurfaceSync(){const e=()=>{try{this._currentTime=this.activeSurface.currentTime||0}catch{}try{const e=this.config.duration||this.activeSurface.duration;this._duration=e}catch{}try{this._muted=Boolean(this.activeSurface.muted);const e=this.activeSurface.volume;Number.isFinite(e)&&(this._volume=e)}catch{}try{const e=this.activeSurface.playbackRate;Number.isFinite(e)&&(this._playbackRate=e)}catch{}};this.events.on("loadedmetadata",()=>e()),this.events.on("durationchange",()=>e()),this.events.on("timeupdate",()=>e()),this.events.on("volumechange",()=>e()),this.events.on("ratechange",()=>e())}createPlayerContext(e){const t={media:this.media,container:this.media.parentElement??this.media,events:this.events,config:this.config,activeSource:e,core:this,surface:this.activeSurface,setSurface:e=>(this.activeSurface=e,this.activeSurface),resetSurface:()=>(this.activeSurface=this.nativeSurface,this.nativeSurface)};return Object.defineProperty(t,"surface",{get:()=>this.activeSurface,enumerable:!0,configurable:!0}),t}bindLeaseSync(){this.leases.onChange(e=>{"playback"===e&&queueMicrotask(()=>{this.emit("cmd:setVolume",this._volume),this.emit("cmd:setMuted",this._muted),this.emit("cmd:setRate",this._playbackRate),this._currentTime&&this.emit("cmd:seek",this._currentTime)})})}createReadyPromise(){this.readyPromise||(this.readyPromise=new Promise((e,t)=>{this.readyResolve=e,this.readyReject=t}))}readMediaSources(e){const t=[];e.src&&t.push({src:e.src,type:f(e,e.src)});try{e.querySelectorAll("source").forEach(i=>{t.push({src:i.src,type:i.type||f(e,i.src)})})}catch{}return t}maybeAutoLoad(){if("idle"!==this.state.current)return;if(!this.plugins.all().some(e=>e.capabilities?.includes("media-engine")))return;const e=this.readMediaSources(this.media);if(0===e.length)return;this.detectedSources=e;const t=this.media.autoplay;try{this.media.querySelectorAll("source").forEach(e=>e.remove()),this.media.getAttribute("src")&&this.media.removeAttribute("src"),this.media.src&&(this.media.src=""),this.load(),t&&(this.media.autoplay=!1,queueMicrotask(()=>this.emit("cmd:play")))}catch{}}}class g{constructor(e){Object.defineProperty(this,"bus",{enumerable:!0,configurable:!0,writable:!0,value:e})}on(e,t){return this.bus.on(e,t)}emit(e,...t){this.bus.emit(e,...t)}clear(){this.bus.clear()}}const w="__op::overlay::manager";class P{constructor(){Object.defineProperty(this,"bus",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"active",{enumerable:!0,configurable:!0,writable:!0,value:null}),Object.defineProperty(this,"overlays",{enumerable:!0,configurable:!0,writable:!0,value:new Map}),this.bus=new g(new o)}dispose(){this.overlays.clear(),this.active=null,this.bus.clear()}activate(e){this.overlays.set(e.id,e),this.recomputeAndEmit()}update(e,t){const i=this.overlays.get(e);if(!i)return;const r={...i,...t,id:i.id};this.overlays.set(e,r),this.recomputeAndEmit()}deactivate(e){this.overlays.delete(e)&&this.recomputeAndEmit()}recomputeAndEmit(){const e=this.pickActive();this.active=e,this.bus.emit("overlay:changed",this.active)}pickActive(){let e=null;for(const t of this.overlays.values())(!e||t.priority>e.priority)&&(e=t);return e}}function _(e){if(e[w])return e[w];const t=new P;e[w]=t;try{if(e?.events?.on&&e?.events?.emit){const i=t.bus.on("overlay:changed",t=>e.events.emit("overlay:changed",t));e.events.on("player:destroy",()=>{try{i()}catch{}try{t.dispose()}catch{}try{delete e[w]}catch{}})}}catch{}return t}const k=Symbol.for("openplayerjs.caption.provider");function E(e){return e[k]??null}var O=Object.freeze({__proto__:null,BaseMediaEngine:r,Core:y,DVR_THRESHOLD:120,DefaultMediaEngine:n,DisposableStore:s,EVENT_OPTIONS:e,EventBus:o,HtmlMediaSurface:t,IframeMediaSurface:class{constructor(e,t={}){Object.defineProperty(this,"kind",{enumerable:!0,configurable:!0,writable:!0,value:"iframe"}),Object.defineProperty(this,"element",{enumerable:!0,configurable:!0,writable:!0,value:null}),Object.defineProperty(this,"currentSrc",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"internalBus",{enumerable:!0,configurable:!0,writable:!0,value:new o}),Object.defineProperty(this,"adapter",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"pollIntervalMs",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"pollTimer",{enumerable:!0,configurable:!0,writable:!0,value:null}),Object.defineProperty(this,"_paused",{enumerable:!0,configurable:!0,writable:!0,value:!0}),Object.defineProperty(this,"_ended",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(this,"_duration",{enumerable:!0,configurable:!0,writable:!0,value:NaN}),Object.defineProperty(this,"_currentTime",{enumerable:!0,configurable:!0,writable:!0,value:0}),Object.defineProperty(this,"_volume",{enumerable:!0,configurable:!0,writable:!0,value:1}),Object.defineProperty(this,"_muted",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(this,"_playbackRate",{enumerable:!0,configurable:!0,writable:!0,value:1}),this.adapter=e,this.pollIntervalMs=t.pollIntervalMs??250,this.onAdapterReady=this.onAdapterReady.bind(this),this.onAdapterState=this.onAdapterState.bind(this),this.onAdapterError=this.onAdapterError.bind(this),this.adapter.on("ready",this.onAdapterReady),this.adapter.on("state",this.onAdapterState),this.adapter.on("error",this.onAdapterError),this.adapter.on("timeupdate",e=>this.applyTime(e)),this.adapter.on("durationchange",e=>this.applyDuration(e)),this.adapter.on("ratechange",e=>this.applyRate(e)),this.adapter.on("volumechange",(e,t)=>this.applyVolume(e,t)),this.adapter.on("ended",()=>this.applyEnded())}get currentTime(){return this._currentTime}set currentTime(e){this._currentTime=e,this.internalBus.emit("seeking"),Promise.resolve(this.adapter.seekTo(e)).then(()=>{this.internalBus.emit("seeked")})}get duration(){return this._duration}set duration(e){}get volume(){return this._volume}set volume(e){const t=Math.min(1,Math.max(0,e));this.adapter.setVolume(t),this.applyVolume(t,this._muted)}get muted(){return this._muted}set muted(e){e?this.adapter.mute():this.adapter.unmute(),this.applyVolume(this._volume,e)}get playbackRate(){return this._playbackRate}set playbackRate(e){this.adapter.setPlaybackRate(e),this.applyRate(e)}get paused(){return this._paused}get ended(){return this._ended}load(e){}play(){return Promise.resolve(this.adapter.play()).then(()=>{})}pause(){Promise.resolve(this.adapter.pause())}on(e,t,i){return this.internalBus.on(e,t)}async mount(e){await this.adapter.mount(e)}destroy(){this.stopPolling(),this.adapter.off("ready",this.onAdapterReady),this.adapter.off("state",this.onAdapterState),this.adapter.off("error",this.onAdapterError),this.adapter.destroy(),this.internalBus.clear()}onAdapterReady(){this.applyDuration(this.safeNum(this.adapter.getDuration())),this.applyTime(this.safeNum(this.adapter.getCurrentTime())),this.adapter.getVolume&&this.applyVolume(this.safeNum(this.adapter.getVolume()),this._muted),this.adapter.isMuted&&this.applyVolume(this._volume,!!this.adapter.isMuted()),this.adapter.getPlaybackRate&&this.applyRate(this.safeNum(this.adapter.getPlaybackRate())),this.adapter.getElement&&(this.element=this.adapter.getElement()),this.startPolling(),this.internalBus.emit("loadedmetadata")}onAdapterState(e){switch(e){case"loading":case"buffering":this.internalBus.emit("waiting");break;case"playing":this._paused=!1,this._ended=!1,this.internalBus.emit("play"),this.internalBus.emit("playing");break;case"paused":this._paused=!0,this.internalBus.emit("pause");break;case"ended":this._paused=!0,this._ended=!0,this.internalBus.emit("ended")}}onAdapterError(e){this.internalBus.emit("error",e)}applyTime(e){Number.isFinite(e)&&(this._currentTime=e,this.internalBus.emit("timeupdate"))}applyDuration(e){!Number.isFinite(e)||e<=0||(this._duration=e,this.internalBus.emit("durationchange"))}applyRate(e){!Number.isFinite(e)||e<=0||(this._playbackRate=e,this.internalBus.emit("ratechange"))}applyVolume(e,t){Number.isFinite(e)&&(this._volume=Math.min(1,Math.max(0,e)),this._muted=!!t,this.internalBus.emit("volumechange"))}applyEnded(){this._ended=!0,this._paused=!0,this.internalBus.emit("ended")}startPolling(){if(null!=this.pollTimer)return;const e=()=>{this.applyTime(this.safeNum(this.adapter.getCurrentTime())),this.applyDuration(this.safeNum(this.adapter.getDuration())),this.adapter.getVolume&&this.applyVolume(this.safeNum(this.adapter.getVolume()),this._muted),this.adapter.isMuted&&this.applyVolume(this._volume,!!this.adapter.isMuted()),this.adapter.getPlaybackRate&&this.applyRate(this.safeNum(this.adapter.getPlaybackRate())),this.pollTimer=window.setTimeout(e,this.pollIntervalMs)};this.pollTimer=window.setTimeout(e,this.pollIntervalMs)}stopPolling(){null!=this.pollTimer&&(window.clearTimeout(this.pollTimer),this.pollTimer=null)}safeNum(e){const t=Number(e);return Number.isFinite(t)?t:NaN}},Lease:l,PluginRegistry:c,StateManager:u,formatTime:d,generateISODateTime:h,getCaptionTrackProvider:E,getOverlayManager:_,isAudio:m,isMobile:b,offset:p,setCaptionTrackProvider:function(e,t){e[k]=t}});const S=new Map,A={top:["progress"],"bottom-left":["play","time","volume"],"bottom-right":["captions","settings","fullscreen"]};function L(e){if(!e||"object"!=typeof e)return{...A};if(e.layers&&"object"==typeof e.layers){const t={},{left:i,middle:r,right:n}=e.layers;return Array.isArray(i)&&(t["bottom-left"]=i),Array.isArray(r)&&(t.top=r),Array.isArray(n)&&(t["bottom-right"]=n),Object.keys(t).length>0?t:{...A}}const t={};for(const[i,r]of Object.entries(e))Array.isArray(r)&&(t[i]=r);return Object.keys(t).length>0?t:{...A}}function j(e){const t=document.createElement("div");t.className=`op-controls__layer op-controls-layer__${e}`;const i=document.createElement("div");i.className="op-controls__left";const r=document.createElement("div");r.className="op-controls__middle";const n=document.createElement("div");return n.className="op-controls__right",t.append(i,r,n),{section:t,left:i,center:r,right:n}}function T(e,t){const i=j("top"),r=j("center"),n=j("bottom");return e.append(i.section,r.section,n.section),{place(e,a){const s=e.region?.trim();if("main"===s&&t)return void t.appendChild(a);const o="top"===e.v?i:"middle"===e.v?r:n;("left"===e.h?o.left:"center"===e.h?o.center:o.right).appendChild(a)}}}function x(e,t){S.set(e,t)}function C(e){const t=[],i=L(e);return Object.entries(i).forEach(([e,i])=>{if(!Array.isArray(i))return;const r=function(e){if("main"===e)return{v:"middle",h:"center",region:"main"};const t=e.split("-");let i="middle",r="center";for(const e of t)"top"!==e&&"bottom"!==e||(i=e),"left"!==e&&"right"!==e||(r=e),"middle"!==e&&"center"!==e||(r="center");return{v:i,h:r}}(e);i.forEach(e=>{const i=function(e){const t=S.get(e);return t?.()||null}(e);i&&(i.placement=r,t.push(i))})}),t}let R=0;function M(e,t,i){const r=e.parentElement??i?.container;if(!r)return void e.setAttribute("aria-label",t);const n=e.getAttribute("aria-labelledby");let a=null;if(n){const e=document.getElementById(n);e&&e instanceof HTMLSpanElement&&(a=e)}a||(a=document.createElement("span"),a.className="op-player__sr-only",a.id=(R+=1,`op-player-sr-${R}`),e.parentElement===r&&r.contains(e)?r.insertBefore(a,e):r.appendChild(a),e.setAttribute("aria-labelledby",a.id)),a.textContent=t,e.removeAttribute("aria-label")}function N(e,t,i){if("button"===e.tagName.toLowerCase()||"button"===e.getAttribute("role"))return function(e,t){const i=e.querySelector(":scope > span.op-player__sr-only"),r=i??document.createElement("span");i||(r.className="op-player__sr-only",e.appendChild(r)),r.textContent=t}(e,t),void e.removeAttribute("aria-label");M(e,t,i)}const F=0,I=!0,B=!0,D=Object.freeze({auto:"Auto",captions:"CC/Subtitles",click:"Click to unmute",container:"Media player",fullscreen:"Fullscreen",levels:"Quality Levels",live:"Live",loading:"Loading...",media:"Media",mute:"Mute",off:"Off",pause:"Pause",play:"Play",progressRail:"Time Rail",progressSlider:"Time Slider",restart:"Restart",settings:"Player Settings",speed:"Speed",speedNormal:"Normal",tap:"Tap to unmute",toggleCaptions:"Toggle Captions",unmute:"Unmute",volume:"Volume",volumeControl:"Volume Control",volumeSlider:"Volume Slider"});function q(e){const t=e.config?e.config:e,i=t.allowSkip??I,r=t.allowRewind??B,n=t.step??F,a=t.width,s=t.height,o={...D,...t.labels||{}};if(e.config)try{t.labels=o,t.allowSkip=i,t.allowRewind=r,t.step=n}catch{}return{allowSkip:i,allowRewind:r,step:n,width:a,height:s,labels:o}}const V=Symbol.for("openplayerjs.settings.registry");class ${constructor(){Object.defineProperty(this,"providers",{enumerable:!0,configurable:!0,writable:!0,value:new Map})}register(e){return this.providers.set(e.id,e),()=>this.providers.delete(e.id)}list(){return Array.from(this.providers.values()).sort((e,t)=>e.label.localeCompare(t.label))}}function H(e){const t=e;if(t[V])return t[V];const i=new $;return t[V]=i,i}class z{constructor(){Object.defineProperty(this,"core",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"overlayMgr",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"activeOverlay",{enumerable:!0,configurable:!0,writable:!0,value:null}),Object.defineProperty(this,"dispose",{enumerable:!0,configurable:!0,writable:!0,value:new s})}onOverlayChanged(e){}create(e){return this.dispose.dispose(),this.dispose=new s,this.core=e,this.overlayMgr=_(e),this.activeOverlay=this.overlayMgr.active??null,this.dispose.add(this.overlayMgr.bus.on("overlay:changed",e=>{this.activeOverlay=e,this.onOverlayChanged(e)})),this.build()}destroy(){this.dispose.dispose()}onPlayer(e,t){return this.dispose.add(this.core.events.on(e,t))}listen(e,t,i,r){return this.dispose.addEventListener(e,t,i,r)}resolvePlayerRoot(){const e=this.core.media;return e&&(e.closest(".op-player")||e.parentElement)||document.body}resolveFullscreenContainer(){return this.activeOverlay?.fullscreenEl||this.resolvePlayerRoot()}resolveFullscreenVideoEl(){return this.activeOverlay?.fullscreenVideoEl||(this.core.media??null)}}function U(e){return"captions"===e||"subtitles"===e}function W(e,t){return e.label&&e.label.trim()||e.language&&e.language.trim().toUpperCase()||`Track ${t+1}`}function X(e){const t=e.textTracks??null;if(!t)return[];const i=[];for(let e=0;e<t.length;e++){const r=t[e];r&&(U(String(r.kind))&&i.push({index:e,track:r}))}return i}function J(e){for(const t of X(e))if("showing"===t.track.mode)return t.index;return"off"}function K(e){for(const t of X(e))t.track.mode="disabled"}function Q(e){for(const t of X(e))t.track.mode="hidden"}function Y(e,t,i="disabled"){for(const r of X(e))r.track.mode=r.index===t?"showing":i}class G extends z{constructor(){super(...arguments),Object.defineProperty(this,"id",{enumerable:!0,configurable:!0,writable:!0,value:"captions"}),Object.defineProperty(this,"placement",{enumerable:!0,configurable:!0,writable:!0,value:{v:"bottom",h:"right"}}),Object.defineProperty(this,"button",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"lastSelectedIndex",{enumerable:!0,configurable:!0,writable:!0,value:null}),Object.defineProperty(this,"lastAdTrackIndex",{enumerable:!0,configurable:!0,writable:!0,value:null}),Object.defineProperty(this,"lastSelectedProviderId",{enumerable:!0,configurable:!0,writable:!0,value:null})}build(){const t=this.core,i=q(t).labels,r=i.captions,n=i.toggleCaptions;this.button=document.createElement("button"),this.button.type="button",this.button.className="op-controls__captions",N(this.button,n),this.button.setAttribute("aria-pressed","false");const a=()=>E(t),s=()=>{const e=this.activeOverlay?.fullscreenVideoEl;return e instanceof HTMLVideoElement?e:null},o=()=>{const e=s();if(this.activeOverlay){if(e){const t=X(e);if(this.button.style.display=t.length>0?"":"none",t.length>0){const t="off"!==J(e);this.button.classList.toggle("op-controls__captions--on",t),this.button.setAttribute("aria-pressed",t?"true":"false")}}else this.button.style.display="none";return}const i=a(),r=X(t.media),n=i?.getTracks()??[],o=r.length>0||n.length>0;this.button.style.display=o?"":"none";const l=i?null!==i.getActiveTrack():"off"!==J(t.media);this.button.classList.toggle("op-controls__captions--on",l),this.button.setAttribute("aria-pressed",l?"true":"false")};this.listen(this.button,"click",e=>{const i=e,r=s();if(this.activeOverlay&&r){if("off"===J(r)){const e=X(r),t=this.lastAdTrackIndex??e[0]?.index;"number"==typeof t&&Y(r,t,"hidden")}else Q(r)}else{const e=a();if(e){if(null!==e.getActiveTrack())e.setTrack(null);else{const t=e.getTracks(),i=this.lastSelectedProviderId??t[0]?.id??null;e.setTrack(i),i&&(this.lastSelectedProviderId=i)}}else{if("off"===J(t.media)){const e=X(t.media),i=this.lastSelectedIndex??e[0]?.index;"number"==typeof i&&Y(t.media,i)}else K(t.media)}}o(),i.preventDefault(),i.stopPropagation()},e);const l={id:"captions",label:r,getSubmenu:()=>{const e=s();if(this.activeOverlay&&e){const t=X(e);if(!t.length)return null;const n=J(e);return{id:"captions",label:r,items:[{id:"off",label:i.off,checked:"off"===n,onSelect:()=>{Q(e),o()}},...t.map(t=>({id:String(t.index),label:W(t.track,t.index),checked:t.index===n,onSelect:()=>{Y(e,t.index,"hidden"),this.lastAdTrackIndex=t.index,o()}}))]}}if(this.activeOverlay)return null;const n=a(),l=X(t.media);if(n){const e=n.getTracks();if(!e.length)return null;const t=n.getActiveTrack();return{id:"captions",label:r,items:[{id:"off",label:i.off,checked:null===t,onSelect:()=>{n.setTrack(null),o()}},...e.map(e=>({id:e.id,label:e.label||e.language||e.id,checked:e.id===t,onSelect:()=>{n.setTrack(e.id),this.lastSelectedProviderId=e.id,o()}}))]}}if(!l.length)return null;const c=J(t.media);return{id:"captions",label:r,items:[{id:"off",label:i.off,checked:"off"===c,onSelect:()=>{K(t.media),o()}},...l.map(e=>({id:String(e.index),label:W(e.track,e.index),checked:e.index===c,onSelect:()=>{Y(t.media,e.index),this.lastSelectedIndex=e.index,o()}}))]}}};return H(t).register(l),this.dispose.add(this.overlayMgr.bus.on("overlay:changed",e=>{e?Promise.resolve().then(()=>o()):(this.lastAdTrackIndex=null,o())})),this.onPlayer("loadedmetadata",()=>{const e=a();o(),e?.subscribe&&this.dispose.add(e.subscribe(()=>o()))}),o(),this.button}}function Z(e){const t=new G;return e&&(t.placement=e),t}class ee extends z{constructor(){super(...arguments),Object.defineProperty(this,"id",{enumerable:!0,configurable:!0,writable:!0,value:"currentTime"}),Object.defineProperty(this,"placement",{enumerable:!0,configurable:!0,writable:!0,value:{v:"top",h:"left"}})}build(){const e=this.core,t=document.createElement("time");t.className="op-controls__current",t.setAttribute("role","timer"),t.setAttribute("aria-live","off"),t.setAttribute("aria-hidden","false"),t.setAttribute("datetime","PT0M0S"),t.innerText="0:00";const i=()=>{if(this.activeOverlay)return t.setAttribute("aria-hidden","false"),void(t.innerText=d(Math.ceil(this.activeOverlay.value)));if(e.isLive)return void t.setAttribute("aria-hidden","true");const i=e.currentTime;t.setAttribute("aria-hidden","false");const r=Number.isFinite(i)?Math.max(0,i):0,n=d(r);t.innerText=n,t.setAttribute("datetime",h(r))};return this.onPlayer("timeupdate",()=>i()),this.onPlayer("seeked",()=>i()),this.onPlayer("durationchange",()=>i()),this.overlayMgr.bus.on("overlay:changed",()=>i()),i(),t}}function te(e){const t=new ee;return e&&(t.placement=e),t}class ie extends z{constructor(){super(...arguments),Object.defineProperty(this,"id",{enumerable:!0,configurable:!0,writable:!0,value:"duration"}),Object.defineProperty(this,"placement",{enumerable:!0,configurable:!0,writable:!0,value:{v:"top",h:"right"}})}build(){const e=this.core,t=document.createElement("time");t.className="op-controls__duration",t.setAttribute("aria-hidden","false"),t.setAttribute("datetime","PT0M0S");const i=()=>{if(this.activeOverlay)return t.setAttribute("aria-hidden","false"),void(t.innerText=d(this.activeOverlay.duration));const i=e.duration;if(e.isLive||i===1/0)return t.removeAttribute("datetime"),void(t.textContent=q(e).labels.live);t.setAttribute("aria-hidden","false");const r=Number.isFinite(i)?Math.max(0,i):e.config?.duration||0,n=d(r);t.textContent=n,t.setAttribute("datetime",h(r))};return this.onPlayer("durationchange",i),this.onPlayer("timeupdate",i),this.overlayMgr.bus.on("overlay:changed",i),i(),t}}function re(e){const t=new ie;return e&&(t.placement=e),t}function ne(){const e=document;return document.fullscreenElement||e.webkitFullscreenElement||e.mozFullScreenElement||e.msFullscreenElement||null}function ae(){const e=document;return document.exitFullscreen?document.exitFullscreen():e.mozCancelFullScreen?e.mozCancelFullScreen():e.webkitCancelFullScreen?e.webkitCancelFullScreen():e.msExitFullscreen?e.msExitFullscreen():void 0}class se extends z{constructor(){super(...arguments),Object.defineProperty(this,"id",{enumerable:!0,configurable:!0,writable:!0,value:"fullscreen"}),Object.defineProperty(this,"placement",{enumerable:!0,configurable:!0,writable:!0,value:{v:"bottom",h:"right"}}),Object.defineProperty(this,"isFullscreen",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(this,"screenW",{enumerable:!0,configurable:!0,writable:!0,value:0}),Object.defineProperty(this,"screenH",{enumerable:!0,configurable:!0,writable:!0,value:0})}build(){const t=q(this.core).labels,i=document.createElement("button");i.tabIndex=0,i.type="button",i.className="op-controls__fullscreen",N(i,t.fullscreen),i.setAttribute("aria-pressed","false");const r=(e,t)=>{const i=this.resolveFullscreenContainer(),r=this.resolveFullscreenVideoEl(),n=r?.parentElement??null;e?(i.style.width="100%",r&&(r.style.width="100%"),n&&n!==i&&(n.style.width="100%")):(i.style.removeProperty("width"),r&&r.style.removeProperty("width"),n&&n!==i&&n.style.removeProperty("width")),t?(i.style.height="100%",r&&(r.style.height="100%"),n&&n!==i&&(n.style.height="100%")):(i.style.removeProperty("height"),r&&r.style.removeProperty("height"),n&&n!==i&&n.style.removeProperty("height"))},n=()=>{const e=ne(),t=this.resolveFullscreenContainer(),n=!!e&&(e===t||e.contains?.(t));var a;(a=n)?i.classList.add("op-controls__fullscreen--out"):i.classList.remove("op-controls__fullscreen--out"),i.setAttribute("aria-pressed",a?"true":"false"),n?document.body.classList.add("op-fullscreen__on"):document.body.classList.remove("op-fullscreen__on"),r(n?this.screenW:void 0,n?this.screenH:void 0),this.isFullscreen=n};return["fullscreenchange","mozfullscreenchange","webkitfullscreenchange","msfullscreenchange"].forEach(t=>{this.listen(document,t,n,e)}),this.listen(document,"keydown",e=>{"Escape"===e.key&&this.isFullscreen&&ae()},e),this.listen(i,"click",async e=>{const t=e;if(this.screenW=window.screen.width,this.screenH=window.screen.height,ne())return void ae();!function(e){if(e)e.requestFullscreen?e.requestFullscreen():e.mozRequestFullScreen?e.mozRequestFullScreen():e.webkitRequestFullScreen?e.webkitRequestFullScreen():e.msRequestFullscreen?e.msRequestFullscreen():e.webkitEnterFullscreen&&e.webkitEnterFullscreen()}(this.resolveFullscreenContainer());try{await(window.screen.orientation?.lock("landscape"))}catch{}t.preventDefault(),t.stopPropagation()},e),n(),i}onOverlayChanged(){if(ne()){ne()&&document.dispatchEvent(new Event("fullscreenchange"))}}}function oe(e){const t=new se;return e&&(t.placement=e),t}function le(e){try{if(!!0)return e.surface;const t=_(e)?.active,i=t?.fullscreenVideoEl;return i&&"function"==typeof i.play?i:e.surface}catch{return e.surface}}async function ce(e){const t=le(e);t.paused||t.ended?await e.play():e.pause()}class ue extends z{constructor(){super(...arguments),Object.defineProperty(this,"id",{enumerable:!0,configurable:!0,writable:!0,value:"play"}),Object.defineProperty(this,"placement",{enumerable:!0,configurable:!0,writable:!0,value:{v:"bottom",h:"left"}})}build(){const t=this.core,i=q(t).labels,r=i.play,n=i.pause,a=i.restart;let s=!1;const o=document.createElement("button");o.tabIndex=0,o.type="button",o.className="op-controls__playpause",N(o,r),o.setAttribute("aria-pressed","false"),this.listen(o,"click",async e=>{const i=e;if(i.preventDefault(),i.stopPropagation(),s){le(t).currentTime=0}await ce(t)},e);const l=e=>{o.classList.toggle("op-controls__playpause--pause",e),o.classList.toggle("op-controls__playpause--replay",s&&!e),o.setAttribute("aria-pressed",e?"true":"false"),N(o,s&&!e?a:e?n:r)};return this.onPlayer("play",()=>{s=!1,l(!0)}),this.onPlayer("playing",()=>{s=!1,l(!0)}),this.onPlayer("pause",()=>l(!1)),this.onPlayer("ended",()=>{s=!0,l(!1)}),o}}function de(e){const t=new ue;return e&&(t.placement=e),t}class he extends z{constructor(){super(...arguments),Object.defineProperty(this,"id",{enumerable:!0,configurable:!0,writable:!0,value:"progress"}),Object.defineProperty(this,"placement",{enumerable:!0,configurable:!0,writable:!0,value:{v:"top",h:"center"}}),Object.defineProperty(this,"repaint",{enumerable:!0,configurable:!0,writable:!0,value:void 0})}build(){const t=this.core,i=q(t),{allowRewind:r,allowSkip:n,labels:a}=i,s=a.progressSlider,o=a.progressRail,l=document.createElement("div");l.className="op-controls__progress",l.role="group",N(l,s);const c=document.createElement("input");c.type="range",c.role="slider",c.className="op-controls__progress--seek",c.tabIndex=0,c.min="0",c.step="0.1",c.value="0",N(c,o,{container:l}),c.setAttribute("aria-valuemin","0"),c.setAttribute("aria-valuenow","0");const u=document.createElement("progress");u.className="op-controls__progress--buffer",u.max=100,u.value=0;const h=document.createElement("progress");let m;h.className="op-controls__progress--played",h.max=100,h.value=0,l.appendChild(c),l.appendChild(h),l.appendChild(u),b()||(m=document.createElement("span"),m.className="op-controls__tooltip",m.tabIndex=-1,m.textContent="00:00",l.appendChild(m));const f=e=>{e?c.classList.add("op-progress--pressed"):c.classList.remove("op-progress--pressed")};this.listen(c,"pointerdown",()=>f(!0)),this.listen(c,"pointerup",()=>f(!1)),this.listen(c,"pointercancel",()=>f(!1)),this.listen(c,"mouseleave",()=>f(!1)),this.listen(c,"touchstart",()=>f(!0),e),this.listen(c,"touchend",()=>f(!1),e),this.listen(c,"mousedown",()=>f(!0),e),this.listen(c,"mouseup",()=>f(!1),e);const v=()=>f(!1);this.listen(document,"pointerup",v,e),this.listen(document,"pointercancel",v,e),this.listen(document,"mouseup",v,e),this.listen(document,"touchend",v,e);const y=e=>{c.disabled=!e,c.classList.toggle("op-progress--disabled",!e),l.setAttribute("aria-disabled",(!e).toString())},g=()=>this.activeOverlay?this.activeOverlay.duration:t.surface?.duration??t.duration,w=()=>this.activeOverlay?this.activeOverlay.value:t.surface?.currentTime??t.currentTime,P=()=>this.activeOverlay?this.activeOverlay.mode:"normal",_=()=>{const e=g(),i=w(),r=P();if((t.isLive||e===1/0)&&!this.activeOverlay)return void l.setAttribute("aria-hidden","true");if(l.setAttribute("aria-hidden","false"),Number.isFinite(e)&&e>0&&(c.max&&"0"!==c.max&&parseFloat(c.max||"-1")===e||(c.max=String(e),c.setAttribute("aria-valuemax",String(e)))),this.repaint=_,this.activeOverlay?y(this.activeOverlay.canSeek):y(!t.isLive&&t.surface?.duration!==1/0),c.classList.contains("op-progress--pressed"))return;const n=Number.isFinite(e)&&e>0?e:0,a=Number.isFinite(i)&&i>=0?i:0;c.value=String(a),c.setAttribute("aria-valuenow",String(a));const s=parseFloat(c.min),o=parseFloat(c.max);if(Number.isFinite(s)&&Number.isFinite(o)&&o>s){const e="countdown"===r?100*(o-a-s)/(o-s):100*(a-s)/(o-s);c.style.backgroundSize=`${e}% 100%`}h.value=n?"countdown"===r?(n-a)/n*100:a/n*100:0,this.activeOverlay&&Number.isFinite(this.activeOverlay.bufferedPct)&&(u.value=Math.max(0,Math.min(100,this.activeOverlay.bufferedPct)))},k=e=>{if(this.activeOverlay&&!this.activeOverlay.canSeek)return;const i=g();if((t.isLive||i===1/0)&&!this.activeOverlay)return;if(!Number.isFinite(i)||i<=0)return;const a=l.getBoundingClientRect(),s=e-a.left,o=Math.max(0,Math.min(1,s/a.width))*i,u=w();o<u&&!r||o>u&&!n||Number.isFinite(o)&&(c.value=String(o),t.currentTime=o)};return this.listen(l,"click",e=>{const t=e,i=e.target;i&&i.closest('input[type="range"]')||k(t.clientX)},e),this.listen(l,"touchstart",e=>{const t=e,i=e.target;if(i&&i.closest('input[type="range"]'))return;const r=t.touches&&t.touches[0];r&&(t.preventDefault(),k(r.clientX))},e),this.listen(c,"change",e=>{if(this.activeOverlay&&!this.activeOverlay.canSeek)return;const i=e.target,a=parseFloat(i.value),s=w();a<s&&!r||a>s&&!n||(Number.isFinite(a)&&(t.currentTime=a),f(!1))},e),this.listen(c,"input",e=>{if(!c.classList.contains("op-progress--pressed")&&!b())return;if(this.activeOverlay&&!this.activeOverlay.canSeek)return;const i=e.target,a=parseFloat(i.min),s=parseFloat(i.max),o=parseFloat(i.value),l=w();if(o<l&&!r||o>l&&!n)return;Number.isFinite(a)&&Number.isFinite(s)&&s>a&&(c.style.backgroundSize=100*(o-a)/(s-a)+"% 100%");const u=g(),d=Number.isFinite(u)&&u>0?u:0;h.value=d?o/d*100:0,t.currentTime=o},e),this.onPlayer("durationchange",_),this.onPlayer("timeupdate",_),this.onPlayer("waiting",()=>{c.classList.contains("loading")||c.classList.add("loading"),c.classList.contains("error")&&c.classList.remove("error")}),this.onPlayer("play",()=>{c.classList.contains("loading")&&c.classList.remove("loading"),c.classList.contains("error")&&c.classList.remove("error"),t.isLive||t.surface.duration===1/0||(l.removeAttribute("aria-valuenow"),l.removeAttribute("aria-valuetext"))}),this.onPlayer("playing",()=>{c.classList.contains("loading")&&c.classList.remove("loading"),c.classList.contains("error")&&c.classList.remove("error")}),this.onPlayer("ended",()=>{c.style.backgroundSize="0% 100%",c.max&&(c.max="0"),u.value=0,h.value=0}),this.listen(l,"pointermove",e=>{const i=e;if(b())return;if(this.activeOverlay&&!this.activeOverlay.canSeek)return;const r=g();if((t.isLive||r===1/0)&&!this.activeOverlay)return;const n=i.pageX;let a=n-p(l).left;const s=m.offsetWidth/2,o=a/l.offsetWidth,u=o*r,h=this.resolvePlayerRoot(),f=h.offsetWidth-m.offsetWidth;a<=0||n-p(h).left<=s?a=0:n-p(h).left>=f?a=f-p(c).left-10:a-=s,o>=0&&o<=1?m.classList.add("op-controls__tooltip--visible"):m.classList.remove("op-controls__tooltip--visible"),m.style.left=`${a}px`,m.textContent=Number.isNaN(u)?"00:00":d(u)},e),this.listen(document,"pointermove",e=>{e.target.closest(".op-controls__progress")||m.classList.remove("op-controls__tooltip--visible")},e),_(),l}onOverlayChanged(){this.repaint?.()}}function pe(e){const t=new he;return e&&(t.placement=e),t}class me extends z{constructor(){super(...arguments),Object.defineProperty(this,"id",{enumerable:!0,configurable:!0,writable:!0,value:"settings"}),Object.defineProperty(this,"placement",{enumerable:!0,configurable:!0,writable:!0,value:{v:"bottom",h:"right"}}),Object.defineProperty(this,"root",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"button",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"panel",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"view",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"isOpen",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(this,"activeSubmenuId",{enumerable:!0,configurable:!0,writable:!0,value:null})}build(){const t=q(this.core).labels;this.root=document.createElement("div"),this.root.className="op-menu--container",this.button=document.createElement("button"),this.button.type="button",this.button.className="op-controls__settings",this.button.setAttribute("aria-haspopup","menu"),this.button.setAttribute("aria-expanded","false"),N(this.button,t.settings),this.panel=document.createElement("div"),this.panel.className="op-menu",this.panel.setAttribute("role","menu"),this.panel.tabIndex=-1,this.panel.style.display="none",this.view=document.createElement("div"),this.view.className="op-menu__submenu",this.panel.appendChild(this.view),this.root.appendChild(this.button),this.root.appendChild(this.panel),this.listen(this.button,"click",e=>{const t=e;this.toggle(),t.preventDefault(),t.stopPropagation()},e),this.listen(document,"click",e=>{if(!this.isOpen)return;e.target.closest(".op-menu--container")||this.close()},e),this.listen(document,"keydown",e=>{if(!this.isOpen)return;"Escape"===e.key&&this.close()},e),this.listen(document,"focusout",()=>{this.isOpen&&window.setTimeout(()=>{const e=this.button.closest(".op-player");e&&!e.contains(document.activeElement)&&this.close()},0)},e);let i=null;return this.dispose.add(this.overlayMgr.bus.on("overlay:changed",e=>{const t=e?.id??null;t!==i?(i=t,this.activeSubmenuId=null,this.isOpen?this.close():this.render()):this.isOpen||this.render()})),H(this.core).register({id:"speed",label:t.speed,getSubmenu:e=>{const i=this.overlayMgr.active;if("ads"===i?.id)return null;const r=e.playbackRate||1;return{id:"speed",label:t.speed,items:[.25,.5,.75,1,1.25,1.5,2,2.5].map(i=>({id:String(i),label:1===i?t.speedNormal:`${i}x`,checked:Math.abs(r-i)<1e-6,onSelect:()=>{e.playbackRate=i}}))}}}),this.onPlayer("loadedmetadata",()=>{this.isOpen&&this.render()}),this.root}toggle(){this.isOpen?this.close():this.open()}open(){this.isOpen=!0,this.button.setAttribute("aria-expanded","true"),this.panel.style.display="block",this.render(),this.core.events.emit("ui:menu:open")}close(){this.isOpen=!1,this.activeSubmenuId=null,this.button.setAttribute("aria-expanded","false"),this.panel.style.display="none",this.core.events.emit("ui:menu:close")}render(){this.isOpen&&this.root.contains(document.activeElement)&&this.panel.focus({preventScroll:!0});const t=H(this.core).list().map(e=>({p:e,submenu:e.getSubmenu(this.core)})).filter(e=>e.submenu&&e.submenu.items.length);for(this.root.style.display=t.length?"":"none";this.view.firstChild;)this.view.removeChild(this.view.firstChild);const i=this.activeSubmenuId?t.find(e=>e.submenu.id===this.activeSubmenuId)?.submenu??null:null;if(!i){for(const{submenu:e}of t)this.view.appendChild(this.makeRow(e.label,()=>{this.activeSubmenuId=e.id,this.render()}));return}const r=document.createElement("div");r.className="op-menu__header";const n=document.createElement("button");n.type="button",n.className="op-submenu__back",N(n,"Back"),this.listen(n,"click",e=>{const t=e;this.activeSubmenuId=null,this.render(),t.preventDefault(),t.stopPropagation()},e);const a=document.createElement("div");a.className="op-controls__settings-title",a.textContent=i.label,r.append(n,a),this.view.appendChild(r);for(const e of i.items)this.view.appendChild(this.makeRow(e.label,()=>{e.disabled||(e.onSelect(),this.render())},e.checked,e.disabled))}makeRow(t,i,r=!1,n=!1){const a=document.createElement("button");a.type="button",a.className="op-controls__menu-item",a.setAttribute("role","menuitem"),a.setAttribute("aria-disabled",n?"true":"false"),a.setAttribute("aria-checked",r?"true":"false");const s=document.createElement("span");s.className="op-controls__menu-item-label",s.textContent=t;const o=document.createElement("span");return o.className="op-menu__item-check "+(r?"checked":""),a.append(o,s),this.listen(a,"click",e=>{const t=e;i(),t.preventDefault(),t.stopPropagation()},e),a}}function be(e){const t=new me;return e&&(t.placement=e),t}class fe extends z{constructor(){super(...arguments),Object.defineProperty(this,"id",{enumerable:!0,configurable:!0,writable:!0,value:"time"}),Object.defineProperty(this,"placement",{enumerable:!0,configurable:!0,writable:!0,value:{v:"bottom",h:"left"}})}build(){const e=this.core,t=document.createElement("span");t.className="op-controls__time-delimiter",t.textContent="/";const i=document.createElement("span");i.className="op-controls-time";const r=(new ee).create(e),n=(new ie).create(e);return i.appendChild(r),i.appendChild(t),i.appendChild(n),i}}function ve(e){const t=new fe;return e&&(t.placement=e),t}class ye extends z{constructor(){super(...arguments),Object.defineProperty(this,"id",{enumerable:!0,configurable:!0,writable:!0,value:"volume"}),Object.defineProperty(this,"placement",{enumerable:!0,configurable:!0,writable:!0,value:{v:"bottom",h:"right"}})}build(){const t=this.core,i=q(t).labels,r=i.mute,n=i.unmute,a=i.volume,s=i.volumeControl,o=i.volumeSlider,l=document.createElement("div");l.className="op-controls__volume",l.tabIndex=0,l.setAttribute("aria-valuemin","0"),l.setAttribute("aria-valuemax","100"),l.setAttribute("aria-valuenow",`${t.volume}`),N(l,s),l.setAttribute("aria-orientation","vertical"),l.setAttribute("role","slider");const c=document.createElement("input");c.className="op-controls__volume--input",c.tabIndex=-1,c.type="range",c.value=t.volume.toString(),c.min="0",c.max="1",c.step="0.1",N(c,o,{container:l});const u=document.createElement("progress");u.className="op-controls__volume--display",u.max=10,u.value=10*t.volume,l.appendChild(c),l.appendChild(u);const d=document.createElement("button");d.tabIndex=0,d.type="button",d.title=r,d.className="op-controls__mute",N(d,r),d.setAttribute("aria-pressed","false");let h=t.volume;const p=e=>e>=1?1:e<=0?0:e,m=e=>{const t=p(e);u.value=10*t;const i=Math.floor(100*t);l.setAttribute("aria-valuenow",`${i}`),l.setAttribute("aria-valuetext",`${a}: ${i}`)},b=e=>{const t=p(e);t<=.5&&t>0?(d.classList.remove("op-controls__mute--muted"),d.classList.add("op-controls__mute--half")):0===t?(d.classList.add("op-controls__mute--muted"),d.classList.remove("op-controls__mute--half")):(d.classList.remove("op-controls__mute--muted"),d.classList.remove("op-controls__mute--half"))};this.listen(c,"input",e=>{const i=Number(e.target.value),r=p(i);h=r,t.volume=r,t.muted=0===r;const n=le(t);if(n&&n!==t.surface)try{n.volume=r,n.muted=0===r}catch{}m(r),b(r)},e),this.listen(d,"click",e=>{const i=e,a=le(t);if(t.muted){const e=h>0?h:1;if(t.volume=e,t.muted=!1,a&&a!==t.surface)try{a.volume=e,a.muted=!1,d.title=n,N(d,n)}catch{}}else if(t.volume>0&&(h=t.volume),t.volume=0,t.muted=!0,a&&a!==t.surface)try{a.volume=0,a.muted=!0,d.title=r,N(d,r)}catch{}i.preventDefault(),i.stopPropagation()},e),this.onPlayer("loadedmetadata",()=>{const e=t.muted||0===t.volume,i=p(t.volume);i>0&&(h=i),c.value=(e?0:i).toString(),m(e?0:i),b(e?0:i);const r=le(t);if(r&&r!==t.surface)try{r.muted=e,e||(r.volume=i)}catch{}}),this.onPlayer("volumechange",()=>{const e=t.muted||0===t.volume,i=p(t.volume);i>0&&(h=i),c.value=(e?0:i).toString(),m(e?0:i),b(e?0:i),d.setAttribute("aria-pressed",e?"true":"false");const r=le(t);if(r&&r!==t.surface)try{r.muted=e,e||(r.volume=i)}catch{}});const f=document.createElement("div");return f.className="op-controls__volume--container",f.appendChild(d),f.appendChild(l),f}}function ge(e){if(b())return null;const t=new ye;return e&&(t.placement=e),t}let we=0;function Pe(e,t){const i=e.querySelector(":scope > span.op-player__sr-only"),r=i??document.createElement("span");i||(we+=1,r.className="op-player__sr-only",r.id=`op-player-sr-el-${we}`,e.insertBefore(r,e.firstChild),e.setAttribute("aria-labelledby",r.id),e.removeAttribute("aria-label")),r.textContent=t}function _e(t,i){(!!t.media.autoplay||t.canAutoplay||t.canAutoplayMuted)&&(t.canAutoplay&&!t.canAutoplayMuted||queueMicrotask(async()=>{try{const r=t.volume>0?t.volume:1;t.muted=!0,t.volume=0,await t.play();const n=q(t).labels,a=b()?n.tap:n.click,s=document.createElement("button");s.type="button",s.className="op-player__unmute",s.textContent=a,s.tabIndex=0;const o=()=>{try{l?.()}catch{}try{s.remove()}catch{}},l=t.events.on("volumechange",()=>{t.muted||o()});s.addEventListener("click",()=>{t.userInteracted||(t.userInteracted=!0,t.emit("player:interacted")),t.muted=!1,t.volume=r,t.play().catch(()=>{}),o()},e),i.insertBefore(s,i.firstChild),t.events.on("player:destroy",o)}catch{}}))}function ke(t,i,r,n={}){const a=!0===n.alwaysVisible,s=q(t);i.tabIndex=-1;const o=i,l=m(o);o.classList.contains("op-player__media")||o.classList.add("op-player__media");const c=document.createComment("op-player-placeholder"),u=o.parentNode;u&&u.insertBefore(c,o);const d=document.createElement("div");d.className="op-player op-player__keyboard--inactive "+(l?"op-player__audio":"op-player__video"),d.setAttribute("role","region"),d.tabIndex=0;let h="";if(s.width){h+=`width: ${"number"==typeof s.width?`${s.width}px`:s.width} !important;`}if(s.height){h+=`height: ${"number"==typeof s.height?`${s.height}px`:s.height} !important;`}h&&d.setAttribute("style",h),i.controls=!1,i.replaceWith(d),Pe(d,s.labels.container);const p=document.createElement("div");p.className="op-media",p.tabIndex=0,p.setAttribute("role","group"),p.appendChild(o),Pe(p,s.labels.media);const f=document.createElement("div");let v;f.className="op-media__main",l||(p.appendChild(f),v=function(t){const i=q(t).labels,r=i.play,n=i.pause,a=i.loading,s=document.createElement("button");s.className="op-player__play",s.tabIndex=0,s.type="button",s.setAttribute("aria-pressed","false"),s.setAttribute("aria-hidden","false"),N(s,r),s.setAttribute("aria-keyshortcuts","K Enter"),s.addEventListener("click",async e=>{await ce(t),e.preventDefault(),e.stopPropagation()},e);const o=document.createElement("span");o.className="op-player__loader",o.tabIndex=-1,o.setAttribute("aria-hidden","true"),o.setAttribute("role","status"),o.setAttribute("aria-live","polite");const l=document.createElement("span");let c;l.className="op-player__sr-only",l.textContent=a,o.appendChild(l);let u=!1;const d=()=>{c&&(window.clearTimeout(c),c=void 0),u=!1,s.classList.remove("op-player__play--flash")},h=e=>{if(e){if(u)return;s.classList.remove("op-player__play--paused"),s.setAttribute("aria-hidden","false"),s.removeAttribute("inert"),N(s,r),s.inert=!1,s.tabIndex=0}else{u&&d();const e=document.activeElement;e&&(e===s||s.contains(e))&&e.blur?.(),s.classList.add("op-player__play--paused"),s.setAttribute("aria-hidden","true"),s.setAttribute("inert",""),N(s,n),s.inert=!0,s.tabIndex=-1}};return{button:s,loader:o,showButton:h,showLoader:e=>{o.style.display=e?"":"none",o.setAttribute("aria-hidden",e?"false":"true")},flashPause:e=>{d(),u=!0,s.classList.remove("op-player__play--paused"),s.classList.add("op-player__play--flash"),s.setAttribute("aria-hidden","false"),s.removeAttribute("inert"),s.inert=!1,s.tabIndex=-1,N(s,n),c=window.setTimeout(()=>{s.classList.remove("op-player__play--flash"),c=void 0,u=!1,h(!0)},e)}}}(t),p.appendChild(v.button),p.appendChild(v.loader)),function(t,i,r){let n=t.volume||1;const a=()=>{i.classList.contains("op-player__keyboard--inactive")&&i.classList.remove("op-player__keyboard--inactive")},s=()=>{i.classList.contains("op-player__keyboard--inactive")||i.classList.add("op-player__keyboard--inactive")};i.addEventListener("click",s,e),i.addEventListener("pointerdown",s,e),i.addEventListener("pointerleave",s,e),window.addEventListener("click",s,e),window.addEventListener("pointerdown",s,e),window.addEventListener("keydown",a,e),i.addEventListener("keydown",async e=>{const i=e.key;a();const r=document.activeElement;if(r&&(" "===i||"Enter"===i||"Spacebar"===i)&&("BUTTON"===r.tagName||"button"===r.getAttribute("role")))return r.click(),e.preventDefault(),void e.stopPropagation();const s=q(t).step,o=s&&s>0?s:5;switch(i){case"k":case"K":case"Enter":case" ":case"Spacebar":await ce(t),e.preventDefault(),e.stopPropagation();break;case"End":t.duration!==1/0&&(t.currentTime=t.duration,e.preventDefault(),e.stopPropagation());break;case"Home":t.currentTime=0,e.preventDefault(),e.stopPropagation();break;case"ArrowUp":{const i=Math.min(t.volume+.1,1);t.volume=i,t.muted=!(i>0),i>0&&(n=i);const r=le(t);if(r&&r!==t.surface)try{r.volume=i,r.muted=!(i>0)}catch{}e.preventDefault(),e.stopPropagation();break}case"ArrowDown":{const i=Math.max(t.volume-.1,0);t.volume=i,t.muted=!(i>0),i>0&&(n=i);const r=le(t);if(r&&r!==t.surface)try{r.volume=i,r.muted=!(i>0)}catch{}e.preventDefault(),e.stopPropagation();break}case"f":case"F":{const t=e.target;t.requestFullscreen?t.requestFullscreen():t.mozRequestFullScreen?t.mozRequestFullScreen():t.webkitRequestFullScreen?t.webkitRequestFullScreen():t.msRequestFullscreen?t.msRequestFullscreen():t.webkitEnterFullscreen&&t.webkitEnterFullscreen(),e.preventDefault(),e.stopPropagation();break}case"m":case"M":{const i=le(t);if(t.muted){const e=n>0?n:1;if(t.volume=e,t.muted=!1,i&&i!==t.surface)try{i.volume=e,i.muted=!1}catch{}}else if(t.volume>0&&(n=t.volume),t.volume=0,t.muted=!0,i&&i!==t.surface)try{i.volume=0,i.muted=!0}catch{}e.preventDefault(),e.stopPropagation();break}case"J":case"j":case"ArrowLeft":t.duration!==1/0&&(t.currentTime=Math.max(0,t.currentTime-o),e.preventDefault(),e.stopPropagation());break;case"L":case"l":case"ArrowRight":t.duration!==1/0&&(t.currentTime=Math.min(t.duration,t.currentTime+o),e.preventDefault(),e.stopPropagation());break;case"<":t.playbackRate=Math.max(t.playbackRate-.25,.25),e.preventDefault(),e.stopPropagation();break;case">":t.playbackRate=Math.min(t.playbackRate+.25,2),e.preventDefault(),e.stopPropagation()}},e),t.events.on("waiting",()=>{r?.showLoader(!0),r?.showButton(!1)}),t.events.on("seeking",()=>{r?.showLoader(!0),r?.showButton(!1)}),t.events.on("seeked",()=>{r?.showLoader(!1),r?.showButton(t.media?.paused??!1)}),t.events.on("play",()=>{r?.showLoader(!1),r?.showButton(!1)}),t.events.on("pause",()=>{r?.showLoader(!1),r?.showButton(!0)}),t.events.on("playing",()=>{r?.showLoader(!1),r?.showButton(!1)}),t.events.on("ended",()=>{r?.showLoader(!1),r?.showButton(!0)})}(t,d,v);const y=document.createElement("div");if(y.className="op-controls",y.setAttribute("aria-hidden","false"),l){const e=T(y);d.appendChild(p),d.appendChild(y);const n=[];r.forEach(i=>{const r=i.create(t);r.dataset.controlId=i.id,e.place(i.placement,r),n.push(i)});const a={wrapper:d,mediaContainer:p,controlsRoot:y,placeholder:c,grid:e},s=t.events.on("player:destroy",()=>{try{n.forEach(e=>e.destroy?.())}catch{}try{d.replaceWith(i)}catch{}try{c.remove()}catch{}try{o(),l(),s()}catch{}}),o=t.events.on("ui:addElement",e=>{if(!e?.el)return;const t=e.placement||{v:"bottom",h:"right"};a.grid?.place(t,e.el)}),l=t.events.on("ui:addControl",e=>{const i=e?.control;if(!i)return;const r=i.create(t);r.dataset.controlId=i.id,a.grid?.place(i.placement,r),e.el=r,n.push(i)});return _e(t,d),a}const g=b(),w=3e3,P=6500;let k,E="pointer",O=!1;const S=()=>y.contains(document.activeElement),A=()=>{d.classList.remove("op-controls--hidden"),p.classList.remove("op-media--controls-hidden"),k&&window.clearTimeout(k),y.setAttribute("aria-hidden","false"),t.events.emit("ui:controls:show")},L=e=>{a||O||t.surface.paused||t.surface.ended||(k&&window.clearTimeout(k),k=window.setTimeout(()=>(()=>{if(!t.surface.paused&&!t.surface.ended){if(S()){if("keyboard"!==E)return;d.focus()}d.classList.add("op-controls--hidden"),p.classList.add("op-media--controls-hidden"),y.setAttribute("aria-hidden","true"),t.events.emit("ui:controls:hide")}})(),e??w))},j=()=>{E="pointer",A(),L(w)};y.addEventListener("focusin",()=>{E="keyboard",A(),L(P)}),y.addEventListener("focusout",()=>{window.setTimeout(()=>{S()||L("keyboard"===E?P:w)},0)});const x=()=>{const e=document.activeElement;return!!e&&(d.contains(e)&&!y.contains(e))};d.addEventListener("focusin",()=>{x()&&(A(),k&&window.clearTimeout(k))},e),d.addEventListener("focusout",()=>{window.setTimeout(()=>{d.contains(document.activeElement)||S()||L()},0)},e),d.addEventListener("keydown",()=>{E="keyboard",x()?(A(),k&&window.clearTimeout(k)):S()&&(A(),L(P))},e),g?d.addEventListener("pointerdown",()=>{E="pointer",A(),L(w)},e):(d.addEventListener("pointermove",j,e),d.addEventListener("pointerenter",j,e),y.addEventListener("pointerenter",j,e),y.addEventListener("pointermove",j,e),y.addEventListener("pointerleave",()=>L(w),e));const C=T(y,f);d.appendChild(p),d.appendChild(y);const R=[];r.forEach(e=>{const i=e.create(t);i.dataset.controlId=e.id,C.place(e.placement,i),R.push(e)});const M={wrapper:d,mediaContainer:p,controlsRoot:y,placeholder:c,grid:C};_e(t,d),d.addEventListener("click",async e=>{if(_(t).active?.fullscreenVideoEl)return;const i=e.target;if(i&&y.contains(i))return;if(i&&i!==d&&i.closest('button, [role="button"], a'))return;!t.surface.paused&&!t.surface.ended?(v?.flashPause(350),t.pause()):await t.play().catch(()=>{})},e);const F=t.events.on("playing",()=>L(w)),I=t.events.on("pause",()=>A()),B=t.events.on("ended",()=>A()),D=t.events.on("ui:menu:open",()=>{O=!0,k&&window.clearTimeout(k)}),V=t.events.on("ui:menu:close",()=>{O=!1,L()}),$=t.events.on("player:destroy",()=>{try{R.forEach(e=>e.destroy?.())}catch{}try{d.replaceWith(i)}catch{}try{c.remove()}catch{}try{F?.(),I?.(),B?.(),D?.(),V?.(),H(),z(),$()}catch{}}),H=t.events.on("ui:addElement",e=>{if(!e?.el)return;const t=e.placement||{v:"bottom",h:"right"};M.grid?.place(t,e.el)}),z=t.events.on("ui:addControl",e=>{const i=e?.control;if(!i)return;const r=i.create(t);r.dataset.controlId=i.id,M.grid?.place(i.placement,r),e.el=r,R.push(i)});return M}function Ee(e){return{play:de,volume:ge,captions:Z,fullscreen:oe,currentTime:te,duration:re,time:ve,progress:pe,settings:be}[e]}function Oe(e){const t=function(e){const t=L(e),i=new Set;for(const e of Object.values(t))for(const t of e)"string"==typeof t&&i.add(t);return[...i]}(e);for(const e of t){const t=Ee(e);t&&x(e,t)}}function Se(e,t){if(!e.install)return;!!window.OpenPlayerConfig?.extendPlayerPrototype&&(window.__OpenPlayerInstalledPlugins=window.__OpenPlayerInstalledPlugins||{},window.__OpenPlayerInstalledPlugins[e.name]||(e.install(t),window.__OpenPlayerInstalledPlugins[e.name]=!0))}class Ae{constructor(e,t={}){Object.defineProperty(this,"config",{enumerable:!0,configurable:!0,writable:!0,value:t}),Object.defineProperty(this,"media",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"core",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"pendingListeners",{enumerable:!0,configurable:!0,writable:!0,value:[]}),Object.defineProperty(this,"createdPlugins",{enumerable:!0,configurable:!0,writable:!0,value:[]}),this.media=function(e){if(e instanceof HTMLMediaElement)return e;const t=document.getElementById(e)??document.querySelector(e);if(!t)throw new Error(`OpenPlayer: target "${e}" not found. Pass an HTMLMediaElement or a valid id ("video") or selector ("#video").`);if(!(t instanceof HTMLMediaElement))throw new Error(`OpenPlayer: target "${e}" is not an HTMLMediaElement.`);return t}(e)}getCore(){return this.core}init(){const e=this.config.controls,t=L(e),i=!0===e?.alwaysVisible;Oe(t),this.createdPlugins=this.createDetectedPlugins();for(const e of this.createdPlugins)Se(e.entry,Ae);this.core=new y(this.media,{...this.config,plugins:this.createdPlugins.map(e=>e.plugin)});const r=C(t);ke(this.core,this.media,r,{alwaysVisible:i}),function(e){const t={addElement(t,i={v:"bottom",h:"right"}){if(0===e.events.listenerCount("ui:addElement"))throw new Error("UI not initialized; cannot addElement");return e.events.emit("ui:addElement",{el:t,placement:i}),e.emit("controls:changed"),t},addControl(t){if(0===e.events.listenerCount("ui:addControl"))throw new Error("UI not initialized; cannot addControl");const i={control:t,el:void 0};return e.events.emit("ui:addControl",i),e.emit("controls:changed"),i.el}};Object.assign(e,{controls:t})}(this.core);for(const e of this.createdPlugins)try{e.entry.extend?.(this.core,e.plugin,e.cfg)}catch{}for(const e of this.pendingListeners)e.off=this.core.on(e.event,e.cb);return this.core}on(e,t){if(this.core&&"function"==typeof this.core.on)return this.core.on(e,t);const i={event:e,cb:t};return this.pendingListeners.push(i),()=>{if(i.off)return i.off();const e=this.pendingListeners.indexOf(i);e>=0&&this.pendingListeners.splice(e,1)}}emit(e,...t){if(!this.core||"function"!=typeof this.core.emit)throw new Error("OpenPlayer.emit() called before init()");this.core.emit(e,...t)}async play(){if(!this.core)throw new Error("OpenPlayer.play() called before init()");await this.core.play()}pause(){if(!this.core)throw new Error("OpenPlayer.play() called before init()");this.core.pause()}load(){if(!this.core)throw new Error("OpenPlayer.load() called before init()");this.core.load()}destroy(){if(!this.core)throw new Error("OpenPlayer.destroy() called before init()");this.core.destroy()}addCaptions(e){if(!this.core)throw new Error("OpenPlayer.addCaptions() called before init()");return this.core.addCaptions(e)}addElement(e,t={v:"bottom",h:"right"}){this.core.controls.addElement(e,t)}addControl(e){if(!this.core)throw new Error("OpenPlayer.addControl() called before init()");this.core.controls.addControl(e)}get currentTime(){return this.core?.currentTime??0}set currentTime(e){if(!this.core)throw new Error("OpenPlayer.currentTime must be set after init()");this.core.currentTime=e}get duration(){return this.core?.duration??0}set src(e){if(!this.core)throw new Error("OpenPlayer.src must be set after init()");this.core.src=e}get src(){return this.core?.src??""}set volume(e){if(!this.core)throw new Error("OpenPlayer.volume must be set after init()");this.core.volume=e}get volume(){return this.core?.volume??1}set muted(e){if(!this.core)throw new Error("OpenPlayer.muted must be set after init()");this.core.muted=e}get muted(){return this.core?.muted??!1}set playbackRate(e){if(!this.core)throw new Error("OpenPlayer.playbackRate must be set after init()");this.core.playbackRate=e}get playbackRate(){return this.core?.playbackRate??1}createDetectedPlugins(){const e=window.OpenPlayerPlugins||{};return Object.keys(e).map(t=>{const i=e[t];if(!i?.factory)return;const r=(n=i.defaults,a=this.config?.[t],n?a?"object"!=typeof n||"object"!=typeof a?a:{...n,...a}:{...n}:a??{});var n,a;const s=i.factory(r);return{entry:{...i,name:t},plugin:s,cfg:r}}).filter(Boolean)}}const Le=Ae;try{Object.assign(Le,O)}catch{}return Ae});
|
|
1
|
+
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e="undefined"!=typeof globalThis?globalThis:e||self).OpenPlayerJS=t()}(this,function(){"use strict";const e={passive:!1};class t{constructor(e){Object.defineProperty(this,"media",{enumerable:!0,configurable:!0,writable:!0,value:e}),Object.defineProperty(this,"element",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.element=e}get currentSrc(){return this.media.currentSrc||this.media.src||""}get currentTime(){return this.media.currentTime||0}set currentTime(e){this.media.currentTime=e}get duration(){return this.media.duration}set duration(e){}get volume(){return this.media.volume}set volume(e){this.media.volume=e}get muted(){return this.media.muted}set muted(e){this.media.muted=e}get playbackRate(){return this.media.playbackRate}set playbackRate(e){this.media.playbackRate=e}get paused(){return this.media.paused}get ended(){return this.media.ended}load(e){e?.src&&this.media.src!==e.src&&(this.media.src=e.src),this.media.load()}play(){return this.media.play()}pause(){this.media.pause()}on(e,t,i){const r=i=>{t("error"!==e?void 0:this.media.error??i)};return this.media.addEventListener(e,r,i),()=>this.media.removeEventListener(e,r,i)}}function i(t,i){return[t.on("loadstart",()=>i.emit("loadstart"),e),t.on("loadedmetadata",()=>i.emit("loadedmetadata"),e),t.on("durationchange",()=>i.emit("durationchange"),e),t.on("timeupdate",()=>i.emit("timeupdate"),e),t.on("waiting",()=>i.emit("waiting"),e),t.on("seeking",()=>i.emit("seeking"),e),t.on("seeked",()=>i.emit("seeked"),e),t.on("ended",()=>i.emit("ended"),e),t.on("error",e=>i.emit("error",e),e),t.on("play",()=>i.emit("play"),e),t.on("playing",()=>i.emit("playing"),e),t.on("pause",()=>i.emit("pause"),e),t.on("volumechange",()=>i.emit("volumechange"),e),t.on("ratechange",()=>i.emit("ratechange"),e)]}class r{constructor(){Object.defineProperty(this,"surface",{enumerable:!0,configurable:!0,writable:!0,value:null}),Object.defineProperty(this,"events",{enumerable:!0,configurable:!0,writable:!0,value:null}),Object.defineProperty(this,"commands",{enumerable:!0,configurable:!0,writable:!0,value:[]}),Object.defineProperty(this,"surfaceListeners",{enumerable:!0,configurable:!0,writable:!0,value:[]})}bindSurfaceEvents(e,t){this.surface=e,this.events=t,this.surfaceListeners=i(e,t)}unbindSurfaceEvents(){this.surfaceListeners.forEach(e=>e()),this.surfaceListeners=[]}bindMediaEvents(e,t){const r={get currentTime(){return e.currentTime},set currentTime(t){e.currentTime=t},get duration(){return e.duration},set duration(e){},get volume(){return e.volume},set volume(t){e.volume=t},get muted(){return e.muted},set muted(t){e.muted=t},get playbackRate(){return e.playbackRate},set playbackRate(t){e.playbackRate=t},get paused(){return e.paused},get ended(){return e.ended},play:()=>e.play(),pause:()=>e.pause(),on:(t,i)=>{const r=()=>i();return e.addEventListener(t,r),()=>e.removeEventListener(t,r)}};this.surfaceListeners=i(r,t)}unbindMediaEvents(){this.unbindSurfaceEvents()}addMediaListener(e,t,i,r){e.addEventListener(t,i,r),this.surfaceListeners.push(()=>e.removeEventListener(t,i,r))}canHandlePlayback(e){const t=e.core.leases.owner("playback");return!t||t===this.name}bindCommands(e){const{events:t}=e;this.commands.push(t.on("cmd:seek",t=>{if(this.canHandlePlayback(e))try{e.surface.currentTime=t}catch{}})),this.commands.push(t.on("cmd:setVolume",t=>{try{e.surface.volume=t}catch{}})),this.commands.push(t.on("cmd:setMuted",t=>{try{e.surface.muted=t}catch{}})),this.commands.push(t.on("cmd:setRate",t=>{if(this.canHandlePlayback(e))try{e.surface.playbackRate=t}catch{}})),this.bindPlayPauseCommands(e)}unbindCommands(){for(const e of this.commands)e();this.commands=[]}bindPlayPauseCommands(e){const{events:t}=e;this.commands.push(t.on("cmd:play",()=>{this.canHandlePlayback(e)&&this.playImpl(e.surface)})),this.commands.push(t.on("cmd:pause",()=>{this.canHandlePlayback(e)&&this.pauseImpl(e.surface)}))}playImpl(e){const t=e.play();t&&"function"==typeof t.catch&&t.catch(()=>{})}pauseImpl(e){e.pause()}}class n extends r{constructor(){super(...arguments),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"default-engine"}),Object.defineProperty(this,"version",{enumerable:!0,configurable:!0,writable:!0,value:"1.0.0"}),Object.defineProperty(this,"capabilities",{enumerable:!0,configurable:!0,writable:!0,value:["media-engine"]}),Object.defineProperty(this,"priority",{enumerable:!0,configurable:!0,writable:!0,value:0})}canPlay(e){return""!==document.createElement("video").canPlayType(e.type||"")}attach(e){const t=e.resetSurface();try{t.load?.(e.activeSource)}catch{}this.bindSurfaceEvents(t,e.events),this.bindCommands(e),this.commands.push(e.events.on("cmd:startLoad",()=>{const i=e.core.state.current;if(!["ready","playing","paused","waiting","seeking","ended"].includes(i)&&"none"===e.media.preload){e.media.preload="metadata";try{t.load?.(e.activeSource)}catch{}}}))}detach(){this.unbindCommands(),this.unbindSurfaceEvents()}}const s={startTime:0,duration:0};class a{constructor(){Object.defineProperty(this,"disposers",{enumerable:!0,configurable:!0,writable:!0,value:[]}),Object.defineProperty(this,"disposed",{enumerable:!0,configurable:!0,writable:!0,value:!1})}get isDisposed(){return this.disposed}add(e){const t=e??(()=>{});if(this.disposed){try{t()}catch{}return()=>{}}return this.disposers.push(t),t}addEventListener(e,t,i,r){return e.addEventListener(t,i,r),this.add(()=>e.removeEventListener(t,i,r))}dispose(){if(!this.disposed){this.disposed=!0;for(let e=this.disposers.length-1;e>=0;e--)try{this.disposers[e]()}catch{}this.disposers=[]}}}class o{constructor(){Object.defineProperty(this,"listeners",{enumerable:!0,configurable:!0,writable:!0,value:new Map})}on(e,t){return this.listeners.has(e)||this.listeners.set(e,new Set),this.listeners.get(e).add(t),()=>this.listeners.get(e).delete(t)}emit(e,t){this.listeners.get(e)?.forEach(e=>e(t))}listenerCount(e){return this.listeners.get(e)?.size??0}clear(){this.listeners.clear()}}class l{constructor(){Object.defineProperty(this,"owners",{enumerable:!0,configurable:!0,writable:!0,value:new Map}),Object.defineProperty(this,"listeners",{enumerable:!0,configurable:!0,writable:!0,value:[]})}onChange(e){return this.listeners.push(e),()=>{this.listeners=this.listeners.filter(t=>t!==e)}}notify(e){const t=this.owners.get(e);for(const i of this.listeners)try{i(e,t)}catch{}}acquire(e,t){return!this.owners.has(e)&&(this.owners.set(e,t),this.notify(e),!0)}release(e,t){this.owners.get(e)===t&&(this.owners.delete(e),this.notify(e))}owner(e){return this.owners.get(e)}}class c{constructor(){Object.defineProperty(this,"plugins",{enumerable:!0,configurable:!0,writable:!0,value:[]})}register(e){this.plugins.push(e)}all(){return this.plugins}}class u{constructor(e){Object.defineProperty(this,"state",{enumerable:!0,configurable:!0,writable:!0,value:e})}get current(){return this.state}transition(e){this.state=e}}function d(e,t){const i=Math.floor(e%1*(t||0));let r=Math.floor(e),n=Math.floor(r/60);const s=Math.floor(n/60),a=e=>{const t=e.toString();return e<10?e<=0?"00":`0${t}`:t};return n%=60,r%=60,`${s>0?`${a(s)}:`:""}${a(n)}:${a(r)}${i?`:${a(i)}`:""}`}const h=e=>{const t=Number.isFinite(e)?Math.max(0,e):0,i=Math.floor(t),r=Math.floor(i/3600),n=Math.floor(i%3600/60);return`PT${r?`${r}H`:""}${n?`${n}M`:""}${i%60}S`};function p(e){const t=e.getBoundingClientRect();return{left:t.left+(window.pageXOffset||document.documentElement.scrollLeft),top:t.top+(window.pageYOffset||document.documentElement.scrollTop)}}function m(e){return e instanceof HTMLAudioElement}function b(){return/ipad|iphone|ipod/i.test(window.navigator.userAgent)&&!window.MSStream||/android/i.test(window.navigator.userAgent)}function f(e,t){let i;try{i=new URL(t).pathname}catch{return m(e)?"audio/mp3":"video/mp4"}const r=i.split("."),n=r.length>1?r.pop().toLowerCase():"";if(!n)return m(e)?"audio/mp3":"video/mp4";switch(n){case"m3u8":case"m3u":return"application/x-mpegURL";case"mpd":return"application/dash+xml";case"mp4":return m(e)?"audio/mp4":"video/mp4";case"mp3":return"audio/mp3";case"webm":return m(e)?"audio/webm":"video/webm";case"ogg":return m(e)?"audio/ogg":"video/ogg";case"ogv":return"video/ogg";case"oga":return"audio/ogg";case"3gp":return"audio/3gpp";case"wav":return"audio/wav";case"aac":return"audio/aac";case"flac":return"audio/flac";default:return m(e)?"audio/mp3":"video/mp4"}}const v=e=>Math.min(1,Math.max(0,e));class y{constructor(e,i={}){if(Object.defineProperty(this,"media",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"isLive",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(this,"events",{enumerable:!0,configurable:!0,writable:!0,value:new o}),Object.defineProperty(this,"leases",{enumerable:!0,configurable:!0,writable:!0,value:new l}),Object.defineProperty(this,"state",{enumerable:!0,configurable:!0,writable:!0,value:new u("idle")}),Object.defineProperty(this,"config",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"userInteracted",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(this,"canAutoplay",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(this,"canAutoplayMuted",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(this,"nativeSurface",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"activeSurface",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"interactionUnsubs",{enumerable:!0,configurable:!0,writable:!0,value:[]}),Object.defineProperty(this,"plugins",{enumerable:!0,configurable:!0,writable:!0,value:new c}),Object.defineProperty(this,"pluginDisposables",{enumerable:!0,configurable:!0,writable:!0,value:new WeakMap}),Object.defineProperty(this,"_src",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_volume",{enumerable:!0,configurable:!0,writable:!0,value:1}),Object.defineProperty(this,"_playbackRate",{enumerable:!0,configurable:!0,writable:!0,value:1}),Object.defineProperty(this,"_currentTime",{enumerable:!0,configurable:!0,writable:!0,value:0}),Object.defineProperty(this,"_muted",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(this,"_duration",{enumerable:!0,configurable:!0,writable:!0,value:0}),Object.defineProperty(this,"detectedSources",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"activeEngine",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"playerContext",{enumerable:!0,configurable:!0,writable:!0,value:null}),Object.defineProperty(this,"autoplaySupport",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"autoplaySupportPromise",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"readyPromise",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"readyResolve",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"readyReject",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"playRequestPromise",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),"string"==typeof e){const t=document.querySelector(e);if(!(t&&t instanceof HTMLMediaElement))throw new Error(`OpenPlayer: could not find media element for selector: ${e}`);this.media=t}else this.media=e;this.nativeSurface=new t(this.media),this.activeSurface=this.nativeSurface,this.registerPlugin(new n),this.config={...s,...i},this.media.currentTime=this.config.startTime||this.media.currentTime,this._currentTime=this.config.startTime||this.activeSurface.currentTime,this._duration=this.config.duration||this.activeSurface.duration;const r=v(this.config.startVolume??this.activeSurface.volume);this.activeSurface.volume=r,this._volume=r,void 0!==this.config.startVolume?(this.activeSurface.muted=r<=0,this._muted=r<=0):this._muted=this.activeSurface.muted,this.activeSurface.playbackRate=this.config.startPlaybackRate||this.activeSurface.playbackRate,this._playbackRate=this.config.startPlaybackRate||this.activeSurface.playbackRate,(this.config.plugins||[]).forEach(e=>this.registerPlugin(e)),this.bindStateTransitions(),this.bindSurfaceSync(),this.bindLeaseSync(),this.bindFirstInteraction(),queueMicrotask(()=>this.maybeAutoLoad())}get surface(){return this.activeSurface}on(e,t){return this.events.on(e,t)}emit(e,t){this.events.emit(e,t),this.plugins.all().filter(e=>!e.capabilities?.includes("media-engine")).forEach(i=>{i.onEvent?.(e,t)})}registerPlugin(e){this.plugins.register(e);const t=new a;this.pluginDisposables.set(e,t),e.setup?.({core:this,media:this.media,events:this.events,state:this.state,leases:this.leases,dispose:t,add:e=>t.add(e??void 0),on:(e,i)=>t.add(this.events.on(e,i)),listen:(e,i,r,n)=>t.addEventListener(e,i,r,n)})}set src(e){this._src=e,e&&(this.detectedSources=[{src:e,type:f(this.media,e)}],this.emit("source:set",e),this.playerContext&&(this.activeEngine?.detach?.(this.playerContext),this.activeEngine=void 0,this.playerContext=null),this.state.transition("idle"),this.readyPromise=void 0,this.readyResolve=void 0,this.readyReject=void 0,this.playRequestPromise=void 0,queueMicrotask(()=>this.load()))}get src(){return this._src}get volume(){return this._volume}set volume(e){const t=v(e);this._volume=t,this.emit("cmd:setVolume",t)}get muted(){return this._muted}set muted(e){this._muted=e,this.emit("cmd:setMuted",e)}set playbackRate(e){this._playbackRate=e,this.emit("cmd:setRate",e)}get playbackRate(){return this._playbackRate}set currentTime(e){this._currentTime=e,this.emit("cmd:seek",e)}get currentTime(){return this._currentTime}get duration(){return this._duration}load(){if("idle"!==this.state.current)return;this.emit("cmd:startLoad"),this.createReadyPromise();const e=this.detectedSources??this.readMediaSources(this.media);this.detectedSources=e;const{engine:t,source:i}=this.resolveMediaEngine(e);this.playerContext=this.createPlayerContext(i),this.activeEngine?.detach?.(this.playerContext),this.activeEngine=t,this.emit("loadstart"),this.emit("cmd:load"),this.activeEngine.attach(this.playerContext),this.emit("cmd:setVolume",this._volume),this.emit("cmd:setMuted",this._muted),this.emit("cmd:setRate",this._playbackRate),this._currentTime&&this.emit("cmd:seek",this._currentTime)}async whenReady(){if("ready"!==this.state.current&&"playing"!==this.state.current&&"paused"!==this.state.current&&"waiting"!==this.state.current&&"seeking"!==this.state.current&&"ended"!==this.state.current)return this.activeEngine||this.load(),this.createReadyPromise(),this.readyPromise??Promise.resolve()}async play(){return this.playRequestPromise||(this.activeEngine||this.load(),this.emit("cmd:play"),this.playRequestPromise=this.whenReady().finally(()=>{this.playRequestPromise=void 0})),this.playRequestPromise}async determineAutoplaySupport(){if(this.autoplaySupport)return this.autoplaySupport;if(this.autoplaySupportPromise)return this.autoplaySupportPromise;await this.whenReady().catch(()=>{});const e=this.media,t=e.volume,i=e.muted,r=()=>{try{e.volume=t}catch{}try{e.muted=i}catch{}this._volume=t,this._muted=i};return this.autoplaySupportPromise=(async()=>{try{try{const t=e.play();void 0!==t&&await t;try{e.pause()}catch{}return this.canAutoplay=!0,this.canAutoplayMuted=!1,{autoplay:!0,muted:!1}}catch{try{e.volume=0,e.muted=!0,this._volume=0,this._muted=!0}catch{}try{const t=e.play();void 0!==t&&await t;try{e.pause()}catch{}return this.canAutoplay=!0,this.canAutoplayMuted=!0,{autoplay:!0,muted:!0}}catch{return this.canAutoplay=!1,this.canAutoplayMuted=!1,{autoplay:!1,muted:!1}}}}finally{r()}})(),this.autoplaySupport=await this.autoplaySupportPromise,this.autoplaySupportPromise}pause(){"idle"!==this.state.current&&"loading"!==this.state.current&&this.emit("cmd:pause")}destroy(){this.events.emit("player:destroy"),this.playerContext&&this.activeEngine?.detach?.(this.playerContext),this.playerContext=null,this.plugins.all().forEach(e=>{try{this.pluginDisposables.get(e)?.dispose()}catch{}try{e.destroy?.()}catch{}}),this.interactionUnsubs.forEach(e=>e()),this.interactionUnsubs=[],this.events.clear()}addCaptions(e){const t=document.createElement("track");return t.kind=e.kind||"captions",t.src=e.src,e.srclang&&(t.srclang=e.srclang),e.label&&(t.label=e.label),e.default&&(t.default=!0),this.media.appendChild(t),this.emit("texttrack:add",t),this.emit("texttrack:listchange"),t}getPlugin(e){return this.plugins.all().find(t=>t?.name===e)}extend(e){if(!e||"object"!=typeof e)return this;for(const t of Object.keys(e))if(void 0===this[t])this[t]=e[t];else if(this[t]&&"object"==typeof this[t]&&e[t]&&"object"==typeof e[t]){const i=this[t],r=e[t];for(const e of Object.keys(r))void 0===i[e]&&(i[e]=r[e])}return this}bindFirstInteraction(){const e="undefined"!=typeof document?document:null;if(!e)return;const t=()=>{this.userInteracted||(this.userInteracted=!0,this.emit("player:interacted"),this.interactionUnsubs.forEach(e=>e()),this.interactionUnsubs=[])},i={capture:!0,passive:!0},r={capture:!0},n=n=>{e.addEventListener(n,t,i),this.interactionUnsubs.push(()=>e.removeEventListener(n,t,r))};n("pointerdown"),n("mousedown"),n("touchstart"),n("keydown")}resolveMediaEngine(e){if(0===e.length)throw new Error("Player cannot resolve media with an empty source");const t=[...this.plugins.all().filter(e=>!(!e||!e.capabilities?.includes("media-engine")||"function"!=typeof e.canPlay))].sort((e,t)=>(t.priority??0)-(e.priority??0)||e.name.localeCompare(t.name));for(const i of e)for(const e of t)if(e.canPlay?.(i))return{engine:e,source:i};throw new Error("No compatible media engine found")}bindStateTransitions(){this.events.on("loadstart",()=>this.state.transition("loading")),this.events.on("loadedmetadata",()=>{this.state.transition("ready"),this.readyResolve&&(this.readyResolve(),this.readyResolve=void 0,this.readyReject=void 0)}),this.events.on("playing",()=>this.state.transition("playing")),this.events.on("pause",()=>this.state.transition("paused")),this.events.on("waiting",()=>this.state.transition("waiting")),this.events.on("seeking",()=>this.state.transition("seeking")),this.events.on("seeked",()=>this.state.transition("ready")),this.events.on("ended",()=>this.state.transition("ended")),this.events.on("error",e=>{this.state.transition("error"),this.readyReject&&(this.readyReject(e),this.readyResolve=void 0,this.readyReject=void 0)})}bindSurfaceSync(){const e=()=>{try{this._currentTime=this.activeSurface.currentTime||0}catch{}try{const e=this.config.duration||this.activeSurface.duration;this._duration=e}catch{}try{this._muted=Boolean(this.activeSurface.muted);const e=this.activeSurface.volume;Number.isFinite(e)&&(this._volume=e)}catch{}try{const e=this.activeSurface.playbackRate;Number.isFinite(e)&&(this._playbackRate=e)}catch{}};this.events.on("loadedmetadata",()=>e()),this.events.on("durationchange",()=>e()),this.events.on("timeupdate",()=>e()),this.events.on("volumechange",()=>e()),this.events.on("ratechange",()=>e())}createPlayerContext(e){const t={media:this.media,container:this.media.parentElement??this.media,events:this.events,config:this.config,activeSource:e,core:this,surface:this.activeSurface,setSurface:e=>(this.activeSurface=e,this.activeSurface),resetSurface:()=>(this.activeSurface=this.nativeSurface,this.nativeSurface)};return Object.defineProperty(t,"surface",{get:()=>this.activeSurface,enumerable:!0,configurable:!0}),t}bindLeaseSync(){this.leases.onChange(e=>{"playback"===e&&queueMicrotask(()=>{this.emit("cmd:setVolume",this._volume),this.emit("cmd:setMuted",this._muted),this.emit("cmd:setRate",this._playbackRate),this._currentTime&&this.emit("cmd:seek",this._currentTime)})})}createReadyPromise(){this.readyPromise||(this.readyPromise=new Promise((e,t)=>{this.readyResolve=e,this.readyReject=t}))}readMediaSources(e){const t=[];e.src&&t.push({src:e.src,type:f(e,e.src)});try{e.querySelectorAll("source").forEach(i=>{t.push({src:i.src,type:i.type||f(e,i.src)})})}catch{}return t}maybeAutoLoad(){if("idle"!==this.state.current)return;if(!this.plugins.all().some(e=>e.capabilities?.includes("media-engine")))return;const e=this.readMediaSources(this.media);if(0===e.length)return;this.detectedSources=e;const t=this.media.autoplay;try{this.media.querySelectorAll("source").forEach(e=>e.remove()),this.media.getAttribute("src")&&this.media.removeAttribute("src"),this.media.src&&(this.media.src=""),this.load(),t&&(this.media.autoplay=!1,queueMicrotask(()=>this.emit("cmd:play")))}catch{}}}class g{constructor(e){Object.defineProperty(this,"bus",{enumerable:!0,configurable:!0,writable:!0,value:e})}on(e,t){return this.bus.on(e,t)}emit(e,...t){this.bus.emit(e,...t)}clear(){this.bus.clear()}}const w="__op::overlay::manager";class P{constructor(){Object.defineProperty(this,"bus",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"active",{enumerable:!0,configurable:!0,writable:!0,value:null}),Object.defineProperty(this,"overlays",{enumerable:!0,configurable:!0,writable:!0,value:new Map}),this.bus=new g(new o)}dispose(){this.overlays.clear(),this.active=null,this.bus.clear()}activate(e){this.overlays.set(e.id,e),this.recomputeAndEmit()}update(e,t){const i=this.overlays.get(e);if(!i)return;const r={...i,...t,id:i.id};this.overlays.set(e,r),this.recomputeAndEmit()}deactivate(e){this.overlays.delete(e)&&this.recomputeAndEmit()}recomputeAndEmit(){const e=this.pickActive();this.active=e,this.bus.emit("overlay:changed",this.active)}pickActive(){let e=null;for(const t of this.overlays.values())(!e||t.priority>e.priority)&&(e=t);return e}}function _(e){if(e[w])return e[w];const t=new P;e[w]=t;try{if(e?.events?.on&&e?.events?.emit){const i=t.bus.on("overlay:changed",t=>e.events.emit("overlay:changed",t));e.events.on("player:destroy",()=>{try{i()}catch{}try{t.dispose()}catch{}try{delete e[w]}catch{}})}}catch{}return t}const k=Symbol.for("openplayerjs.caption.provider");function E(e){return e[k]??null}var O=Object.freeze({__proto__:null,BaseMediaEngine:r,Core:y,DVR_THRESHOLD:120,DefaultMediaEngine:n,DisposableStore:a,EVENT_OPTIONS:e,EventBus:o,HtmlMediaSurface:t,IframeMediaSurface:class{constructor(e,t={}){Object.defineProperty(this,"kind",{enumerable:!0,configurable:!0,writable:!0,value:"iframe"}),Object.defineProperty(this,"element",{enumerable:!0,configurable:!0,writable:!0,value:null}),Object.defineProperty(this,"currentSrc",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"internalBus",{enumerable:!0,configurable:!0,writable:!0,value:new o}),Object.defineProperty(this,"adapter",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"pollIntervalMs",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"pollTimer",{enumerable:!0,configurable:!0,writable:!0,value:null}),Object.defineProperty(this,"_paused",{enumerable:!0,configurable:!0,writable:!0,value:!0}),Object.defineProperty(this,"_ended",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(this,"_playIntentAfterEnd",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(this,"_duration",{enumerable:!0,configurable:!0,writable:!0,value:NaN}),Object.defineProperty(this,"_currentTime",{enumerable:!0,configurable:!0,writable:!0,value:0}),Object.defineProperty(this,"_volume",{enumerable:!0,configurable:!0,writable:!0,value:1}),Object.defineProperty(this,"_muted",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(this,"_playbackRate",{enumerable:!0,configurable:!0,writable:!0,value:1}),this.adapter=e,this.pollIntervalMs=t.pollIntervalMs??250,this.onAdapterReady=this.onAdapterReady.bind(this),this.onAdapterState=this.onAdapterState.bind(this),this.onAdapterError=this.onAdapterError.bind(this),this.adapter.on("ready",this.onAdapterReady),this.adapter.on("state",this.onAdapterState),this.adapter.on("error",this.onAdapterError),this.adapter.on("timeupdate",e=>this.applyTime(e)),this.adapter.on("durationchange",e=>this.applyDuration(e)),this.adapter.on("ratechange",e=>this.applyRate(e)),this.adapter.on("volumechange",(e,t)=>this.applyVolume(e,t)),this.adapter.on("ended",()=>this.applyEnded())}get currentTime(){return this._currentTime}set currentTime(e){this._currentTime=e,this.internalBus.emit("seeking"),Promise.resolve(this.adapter.seekTo(e)).then(()=>{this.internalBus.emit("seeked")})}get duration(){return this._duration}set duration(e){}get volume(){return this._volume}set volume(e){const t=Math.min(1,Math.max(0,e));this.adapter.setVolume(t),this.applyVolume(t,this._muted)}get muted(){return this._muted}set muted(e){e?this.adapter.mute():this.adapter.unmute(),this.applyVolume(this._volume,e)}get playbackRate(){return this._playbackRate}set playbackRate(e){this.adapter.setPlaybackRate(e),this.applyRate(e)}get paused(){return this._paused}get ended(){return this._ended}load(e){}play(){return this._playIntentAfterEnd=this._ended,Promise.resolve(this.adapter.play()).then(()=>{})}pause(){Promise.resolve(this.adapter.pause())}on(e,t,i){return this.internalBus.on(e,t)}async mount(e){await this.adapter.mount(e)}destroy(){this.stopPolling(),this.adapter.off("ready",this.onAdapterReady),this.adapter.off("state",this.onAdapterState),this.adapter.off("error",this.onAdapterError),this.adapter.destroy(),this.internalBus.clear()}onAdapterReady(){this.applyDuration(this.safeNum(this.adapter.getDuration())),this.applyTime(this.safeNum(this.adapter.getCurrentTime())),this.adapter.getVolume&&this.applyVolume(this.safeNum(this.adapter.getVolume()),this._muted),this.adapter.isMuted&&this.applyVolume(this._volume,!!this.adapter.isMuted()),this.adapter.getPlaybackRate&&this.applyRate(this.safeNum(this.adapter.getPlaybackRate())),this.adapter.getElement&&(this.element=this.adapter.getElement()),this.startPolling(),this.internalBus.emit("loadedmetadata")}onAdapterState(e){switch(e){case"loading":case"buffering":this._ended&&!this._playIntentAfterEnd||this.internalBus.emit("waiting");break;case"playing":if(this._ended&&!this._playIntentAfterEnd)break;this._paused=!1,this._ended=!1,this._playIntentAfterEnd=!1,this.internalBus.emit("play"),this.internalBus.emit("playing");break;case"paused":this._paused=!0,this.internalBus.emit("pause");break;case"ended":{const e=2;if(Number.isFinite(this._duration)&&this._currentTime<this._duration-e)break;this._paused=!0,this._ended=!0,this.internalBus.emit("ended"),Promise.resolve(this.adapter.pause());break}}}onAdapterError(e){this.internalBus.emit("error",e)}applyTime(e){Number.isFinite(e)&&(this._currentTime=e,this._paused||this._ended||this.internalBus.emit("timeupdate"))}applyDuration(e){!Number.isFinite(e)||e<=0||e!==this._duration&&(this._duration=e,this.internalBus.emit("durationchange"))}applyRate(e){!Number.isFinite(e)||e<=0||e!==this._playbackRate&&(this._playbackRate=e,this.internalBus.emit("ratechange"))}applyVolume(e,t){if(!Number.isFinite(e))return;const i=Math.min(1,Math.max(0,e));i===this._volume&&!!t===this._muted||(this._volume=i,this._muted=!!t,this.internalBus.emit("volumechange"))}applyEnded(){this._ended=!0,this._paused=!0,this.internalBus.emit("ended")}startPolling(){if(null!=this.pollTimer)return;const e=()=>{if(this.applyTime(this.safeNum(this.adapter.getCurrentTime())),this.applyDuration(this.safeNum(this.adapter.getDuration())),this.adapter.getVolume||this.adapter.isMuted){const e=this.adapter.getVolume?this.safeNum(this.adapter.getVolume()):this._volume,t=this.adapter.isMuted?!!this.adapter.isMuted():this._muted;this.applyVolume(e,t)}this.adapter.getPlaybackRate&&this.applyRate(this.safeNum(this.adapter.getPlaybackRate())),this.pollTimer=window.setTimeout(e,this.pollIntervalMs)};this.pollTimer=window.setTimeout(e,this.pollIntervalMs)}stopPolling(){null!=this.pollTimer&&(window.clearTimeout(this.pollTimer),this.pollTimer=null)}safeNum(e){const t=Number(e);return Number.isFinite(t)?t:NaN}},Lease:l,PluginRegistry:c,StateManager:u,formatTime:d,generateISODateTime:h,getCaptionTrackProvider:E,getOverlayManager:_,isAudio:m,isMobile:b,offset:p,setCaptionTrackProvider:function(e,t){e[k]=t}});const S=new Map,A={top:["progress"],"bottom-left":["play","time","volume"],"bottom-right":["captions","settings","fullscreen"]};function j(e){if(!e||"object"!=typeof e)return{...A};if(e.layers&&"object"==typeof e.layers){const t={},{left:i,middle:r,right:n}=e.layers;return Array.isArray(i)&&(t["bottom-left"]=i),Array.isArray(r)&&(t.top=r),Array.isArray(n)&&(t["bottom-right"]=n),Object.keys(t).length>0?t:{...A}}const t={};for(const[i,r]of Object.entries(e))Array.isArray(r)&&(t[i]=r);return Object.keys(t).length>0?t:{...A}}function L(e){const t=document.createElement("div");t.className=`op-controls__layer op-controls-layer__${e}`;const i=document.createElement("div");i.className="op-controls__left";const r=document.createElement("div");r.className="op-controls__middle";const n=document.createElement("div");return n.className="op-controls__right",t.append(i,r,n),{section:t,left:i,center:r,right:n}}function T(e,t){const i=L("top"),r=L("center"),n=L("bottom");return e.append(i.section,r.section,n.section),{place(e,s){const a=e.region?.trim();if("main"===a&&t)return void t.appendChild(s);const o="top"===e.v?i:"middle"===e.v?r:n;("left"===e.h?o.left:"center"===e.h?o.center:o.right).appendChild(s)}}}function x(e,t){S.set(e,t)}function C(e){const t=[],i=j(e);return Object.entries(i).forEach(([e,i])=>{if(!Array.isArray(i))return;const r=function(e){if("main"===e)return{v:"middle",h:"center",region:"main"};const t=e.split("-");let i="middle",r="center";for(const e of t)"top"!==e&&"bottom"!==e||(i=e),"left"!==e&&"right"!==e||(r=e),"middle"!==e&&"center"!==e||(r="center");return{v:i,h:r}}(e);i.forEach(e=>{const i=function(e){const t=S.get(e);return t?.()||null}(e);i&&(i.placement=r,t.push(i))})}),t}let R=0;function M(e,t,i){const r=e.parentElement??i?.container;if(!r)return void e.setAttribute("aria-label",t);const n=e.getAttribute("aria-labelledby");let s=null;if(n){const e=document.getElementById(n);e&&e instanceof HTMLSpanElement&&(s=e)}s||(s=document.createElement("span"),s.className="op-player__sr-only",s.id=(R+=1,`op-player-sr-${R}`),e.parentElement===r&&r.contains(e)?r.insertBefore(s,e):r.appendChild(s),e.setAttribute("aria-labelledby",s.id)),s.textContent=t,e.removeAttribute("aria-label")}function N(e,t,i){if("button"===e.tagName.toLowerCase()||"button"===e.getAttribute("role"))return function(e,t){const i=e.querySelector(":scope > span.op-player__sr-only"),r=i??document.createElement("span");i||(r.className="op-player__sr-only",e.appendChild(r)),r.textContent=t}(e,t),void e.removeAttribute("aria-label");M(e,t,i)}const F=new WeakMap;function I(e){let t=F.get(e);if(!t){const{announce:i,destroy:r}=function(e){const t=[];let i=0;for(let i=0;i<2;i++){const i=document.createElement("div");i.setAttribute("role","status"),i.setAttribute("aria-live","polite"),i.setAttribute("aria-atomic","true"),i.className="op-player__sr-only op-player__announcer",i.setAttribute("aria-hidden","true"),e.appendChild(i),t.push(i)}const r=e=>{const r=t[i%2],n=t[(i+1)%2];i++,n.textContent="",n.setAttribute("aria-hidden","true"),r.setAttribute("aria-hidden","false"),r.textContent=e},n=()=>{t.forEach(e=>e.remove())};return{announce:r,destroy:n}}(e);t={announce:i,refs:0,_destroy:r},F.set(e,t)}t.refs+=1;const i=t;return{announce:t.announce,destroy:()=>{i.refs-=1,i.refs<=0&&(i._destroy(),F.delete(e))}}}const B=0,D=!0,q=!0,V=Object.freeze({auto:"Auto",captions:"CC/Subtitles",click:"Click to unmute",container:"Media player",fullscreen:"Fullscreen",levels:"Quality Levels",live:"Live",loading:"Loading...",media:"Media",mute:"Mute",off:"Off",pause:"Pause",play:"Play",progressRail:"Time Rail",progressSlider:"Time Slider",restart:"Restart",settings:"Player Settings",speed:"Speed",speedNormal:"Normal",tap:"Tap to unmute",toggleCaptions:"Toggle Captions",unmute:"Unmute",volume:"Volume",volumeControl:"Volume Control",volumeSlider:"Volume Slider"});function $(e){const t=e.config?e.config:e,i=t.allowSkip??D,r=t.allowRewind??q,n=t.step??B,s=t.width,a=t.height,o={...V,...t.labels||{}};if(e.config)try{t.labels=o,t.allowSkip=i,t.allowRewind=r,t.step=n}catch{}return{allowSkip:i,allowRewind:r,step:n,width:s,height:a,labels:o}}const H=Symbol.for("openplayerjs.settings.registry");class z{constructor(){Object.defineProperty(this,"providers",{enumerable:!0,configurable:!0,writable:!0,value:new Map})}register(e){return this.providers.set(e.id,e),()=>this.providers.delete(e.id)}list(){return Array.from(this.providers.values()).sort((e,t)=>e.label.localeCompare(t.label))}}function U(e){const t=e;if(t[H])return t[H];const i=new z;return t[H]=i,i}class W{constructor(){Object.defineProperty(this,"core",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"overlayMgr",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"activeOverlay",{enumerable:!0,configurable:!0,writable:!0,value:null}),Object.defineProperty(this,"dispose",{enumerable:!0,configurable:!0,writable:!0,value:new a})}onOverlayChanged(e){}create(e){return this.dispose.dispose(),this.dispose=new a,this.core=e,this.overlayMgr=_(e),this.activeOverlay=this.overlayMgr.active??null,this.dispose.add(this.overlayMgr.bus.on("overlay:changed",e=>{this.activeOverlay=e,this.onOverlayChanged(e)})),this.build()}destroy(){this.dispose.dispose()}onPlayer(e,t){return this.dispose.add(this.core.events.on(e,t))}listen(e,t,i,r){return this.dispose.addEventListener(e,t,i,r)}resolvePlayerRoot(){const e=this.core.media;return e&&(e.closest(".op-player")||e.parentElement)||document.body}resolveFullscreenContainer(){return this.activeOverlay?.fullscreenEl||this.resolvePlayerRoot()}resolveFullscreenVideoEl(){return this.activeOverlay?.fullscreenVideoEl||(this.core.media??null)}}function X(e){return"captions"===e||"subtitles"===e}function J(e,t){return e.label&&e.label.trim()||e.language&&e.language.trim().toUpperCase()||`Track ${t+1}`}function K(e){const t=e.textTracks??null;if(!t)return[];const i=[];for(let e=0;e<t.length;e++){const r=t[e];r&&(X(String(r.kind))&&i.push({index:e,track:r}))}return i}function Q(e){for(const t of K(e))if("showing"===t.track.mode)return t.index;return"off"}function Y(e){for(const t of K(e))t.track.mode="disabled"}function G(e){for(const t of K(e))t.track.mode="hidden"}function Z(e,t,i="disabled"){for(const r of K(e))r.track.mode=r.index===t?"showing":i}class ee extends W{constructor(){super(...arguments),Object.defineProperty(this,"id",{enumerable:!0,configurable:!0,writable:!0,value:"captions"}),Object.defineProperty(this,"placement",{enumerable:!0,configurable:!0,writable:!0,value:{v:"bottom",h:"right"}}),Object.defineProperty(this,"button",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"lastSelectedIndex",{enumerable:!0,configurable:!0,writable:!0,value:null}),Object.defineProperty(this,"lastAdTrackIndex",{enumerable:!0,configurable:!0,writable:!0,value:null}),Object.defineProperty(this,"lastSelectedProviderId",{enumerable:!0,configurable:!0,writable:!0,value:null})}build(){const t=this.core,i=$(t).labels,r=i.captions,n=i.toggleCaptions,{announce:s,destroy:a}=I(this.resolvePlayerRoot());this.dispose.add(a),this.button=document.createElement("button"),this.button.type="button",this.button.className="op-controls__captions",N(this.button,n),this.button.setAttribute("aria-pressed","false");const o=()=>E(t),l=()=>{const e=this.activeOverlay?.fullscreenVideoEl;return e instanceof HTMLVideoElement?e:null},c=()=>{const e=l();if(this.activeOverlay){if(e){const t=K(e);if(this.button.style.display=t.length>0?"":"none",t.length>0){const t="off"!==Q(e);this.button.classList.toggle("op-controls__captions--on",t),this.button.setAttribute("aria-pressed",t?"true":"false")}}else this.button.style.display="none";return}const i=o(),r=K(t.media),n=i?.getTracks()??[],s=r.length>0||n.length>0;this.button.style.display=s?"":"none";const a=i?null!==i.getActiveTrack():"off"!==Q(t.media);this.button.classList.toggle("op-controls__captions--on",a),this.button.setAttribute("aria-pressed",a?"true":"false")};this.listen(this.button,"click",e=>{const n=e,a=l();if(this.activeOverlay&&a){if("off"===Q(a)){const e=K(a),t=this.lastAdTrackIndex??e[0]?.index;"number"==typeof t&&Z(a,t,"hidden")}else G(a)}else{const e=o();if(e){if(null!==e.getActiveTrack())e.setTrack(null);else{const t=e.getTracks(),i=this.lastSelectedProviderId??t[0]?.id??null;e.setTrack(i),i&&(this.lastSelectedProviderId=i)}}else{if("off"===Q(t.media)){const e=K(t.media),i=this.lastSelectedIndex??e[0]?.index;"number"==typeof i&&Z(t.media,i)}else Y(t.media)}}c();const u="true"===this.button.getAttribute("aria-pressed");s(u?i.captionsOn??`${r} on`:i.captionsOff??`${r} off`),n.preventDefault(),n.stopPropagation()},e);const u={id:"captions",label:r,getSubmenu:()=>{const e=l();if(this.activeOverlay&&e){const t=K(e);if(!t.length)return null;const n=Q(e);return{id:"captions",label:r,items:[{id:"off",label:i.off,checked:"off"===n,onSelect:()=>{G(e),c()}},...t.map(t=>({id:String(t.index),label:J(t.track,t.index),checked:t.index===n,onSelect:()=>{Z(e,t.index,"hidden"),this.lastAdTrackIndex=t.index,c()}}))]}}if(this.activeOverlay)return null;const n=o(),s=K(t.media);if(n){const e=n.getTracks();if(!e.length)return null;const t=n.getActiveTrack();return{id:"captions",label:r,items:[{id:"off",label:i.off,checked:null===t,onSelect:()=>{n.setTrack(null),c()}},...e.map(e=>({id:e.id,label:e.label||e.language||e.id,checked:e.id===t,onSelect:()=>{n.setTrack(e.id),this.lastSelectedProviderId=e.id,c()}}))]}}if(!s.length)return null;const a=Q(t.media);return{id:"captions",label:r,items:[{id:"off",label:i.off,checked:"off"===a,onSelect:()=>{Y(t.media),c()}},...s.map(e=>({id:String(e.index),label:J(e.track,e.index),checked:e.index===a,onSelect:()=>{Z(t.media,e.index),this.lastSelectedIndex=e.index,c()}}))]}}};return U(t).register(u),this.dispose.add(this.overlayMgr.bus.on("overlay:changed",e=>{e?Promise.resolve().then(()=>c()):(this.lastAdTrackIndex=null,c())})),this.onPlayer("loadedmetadata",()=>{const e=o();c(),e?.subscribe&&this.dispose.add(e.subscribe(()=>c()))}),c(),this.button}}function te(e){const t=new ee;return e&&(t.placement=e),t}class ie extends W{constructor(){super(...arguments),Object.defineProperty(this,"id",{enumerable:!0,configurable:!0,writable:!0,value:"currentTime"}),Object.defineProperty(this,"placement",{enumerable:!0,configurable:!0,writable:!0,value:{v:"top",h:"left"}})}build(){const e=this.core,t=document.createElement("time");t.className="op-controls__current",t.setAttribute("role","timer"),t.setAttribute("aria-live","off"),t.setAttribute("aria-hidden","false"),t.setAttribute("datetime","PT0M0S"),t.innerText="0:00";const i=()=>{if(this.activeOverlay)return t.setAttribute("aria-hidden","false"),void(t.innerText=d(Math.ceil(this.activeOverlay.value)));if(e.isLive)return void t.setAttribute("aria-hidden","true");const i=e.currentTime;t.setAttribute("aria-hidden","false");const r=Number.isFinite(i)?Math.max(0,i):0,n=d(r);t.innerText=n,t.setAttribute("datetime",h(r))};return this.onPlayer("timeupdate",()=>i()),this.onPlayer("seeked",()=>i()),this.onPlayer("durationchange",()=>i()),this.overlayMgr.bus.on("overlay:changed",()=>i()),i(),t}}function re(e){const t=new ie;return e&&(t.placement=e),t}class ne extends W{constructor(){super(...arguments),Object.defineProperty(this,"id",{enumerable:!0,configurable:!0,writable:!0,value:"duration"}),Object.defineProperty(this,"placement",{enumerable:!0,configurable:!0,writable:!0,value:{v:"top",h:"right"}})}build(){const e=this.core,t=document.createElement("time");t.className="op-controls__duration",t.setAttribute("aria-hidden","false"),t.setAttribute("datetime","PT0M0S");const i=()=>{if(this.activeOverlay)return t.setAttribute("aria-hidden","false"),void(t.innerText=d(this.activeOverlay.duration));const i=e.duration;if(e.isLive||i===1/0)return t.removeAttribute("datetime"),void(t.textContent=$(e).labels.live);t.setAttribute("aria-hidden","false");const r=Number.isFinite(i)?Math.max(0,i):e.config?.duration||0,n=d(r);t.textContent=n,t.setAttribute("datetime",h(r))};return this.onPlayer("durationchange",i),this.onPlayer("timeupdate",i),this.overlayMgr.bus.on("overlay:changed",i),i(),t}}function se(e){const t=new ne;return e&&(t.placement=e),t}function ae(){const e=document;return document.fullscreenElement||e.webkitFullscreenElement||e.mozFullScreenElement||e.msFullscreenElement||null}function oe(){const e=document;return document.exitFullscreen?document.exitFullscreen():e.mozCancelFullScreen?e.mozCancelFullScreen():e.webkitCancelFullScreen?e.webkitCancelFullScreen():e.msExitFullscreen?e.msExitFullscreen():void 0}class le extends W{constructor(){super(...arguments),Object.defineProperty(this,"id",{enumerable:!0,configurable:!0,writable:!0,value:"fullscreen"}),Object.defineProperty(this,"placement",{enumerable:!0,configurable:!0,writable:!0,value:{v:"bottom",h:"right"}}),Object.defineProperty(this,"isFullscreen",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(this,"screenW",{enumerable:!0,configurable:!0,writable:!0,value:0}),Object.defineProperty(this,"screenH",{enumerable:!0,configurable:!0,writable:!0,value:0})}build(){const t=$(this.core).labels,i=document.createElement("button"),{announce:r,destroy:n}=I(this.resolvePlayerRoot());this.dispose.add(n),i.tabIndex=0,i.type="button",i.className="op-controls__fullscreen",N(i,t.fullscreen),i.setAttribute("aria-pressed","false");const s=(e,t)=>{const i=this.resolveFullscreenContainer(),r=this.resolveFullscreenVideoEl(),n=r?.parentElement??null;e?(i.style.width="100%",r&&(r.style.width="100%"),n&&n!==i&&(n.style.width="100%")):(i.style.removeProperty("width"),r&&r.style.removeProperty("width"),n&&n!==i&&n.style.removeProperty("width")),t?(i.style.height="100%",r&&(r.style.height="100%"),n&&n!==i&&(n.style.height="100%")):(i.style.removeProperty("height"),r&&r.style.removeProperty("height"),n&&n!==i&&n.style.removeProperty("height"))},a=()=>{const e=ae(),t=this.resolveFullscreenContainer(),r=!!e&&(e===t||e.contains?.(t));var n;(n=r)?i.classList.add("op-controls__fullscreen--out"):i.classList.remove("op-controls__fullscreen--out"),i.setAttribute("aria-pressed",n?"true":"false"),r?document.body.classList.add("op-fullscreen__on"):document.body.classList.remove("op-fullscreen__on"),s(r?this.screenW:void 0,r?this.screenH:void 0),this.isFullscreen=r};return["fullscreenchange","mozfullscreenchange","webkitfullscreenchange","msfullscreenchange"].forEach(t=>{this.listen(document,t,a,e)}),this.listen(document,"keydown",e=>{"Escape"===e.key&&this.isFullscreen&&oe()},e),this.listen(i,"click",async e=>{const t=e;if(this.screenW=window.screen.width,this.screenH=window.screen.height,ae())return void oe();!function(e){if(e)e.requestFullscreen?e.requestFullscreen():e.mozRequestFullScreen?e.mozRequestFullScreen():e.webkitRequestFullScreen?e.webkitRequestFullScreen():e.msRequestFullscreen?e.msRequestFullscreen():e.webkitEnterFullscreen&&e.webkitEnterFullscreen()}(this.resolveFullscreenContainer());try{await(window.screen.orientation?.lock("landscape"))}catch{}t.preventDefault(),t.stopPropagation()},e),this.onPlayer("player:fullscreenchange",()=>{const e=ae()?"enterFullscreen":"exitFullscreen";r(t[e]??e)}),a(),i}onOverlayChanged(){if(ae()){ae()&&document.dispatchEvent(new Event("fullscreenchange"))}}}function ce(e){const t=new le;return e&&(t.placement=e),t}function ue(e){try{if(!!0)return e.surface;const t=_(e)?.active,i=t?.fullscreenVideoEl;return i&&"function"==typeof i.play?i:e.surface}catch{return e.surface}}async function de(e){const t=ue(e);t.paused||t.ended?await e.play():e.pause()}class he extends W{constructor(){super(...arguments),Object.defineProperty(this,"id",{enumerable:!0,configurable:!0,writable:!0,value:"play"}),Object.defineProperty(this,"placement",{enumerable:!0,configurable:!0,writable:!0,value:{v:"bottom",h:"left"}})}build(){const t=this.core,i=$(t).labels,r=i.play,n=i.pause,s=i.restart;let a=!1;const o=document.createElement("button");o.tabIndex=0,o.type="button",o.className="op-controls__playpause",N(o,r),o.setAttribute("aria-pressed","false"),this.listen(o,"click",async e=>{const i=e;if(i.preventDefault(),i.stopPropagation(),a){ue(t).currentTime=0}await de(t)},e);const l=e=>{o.classList.toggle("op-controls__playpause--pause",e),o.classList.toggle("op-controls__playpause--replay",a&&!e),o.setAttribute("aria-pressed",e?"true":"false"),N(o,a&&!e?s:e?n:r)};return this.onPlayer("play",()=>{a=!1,l(!0)}),this.onPlayer("playing",()=>{a=!1,l(!0)}),this.onPlayer("pause",()=>l(!1)),this.onPlayer("ended",()=>{a=!0,l(!1)}),o}}function pe(e){const t=new he;return e&&(t.placement=e),t}class me extends W{constructor(){super(...arguments),Object.defineProperty(this,"id",{enumerable:!0,configurable:!0,writable:!0,value:"progress"}),Object.defineProperty(this,"placement",{enumerable:!0,configurable:!0,writable:!0,value:{v:"top",h:"center"}}),Object.defineProperty(this,"repaint",{enumerable:!0,configurable:!0,writable:!0,value:void 0})}build(){const t=this.core,i=$(t),{allowRewind:r,allowSkip:n,labels:s}=i,a=s,{announce:o,destroy:l}=I(this.resolvePlayerRoot());this.dispose.add(l);const c=(e,t)=>{const i=a[e]??e;return null!=t?i.replace("%s",t):i},u=s.progressSlider,h=s.progressRail,m=document.createElement("div");m.className="op-controls__progress",m.role="group",N(m,u);const f=document.createElement("input");f.type="range",f.role="slider",f.className="op-controls__progress--seek",f.tabIndex=0,f.min="0",f.step="0.1",f.value="0",N(f,h,{container:m}),f.setAttribute("aria-valuemin","0"),f.setAttribute("aria-valuenow","0");const v=document.createElement("progress");v.className="op-controls__progress--buffer",v.max=100,v.value=0;const y=document.createElement("progress");let g;y.className="op-controls__progress--played",y.max=100,y.value=0,m.appendChild(f),m.appendChild(y),m.appendChild(v),b()||(g=document.createElement("span"),g.className="op-controls__tooltip",g.tabIndex=-1,g.textContent="00:00",m.appendChild(g));const w=e=>{e?f.classList.add("op-progress--pressed"):f.classList.remove("op-progress--pressed")};this.listen(f,"pointerdown",()=>w(!0)),this.listen(f,"pointerup",()=>w(!1)),this.listen(f,"pointercancel",()=>w(!1)),this.listen(f,"mouseleave",()=>w(!1)),this.listen(f,"touchstart",()=>w(!0),e),this.listen(f,"touchend",()=>w(!1),e),this.listen(f,"mousedown",()=>w(!0),e),this.listen(f,"mouseup",()=>w(!1),e);const P=()=>w(!1);this.listen(document,"pointerup",P,e),this.listen(document,"pointercancel",P,e),this.listen(document,"mouseup",P,e),this.listen(document,"touchend",P,e);const _=e=>{f.disabled=!e,f.classList.toggle("op-progress--disabled",!e),m.setAttribute("aria-disabled",(!e).toString())},k=()=>this.activeOverlay?this.activeOverlay.duration:t.surface?.duration??t.duration,E=()=>this.activeOverlay?this.activeOverlay.value:t.surface?.currentTime??t.currentTime,O=()=>this.activeOverlay?this.activeOverlay.mode:"normal",S=()=>{const e=k(),i=E(),r=O();if((t.isLive||e===1/0)&&!this.activeOverlay)return void m.setAttribute("aria-hidden","true");if(m.setAttribute("aria-hidden","false"),Number.isFinite(e)&&e>0&&(f.max&&"0"!==f.max&&parseFloat(f.max||"-1")===e||(f.max=String(e),f.setAttribute("aria-valuemax",String(e)))),this.repaint=S,this.activeOverlay?_(this.activeOverlay.canSeek):_(!t.isLive&&t.surface?.duration!==1/0),f.classList.contains("op-progress--pressed"))return;const n=Number.isFinite(e)&&e>0?e:0,s=Number.isFinite(i)&&i>=0?i:0;f.value=String(s),f.setAttribute("aria-valuenow",String(s));const a=parseFloat(f.min),o=parseFloat(f.max);if(Number.isFinite(a)&&Number.isFinite(o)&&o>a){const e="countdown"===r?100*(o-s-a)/(o-a):100*(s-a)/(o-a);f.style.backgroundSize=`${e}% 100%`}y.value=n?"countdown"===r?(n-s)/n*100:s/n*100:0,this.activeOverlay&&Number.isFinite(this.activeOverlay.bufferedPct)&&(v.value=Math.max(0,Math.min(100,this.activeOverlay.bufferedPct)))},A=e=>{if(this.activeOverlay&&!this.activeOverlay.canSeek)return;const i=k();if((t.isLive||i===1/0)&&!this.activeOverlay)return;if(!Number.isFinite(i)||i<=0)return;const s=m.getBoundingClientRect(),a=e-s.left,o=Math.max(0,Math.min(1,a/s.width))*i,l=E();o<l&&!r||o>l&&!n||Number.isFinite(o)&&(f.value=String(o),t.currentTime=o)};return this.listen(m,"click",e=>{const t=e,i=e.target;i&&i.closest('input[type="range"]')||A(t.clientX)},e),this.listen(m,"touchstart",e=>{const t=e,i=e.target;if(i&&i.closest('input[type="range"]'))return;const r=t.touches&&t.touches[0];r&&(t.preventDefault(),A(r.clientX))},e),this.listen(f,"change",e=>{if(this.activeOverlay&&!this.activeOverlay.canSeek)return;const i=e.target,s=parseFloat(i.value),a=E();s<a&&!r||s>a&&!n||(Number.isFinite(s)&&(t.currentTime=s),w(!1))},e),this.listen(f,"input",e=>{if(!f.classList.contains("op-progress--pressed")&&!b())return;if(this.activeOverlay&&!this.activeOverlay.canSeek)return;const i=e.target,s=parseFloat(i.min),a=parseFloat(i.max),o=parseFloat(i.value),l=E();if(o<l&&!r||o>l&&!n)return;Number.isFinite(s)&&Number.isFinite(a)&&a>s&&(f.style.backgroundSize=100*(o-s)/(a-s)+"% 100%");const c=k(),u=Number.isFinite(c)&&c>0?c:0;y.value=u?o/u*100:0,t.currentTime=o},e),this.onPlayer("durationchange",S),this.onPlayer("timeupdate",S),this.onPlayer("seeked",()=>{const e=d(t.currentTime),i=isFinite(t.duration)?d(t.duration):void 0;o(i?`${c("seekTo",e)} of ${i}`:c("seekTo",e))}),this.onPlayer("waiting",()=>{f.classList.contains("loading")||f.classList.add("loading"),f.classList.contains("error")&&f.classList.remove("error")}),this.onPlayer("play",()=>{f.classList.contains("loading")&&f.classList.remove("loading"),f.classList.contains("error")&&f.classList.remove("error"),t.isLive||t.surface.duration===1/0||(m.removeAttribute("aria-valuenow"),m.removeAttribute("aria-valuetext"))}),this.onPlayer("playing",()=>{f.classList.contains("loading")&&f.classList.remove("loading"),f.classList.contains("error")&&f.classList.remove("error")}),this.onPlayer("ended",()=>{f.style.backgroundSize="0% 100%",f.max&&(f.max="0"),v.value=0,y.value=0}),this.listen(m,"pointermove",e=>{const i=e;if(b())return;if(this.activeOverlay&&!this.activeOverlay.canSeek)return;const r=k();if((t.isLive||r===1/0)&&!this.activeOverlay)return;const n=i.pageX;let s=n-p(m).left;const a=g.offsetWidth/2,o=s/m.offsetWidth,l=o*r,c=this.resolvePlayerRoot(),u=c.offsetWidth-g.offsetWidth;s<=0||n-p(c).left<=a?s=0:n-p(c).left>=u?s=u-p(f).left-10:s-=a,o>=0&&o<=1?g.classList.add("op-controls__tooltip--visible"):g.classList.remove("op-controls__tooltip--visible"),g.style.left=`${s}px`,g.textContent=Number.isNaN(l)?"00:00":d(l)},e),this.listen(document,"pointermove",e=>{e.target.closest(".op-controls__progress")||g.classList.remove("op-controls__tooltip--visible")},e),S(),m}onOverlayChanged(){this.repaint?.()}}function be(e){const t=new me;return e&&(t.placement=e),t}class fe extends W{constructor(){super(...arguments),Object.defineProperty(this,"id",{enumerable:!0,configurable:!0,writable:!0,value:"settings"}),Object.defineProperty(this,"placement",{enumerable:!0,configurable:!0,writable:!0,value:{v:"bottom",h:"right"}}),Object.defineProperty(this,"root",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"button",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"panel",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"view",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"isOpen",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(this,"activeSubmenuId",{enumerable:!0,configurable:!0,writable:!0,value:null})}build(){const t=$(this.core).labels;this.root=document.createElement("div"),this.root.className="op-menu--container",this.button=document.createElement("button"),this.button.type="button",this.button.className="op-controls__settings",this.button.setAttribute("aria-haspopup","menu"),this.button.setAttribute("aria-expanded","false"),N(this.button,t.settings),this.panel=document.createElement("div"),this.panel.className="op-menu",this.panel.setAttribute("role","menu"),this.panel.tabIndex=-1,this.panel.style.display="none",this.view=document.createElement("div"),this.view.className="op-menu__submenu",this.panel.appendChild(this.view),this.root.appendChild(this.button),this.root.appendChild(this.panel),this.listen(this.button,"click",e=>{const t=e;this.toggle(),t.preventDefault(),t.stopPropagation()},e),this.listen(document,"click",e=>{if(!this.isOpen)return;e.target.closest(".op-menu--container")||this.close()},e),this.listen(document,"keydown",e=>{if(!this.isOpen)return;"Escape"===e.key&&this.close()},e),this.listen(document,"focusout",()=>{this.isOpen&&window.setTimeout(()=>{const e=this.button.closest(".op-player");e&&!e.contains(document.activeElement)&&this.close()},0)},e);let i=null;return this.dispose.add(this.overlayMgr.bus.on("overlay:changed",e=>{const t=e?.id??null;t!==i?(i=t,this.activeSubmenuId=null,this.isOpen?this.close():this.render()):this.isOpen||this.render()})),U(this.core).register({id:"speed",label:t.speed,getSubmenu:e=>{const i=this.overlayMgr.active;if("ads"===i?.id)return null;const r=e.playbackRate||1;return{id:"speed",label:t.speed,items:[.25,.5,.75,1,1.25,1.5,2,2.5].map(i=>({id:String(i),label:1===i?t.speedNormal:`${i}x`,checked:Math.abs(r-i)<1e-6,onSelect:()=>{e.playbackRate=i}}))}}}),this.onPlayer("loadedmetadata",()=>{this.isOpen&&this.render()}),this.root}toggle(){this.isOpen?this.close():this.open()}open(){this.isOpen=!0,this.button.setAttribute("aria-expanded","true"),this.panel.style.display="block",this.render(),this.core.events.emit("ui:menu:open")}close(){this.isOpen=!1,this.activeSubmenuId=null,this.button.setAttribute("aria-expanded","false"),this.panel.style.display="none",this.core.events.emit("ui:menu:close")}render(){this.isOpen&&this.root.contains(document.activeElement)&&this.panel.focus({preventScroll:!0});const t=U(this.core).list().map(e=>({p:e,submenu:e.getSubmenu(this.core)})).filter(e=>e.submenu&&e.submenu.items.length);for(this.root.style.display=t.length?"":"none";this.view.firstChild;)this.view.removeChild(this.view.firstChild);const i=this.activeSubmenuId?t.find(e=>e.submenu.id===this.activeSubmenuId)?.submenu??null:null;if(!i){for(const{submenu:e}of t)this.view.appendChild(this.makeRow(e.label,()=>{this.activeSubmenuId=e.id,this.render()}));return}const r=document.createElement("div");r.className="op-menu__header";const n=document.createElement("button");n.type="button",n.className="op-submenu__back",N(n,"Back"),this.listen(n,"click",e=>{const t=e;this.activeSubmenuId=null,this.render(),t.preventDefault(),t.stopPropagation()},e);const s=document.createElement("div");s.className="op-controls__settings-title",s.textContent=i.label,r.append(n,s),this.view.appendChild(r);for(const e of i.items)this.view.appendChild(this.makeRow(e.label,()=>{e.disabled||(e.onSelect(),this.render())},e.checked,e.disabled))}makeRow(t,i,r=!1,n=!1){const s=document.createElement("button");s.type="button",s.className="op-controls__menu-item",s.setAttribute("role","menuitem"),s.setAttribute("aria-disabled",n?"true":"false"),s.setAttribute("aria-checked",r?"true":"false");const a=document.createElement("span");a.className="op-controls__menu-item-label",a.textContent=t;const o=document.createElement("span");return o.className="op-menu__item-check "+(r?"checked":""),s.append(o,a),this.listen(s,"click",e=>{const t=e;i(),t.preventDefault(),t.stopPropagation()},e),s}}function ve(e){const t=new fe;return e&&(t.placement=e),t}class ye extends W{constructor(){super(...arguments),Object.defineProperty(this,"id",{enumerable:!0,configurable:!0,writable:!0,value:"time"}),Object.defineProperty(this,"placement",{enumerable:!0,configurable:!0,writable:!0,value:{v:"bottom",h:"left"}})}build(){const e=this.core,t=document.createElement("span");t.className="op-controls__time-delimiter",t.textContent="/",t.setAttribute("aria-hidden","true");const i=document.createElement("span");i.className="op-controls-time";const r=(new ie).create(e),n=(new ne).create(e);return i.appendChild(r),i.appendChild(t),i.appendChild(n),i}}function ge(e){const t=new ye;return e&&(t.placement=e),t}class we extends W{constructor(){super(...arguments),Object.defineProperty(this,"id",{enumerable:!0,configurable:!0,writable:!0,value:"volume"}),Object.defineProperty(this,"placement",{enumerable:!0,configurable:!0,writable:!0,value:{v:"bottom",h:"right"}})}build(){const t=this.core,i=$(t).labels,r=i.mute,n=i.unmute,s=i.volume,a=i.volumeControl,o=i.volumeSlider,l=document.createElement("div");l.className="op-controls__volume",l.tabIndex=0,l.setAttribute("aria-valuemin","0"),l.setAttribute("aria-valuemax","100"),l.setAttribute("aria-valuenow",`${t.volume}`),N(l,a),l.setAttribute("aria-orientation","vertical"),l.setAttribute("role","slider");const c=document.createElement("input");c.className="op-controls__volume--input",c.tabIndex=-1,c.type="range",c.value=t.volume.toString(),c.min="0",c.max="1",c.step="0.1",N(c,o,{container:l});const u=document.createElement("progress");u.className="op-controls__volume--display",u.max=10,u.value=10*t.volume,l.appendChild(c),l.appendChild(u);const d=document.createElement("button");d.tabIndex=0,d.type="button",d.title=r,d.className="op-controls__mute",N(d,r),d.setAttribute("aria-pressed","false");let h=t.volume;const p=e=>e>=1?1:e<=0?0:e,m=e=>{const t=p(e);u.value=10*t;const i=Math.floor(100*t);l.setAttribute("aria-valuenow",`${i}`),l.setAttribute("aria-valuetext",`${s}: ${i}`)},b=e=>{const t=p(e);t<=.5&&t>0?(d.classList.remove("op-controls__mute--muted"),d.classList.add("op-controls__mute--half")):0===t?(d.classList.add("op-controls__mute--muted"),d.classList.remove("op-controls__mute--half")):(d.classList.remove("op-controls__mute--muted"),d.classList.remove("op-controls__mute--half"))};this.listen(c,"input",e=>{const i=Number(e.target.value),r=p(i);h=r,t.volume=r,t.muted=0===r;const n=ue(t);if(n&&n!==t.surface)try{n.volume=r,n.muted=0===r}catch{}m(r),b(r)},e),this.listen(d,"click",e=>{const i=e,s=ue(t);if(t.muted){const e=h>0?h:1;if(t.volume=e,t.muted=!1,s&&s!==t.surface)try{s.volume=e,s.muted=!1,d.title=n,N(d,n)}catch{}}else if(t.volume>0&&(h=t.volume),t.volume=0,t.muted=!0,s&&s!==t.surface)try{s.volume=0,s.muted=!0,d.title=r,N(d,r)}catch{}i.preventDefault(),i.stopPropagation()},e),this.onPlayer("loadedmetadata",()=>{const e=t.muted||0===t.volume,i=p(t.volume);i>0&&(h=i),c.value=(e?0:i).toString(),m(e?0:i),b(e?0:i);const r=ue(t);if(r&&r!==t.surface)try{r.muted=e,e||(r.volume=i)}catch{}}),this.onPlayer("volumechange",()=>{const e=t.muted||0===t.volume,i=p(t.volume);i>0&&(h=i),c.value=(e?0:i).toString(),m(e?0:i),b(e?0:i),d.setAttribute("aria-pressed",e?"true":"false");const r=ue(t);if(r&&r!==t.surface)try{r.muted=e,e||(r.volume=i)}catch{}});const f=document.createElement("div");return f.className="op-controls__volume--container",f.appendChild(d),f.appendChild(l),f}}function Pe(e){if(b())return null;const t=new we;return e&&(t.placement=e),t}let _e=0;function ke(e,t){const i=e.querySelector(":scope > span.op-player__sr-only"),r=i??document.createElement("span");i||(_e+=1,r.className="op-player__sr-only",r.id=`op-player-sr-el-${_e}`,e.insertBefore(r,e.firstChild),e.setAttribute("aria-labelledby",r.id),e.removeAttribute("aria-label")),r.textContent=t}function Ee(t,i){(!!t.media.autoplay||t.canAutoplay||t.canAutoplayMuted)&&(t.canAutoplay&&!t.canAutoplayMuted||queueMicrotask(async()=>{try{const r=t.volume>0?t.volume:1;t.muted=!0,t.volume=0,await t.play();const n=$(t).labels,s=b()?n.tap:n.click,a=document.createElement("button");a.type="button",a.className="op-player__unmute",a.textContent=s,a.tabIndex=0;const o=()=>{try{l?.()}catch{}try{a.remove()}catch{}},l=t.events.on("volumechange",()=>{t.muted||o()});a.addEventListener("click",()=>{t.userInteracted||(t.userInteracted=!0,t.emit("player:interacted")),t.muted=!1,t.volume=r,t.play().catch(()=>{}),o()},e),i.insertBefore(a,i.firstChild),t.events.on("player:destroy",o)}catch{}}))}function Oe(t,i,r,n={}){const s=!0===n.alwaysVisible,a=$(t);i.tabIndex=-1;const o=i,l=m(o);o.classList.contains("op-player__media")||o.classList.add("op-player__media");const c=document.createComment("op-player-placeholder"),u=o.parentNode;u&&u.insertBefore(c,o);const d=document.createElement("div");d.className="op-player op-player__keyboard--inactive "+(l?"op-player__audio":"op-player__video"),d.setAttribute("role","region"),d.tabIndex=0;let h="";if(a.width){h+=`width: ${"number"==typeof a.width?`${a.width}px`:a.width} !important;`}if(a.height){h+=`height: ${"number"==typeof a.height?`${a.height}px`:a.height} !important;`}h&&d.setAttribute("style",h),i.controls=!1,i.replaceWith(d),ke(d,a.labels.container);const p=document.createElement("div");p.className="op-media",p.tabIndex=0,p.setAttribute("role","group"),p.appendChild(o),ke(p,a.labels.media);const f=document.createElement("div");let v;f.className="op-media__main",l||(p.appendChild(f),v=function(t){const i=$(t).labels,r=i.play,n=i.pause,s=i.loading,a=document.createElement("button");a.className="op-player__play",a.tabIndex=0,a.type="button",a.setAttribute("aria-pressed","false"),a.setAttribute("aria-hidden","false"),N(a,r),a.setAttribute("aria-keyshortcuts","K Enter"),a.addEventListener("click",async e=>{await de(t),e.preventDefault(),e.stopPropagation()},e);const o=document.createElement("span");o.className="op-player__loader",o.tabIndex=-1,o.setAttribute("aria-hidden","true"),o.setAttribute("role","status"),o.setAttribute("aria-live","polite");const l=document.createElement("span");let c;l.className="op-player__sr-only",l.textContent=s,o.appendChild(l);let u=!1;const d=()=>{c&&(window.clearTimeout(c),c=void 0),u=!1,a.classList.remove("op-player__play--flash")},h=e=>{if(e){if(u)return;a.classList.remove("op-player__play--paused"),a.setAttribute("aria-hidden","false"),a.removeAttribute("inert"),N(a,r),a.inert=!1,a.tabIndex=0}else{u&&d();const e=document.activeElement;e&&(e===a||a.contains(e))&&e.blur?.(),a.classList.add("op-player__play--paused"),a.setAttribute("aria-hidden","true"),a.setAttribute("inert",""),N(a,n),a.inert=!0,a.tabIndex=-1}};return{button:a,loader:o,showButton:h,showLoader:e=>{o.style.display=e?"":"none",o.setAttribute("aria-hidden",e?"false":"true")},flashPause:e=>{d(),u=!0,a.classList.remove("op-player__play--paused"),a.classList.add("op-player__play--flash"),a.setAttribute("aria-hidden","false"),a.removeAttribute("inert"),a.inert=!1,a.tabIndex=-1,N(a,n),c=window.setTimeout(()=>{a.classList.remove("op-player__play--flash"),c=void 0,u=!1,h(!0)},e)}}}(t),p.appendChild(v.button),p.appendChild(v.loader)),function(t,i,r){let n=t.volume||1;const s=()=>{i.classList.contains("op-player__keyboard--inactive")&&i.classList.remove("op-player__keyboard--inactive")},a=()=>{i.classList.contains("op-player__keyboard--inactive")||i.classList.add("op-player__keyboard--inactive")};i.addEventListener("click",a,e),i.addEventListener("pointerdown",a,e),i.addEventListener("pointerleave",a,e),window.addEventListener("click",a,e),window.addEventListener("pointerdown",a,e),window.addEventListener("keydown",s,e),i.addEventListener("keydown",async e=>{const i=e.key;s();const r=document.activeElement;if(r&&(" "===i||"Enter"===i||"Spacebar"===i)&&("BUTTON"===r.tagName||"button"===r.getAttribute("role")))return r.click(),e.preventDefault(),void e.stopPropagation();const a=$(t).step,o=a&&a>0?a:5;switch(i){case"k":case"K":case"Enter":case" ":case"Spacebar":await de(t),e.preventDefault(),e.stopPropagation();break;case"End":t.duration!==1/0&&(t.currentTime=t.duration,e.preventDefault(),e.stopPropagation());break;case"Home":t.currentTime=0,e.preventDefault(),e.stopPropagation();break;case"ArrowUp":{const i=Math.min(t.volume+.1,1);t.volume=i,t.muted=!(i>0),i>0&&(n=i);const r=ue(t);if(r&&r!==t.surface)try{r.volume=i,r.muted=!(i>0)}catch{}e.preventDefault(),e.stopPropagation();break}case"ArrowDown":{const i=Math.max(t.volume-.1,0);t.volume=i,t.muted=!(i>0),i>0&&(n=i);const r=ue(t);if(r&&r!==t.surface)try{r.volume=i,r.muted=!(i>0)}catch{}e.preventDefault(),e.stopPropagation();break}case"f":case"F":{const t=e.target;t.requestFullscreen?t.requestFullscreen():t.mozRequestFullScreen?t.mozRequestFullScreen():t.webkitRequestFullScreen?t.webkitRequestFullScreen():t.msRequestFullscreen?t.msRequestFullscreen():t.webkitEnterFullscreen&&t.webkitEnterFullscreen(),e.preventDefault(),e.stopPropagation();break}case"m":case"M":{const i=ue(t);if(t.muted){const e=n>0?n:1;if(t.volume=e,t.muted=!1,i&&i!==t.surface)try{i.volume=e,i.muted=!1}catch{}}else if(t.volume>0&&(n=t.volume),t.volume=0,t.muted=!0,i&&i!==t.surface)try{i.volume=0,i.muted=!0}catch{}e.preventDefault(),e.stopPropagation();break}case"J":case"j":case"ArrowLeft":t.duration!==1/0&&(t.currentTime=Math.max(0,t.currentTime-o),e.preventDefault(),e.stopPropagation());break;case"L":case"l":case"ArrowRight":t.duration!==1/0&&(t.currentTime=Math.min(t.duration,t.currentTime+o),e.preventDefault(),e.stopPropagation());break;case"<":t.playbackRate=Math.max(t.playbackRate-.25,.25),e.preventDefault(),e.stopPropagation();break;case">":t.playbackRate=Math.min(t.playbackRate+.25,2),e.preventDefault(),e.stopPropagation()}},e),t.events.on("waiting",()=>{r?.showLoader(!0),r?.showButton(!1)}),t.events.on("seeking",()=>{r?.showLoader(!0),r?.showButton(!1)}),t.events.on("seeked",()=>{r?.showLoader(!1),r?.showButton(t.media?.paused??!1)}),t.events.on("play",()=>{r?.showLoader(!1),r?.showButton(!1)}),t.events.on("pause",()=>{r?.showLoader(!1),r?.showButton(!0)}),t.events.on("playing",()=>{r?.showLoader(!1),r?.showButton(!1)}),t.events.on("ended",()=>{r?.showLoader(!1),r?.showButton(!0)})}(t,d,v);const y=document.createElement("div");if(y.className="op-controls",y.setAttribute("aria-hidden","false"),l){const e=T(y);d.appendChild(p),d.appendChild(y);const n=[];r.forEach(i=>{const r=i.create(t);r.dataset.controlId=i.id,e.place(i.placement,r),n.push(i)});const s={wrapper:d,mediaContainer:p,controlsRoot:y,placeholder:c,grid:e},a=t.events.on("player:destroy",()=>{try{n.forEach(e=>e.destroy?.())}catch{}try{d.replaceWith(i)}catch{}try{c.remove()}catch{}try{o(),l(),a()}catch{}}),o=t.events.on("ui:addElement",e=>{if(!e?.el)return;const t=e.placement||{v:"bottom",h:"right"};s.grid?.place(t,e.el)}),l=t.events.on("ui:addControl",e=>{const i=e?.control;if(!i)return;const r=i.create(t);r.dataset.controlId=i.id,s.grid?.place(i.placement,r),e.el=r,n.push(i)});return Ee(t,d),s}const g=b(),w=3e3,P=6500;let k,E="pointer",O=!1;const S=()=>y.contains(document.activeElement),A=()=>{d.classList.remove("op-controls--hidden"),p.classList.remove("op-media--controls-hidden"),k&&window.clearTimeout(k),y.setAttribute("aria-hidden","false"),t.events.emit("ui:controls:show")},j=e=>{s||O||t.surface.paused||t.surface.ended||(k&&window.clearTimeout(k),k=window.setTimeout(()=>(()=>{if(!t.surface.paused&&!t.surface.ended){if(S()){if("keyboard"!==E)return;d.focus()}d.classList.add("op-controls--hidden"),p.classList.add("op-media--controls-hidden"),y.setAttribute("aria-hidden","true"),t.events.emit("ui:controls:hide")}})(),e??w))},L=()=>{E="pointer",A(),j(w)};y.addEventListener("focusin",()=>{E="keyboard",A(),j(P)}),y.addEventListener("focusout",()=>{window.setTimeout(()=>{S()||j("keyboard"===E?P:w)},0)});const x=()=>{const e=document.activeElement;return!!e&&(d.contains(e)&&!y.contains(e))};d.addEventListener("focusin",()=>{x()&&(A(),k&&window.clearTimeout(k))},e),d.addEventListener("focusout",()=>{window.setTimeout(()=>{d.contains(document.activeElement)||S()||j()},0)},e),d.addEventListener("keydown",()=>{E="keyboard",x()?(A(),k&&window.clearTimeout(k)):S()&&(A(),j(P))},e),g?d.addEventListener("pointerdown",()=>{E="pointer",A(),j(w)},e):(d.addEventListener("pointermove",L,e),d.addEventListener("pointerenter",L,e),y.addEventListener("pointerenter",L,e),y.addEventListener("pointermove",L,e),y.addEventListener("pointerleave",()=>j(w),e));const C=T(y,f);d.appendChild(p),d.appendChild(y);const R=[];r.forEach(e=>{const i=e.create(t);i.dataset.controlId=e.id,C.place(e.placement,i),R.push(e)});const M={wrapper:d,mediaContainer:p,controlsRoot:y,placeholder:c,grid:C};Ee(t,d),d.addEventListener("click",async e=>{if(_(t).active?.fullscreenVideoEl)return;const i=e.target;if(i&&y.contains(i))return;if(i&&i!==d&&i.closest('button, [role="button"], a'))return;!t.surface.paused&&!t.surface.ended?(v?.flashPause(350),t.pause()):await t.play().catch(()=>{})},e);const F=t.events.on("playing",()=>j(w)),I=t.events.on("pause",()=>A()),B=t.events.on("ended",()=>A()),D=t.events.on("ui:menu:open",()=>{O=!0,k&&window.clearTimeout(k)}),q=t.events.on("ui:menu:close",()=>{O=!1,j()}),V=t.events.on("player:destroy",()=>{try{R.forEach(e=>e.destroy?.())}catch{}try{d.replaceWith(i)}catch{}try{c.remove()}catch{}try{F?.(),I?.(),B?.(),D?.(),q?.(),H(),z(),V()}catch{}}),H=t.events.on("ui:addElement",e=>{if(!e?.el)return;const t=e.placement||{v:"bottom",h:"right"};M.grid?.place(t,e.el)}),z=t.events.on("ui:addControl",e=>{const i=e?.control;if(!i)return;const r=i.create(t);r.dataset.controlId=i.id,M.grid?.place(i.placement,r),e.el=r,R.push(i)});return M}function Se(e){return{play:pe,volume:Pe,captions:te,fullscreen:ce,currentTime:re,duration:se,time:ge,progress:be,settings:ve}[e]}function Ae(e){const t=function(e){const t=j(e),i=new Set;for(const e of Object.values(t))for(const t of e)"string"==typeof t&&i.add(t);return[...i]}(e);for(const e of t){const t=Se(e);t&&x(e,t)}}function je(e,t){if(!e.install)return;!!window.OpenPlayerConfig?.extendPlayerPrototype&&(window.__OpenPlayerInstalledPlugins=window.__OpenPlayerInstalledPlugins||{},window.__OpenPlayerInstalledPlugins[e.name]||(e.install(t),window.__OpenPlayerInstalledPlugins[e.name]=!0))}class Le{constructor(e,t={}){Object.defineProperty(this,"config",{enumerable:!0,configurable:!0,writable:!0,value:t}),Object.defineProperty(this,"media",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"core",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"pendingListeners",{enumerable:!0,configurable:!0,writable:!0,value:[]}),Object.defineProperty(this,"createdPlugins",{enumerable:!0,configurable:!0,writable:!0,value:[]}),this.media=function(e){if(e instanceof HTMLMediaElement)return e;const t=document.getElementById(e)??document.querySelector(e);if(!t)throw new Error(`OpenPlayer: target "${e}" not found. Pass an HTMLMediaElement or a valid id ("video") or selector ("#video").`);if(!(t instanceof HTMLMediaElement))throw new Error(`OpenPlayer: target "${e}" is not an HTMLMediaElement.`);return t}(e)}getCore(){return this.core}init(){const e=this.config.controls,t=j(e),i=!0===e?.alwaysVisible;Ae(t),this.createdPlugins=this.createDetectedPlugins();for(const e of this.createdPlugins)je(e.entry,Le);this.core=new y(this.media,{...this.config,plugins:this.createdPlugins.map(e=>e.plugin)});const r=C(t);Oe(this.core,this.media,r,{alwaysVisible:i}),function(e){const t={addElement(t,i={v:"bottom",h:"right"}){if(0===e.events.listenerCount("ui:addElement"))throw new Error("UI not initialized; cannot addElement");return e.events.emit("ui:addElement",{el:t,placement:i}),e.emit("controls:changed"),t},addControl(t){if(0===e.events.listenerCount("ui:addControl"))throw new Error("UI not initialized; cannot addControl");const i={control:t,el:void 0};return e.events.emit("ui:addControl",i),e.emit("controls:changed"),i.el}};Object.assign(e,{controls:t})}(this.core);for(const e of this.createdPlugins)try{e.entry.extend?.(this.core,e.plugin,e.cfg)}catch{}for(const e of this.pendingListeners)e.off=this.core.on(e.event,e.cb);return this.core}on(e,t){if(this.core&&"function"==typeof this.core.on)return this.core.on(e,t);const i={event:e,cb:t};return this.pendingListeners.push(i),()=>{if(i.off)return i.off();const e=this.pendingListeners.indexOf(i);e>=0&&this.pendingListeners.splice(e,1)}}emit(e,...t){if(!this.core||"function"!=typeof this.core.emit)throw new Error("OpenPlayer.emit() called before init()");this.core.emit(e,...t)}async play(){if(!this.core)throw new Error("OpenPlayer.play() called before init()");await this.core.play()}pause(){if(!this.core)throw new Error("OpenPlayer.play() called before init()");this.core.pause()}load(){if(!this.core)throw new Error("OpenPlayer.load() called before init()");this.core.load()}destroy(){if(!this.core)throw new Error("OpenPlayer.destroy() called before init()");this.core.destroy()}addCaptions(e){if(!this.core)throw new Error("OpenPlayer.addCaptions() called before init()");return this.core.addCaptions(e)}addElement(e,t={v:"bottom",h:"right"}){this.core.controls.addElement(e,t)}addControl(e){if(!this.core)throw new Error("OpenPlayer.addControl() called before init()");this.core.controls.addControl(e)}get currentTime(){return this.core?.currentTime??0}set currentTime(e){if(!this.core)throw new Error("OpenPlayer.currentTime must be set after init()");this.core.currentTime=e}get duration(){return this.core?.duration??0}set src(e){if(!this.core)throw new Error("OpenPlayer.src must be set after init()");this.core.src=e}get src(){return this.core?.src??""}set volume(e){if(!this.core)throw new Error("OpenPlayer.volume must be set after init()");this.core.volume=e}get volume(){return this.core?.volume??1}set muted(e){if(!this.core)throw new Error("OpenPlayer.muted must be set after init()");this.core.muted=e}get muted(){return this.core?.muted??!1}set playbackRate(e){if(!this.core)throw new Error("OpenPlayer.playbackRate must be set after init()");this.core.playbackRate=e}get playbackRate(){return this.core?.playbackRate??1}createDetectedPlugins(){const e=window.OpenPlayerPlugins||{};return Object.keys(e).map(t=>{const i=e[t];if(!i?.factory)return;const r=(n=i.defaults,s=this.config?.[t],n?s?"object"!=typeof n||"object"!=typeof s?s:{...n,...s}:{...n}:s??{});var n,s;const a=i.factory(r);return{entry:{...i,name:t},plugin:a,cfg:r}}).filter(Boolean)}}const Te=Le;try{Object.assign(Te,O)}catch{}return Le});
|
|
2
2
|
//# sourceMappingURL=openplayer.js.map
|