kplayer-ts 1.0.1 → 1.0.2

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.
@@ -1,3 +1,4 @@
1
+ (function(){"use strict";try{if(typeof document<"u"){var e=document.createElement("style");e.appendChild(document.createTextNode(':root{--balloon-border-radius: 2px;--balloon-color: rgba(16, 16, 16, .95);--balloon-text-color: #fff;--balloon-font-size: 12px;--balloon-move: 4px}button[aria-label][data-balloon-pos]{overflow:visible}[aria-label][data-balloon-pos]{position:relative;cursor:pointer}[aria-label][data-balloon-pos]:after{opacity:0;pointer-events:none;transition:all .18s ease-out .18s;text-indent:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Open Sans,Helvetica Neue,sans-serif;font-weight:400;font-style:normal;text-shadow:none;font-size:var(--balloon-font-size);background:var(--balloon-color);border-radius:2px;color:var(--balloon-text-color);border-radius:var(--balloon-border-radius);content:attr(aria-label);padding:.5em 1em;position:absolute;white-space:nowrap;z-index:10}[aria-label][data-balloon-pos]:before{width:0;height:0;border:5px solid transparent;border-top-color:var(--balloon-color);opacity:0;pointer-events:none;transition:all .18s ease-out .18s;content:"";position:absolute;z-index:10}[aria-label][data-balloon-pos]:hover:before,[aria-label][data-balloon-pos]:hover:after,[aria-label][data-balloon-pos][data-balloon-visible]:before,[aria-label][data-balloon-pos][data-balloon-visible]:after,[aria-label][data-balloon-pos]:not([data-balloon-nofocus]):focus:before,[aria-label][data-balloon-pos]:not([data-balloon-nofocus]):focus:after{opacity:1;pointer-events:none}[aria-label][data-balloon-pos].font-awesome:after{font-family:FontAwesome,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Open Sans,Helvetica Neue,sans-serif}[aria-label][data-balloon-pos][data-balloon-break]:after{white-space:pre}[aria-label][data-balloon-pos][data-balloon-break][data-balloon-length]:after{white-space:pre-line;word-break:break-word}[aria-label][data-balloon-pos][data-balloon-blunt]:before,[aria-label][data-balloon-pos][data-balloon-blunt]:after{transition:none}[aria-label][data-balloon-pos][data-balloon-pos=up]:hover:after,[aria-label][data-balloon-pos][data-balloon-pos=up][data-balloon-visible]:after,[aria-label][data-balloon-pos][data-balloon-pos=down]:hover:after,[aria-label][data-balloon-pos][data-balloon-pos=down][data-balloon-visible]:after{transform:translate(-50%)}[aria-label][data-balloon-pos][data-balloon-pos=up]:hover:before,[aria-label][data-balloon-pos][data-balloon-pos=up][data-balloon-visible]:before,[aria-label][data-balloon-pos][data-balloon-pos=down]:hover:before,[aria-label][data-balloon-pos][data-balloon-pos=down][data-balloon-visible]:before{transform:translate(-50%)}[aria-label][data-balloon-pos][data-balloon-pos*=-left]:after{left:0}[aria-label][data-balloon-pos][data-balloon-pos*=-left]:before{left:5px}[aria-label][data-balloon-pos][data-balloon-pos*=-right]:after{right:0}[aria-label][data-balloon-pos][data-balloon-pos*=-right]:before{right:5px}[aria-label][data-balloon-pos][data-balloon-po*=-left]:hover:after,[aria-label][data-balloon-pos][data-balloon-po*=-left][data-balloon-visible]:after,[aria-label][data-balloon-pos][data-balloon-pos*=-right]:hover:after,[aria-label][data-balloon-pos][data-balloon-pos*=-right][data-balloon-visible]:after{transform:translate(0)}[aria-label][data-balloon-pos][data-balloon-po*=-left]:hover:before,[aria-label][data-balloon-pos][data-balloon-po*=-left][data-balloon-visible]:before,[aria-label][data-balloon-pos][data-balloon-pos*=-right]:hover:before,[aria-label][data-balloon-pos][data-balloon-pos*=-right][data-balloon-visible]:before{transform:translate(0)}[aria-label][data-balloon-pos][data-balloon-pos^=up]:before,[aria-label][data-balloon-pos][data-balloon-pos^=up]:after{bottom:100%;transform-origin:top;transform:translateY(var(--balloon-move))}[aria-label][data-balloon-pos][data-balloon-pos^=up]:after{margin-bottom:10px}[aria-label][data-balloon-pos][data-balloon-pos=up]:before,[aria-label][data-balloon-pos][data-balloon-pos=up]:after{left:50%;transform:translate(-50%,var(--balloon-move))}[aria-label][data-balloon-pos][data-balloon-pos^=down]:before,[aria-label][data-balloon-pos][data-balloon-pos^=down]:after{top:100%;transform:translateY(calc(var(--balloon-move) * -1))}[aria-label][data-balloon-pos][data-balloon-pos^=down]:after{margin-top:10px}[aria-label][data-balloon-pos][data-balloon-pos^=down]:before{width:0;height:0;border:5px solid transparent;border-bottom-color:var(--balloon-color)}[aria-label][data-balloon-pos][data-balloon-pos=down]:after,[aria-label][data-balloon-pos][data-balloon-pos=down]:before{left:50%;transform:translate(-50%,calc(var(--balloon-move) * -1))}[aria-label][data-balloon-pos][data-balloon-pos=left]:hover:after,[aria-label][data-balloon-pos][data-balloon-pos=left][data-balloon-visible]:after,[aria-label][data-balloon-pos][data-balloon-pos=right]:hover:after,[aria-label][data-balloon-pos][data-balloon-pos=right][data-balloon-visible]:after{transform:translateY(-50%)}[aria-label][data-balloon-pos][data-balloon-pos=left]:hover:before,[aria-label][data-balloon-pos][data-balloon-pos=left][data-balloon-visible]:before,[aria-label][data-balloon-pos][data-balloon-pos=right]:hover:before,[aria-label][data-balloon-pos][data-balloon-pos=right][data-balloon-visible]:before{transform:translateY(-50%)}[aria-label][data-balloon-pos][data-balloon-pos=left]:after,[aria-label][data-balloon-pos][data-balloon-pos=left]:before{right:100%;top:50%;transform:translate(var(--balloon-move),-50%)}[aria-label][data-balloon-pos][data-balloon-pos=left]:after{margin-right:10px}[aria-label][data-balloon-pos][data-balloon-pos=left]:before{width:0;height:0;border:5px solid transparent;border-left-color:var(--balloon-color)}[aria-label][data-balloon-pos][data-balloon-pos=right]:after,[aria-label][data-balloon-pos][data-balloon-pos=right]:before{left:100%;top:50%;transform:translate(calc(var(--balloon-move) * -1),-50%)}[aria-label][data-balloon-pos][data-balloon-pos=right]:after{margin-left:10px}[aria-label][data-balloon-pos][data-balloon-pos=right]:before{width:0;height:0;border:5px solid transparent;border-right-color:var(--balloon-color)}[aria-label][data-balloon-pos][data-balloon-length]:after{white-space:normal}[aria-label][data-balloon-pos][data-balloon-length=small]:after{width:80px}[aria-label][data-balloon-pos][data-balloon-length=medium]:after{width:150px}[aria-label][data-balloon-pos][data-balloon-length=large]:after{width:260px}[aria-label][data-balloon-pos][data-balloon-length=xlarge]:after{width:380px}@media screen and (max-width: 768px){[aria-label][data-balloon-pos][data-balloon-length=xlarge]:after{width:90vw}}[aria-label][data-balloon-pos][data-balloon-length=fit]:after{width:100%}@font-face{font-family:Manrope;font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/manrope/v20/xn7_YHE41ni1AdIRqAuZuw1Bx9mbZk79FO_F.ttf) format("truetype")}@font-face{font-family:Manrope;font-style:normal;font-weight:500;font-display:swap;src:url(https://fonts.gstatic.com/s/manrope/v20/xn7_YHE41ni1AdIRqAuZuw1Bx9mbZk7PFO_F.ttf) format("truetype")}@font-face{font-family:Manrope;font-style:normal;font-weight:700;font-display:swap;src:url(https://fonts.gstatic.com/s/manrope/v20/xn7_YHE41ni1AdIRqAuZuw1Bx9mbZk4aE-_F.ttf) format("truetype")}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/plusjakartasans/v12/LDIbaomQNQcsA88c7O9yZ4KMCoOg4IA6-91aHEjcWuA_qU7NSg.ttf) format("truetype")}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:500;font-display:swap;src:url(https://fonts.gstatic.com/s/plusjakartasans/v12/LDIbaomQNQcsA88c7O9yZ4KMCoOg4IA6-91aHEjcWuA_m07NSg.ttf) format("truetype")}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:700;font-display:swap;src:url(https://fonts.gstatic.com/s/plusjakartasans/v12/LDIbaomQNQcsA88c7O9yZ4KMCoOg4IA6-91aHEjcWuA_TknNSg.ttf) format("truetype")}@keyframes my-face{2%{transform:translateY(1.5px) rotate(1.5deg)}4%{transform:translateY(-1.5px) rotate(-.5deg)}6%{transform:translateY(1.5px) rotate(-1.5deg)}8%{transform:translateY(-1.5px) rotate(-1.5deg)}10%{transform:translateY(2.5px) rotate(1.5deg)}12%{transform:translateY(-.5px) rotate(1.5deg)}14%{transform:translateY(-1.5px) rotate(1.5deg)}16%{transform:translateY(-.5px) rotate(-1.5deg)}18%{transform:translateY(.5px) rotate(-1.5deg)}20%{transform:translateY(-1.5px) rotate(2.5deg)}22%{transform:translateY(.5px) rotate(-1.5deg)}24%{transform:translateY(1.5px) rotate(1.5deg)}26%{transform:translateY(.5px) rotate(.5deg)}28%{transform:translateY(.5px) rotate(1.5deg)}30%{transform:translateY(-.5px) rotate(2.5deg)}32%{transform:translateY(1.5px) rotate(-.5deg)}34%{transform:translateY(1.5px) rotate(-.5deg)}36%{transform:translateY(-1.5px) rotate(2.5deg)}38%{transform:translateY(1.5px) rotate(-1.5deg)}40%{transform:translateY(-.5px) rotate(2.5deg)}42%{transform:translateY(2.5px) rotate(-1.5deg)}44%{transform:translateY(1.5px) rotate(.5deg)}46%{transform:translateY(-1.5px) rotate(2.5deg)}48%{transform:translateY(-.5px) rotate(.5deg)}50%{transform:translateY(.5px) rotate(.5deg)}52%{transform:translateY(2.5px) rotate(2.5deg)}54%{transform:translateY(-1.5px) rotate(1.5deg)}56%{transform:translateY(2.5px) rotate(2.5deg)}58%{transform:translateY(.5px) rotate(2.5deg)}60%{transform:translateY(2.5px) rotate(2.5deg)}62%{transform:translateY(-.5px) rotate(2.5deg)}64%{transform:translateY(-.5px) rotate(1.5deg)}66%{transform:translateY(1.5px) rotate(-.5deg)}68%{transform:translateY(-1.5px) rotate(-.5deg)}70%{transform:translateY(1.5px) rotate(.5deg)}72%{transform:translateY(2.5px) rotate(1.5deg)}74%{transform:translateY(-.5px) rotate(.5deg)}76%{transform:translateY(-.5px) rotate(2.5deg)}78%{transform:translateY(-.5px) rotate(1.5deg)}80%{transform:translateY(1.5px) rotate(1.5deg)}82%{transform:translateY(-.5px) rotate(.5deg)}84%{transform:translateY(1.5px) rotate(2.5deg)}86%{transform:translateY(-1.5px) rotate(-1.5deg)}88%{transform:translateY(-.5px) rotate(2.5deg)}90%{transform:translateY(2.5px) rotate(-.5deg)}92%{transform:translateY(.5px) rotate(-.5deg)}94%{transform:translateY(2.5px) rotate(.5deg)}96%{transform:translateY(-.5px) rotate(1.5deg)}98%{transform:translateY(-1.5px) rotate(-.5deg)}0%,to{transform:translate(0) rotate(0)}}.kplayer{position:relative;overflow:hidden;-webkit-user-select:none;user-select:none;line-height:1;font-family:Noto Sans,sans-serif}.kplayer *{box-sizing:content-box}.kplayer svg{width:100%;height:100%;fill:#fff}.kplayer svg path,.kplayer svg circle{fill:#fff}.kplayer svg[stroke] path,.kplayer svg[stroke] circle,.kplayer svg[stroke] line,.kplayer svg[stroke] polyline,.kplayer svg[stroke] rect{stroke:#fff;fill:none}.kplayer svg[stroke] path[fill=none][stroke=none]{stroke:none}.kplayer:-webkit-full-screen{width:100%;height:100%;background:#000;position:fixed;z-index:100000;left:0;top:0;margin:0;padding:0;transform:translate(0)}.kplayer.kplayer-no-awaken .kplayer-controller .kplayer-icons .kplayer-setting .kplayer-setting-box .kplayer-setting-showdan,.kplayer.kplayer-no-awaken .kplayer-controller .kplayer-icons .kplayer-setting .kplayer-setting-box .kplayer-setting-awaken,.kplayer.kplayer-no-awaken .kplayer-controller .kplayer-icons .kplayer-setting .kplayer-setting-box .kplayer-setting-danunlimit,.kplayer.kplayer-no-awaken .kplayer-awaken,.kplayer.kplayer-live .kplayer-time,.kplayer.kplayer-live .kplayer-bar-wrap,.kplayer.kplayer-live .kplayer-setting-speed,.kplayer.kplayer-live .kplayer-setting-loop,.kplayer.kplayer-live.kplayer-no-awaken .kplayer-setting{display:none}.kplayer.kplayer-arrow .kplayer-awaken{font-size:18px}.kplayer.kplayer-arrow .kplayer-icon{margin:0 -3px}.kplayer.kplayer-playing .kplayer-awaken .kplayer-awaken-move{animation-play-state:running}.kplayer.kplayer-loading .kplayer-bezel .diplayer-loading-icon{display:block}.kplayer.kplayer-loading .kplayer-awaken,.kplayer.kplayer-paused .kplayer-awaken,.kplayer.kplayer-loading .kplayer-awaken-move,.kplayer.kplayer-paused .kplayer-awaken-move{animation-play-state:paused}.kplayer.kplayer-hide-controller{cursor:none}.kplayer.kplayer-hide-controller .kplayer-controller-mask,.kplayer.kplayer-hide-controller .kplayer-controller{opacity:0;transform:translateY(100%)}.kplayer.kplayer-hide-controller .kplayer-title-bar{opacity:0;visibility:hidden}.kplayer.kplayer-hide-controller .kplayer-mobile-controls{opacity:0;visibility:hidden;pointer-events:none}.kplayer.kplayer-show-controller .kplayer-controller-mask,.kplayer.kplayer-show-controller .kplayer-controller{opacity:1}.kplayer.kplayer-fulled{position:fixed;z-index:100000;left:0;top:0;width:100%!important;height:100%!important}.kplayer.kplayer-mobile .kplayer-icons-center{display:none!important}.kplayer.kplayer-mobile .kplayer-controller .kplayer-icons .kplayer-volume,.kplayer.kplayer-mobile .kplayer-controller .kplayer-icons .kplayer-camera-icon,.kplayer.kplayer-mobile .kplayer-controller .kplayer-icons .kplayer-airplay-icon,.kplayer.kplayer-mobile .kplayer-controller .kplayer-icons .kplayer-chromecast-icon,.kplayer.kplayer-mobile .kplayer-controller .kplayer-icons .kplayer-play-icon{display:none}.kplayer.kplayer-mobile .kplayer-controller .kplayer-icons .kplayer-full-in-icon,.kplayer.kplayer-mobile .kplayer-controller .kplayer-icons .kplayer-full-icon{display:inline-block}.kplayer.kplayer-mobile .kplayer-title-bar{top:8px;right:8px;left:44px;max-width:none}.kplayer.kplayer-mobile .kplayer-title-bar .kplayer-title-main{font-size:14px}.kplayer.kplayer-mobile .kplayer-title-bar .kplayer-title-desc{font-size:12px}.kplayer.kplayer-mobile .kplayer-bar-time,.kplayer.kplayer-mobile.kplayer-hide-controller .kplayer-mobile-controls{display:none}.kplayer.kplayer-mobile .kplayer-mobile-controls{display:flex}.kplayer .kplayer-mobile-controls{display:none;position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);align-items:center;gap:32px;z-index:1;transition:opacity .3s ease,visibility .3s ease}.kplayer .kplayer-mobile-controls button{background:transparent;border:none;outline:none;cursor:pointer;padding:0;opacity:.9}.kplayer .kplayer-mobile-controls button svg{width:36px;height:36px;display:block;fill:#fff;stroke:#fff}.kplayer .kplayer-mobile-controls button svg path{fill:#fff}.kplayer .kplayer-mobile-controls .kplayer-mobile-play-btn{width:52px;height:52px;background:#0006;border-radius:50%;display:flex;align-items:center;justify-content:center}.kplayer .kplayer-mobile-controls .kplayer-mobile-play-btn svg{width:28px;height:28px}.kplayer .kplayer-mobile-play{display:none!important}.kplayer-web-fullscreen-fix{position:fixed;top:0;left:0;margin:0;padding:0}[data-balloon]:before{display:none}[data-balloon]:after{padding:.3em .7em;background:#111111b3}[data-balloon][data-balloon-pos=up]:after{margin-bottom:0}.kplayer-bezel{position:absolute;left:0;right:0;top:0;bottom:0;font-size:22px;color:#fff;pointer-events:none}.kplayer-bezel .kplayer-bezel-icon{position:absolute;top:50%;left:50%;margin:-26px 0 0 -26px;height:52px;width:52px;padding:12px;box-sizing:border-box;background:#00000080;border-radius:50%;opacity:0;pointer-events:none}.kplayer-bezel .kplayer-bezel-icon.kplayer-bezel-transition{animation:bezel-hide .5s linear}@keyframes bezel-hide{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(2)}}.kplayer-bezel .kplayer-danloading{position:absolute;top:50%;margin-top:-7px;width:100%;text-align:center;font-size:14px;line-height:14px;animation:my-face 5s infinite ease-in-out}.kplayer-bezel .diplayer-loading-icon{display:none;position:absolute;top:50%;left:50%;margin:-18px 0 0 -18px;height:36px;width:36px;pointer-events:none}.kplayer-bezel .diplayer-loading-icon .diplayer-loading-hide{display:none}.kplayer-bezel .diplayer-loading-icon .diplayer-loading-dot{animation:diplayer-loading-dot-fade .8s ease infinite;opacity:0;transform-origin:4px 4px}.kplayer-bezel .diplayer-loading-icon .diplayer-loading-dot.diplayer-loading-dot-1{animation-delay:.1s}.kplayer-bezel .diplayer-loading-icon .diplayer-loading-dot.diplayer-loading-dot-2{animation-delay:.2s}.kplayer-bezel .diplayer-loading-icon .diplayer-loading-dot.diplayer-loading-dot-3{animation-delay:.3s}.kplayer-bezel .diplayer-loading-icon .diplayer-loading-dot.diplayer-loading-dot-4{animation-delay:.4s}.kplayer-bezel .diplayer-loading-icon .diplayer-loading-dot.diplayer-loading-dot-5{animation-delay:.5s}.kplayer-bezel .diplayer-loading-icon .diplayer-loading-dot.diplayer-loading-dot-6{animation-delay:.6s}.kplayer-bezel .diplayer-loading-icon .diplayer-loading-dot.diplayer-loading-dot-7{animation-delay:.7s}@keyframes diplayer-loading-dot-fade{0%{opacity:.7;transform:scale(1.2)}50%{opacity:.25;transform:scale(.9)}to{opacity:.25;transform:scale(.85)}}.kplayer-controller-mask{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAADGCAYAAAAT+OqFAAAAdklEQVQoz42QQQ7AIAgEF/T/D+kbq/RWAlnQyyazA4aoAB4FsBSA/bFjuF1EOL7VbrIrBuusmrt4ZZORfb6ehbWdnRHEIiITaEUKa5EJqUakRSaEYBJSCY2dEstQY7AuxahwXFrvZmWl2rh4JZ07z9dLtesfNj5q0FU3A5ObbwAAAABJRU5ErkJggg==) repeat-x bottom;height:98px;width:100%;position:absolute;bottom:0;transition:all .15s ease}.kplayer-back{position:absolute;top:10px;left:15px;height:30px;width:30px;z-index:90;cursor:pointer;display:flex;align-items:center;justify-content:center;opacity:1;visibility:visible;pointer-events:all}.kplayer-back .kplayer-title-back-btn{width:30px;height:30px;padding:0;display:flex;align-items:center;justify-content:center;border:none;background:transparent;outline:none;cursor:pointer;opacity:1;transition:opacity .15s ease}.kplayer-back .kplayer-title-back-btn:hover{opacity:1}.kplayer-back .kplayer-title-back-btn svg{width:22px!important;height:22px!important;display:block;fill:#fff}.kplayer-back .kplayer-title-back-btn svg path{fill:#fff}@media (max-width: 768px){.kplayer-back{top:8px;left:10px;width:24px;height:24px}.kplayer-back .kplayer-title-back-btn{width:24px;height:24px}.kplayer-back .kplayer-title-back-btn svg{width:22px!important;height:22px!important}}.kplayer-title-wrap{position:absolute;top:10px;left:15px;right:5px;z-index:90}.kplayer-hide-controller .kplayer-title-wrap,.kplayer-hide-controller .kplayer-title-bar,.kplayer-hide-controller .kplayer-back{opacity:0;visibility:hidden;pointer-events:none}.kplayer-title-main{font-weight:800}.kplayer-title-bar{position:absolute;top:10px;right:15px;left:auto;z-index:90;min-height:30px;display:inline-flex;flex-direction:column;align-items:flex-end;justify-content:flex-start;text-align:right;opacity:1;visibility:visible;pointer-events:none;max-width:60%}.kplayer-title-bar .kplayer-title-info{display:flex;flex-direction:column;align-items:flex-end;gap:4px}.kplayer-title-bar .kplayer-title-main{display:block;font-size:22px;font-weight:700;color:#fff;line-height:1.2;text-align:right;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;letter-spacing:-.01em;margin:0}.kplayer-title-bar .kplayer-title-desc{display:block;font-size:15px;font-weight:400;color:#fffc;line-height:1.3;text-align:right;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}@media (max-width: 1400px){.kplayer-title-bar{top:10px;right:10px}.kplayer-title-bar .kplayer-title-main{font-size:20px}.kplayer-title-bar .kplayer-title-desc{font-size:14px}}@media (max-width: 768px){.kplayer-title-bar .kplayer-title-main{font-size:18px}.kplayer-title-bar .kplayer-title-desc{font-size:13px}}@media (max-width: 480px){.kplayer-title-bar .kplayer-title-main{font-size:13px}.kplayer-title-bar .kplayer-title-desc{font-size:11px}.kplayer-title-bar .kplayer-title-back-btn{width:30px;height:30px}.kplayer-title-bar .kplayer-title-back-btn svg{width:15px;height:15px}}.kplayer-title-bar .kplayer-title-info{min-height:30px;justify-content:center}.kplayer.kplayer-mobile .kplayer-back{top:8px;left:10px;width:24px;height:24px;display:flex;align-items:center;justify-content:center}.kplayer.kplayer-mobile .kplayer-back .kplayer-title-back-btn{width:24px;height:24px;display:flex;align-items:center;justify-content:center}.kplayer.kplayer-mobile .kplayer-back .kplayer-title-back-btn svg{width:20px!important;height:20px!important}.kplayer.kplayer-mobile .kplayer-title-bar{top:8px;right:8px;left:44px;max-width:none;pointer-events:none}.kplayer.kplayer-mobile .kplayer-title-bar .kplayer-title-info{width:100%;gap:2px}.kplayer.kplayer-mobile .kplayer-title-bar .kplayer-title-main{font-size:13px;line-height:1.2;white-space:normal;overflow:hidden;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical}.kplayer.kplayer-mobile .kplayer-title-bar .kplayer-title-desc{font-size:11px;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.kplayer-controller{position:absolute;bottom:0;left:0;right:0;height:41px;padding:0 20px;-webkit-user-select:none;user-select:none;transition:all .1s ease}.kplayer-controller .kplayer-bar-wrap{padding:5px 0;cursor:pointer;position:absolute;bottom:33px;width:calc(100% - 40px);height:4px}.kplayer-controller .kplayer-bar-wrap:hover .kplayer-bar .kplayer-played .kplayer-thumb{transform:scale(1)}.kplayer-controller .kplayer-bar-wrap:hover .kplayer-highlight,.kplayer-controller .kplayer-bar-wrap:hover .kplayer-ad-marker{display:block;width:8px;transform:translate(-4px);top:4px;height:40%}.kplayer-controller .kplayer-bar-wrap .kplayer-ad-marker{z-index:12;position:absolute;top:5px;width:6px;height:30%;border-radius:6px;background-color:gold;text-align:center;transform:translate(-3px);transition:all .2s ease-in-out}.kplayer-controller .kplayer-bar-wrap .kplayer-ad-marker:hover .kplayer-ad-marker-text{display:block}.kplayer-controller .kplayer-bar-wrap .kplayer-ad-marker:hover~.kplayer-bar-preview{opacity:0}.kplayer-controller .kplayer-bar-wrap .kplayer-ad-marker:hover~.kplayer-bar-time{opacity:0}.kplayer-controller .kplayer-bar-wrap .kplayer-ad-marker .kplayer-ad-marker-text{display:none;position:absolute;left:50%;top:-24px;padding:5px 8px;background-color:#0000009e;color:#fff;border-radius:4px;font-size:12px;white-space:nowrap;transform:translate(-50%)}.kplayer-controller .kplayer-bar-wrap .kplayer-highlight{z-index:12;position:absolute;top:5px;width:6px;height:30%;border-radius:6px;background-color:#fff;text-align:center;transform:translate(-3px);transition:all .2s ease-in-out}.kplayer-controller .kplayer-bar-wrap .kplayer-highlight:hover .kplayer-highlight-text{display:block}.kplayer-controller .kplayer-bar-wrap .kplayer-highlight:hover~.kplayer-bar-preview{opacity:0}.kplayer-controller .kplayer-bar-wrap .kplayer-highlight:hover~.kplayer-bar-time{opacity:0}.kplayer-controller .kplayer-bar-wrap .kplayer-highlight .kplayer-highlight-text{display:none;position:absolute;left:50%;top:-24px;padding:5px 8px;background-color:#0000009e;color:#fff;border-radius:4px;font-size:12px;white-space:nowrap;transform:translate(-50%)}.kplayer-controller .kplayer-bar-wrap .kplayer-bar-preview{position:absolute;background:#fff;pointer-events:none;display:none;background-size:16000px 100%}.kplayer-controller .kplayer-bar-wrap .kplayer-bar-preview-canvas{position:absolute;width:100%;height:100%;z-index:1;pointer-events:none}.kplayer-controller .kplayer-bar-wrap .kplayer-bar-time{position:absolute;left:0;top:-20px;border-radius:4px;padding:5px 7px;background-color:#0000009e;color:#fff;font-size:12px;text-align:center;opacity:1;transition:opacity .1s ease-in-out;word-wrap:normal;word-break:normal;z-index:2;pointer-events:none}.kplayer-controller .kplayer-bar-wrap .kplayer-bar-time.hidden{opacity:0}.kplayer-controller .kplayer-bar-wrap .kplayer-bar{position:relative;height:4px;width:100%;background:#fff3;cursor:pointer}.kplayer-controller .kplayer-bar-wrap .kplayer-bar .kplayer-loaded{position:absolute;left:0;top:0;bottom:0;background:#fff6;height:4px;transition:all .5s ease;will-change:width}.kplayer-controller .kplayer-bar-wrap .kplayer-bar .kplayer-played{position:absolute;left:0;top:0;bottom:0;height:4px;will-change:width}.kplayer-controller .kplayer-bar-wrap .kplayer-bar .kplayer-played .kplayer-thumb{position:absolute;top:0;right:5px;margin-top:-4px;margin-right:-10px;height:11px;width:11px;border-radius:50%;cursor:pointer;transition:all .3s ease-in-out;transform:scale(0)}.kplayer-controller .kplayer-icons{height:38px;position:absolute;bottom:0}.kplayer-controller .kplayer-icons.kplayer-icons-left .kplayer-icon{padding:7px}.kplayer-controller .kplayer-icons.kplayer-icons-right{right:20px}.kplayer-controller .kplayer-icons.kplayer-icons-right .kplayer-icon{padding:8px}.kplayer-controller .kplayer-icons.kplayer-icons-center{left:50%;transform:translate(-50%);display:inline-flex;align-items:center}.kplayer-controller .kplayer-icons.kplayer-icons-center .kplayer-icon{padding:8px}.kplayer-controller .kplayer-icons .kplayer-time,.kplayer-controller .kplayer-icons .kplayer-live-badge{line-height:38px;color:#eee;text-shadow:0 0 2px rgba(0,0,0,.5);vertical-align:middle;font-size:13px;cursor:default}.kplayer-controller .kplayer-icons .kplayer-live-dot{display:inline-block;width:6px;height:6px;vertical-align:4%;margin-right:5px;content:"";border-radius:6px}.kplayer-controller .kplayer-icons .kplayer-icon{width:40px;height:100%;border:none;background-color:transparent;outline:none;cursor:pointer;vertical-align:middle;box-sizing:border-box;display:inline-block}.kplayer-controller .kplayer-icons .kplayer-icon .kplayer-icon-content{color:#fff;transition:all .2s ease-in-out;opacity:.8}.kplayer-controller .kplayer-icons .kplayer-icon:hover .kplayer-icon-content{opacity:1}.kplayer-controller .kplayer-icons .kplayer-icon.kplayer-quality-icon{color:#fff;width:auto;line-height:22px;font-size:14px}.kplayer-controller .kplayer-icons .kplayer-icon.kplayer-setting-icon{padding-top:8.5px}.kplayer-controller .kplayer-icons .kplayer-icon.kplayer-volume-icon{width:43px}.kplayer-controller .kplayer-icons .kplayer-icon.kplayer-full-in-icon,.kplayer-controller .kplayer-icons .kplayer-icon.kplayer-full-icon{display:inline-block}.kplayer-controller .kplayer-icons .kplayer-volume{position:relative;display:inline-block;cursor:pointer;height:100%}.kplayer-controller .kplayer-icons .kplayer-volume:hover .kplayer-volume-bar-wrap .kplayer-volume-bar,.kplayer-controller .kplayer-icons .kplayer-volume.kplayer-volume-active .kplayer-volume-bar-wrap .kplayer-volume-bar{width:45px}.kplayer-controller .kplayer-icons .kplayer-volume:hover .kplayer-volume-bar-wrap .kplayer-volume-bar .kplayer-volume-bar-inner .kplayer-thumb,.kplayer-controller .kplayer-icons .kplayer-volume.kplayer-volume-active .kplayer-volume-bar-wrap .kplayer-volume-bar .kplayer-volume-bar-inner .kplayer-thumb{transform:scale(1)}.kplayer-controller .kplayer-icons .kplayer-volume .kplayer-volume-bar-wrap{display:inline-block;margin:0 10px 0 -5px;vertical-align:middle;height:100%}.kplayer-controller .kplayer-icons .kplayer-volume .kplayer-volume-bar-wrap .kplayer-volume-bar{position:relative;top:17px;width:0;height:3px;background:#fff3;transition:all .3s ease-in-out}.kplayer-controller .kplayer-icons .kplayer-volume .kplayer-volume-bar-wrap .kplayer-volume-bar .kplayer-volume-bar-inner{position:absolute;bottom:0;left:0;height:100%;transition:all .1s ease;will-change:width}.kplayer-controller .kplayer-icons .kplayer-volume .kplayer-volume-bar-wrap .kplayer-volume-bar .kplayer-volume-bar-inner .kplayer-thumb{position:absolute;top:0;right:5px;margin-top:-4px;margin-right:-10px;height:11px;width:11px;border-radius:50%;cursor:pointer;transition:all .3s ease-in-out;transform:scale(0)}.kplayer-controller .kplayer-icons .kplayer-subtitle-btn,.kplayer-controller .kplayer-icons .kplayer-subtitles{display:inline-block;height:100%}.kplayer-controller .kplayer-icons .kplayer-subtitles .kplayer-subtitles-box{position:absolute;right:0;bottom:50px;transform:scale(0);width:fit-content;max-width:240px;min-width:120px;border-radius:8px;background:#16161af5;border:.5px solid rgba(255,255,255,.1);padding:4px 0;transition:none;overflow:auto;z-index:2}.kplayer-controller .kplayer-icons .kplayer-subtitles .kplayer-subtitles-box.kplayer-subtitles-panel{display:block}.kplayer-controller .kplayer-icons .kplayer-subtitles .kplayer-subtitles-box.kplayer-subtitles-box-open{transform:scale(1)}.kplayer-controller .kplayer-icons .kplayer-subtitles .kplayer-subtitles-item{display:flex;align-items:center;justify-content:space-between;height:36px;padding:0 12px;box-sizing:border-box;cursor:pointer;position:relative;transition:background .12s}.kplayer-controller .kplayer-icons .kplayer-subtitles .kplayer-subtitles-item:hover{background-color:#ffffff12}.kplayer-controller .kplayer-icons .kplayer-subtitles .kplayer-subtitles-item .kplayer-label{font-size:13px;color:#ffffffbf;white-space:nowrap}.kplayer-controller .kplayer-icons .kplayer-subtitles .kplayer-subtitles-item.kplayer-selected .kplayer-label{color:#fff}.kplayer-controller .kplayer-icons .kplayer-subtitles .kplayer-subtitles-item.kplayer-selected .kplayer-check-icon{opacity:1}.kplayer-controller .kplayer-icons .kplayer-setting{display:inline-block;height:100%;position:relative;z-index:10000}.kplayer-controller .kplayer-icons .kplayer-setting .kplayer-setting-box{position:absolute;right:0;bottom:50px;transform-origin:bottom right;transform:scale(0);width:220px;border-radius:2px;background:#16161af5;padding:10px 0;transition:none;overflow:hidden;z-index:9999;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}.kplayer-controller .kplayer-icons .kplayer-setting .kplayer-setting-box>div{display:none}.kplayer-controller .kplayer-icons .kplayer-setting .kplayer-setting-box>div.kplayer-setting-origin-panel{display:block}.kplayer-controller .kplayer-icons .kplayer-setting .kplayer-setting-box.kplayer-setting-box-open{transform:scale(1)}.kplayer-controller .kplayer-icons .kplayer-setting .kplayer-setting-box.kplayer-setting-box-narrow{width:220px}.kplayer-controller .kplayer-icons .kplayer-setting .kplayer-setting-box.kplayer-setting-box-speed .kplayer-setting-origin-panel{display:none}.kplayer-controller .kplayer-icons .kplayer-setting .kplayer-setting-box.kplayer-setting-box-speed .kplayer-setting-speed-panel{display:block}.kplayer-controller .kplayer-icons .kplayer-setting .kplayer-setting-box.kplayer-setting-box-speed .kplayer-setting-subtitle-panel,.kplayer-controller .kplayer-icons .kplayer-setting .kplayer-setting-box.kplayer-setting-box-speed .kplayer-setting-quality-panel,.kplayer-controller .kplayer-icons .kplayer-setting .kplayer-setting-box.kplayer-setting-box-subtitle .kplayer-setting-origin-panel,.kplayer-controller .kplayer-icons .kplayer-setting .kplayer-setting-box.kplayer-setting-box-subtitle .kplayer-setting-speed-panel,.kplayer-controller .kplayer-icons .kplayer-setting .kplayer-setting-box.kplayer-setting-box-subtitle .kplayer-setting-quality-panel{display:none}.kplayer-controller .kplayer-icons .kplayer-setting .kplayer-setting-box.kplayer-setting-box-subtitle .kplayer-setting-subtitle-panel{display:block}.kplayer-controller .kplayer-icons .kplayer-setting .kplayer-setting-box.kplayer-setting-box-quality .kplayer-setting-origin-panel,.kplayer-controller .kplayer-icons .kplayer-setting .kplayer-setting-box.kplayer-setting-box-quality .kplayer-setting-speed-panel,.kplayer-controller .kplayer-icons .kplayer-setting .kplayer-setting-box.kplayer-setting-box-quality .kplayer-setting-subtitle-panel{display:none}.kplayer-controller .kplayer-icons .kplayer-setting .kplayer-setting-box.kplayer-setting-box-quality .kplayer-setting-quality-panel{display:block}.kplayer-controller .kplayer-icons .kplayer-setting .kplayer-setting-panel-back{display:flex;align-items:center;gap:8px;padding:0 12px;height:38px;min-height:38px;cursor:pointer;border-bottom:.5px solid rgba(255,255,255,.08);margin-bottom:3px;box-sizing:border-box;transition:background .12s}.kplayer-controller .kplayer-icons .kplayer-setting .kplayer-setting-panel-back:hover{background:#ffffff12}.kplayer-controller .kplayer-icons .kplayer-setting .kplayer-setting-panel-back .kplayer-setting-back-icon{width:16px;height:16px;display:inline-flex;align-items:center;justify-content:center;opacity:1;flex-shrink:0}.kplayer-controller .kplayer-icons .kplayer-setting .kplayer-setting-panel-back .kplayer-setting-back-icon svg{width:14px;height:14px;fill:#fff}.kplayer-controller .kplayer-icons .kplayer-setting .kplayer-setting-panel-back .kplayer-label{font-size:12px;color:#fff;font-weight:400}.kplayer-controller .kplayer-icons .kplayer-setting .kplayer-setting-item{display:flex;align-items:center;justify-content:space-between;height:38px;min-height:38px;padding:0 12px;box-sizing:border-box;cursor:pointer;position:relative;transition:background .12s}.kplayer-controller .kplayer-icons .kplayer-setting .kplayer-setting-item:hover{background-color:#ffffff12}.kplayer-controller .kplayer-icons .kplayer-setting .kplayer-setting-item:active{background-color:#ffffff1f}.kplayer-controller .kplayer-icons .kplayer-setting .kplayer-setting-action{display:flex;align-items:center;justify-content:space-between;height:38px;min-height:38px;padding:0 12px;box-sizing:border-box;cursor:pointer;transition:background .12s}.kplayer-controller .kplayer-icons .kplayer-setting .kplayer-setting-action:hover{background-color:#ffffff12}.kplayer-controller .kplayer-icons .kplayer-setting .kplayer-setting-action:active{background-color:#ffffff1f}.kplayer-controller .kplayer-icons .kplayer-setting .kplayer-setting-action-main{display:inline-flex;align-items:center;gap:9px}.kplayer-controller .kplayer-icons .kplayer-setting .kplayer-setting-action-icon{width:16px;height:16px;display:inline-flex;align-items:center;justify-content:center;opacity:1;flex-shrink:0}.kplayer-controller .kplayer-icons .kplayer-setting .kplayer-setting-action-icon svg{width:15px;height:15px;fill:#fff}.kplayer-controller .kplayer-icons .kplayer-setting .kplayer-setting-action-btn{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;opacity:.7;transition:opacity .15s}.kplayer-controller .kplayer-icons .kplayer-setting .kplayer-setting-action-btn:hover{opacity:1}.kplayer-controller .kplayer-icons .kplayer-setting .kplayer-setting-action-btn svg{width:13px;height:13px;fill:#fff}.kplayer-controller .kplayer-icons .kplayer-setting .kplayer-label{font-size:13px;color:#fff;font-weight:400;display:inline-block;vertical-align:middle;white-space:nowrap}.kplayer-controller .kplayer-icons .kplayer-setting .kplayer-title{font-size:13px;padding:10px 0;color:#fff;font-weight:400;display:inline-block;vertical-align:middle;white-space:nowrap}.kplayer-controller .kplayer-icons .kplayer-setting .kplayer-setting-current-value{font-size:12px;color:#fff;margin-right:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:80px}.kplayer-controller .kplayer-icons .kplayer-setting .kplayer-setting-item-right{display:inline-flex;align-items:center;gap:4px;flex-shrink:0}.kplayer-controller .kplayer-icons .kplayer-setting .kplayer-setting-arrow{width:14px;height:14px;display:inline-flex;align-items:center;justify-content:center;opacity:.35}.kplayer-controller .kplayer-icons .kplayer-setting .kplayer-setting-arrow svg{width:12px;height:12px;fill:#fff}.kplayer-controller .kplayer-icons .kplayer-setting .kplayer-setting-speed-badge{font-size:11px;color:#fff;background:#ffffff14;border-radius:4px;padding:2px 6px;font-weight:500;white-space:nowrap}.kplayer-controller .kplayer-icons .kplayer-setting .kplayer-setting-speed-item{display:flex;align-items:center;justify-content:space-between;height:36px;min-height:36px;padding:0 12px;box-sizing:border-box;cursor:pointer;transition:background .12s}.kplayer-controller .kplayer-icons .kplayer-setting .kplayer-setting-speed-item:hover{background-color:#ffffff12}.kplayer-controller .kplayer-icons .kplayer-setting .kplayer-setting-speed-item:active{background-color:#ffffff1f}.kplayer-controller .kplayer-icons .kplayer-setting .kplayer-setting-speed-item .kplayer-label,.kplayer-controller .kplayer-icons .kplayer-setting .kplayer-setting-speed-item.kplayer-selected .kplayer-label{color:#fff}.kplayer-controller .kplayer-icons .kplayer-setting .kplayer-setting-speed-item.kplayer-selected .kplayer-check-icon{opacity:1}.kplayer-controller .kplayer-icons .kplayer-setting .kplayer-setting-subtitle-toggle{display:flex;align-items:center;justify-content:space-between;height:38px;min-height:38px;padding:0 12px;box-sizing:border-box;cursor:pointer;transition:background .12s}.kplayer-controller .kplayer-icons .kplayer-setting .kplayer-setting-subtitle-toggle:hover{background-color:#ffffff12}.kplayer-controller .kplayer-icons .kplayer-setting .kplayer-toggle{width:32px;height:20px;text-align:center;font-size:0;vertical-align:middle;position:relative;flex-shrink:0}.kplayer-controller .kplayer-icons .kplayer-setting .kplayer-toggle input{max-height:0;max-width:0;display:none}.kplayer-controller .kplayer-icons .kplayer-setting .kplayer-toggle input+label{display:inline-block;position:relative;box-shadow:none;border:.5px solid rgba(255,255,255,.2);background:#ffffff1a;height:20px;width:32px;border-radius:10px;box-sizing:border-box;cursor:pointer;transition:background .2s ease-in-out,border-color .2s ease-in-out}.kplayer-controller .kplayer-icons .kplayer-setting .kplayer-toggle input+label:before{content:"";position:absolute;display:block;height:18px;width:18px;top:0;left:0;border-radius:15px;transition:.2s ease-in-out}.kplayer-controller .kplayer-icons .kplayer-setting .kplayer-toggle input+label:after{content:"";position:absolute;display:block;left:0;top:0;border-radius:15px;background:#ffffffe6;transition:.2s ease-in-out;box-shadow:0 1px 3px #0006;height:18px;width:18px}.kplayer-controller .kplayer-icons .kplayer-setting .kplayer-toggle input:checked+label{border-color:#ffffff80;background:#ffffff73}.kplayer-controller .kplayer-icons .kplayer-setting .kplayer-toggle input:checked+label:before{width:30px;background:transparent}.kplayer-controller .kplayer-icons .kplayer-setting .kplayer-toggle input:checked+label:after{left:12px}.kplayer-controller .kplayer-icons .kplayer-setting .kplayer-setting-awaken{padding:0 12px;height:38px;min-height:38px;display:flex;align-items:center;justify-content:space-between;cursor:pointer;transition:background .12s}.kplayer-controller .kplayer-icons .kplayer-setting .kplayer-setting-awaken:hover{background-color:#ffffff12}.kplayer-controller .kplayer-icons .kplayer-setting .kplayer-setting-awaken .kplayer-label{color:#fff}.kplayer-controller .kplayer-icons .kplayer-setting .kplayer-setting-awaken:hover .kplayer-label,.kplayer-controller .kplayer-icons .kplayer-setting .kplayer-setting-awaken.kplayer-setting-awaken-active .kplayer-label{display:none}.kplayer-controller .kplayer-icons .kplayer-setting .kplayer-setting-awaken:hover .kplayer-awaken-bar-wrap,.kplayer-controller .kplayer-icons .kplayer-setting .kplayer-setting-awaken.kplayer-setting-awaken-active .kplayer-awaken-bar-wrap{display:inline-flex}.kplayer-controller .kplayer-icons .kplayer-setting .kplayer-setting-awaken .kplayer-awaken-bar-wrap{flex:1;padding:0;box-sizing:border-box;display:none;align-items:center;height:100%;width:100%}.kplayer-controller .kplayer-icons .kplayer-setting .kplayer-setting-awaken .kplayer-awaken-bar-wrap .kplayer-awaken-bar{position:relative;width:100%;height:3px;background:#fff3;border-radius:2px;transition:all .3s ease-in-out}.kplayer-controller .kplayer-icons .kplayer-setting .kplayer-setting-awaken .kplayer-awaken-bar-wrap .kplayer-awaken-bar .kplayer-awaken-bar-inner{position:absolute;bottom:0;left:0;height:100%;border-radius:2px;transition:all .1s ease;background:#ffffffb3;will-change:width}.kplayer-controller .kplayer-icons .kplayer-setting .kplayer-setting-awaken .kplayer-awaken-bar-wrap .kplayer-awaken-bar .kplayer-awaken-bar-inner .kplayer-thumb{position:absolute;top:0;right:5px;margin-top:-4px;margin-right:-10px;height:11px;width:11px;border-radius:50%;cursor:pointer;transition:all .3s ease-in-out;background:#fff;box-shadow:0 1px 3px #0000004d}.kplayer-controller .kplayer-icons .kplayer-setting .kplayer-subtitles-inline,.kplayer-controller .kplayer-icons .kplayer-setting .kplayer-quality-inline{display:block;height:auto}.kplayer-controller .kplayer-icons .kplayer-setting .kplayer-subtitles-inline .kplayer-subtitles-box,.kplayer-controller .kplayer-icons .kplayer-setting .kplayer-quality-inline .kplayer-quality-list{position:static;transform:none;display:block;width:100%;max-width:none;min-width:0;background:transparent;border:none;padding:0;border-radius:0}.kplayer-controller .kplayer-icons .kplayer-setting .kplayer-subtitles-inline .kplayer-subtitles-item{display:flex;align-items:center;justify-content:space-between;height:36px;min-height:36px;padding:0 12px;cursor:pointer;transition:background .12s;box-sizing:border-box}.kplayer-controller .kplayer-icons .kplayer-setting .kplayer-subtitles-inline .kplayer-subtitles-item:hover{background-color:#ffffff12}.kplayer-controller .kplayer-icons .kplayer-setting .kplayer-subtitles-inline .kplayer-subtitles-item .kplayer-label{color:#fff;font-size:13px}.kplayer-controller .kplayer-icons .kplayer-setting .kplayer-subtitles-inline .kplayer-subtitles-item.kplayer-selected .kplayer-label{color:#fff}.kplayer-controller .kplayer-icons .kplayer-setting .kplayer-subtitles-inline .kplayer-subtitles-item.kplayer-selected .kplayer-check-icon{opacity:1}.kplayer-controller .kplayer-icons .kplayer-setting .kplayer-quality-inline .kplayer-quality-item{display:flex;align-items:center;justify-content:space-between;height:36px;min-height:36px;padding:0 12px;cursor:pointer;transition:background .12s;box-sizing:border-box;text-align:left;line-height:36px}.kplayer-controller .kplayer-icons .kplayer-setting .kplayer-quality-inline .kplayer-quality-item:hover{background-color:#ffffff12}.kplayer-controller .kplayer-icons .kplayer-setting .kplayer-quality-inline .kplayer-quality-item .kplayer-label{color:#fff;font-size:13px}.kplayer-controller .kplayer-icons .kplayer-setting .kplayer-quality-inline .kplayer-quality-item.kplayer-selected .kplayer-label{color:#fff}.kplayer-controller .kplayer-icons .kplayer-setting .kplayer-quality-inline .kplayer-quality-item.kplayer-selected .kplayer-check-icon{opacity:1}.kplayer-controller .kplayer-icons .kplayer-setting .kplayer-check-icon{width:14px;height:14px;display:inline-flex;align-items:center;justify-content:center;opacity:0;transition:opacity .15s ease;flex-shrink:0}.kplayer-controller .kplayer-icons .kplayer-setting .kplayer-check-icon svg{width:13px;height:13px;fill:none;stroke:#fff;stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round}.kplayer-controller .kplayer-icons .kplayer-setting .kplayer-quality{position:relative;display:inline-block;height:100%;z-index:2}.kplayer-controller .kplayer-icons .kplayer-setting .kplayer-quality:hover .kplayer-quality-list,.kplayer-controller .kplayer-icons .kplayer-setting .kplayer-quality:hover .kplayer-quality-mask{display:block}.kplayer-controller .kplayer-icons .kplayer-setting .kplayer-quality .kplayer-quality-mask{display:none;position:absolute;bottom:38px;left:-18px;width:80px;padding-bottom:12px}.kplayer-controller .kplayer-icons .kplayer-setting .kplayer-quality .kplayer-quality-list{display:none;font-size:12px;width:100px;border-radius:8px;background:#16161af5;border:.5px solid rgba(255,255,255,.1);padding:4px 0;transition:all .2s ease-in-out;overflow:hidden;color:#fff;text-align:center}.kplayer-controller .kplayer-icons .kplayer-setting .kplayer-quality .kplayer-quality-item{height:30px;box-sizing:border-box;cursor:pointer;line-height:30px;padding:0 10px;font-size:13px;color:#ffffffbf;transition:background .12s}.kplayer-controller .kplayer-icons .kplayer-setting .kplayer-quality .kplayer-quality-item:hover{background-color:#ffffff12}.kplayer-controller .kplayer-icons .kplayer-setting .kplayer-quality .kplayer-quality-item.kplayer-selected{color:#fff}.kplayer-controller .kplayer-icons .kplayer-setting .kplayer-quality .kplayer-quality-item.kplayer-selected .kplayer-check-icon{opacity:1}.kplayer-controller .kplayer-icons .kplayer-label{color:#fff;font-size:13px;display:inline-block;vertical-align:middle;white-space:nowrap}.kplayer-mobile-play{z-index:1;display:none;width:50px;height:50px;border:none;background-color:transparent;outline:none;cursor:pointer;box-sizing:border-box;opacity:.8;position:absolute;left:50%;top:50%;transform:translate(-50%,-50%)}.kplayer-awaken{position:absolute;left:0;right:0;top:0;bottom:0;font-size:22px;color:#fff}.kplayer-awaken .kplayer-awaken-item{display:inline-block;pointer-events:none;-webkit-user-select:none;user-select:none;cursor:default;white-space:nowrap;text-shadow:.5px .5px .5px rgba(0,0,0,.5)}.kplayer-awaken .kplayer-awaken-item--demo{position:absolute;visibility:hidden}.kplayer-awaken .kplayer-awaken-right{position:absolute;right:0;transform:translate(100%)}.kplayer-awaken .kplayer-awaken-right.kplayer-awaken-move{will-change:transform;animation-name:awaken;animation-timing-function:linear;animation-play-state:paused}@keyframes awaken{0%{transform:translate(100%)}}.kplayer-awaken .kplayer-awaken-top,.kplayer-awaken .kplayer-awaken-bottom{position:absolute;width:100%;text-align:center;visibility:hidden}.kplayer-awaken .kplayer-awaken-top.kplayer-awaken-move,.kplayer-awaken .kplayer-awaken-bottom.kplayer-awaken-move{will-change:visibility;animation-name:awaken-center;animation-timing-function:linear;animation-play-state:paused}@keyframes awaken-center{0%{visibility:visible}to{visibility:visible}}.kplayer-logo{pointer-events:none;position:absolute;left:20px;top:60px;max-width:100px;max-height:50px}.kplayer-logo img{max-width:100%;max-height:100%;background:none}@media (max-width: 768px){.kplayer-logo{pointer-events:none;position:absolute;left:15px;top:30px;max-width:80px;max-height:50px}.kplayer-logo img{max-width:100%;max-height:100%;background:none}}.kplayer-menu{position:absolute;width:170px;border-radius:2px;background:#16161af5;padding:5px 0;overflow:hidden;z-index:3;display:none}.kplayer-menu.kplayer-menu-show{display:block}.kplayer-menu .kplayer-menu-item{height:30px;box-sizing:border-box;cursor:pointer}.kplayer-menu .kplayer-menu-item:hover{background-color:#ffffff1a}.kplayer-menu .kplayer-menu-item a{padding:0 10px;line-height:30px;color:#eee;font-size:13px;display:inline-block;vertical-align:middle;width:100%;box-sizing:border-box;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.kplayer-menu .kplayer-menu-item a:hover{text-decoration:none}.kplayer-notice-list{position:absolute;bottom:60px;left:20px}.kplayer-notice-list .kplayer-notice{border-radius:2px;background:#16161af5;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);transition:all .3s ease-in-out;overflow:hidden;color:#ffffffe0;font-size:13px;font-weight:400;display:table;pointer-events:none;animation:showNotice .3s ease 1 forwards}.kplayer-notice-list .remove-notice{animation:removeNotice .3s ease 1 forwards}@keyframes showNotice{0%{padding:0;font-size:0;margin-top:0;opacity:0}to{padding:6px 14px;font-size:13px;margin-top:5px;opacity:1}}@keyframes removeNotice{0%{padding:6px 14px;font-size:13px;margin-top:5px;opacity:1}20%{font-size:11px;opacity:.5}21%{font-size:0;padding:6px 10px}to{padding:0;margin-top:0;font-size:0;opacity:0}}.kplayer-subtitle{position:absolute;bottom:40px;width:90%;left:5%;text-align:center;color:#fff;text-shadow:.5px .5px .5px rgba(0,0,0,.5);font-size:20px}.kplayer-subtitle.kplayer-subtitle-hide{display:none}.kplayer-mask{position:absolute;top:0;bottom:0;left:0;right:0;z-index:1;display:none}.kplayer-mask.kplayer-mask-show{display:block}.kplayer-video-wrap{position:relative;overflow:hidden;background:#000;font-size:0;width:100%;height:100%}.kplayer-video-wrap .kplayer-video{width:100%;height:100%;display:none}.kplayer-video-wrap .kplayer-video-current{display:block}.kplayer-video-wrap .kplayer-video-prepare{display:none}video::-webkit-media-text-track-display{display:none!important}.kplayer-info-panel{position:absolute;top:10px;left:10px;width:400px;background:#1c1c1ccc;padding:10px;color:#fff;font-size:12px;border-radius:2px}.kplayer-info-panel-hide{display:none}.kplayer-info-panel .kplayer-info-panel-close{cursor:pointer;position:absolute;right:10px;top:10px}.kplayer-info-panel .kplayer-info-panel-item>span{display:inline-block;vertical-align:middle;line-height:15px;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.kplayer-info-panel .kplayer-info-panel-item-title{width:100px;text-align:right;margin-right:10px}.kplayer-info-panel .kplayer-info-panel-item-data{width:260px}.kplayer-skip-btn{position:absolute;bottom:60px;right:16px;z-index:2;display:flex;align-items:center;gap:6px;padding:6px 14px;border:none;border-radius:2px;background:#16161af5;color:#ffffffe0;font-size:13px;font-weight:400;cursor:pointer;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);-webkit-user-select:none;user-select:none;white-space:nowrap}.kplayer-skip-btn-text{pointer-events:none}.kplayer-hide-controller .kplayer-skip-btn{bottom:16px}')),document.head.appendChild(e)}}catch(a){console.error("vite-plugin-css-injected-by-js",a)}})();
1
2
  const C = /mobile|android|iphone|ipod|phone|ipad/i.test(
2
3
  window.navigator.userAgent
3
4
  ), u = {
@@ -563,7 +564,7 @@ function b(n) {
563
564
  function d(n) {
564
565
  return n == null ? "" : String(n);
565
566
  }
566
- function q(n) {
567
+ function S(n) {
567
568
  return n ? "checked" : "";
568
569
  }
569
570
  function pe({
@@ -574,14 +575,14 @@ function pe({
574
575
  mobile: s,
575
576
  video: a
576
577
  }) {
577
- var m, o, p, f, v, x, B, T, $, H, I, P, F;
578
- const l = n.theme || "#b7daff", r = n.awaken && typeof n.awaken == "object" && n.awaken.bottom ? ` style="margin-bottom:${b(n.awaken.bottom)}"` : "", y = n.subtitle && typeof n.subtitle.url == "string", c = ((f = (p = (m = n.video) == null ? void 0 : m.quality) == null ? void 0 : p[((o = n.video) == null ? void 0 : o.defaultQuality) ?? 0]) == null ? void 0 : f.name) || "", k = (v = n.title) != null && v.back ? `
578
+ var k, r, c, f, v, L, B, T, $, H, I, P, W;
579
+ const l = n.theme || "#b7daff", o = n.awaken && typeof n.awaken == "object" && n.awaken.bottom ? ` style="margin-bottom:${b(n.awaken.bottom)}"` : "", h = n.subtitle && typeof n.subtitle.url == "string", y = ((f = (c = (k = n.video) == null ? void 0 : k.quality) == null ? void 0 : c[((r = n.video) == null ? void 0 : r.defaultQuality) ?? 0]) == null ? void 0 : f.name) || "", m = (v = n.title) != null && v.back ? `
579
580
  <div class="kplayer-back">
580
581
  <button class="kplayer-title-back-btn" aria-label="Back">
581
582
  <span class="kplayer-icon-content">${d(i.back)}</span>
582
583
  </button>
583
- </div>` : "", h = n.title ? `
584
- ${k}
584
+ </div>` : "", p = n.title ? `
585
+ ${m}
585
586
  <div class="kplayer-title-bar">
586
587
  <div class="kplayer-title-info">
587
588
  <div class="kplayer-title-main">${d(n.title.title || "")}</div>
@@ -596,8 +597,8 @@ ${k}
596
597
  <div class="kplayer-logo">
597
598
  <img src="${b(n.logo)}">
598
599
  </div>` : ""}
599
- ${h}
600
- <div class="kplayer-awaken"${r}>
600
+ ${p}
601
+ <div class="kplayer-awaken"${o}>
601
602
  <div class="kplayer-awaken-item kplayer-awaken-item--demo"></div>
602
603
  </div>
603
604
  <div class="kplayer-subtitle"></div>
@@ -672,14 +673,14 @@ ${k}
672
673
  </div>
673
674
  </div>` : ""}
674
675
 
675
- ${(x = n.video) != null && x.quality || ((B = n.video) == null ? void 0 : B.type) === "hls" || ((T = n.video) == null ? void 0 : T.type) === "auto" ? `
676
+ ${(L = n.video) != null && L.quality || ((B = n.video) == null ? void 0 : B.type) === "hls" || ((T = n.video) == null ? void 0 : T.type) === "auto" ? `
676
677
  <div class="kplayer-setting-item kplayer-setting-quality-entry">
677
678
  <div class="kplayer-setting-action-main">
678
679
  <span class="kplayer-setting-action-icon">${d(i.video || i.setting)}</span>
679
680
  <span class="kplayer-label">${d(t("quality"))}</span>
680
681
  </div>
681
682
  <div class="kplayer-setting-item-right">
682
- <span class="kplayer-setting-current-value" id="kplayer-quality-current">${d(c || "Auto")}</span>
683
+ <span class="kplayer-setting-current-value" id="kplayer-quality-current">${d(y || "Auto")}</span>
683
684
  <span class="kplayer-setting-arrow">${d(i.right)}</span>
684
685
  </div>
685
686
  </div>` : ""}
@@ -723,14 +724,14 @@ ${k}
723
724
  <span class="kplayer-label">${d(t("loop"))}</span>
724
725
  </div>
725
726
  <div class="kplayer-toggle">
726
- <input class="kplayer-toggle-setting-input" type="checkbox" name="kplayer-toggle" ${q(n.loop)}>
727
+ <input class="kplayer-toggle-setting-input" type="checkbox" name="kplayer-toggle" ${S(n.loop)}>
727
728
  <label for="kplayer-toggle"></label>
728
729
  </div>
729
730
  </div>
730
731
 
731
732
  <div class="kplayer-setting-item kplayer-setting-showdan">
732
733
  <div class="kplayer-toggle">
733
- <input class="kplayer-showdan-setting-input" type="checkbox" name="kplayer-toggle-dan" ${q(!0)}>
734
+ <input class="kplayer-showdan-setting-input" type="checkbox" name="kplayer-toggle-dan" ${S(!0)}>
734
735
  <label for="kplayer-toggle-dan"></label>
735
736
  </div>
736
737
  </div>
@@ -738,7 +739,7 @@ ${k}
738
739
  <div class="kplayer-setting-item kplayer-setting-danunlimit">
739
740
  <span class="kplayer-label">${d(t("unlimited-awaken"))}</span>
740
741
  <div class="kplayer-toggle">
741
- <input class="kplayer-danunlimit-setting-input" type="checkbox" name="kplayer-toggle-danunlimit" ${q(
742
+ <input class="kplayer-danunlimit-setting-input" type="checkbox" name="kplayer-toggle-danunlimit" ${S(
742
743
  typeof n.awaken == "object" && (($ = n.awaken) == null ? void 0 : $.unlimited)
743
744
  )}>
744
745
  <label for="kplayer-toggle-danunlimit"></label>
@@ -782,7 +783,7 @@ ${k}
782
783
  <span class="kplayer-label">${d(t("subtitle"))}</span>
783
784
  </div>
784
785
  </div>
785
- ${n.subtitle ? y ? `
786
+ ${n.subtitle ? h ? `
786
787
  <div class="kplayer-setting-subtitle-toggle">
787
788
  <div class="kplayer-setting-action-main">
788
789
  <span class="kplayer-setting-action-icon">${d(i.subtitle)}</span>
@@ -793,9 +794,9 @@ ${k}
793
794
  <div class="kplayer-subtitles-box">
794
795
  <div class="kplayer-subtitles-panel">
795
796
  ${(Array.isArray(n.subtitle.url) ? n.subtitle.url : []).map((g) => {
796
- const L = g, U = L.lang ? L.name ? `${L.name} (${t(L.lang)})` : t(L.lang) : L.name || "";
797
+ const x = g, U = x.lang ? x.name ? `${x.name} (${t(x.lang)})` : t(x.lang) : x.name || "";
797
798
  return `
798
- <div class="kplayer-subtitles-item" data-subtitle="${b(L.url)}">
799
+ <div class="kplayer-subtitles-item" data-subtitle="${b(x.url)}">
799
800
  <span class="kplayer-label">${d(U)}</span>
800
801
  <span class="kplayer-check-icon"><svg viewBox="0 0 24 24" fill="none" stroke="#fff" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"/></svg></span>
801
802
  </div>`;
@@ -816,9 +817,9 @@ ${k}
816
817
  ${(H = n.video) != null && H.quality || ((I = n.video) == null ? void 0 : I.type) === "hls" || ((P = n.video) == null ? void 0 : P.type) === "auto" ? `
817
818
  <div class="kplayer-quality-inline">
818
819
  <div class="kplayer-quality-list">
819
- ${(F = n.video) != null && F.quality ? n.video.quality.map(
820
- (g, L) => `
821
- <div class="kplayer-quality-item" data-index="${L}">
820
+ ${(W = n.video) != null && W.quality ? n.video.quality.map(
821
+ (g, x) => `
822
+ <div class="kplayer-quality-item" data-index="${x}">
822
823
  <span class="kplayer-label">${d(g.name)}</span>
823
824
  <span class="kplayer-check-icon"><svg viewBox="0 0 24 24" fill="none" stroke="#fff" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"/></svg></span>
824
825
  </div>`
@@ -892,10 +893,10 @@ ${k}
892
893
 
893
894
  <div class="kplayer-menu">
894
895
  ${(n.contextmenu || []).map((g) => {
895
- const L = `${g.key ? t(g.key) : ""}${g.text ? g.text : ""}`;
896
+ const x = `${g.key ? t(g.key) : ""}${g.text ? g.text : ""}`;
896
897
  return `
897
898
  <div class="kplayer-menu-item">
898
- <a ${g.link ? 'target="_blank"' : ""} href="${b(g.link || "javascript:void(0);")}">${d(L)}</a>
899
+ <a ${g.link ? 'target="_blank"' : ""} href="${b(g.link || "javascript:void(0);")}">${d(x)}</a>
899
900
  </div>`;
900
901
  }).join("")}
901
902
  </div>
@@ -919,7 +920,7 @@ ${k}
919
920
 
920
921
  `.trim();
921
922
  }
922
- class W {
923
+ class F {
923
924
  constructor(e) {
924
925
  this.container = e.container, this.options = e.options, this.index = e.index, this.tran = e.tran, this.init();
925
926
  }
@@ -1059,8 +1060,8 @@ class he {
1059
1060
  s.className = "kplayer-ad-marker-text";
1060
1061
  let a = "Ad";
1061
1062
  if ((l = t.name) != null && l.includes("vast_")) {
1062
- const r = t.name.replace("vast_", "");
1063
- a = r === "start" || r === "end" ? "Ad" : `Ad · ${r}`;
1063
+ const o = t.name.replace("vast_", "");
1064
+ a = o === "start" || o === "end" ? "Ad" : `Ad · ${o}`;
1064
1065
  } else t.name && (a = t.name);
1065
1066
  return s.textContent = a, i.appendChild(s), i;
1066
1067
  }
@@ -1155,21 +1156,21 @@ class he {
1155
1156
  async _loadVAST(e) {
1156
1157
  var t;
1157
1158
  try {
1158
- const s = await (await fetch(e)).text(), l = new DOMParser().parseFromString(s, "text/xml"), r = "http://www.iab.net/videosuite/vmap", y = l.getElementsByTagNameNS(r, "AdBreak");
1159
- if (y.length > 0) {
1160
- const c = this.player.video.duration || 0, k = [];
1161
- for (const h of Array.from(y)) {
1162
- const m = h.getAttribute("timeOffset") || "";
1163
- let o = 0;
1164
- m === "start" ? o = 0 : m === "end" ? o = c > 0 ? c - 1 : 99999 : m && (o = this._parseTime(m));
1165
- const p = h.getElementsByTagNameNS(
1166
- r,
1159
+ const s = await (await fetch(e)).text(), l = new DOMParser().parseFromString(s, "text/xml"), o = "http://www.iab.net/videosuite/vmap", h = l.getElementsByTagNameNS(o, "AdBreak");
1160
+ if (h.length > 0) {
1161
+ const y = this.player.video.duration || 0, m = [];
1162
+ for (const p of Array.from(h)) {
1163
+ const k = p.getAttribute("timeOffset") || "";
1164
+ let r = 0;
1165
+ k === "start" ? r = 0 : k === "end" ? r = y > 0 ? y - 1 : 99999 : k && (r = this._parseTime(k));
1166
+ const c = p.getElementsByTagNameNS(
1167
+ o,
1167
1168
  "AdTagURI"
1168
- )[0], f = (t = p == null ? void 0 : p.textContent) == null ? void 0 : t.trim();
1169
- f && k.push({ vastUrl: f, startTime: o, timeOffset: m });
1169
+ )[0], f = (t = c == null ? void 0 : c.textContent) == null ? void 0 : t.trim();
1170
+ f && m.push({ vastUrl: f, startTime: r, timeOffset: k });
1170
1171
  }
1171
- for (const { vastUrl: h, startTime: m, timeOffset: o } of k)
1172
- await this._fetchVASTAndRegister(h, m, o);
1172
+ for (const { vastUrl: p, startTime: k, timeOffset: r } of m)
1173
+ await this._fetchVASTAndRegister(p, k, r);
1173
1174
  this._registerVMAPMarkers();
1174
1175
  } else
1175
1176
  await this._parseVASTAndShow(l, 0, 5);
@@ -1178,22 +1179,22 @@ class he {
1178
1179
  }
1179
1180
  }
1180
1181
  async _fetchVASTAndRegister(e, t, i) {
1181
- var s, a, l, r;
1182
+ var s, a, l, o;
1182
1183
  try {
1183
- const c = await (await fetch(e)).text(), h = new DOMParser().parseFromString(c, "text/xml"), m = h.querySelector("MediaFile"), o = (s = m == null ? void 0 : m.textContent) == null ? void 0 : s.trim(), p = (a = h.querySelector("Linear")) == null ? void 0 : a.getAttribute("skipoffset"), f = p ? this._parseTime(p) : 5, v = (r = (l = h.querySelector("Impression")) == null ? void 0 : l.textContent) == null ? void 0 : r.trim();
1184
- if (!o) return;
1185
- const x = {
1184
+ const y = await (await fetch(e)).text(), p = new DOMParser().parseFromString(y, "text/xml"), k = p.querySelector("MediaFile"), r = (s = k == null ? void 0 : k.textContent) == null ? void 0 : s.trim(), c = (a = p.querySelector("Linear")) == null ? void 0 : a.getAttribute("skipoffset"), f = c ? this._parseTime(c) : 5, v = (o = (l = p.querySelector("Impression")) == null ? void 0 : l.textContent) == null ? void 0 : o.trim();
1185
+ if (!r) return;
1186
+ const L = {
1186
1187
  type: "video",
1187
- url: o,
1188
+ url: r,
1188
1189
  startTime: t,
1189
1190
  skipTime: f,
1190
1191
  name: `vast_${i}`,
1191
1192
  _impressionUrl: v,
1192
1193
  _isPostroll: i === "end"
1193
1194
  };
1194
- this.options || (this.options = { url: [] }), Array.isArray(this.options.url) || (this.options.url = []), this.options.url.push(x);
1195
- } catch (y) {
1196
- console.warn("[Kplayer] VAST fetch failed:", e, y);
1195
+ this.options || (this.options = { url: [] }), Array.isArray(this.options.url) || (this.options.url = []), this.options.url.push(L);
1196
+ } catch (h) {
1197
+ console.warn("[Kplayer] VAST fetch failed:", e, h);
1197
1198
  }
1198
1199
  }
1199
1200
  _registerVMAPMarkers() {
@@ -1209,17 +1210,17 @@ class he {
1209
1210
  if (a.startTime === void 0 || a.startTime <= 0) return;
1210
1211
  const l = a.startTime / t * 100;
1211
1212
  if (l >= 100) return;
1212
- const r = this._createMarker(l, a);
1213
- this.player.template.playedBarWrap.appendChild(r), this.adMarkers.push(r);
1213
+ const o = this._createMarker(l, a);
1214
+ this.player.template.playedBarWrap.appendChild(o), this.adMarkers.push(o);
1214
1215
  }));
1215
1216
  };
1216
1217
  this.player.video.duration && this.player.video.duration !== 1 / 0 ? e() : this.player.on("durationchange", e), this._bindTimeUpdate();
1217
1218
  }
1218
1219
  async _parseVASTAndShow(e, t, i) {
1219
- var c, k, h, m;
1220
- const s = e.querySelector("MediaFile"), a = (c = s == null ? void 0 : s.textContent) == null ? void 0 : c.trim(), l = (k = e.querySelector("Linear")) == null ? void 0 : k.getAttribute("skipoffset"), r = l ? this._parseTime(l) : i, y = (m = (h = e.querySelector("Impression")) == null ? void 0 : h.textContent) == null ? void 0 : m.trim();
1221
- y && fetch(y).catch(() => {
1222
- }), a && this._showAd({ type: "video", url: a, startTime: t, skipTime: r });
1220
+ var y, m, p, k;
1221
+ const s = e.querySelector("MediaFile"), a = (y = s == null ? void 0 : s.textContent) == null ? void 0 : y.trim(), l = (m = e.querySelector("Linear")) == null ? void 0 : m.getAttribute("skipoffset"), o = l ? this._parseTime(l) : i, h = (k = (p = e.querySelector("Impression")) == null ? void 0 : p.textContent) == null ? void 0 : k.trim();
1222
+ h && fetch(h).catch(() => {
1223
+ }), a && this._showAd({ type: "video", url: a, startTime: t, skipTime: o });
1223
1224
  }
1224
1225
  _parseTime(e) {
1225
1226
  if (!e) return 0;
@@ -1458,25 +1459,25 @@ class me {
1458
1459
  `);
1459
1460
  if (!l.length || l[0].startsWith("WEBVTT") || l[0].startsWith("NOTE") || l[0].startsWith("STYLE"))
1460
1461
  continue;
1461
- let r = -1;
1462
- for (let o = 0; o < l.length; o++)
1463
- if (l[o].includes("-->")) {
1464
- r = o;
1462
+ let o = -1;
1463
+ for (let r = 0; r < l.length; r++)
1464
+ if (l[r].includes("-->")) {
1465
+ o = r;
1465
1466
  break;
1466
1467
  }
1467
- if (r === -1) continue;
1468
- const c = l[r].match(
1468
+ if (o === -1) continue;
1469
+ const y = l[o].match(
1469
1470
  /((?:\d{2}:)?\d{2}:\d{2}[.,]\d{3})\s*-->\s*((?:\d{2}:)?\d{2}:\d{2}[.,]\d{3})/
1470
1471
  );
1471
- if (!c) continue;
1472
- const k = this._timeToSeconds(c[1]), h = this._timeToSeconds(c[2]), m = l.slice(r + 1).join(`
1472
+ if (!y) continue;
1473
+ const m = this._timeToSeconds(y[1]), p = this._timeToSeconds(y[2]), k = l.slice(o + 1).join(`
1473
1474
  `).trim();
1474
- if (m)
1475
+ if (k)
1475
1476
  try {
1476
- const o = new VTTCue(k, h, m);
1477
- t.push(o);
1478
- } catch (o) {
1479
- console.warn("[KPlayer] VTTCue failed:", o, k, h, m);
1477
+ const r = new VTTCue(m, p, k);
1478
+ t.push(r);
1479
+ } catch (r) {
1480
+ console.warn("[KPlayer] VTTCue failed:", r, m, p, k);
1480
1481
  }
1481
1482
  }
1482
1483
  return t;
@@ -1819,11 +1820,11 @@ class we {
1819
1820
  (i) => {
1820
1821
  var s, a;
1821
1822
  if (this.player.video.duration) {
1822
- const l = this.player.template.playedBarWrap.getBoundingClientRect().left, r = (i.clientX || i.changedTouches[0].clientX) - l;
1823
- if (r < 0 || r > this.player.template.playedBarWrap.offsetWidth)
1823
+ const l = this.player.template.playedBarWrap.getBoundingClientRect().left, o = (i.clientX || i.changedTouches[0].clientX) - l;
1824
+ if (o < 0 || o > this.player.template.playedBarWrap.offsetWidth)
1824
1825
  return;
1825
- const y = this.player.video.duration * (r / this.player.template.playedBarWrap.offsetWidth);
1826
- u.isMobile && ((s = this.thumbnails) == null || s.show()), (a = this.thumbnails) == null || a.move(r), this.player.template.playedBarTime.style.left = `${r - (y >= 3600 ? 25 : 20)}px`, this.player.template.playedBarTime.innerText = u.secondToTime(y), this.player.template.playedBarTime.classList.remove("hidden");
1826
+ const h = this.player.video.duration * (o / this.player.template.playedBarWrap.offsetWidth);
1827
+ u.isMobile && ((s = this.thumbnails) == null || s.show()), (a = this.thumbnails) == null || a.move(o), this.player.template.playedBarTime.style.left = `${o - (h >= 3600 ? 25 : 20)}px`, this.player.template.playedBarTime.innerText = u.secondToTime(h), this.player.template.playedBarTime.classList.remove("hidden");
1827
1828
  }
1828
1829
  }
1829
1830
  ), this.player.template.playedBarWrap.addEventListener(
@@ -1943,9 +1944,9 @@ class we {
1943
1944
  z && (z = !1, this.initChromecast());
1944
1945
  const t = (a) => {
1945
1946
  if (!cast) return !1;
1946
- const l = new cast.media.MediaInfo(a), r = new cast.media.LoadRequest(l);
1947
+ const l = new cast.media.MediaInfo(a), o = new cast.media.LoadRequest(l);
1947
1948
  return this.session ? (this.session.loadMedia(
1948
- r,
1949
+ o,
1949
1950
  i.bind(this, "loadMedia"),
1950
1951
  s
1951
1952
  ).play(), !0) : (window.open(a), !1);
@@ -1957,11 +1958,11 @@ class we {
1957
1958
  (e = this.player.template.chromecastButton) == null || e.addEventListener("click", () => {
1958
1959
  var a, l;
1959
1960
  M ? (M = !1, (a = this.currentMedia) == null || a.stop(), (l = this.session) == null || l.stop(), this.initChromecast()) : (M = !0, cast == null || cast.requestSession(
1960
- (r) => {
1961
- this.session = r, t(this.player.options.video.url || "");
1961
+ (o) => {
1962
+ this.session = o, t(this.player.options.video.url || "");
1962
1963
  },
1963
- (r) => {
1964
- r.code === "cancel" ? this.session = void 0 : console.error("Error selecting cast device", r);
1964
+ (o) => {
1965
+ o.code === "cancel" ? this.session = void 0 : console.error("Error selecting cast device", o);
1965
1966
  }
1966
1967
  ));
1967
1968
  });
@@ -2015,9 +2016,9 @@ class we {
2015
2016
  )), clearTimeout(this.autoHideTimer);
2016
2017
  }
2017
2018
  }
2018
- class xe {
2019
+ class Le {
2019
2020
  constructor(e) {
2020
- var a, l, r;
2021
+ var a, l, o;
2021
2022
  this.player = e, this.player.template.mask.addEventListener("click", () => {
2022
2023
  this.hide();
2023
2024
  }), this.player.template.settingButton.addEventListener("click", () => {
@@ -2025,11 +2026,11 @@ class xe {
2025
2026
  }), this.loop = this.player.options.loop || !1, this.player.template.loopToggle.checked = this.loop, this.player.template.loop.addEventListener("click", () => {
2026
2027
  this.player.template.loopToggle.checked = !this.player.template.loopToggle.checked, this.loop = this.player.template.loopToggle.checked;
2027
2028
  }), this.showAwaken = this.player.user.get("awaken"), this.showAwaken || this.player.awaken && this.player.awaken.hide(), this.player.template.showAwakenToggle.checked = !!this.showAwaken, this.player.template.showAwaken.addEventListener("click", () => {
2028
- var y, c;
2029
- this.player.template.showAwakenToggle.checked = !this.player.template.showAwakenToggle.checked, this.player.template.showAwakenToggle.checked ? (this.showAwaken = 1, (y = this.player.awaken) == null || y.show()) : (this.showAwaken = 0, (c = this.player.awaken) == null || c.hide()), this.player.user.set("awaken", this.showAwaken ? 1 : 0), this.hide();
2029
+ var h, y;
2030
+ this.player.template.showAwakenToggle.checked = !this.player.template.showAwakenToggle.checked, this.player.template.showAwakenToggle.checked ? (this.showAwaken = 1, (h = this.player.awaken) == null || h.show()) : (this.showAwaken = 0, (y = this.player.awaken) == null || y.hide()), this.player.user.set("awaken", this.showAwaken ? 1 : 0), this.hide();
2030
2031
  }), this.unlimitAwaken = this.player.user.get("unlimited"), this.player.template.unlimitAwakenToggle.checked = !!this.unlimitAwaken, this.player.template.unlimitAwaken.addEventListener("click", () => {
2031
- var y, c;
2032
- this.player.template.unlimitAwakenToggle.checked = !this.player.template.unlimitAwakenToggle.checked, this.player.template.unlimitAwakenToggle.checked ? (this.unlimitAwaken = 1, (y = this.player.awaken) == null || y.unlimit(!0)) : (this.unlimitAwaken = 0, (c = this.player.awaken) == null || c.unlimit(!1)), this.player.user.set("unlimited", this.unlimitAwaken ? 1 : 0), this.hide();
2032
+ var h, y;
2033
+ this.player.template.unlimitAwakenToggle.checked = !this.player.template.unlimitAwakenToggle.checked, this.player.template.unlimitAwakenToggle.checked ? (this.unlimitAwaken = 1, (h = this.player.awaken) == null || h.unlimit(!0)) : (this.unlimitAwaken = 0, (y = this.player.awaken) == null || y.unlimit(!1)), this.player.user.set("unlimited", this.unlimitAwaken ? 1 : 0), this.hide();
2033
2034
  }), this.player.template.speed.addEventListener("click", () => {
2034
2035
  this.player.template.settingBox.classList.add(
2035
2036
  "kplayer-setting-box-speed"
@@ -2038,17 +2039,17 @@ class xe {
2038
2039
  const i = (this.player.options.playbackSpeed || []).indexOf(1);
2039
2040
  if (i >= 0 && this.player.template.speedItem[i] && this.player.template.speedItem[i].classList.add(
2040
2041
  "kplayer-selected"
2041
- ), Array.from(this.player.template.speedItem).forEach((y, c) => {
2042
- y.addEventListener("click", () => {
2042
+ ), Array.from(this.player.template.speedItem).forEach((h, y) => {
2043
+ h.addEventListener("click", () => {
2043
2044
  Array.from(this.player.template.speedItem).forEach(
2044
- (h) => h.classList.remove("kplayer-selected")
2045
- ), y.classList.add("kplayer-selected"), this.player.speed(Number(y.dataset.speed));
2046
- const k = this.player.container.querySelector(
2045
+ (p) => p.classList.remove("kplayer-selected")
2046
+ ), h.classList.add("kplayer-selected"), this.player.speed(Number(h.dataset.speed));
2047
+ const m = this.player.container.querySelector(
2047
2048
  "#kplayer-speed-current"
2048
2049
  );
2049
- if (k) {
2050
- const h = y.dataset.speed;
2051
- k.textContent = h === "1" ? "1×" : h + "×";
2050
+ if (m) {
2051
+ const p = h.dataset.speed;
2052
+ m.textContent = p === "1" ? "1×" : p + "×";
2052
2053
  }
2053
2054
  });
2054
2055
  }), this.player.template.subtitleEntry && this.player.template.subtitleEntry.addEventListener("click", () => {
@@ -2065,19 +2066,19 @@ class xe {
2065
2066
  ".kplayer-setting-chromecast-entry"
2066
2067
  ), this.screenshotEntry = this.player.container.querySelector(
2067
2068
  ".kplayer-setting-screenshot-entry"
2068
- ), this.screenshotEntry && this.player.template.camareButton && this.screenshotEntry.addEventListener("click", (y) => {
2069
- var c;
2070
- y.stopPropagation(), (c = this.player.template.camareButton) == null || c.click(), this.hide();
2071
- }), this.airplayEntry && this.player.template.airplayButton && this.airplayEntry.addEventListener("click", (y) => {
2072
- var c;
2073
- y.stopPropagation(), (c = this.player.template.airplayButton) == null || c.click(), this.hide();
2074
- }), this.chromecastEntry && this.player.template.chromecastButton && this.chromecastEntry.addEventListener("click", (y) => {
2075
- var c;
2076
- y.stopPropagation(), (c = this.player.template.chromecastButton) == null || c.click(), this.hide();
2069
+ ), this.screenshotEntry && this.player.template.camareButton && this.screenshotEntry.addEventListener("click", (h) => {
2070
+ var y;
2071
+ h.stopPropagation(), (y = this.player.template.camareButton) == null || y.click(), this.hide();
2072
+ }), this.airplayEntry && this.player.template.airplayButton && this.airplayEntry.addEventListener("click", (h) => {
2073
+ var y;
2074
+ h.stopPropagation(), (y = this.player.template.airplayButton) == null || y.click(), this.hide();
2075
+ }), this.chromecastEntry && this.player.template.chromecastButton && this.chromecastEntry.addEventListener("click", (h) => {
2076
+ var y;
2077
+ h.stopPropagation(), (y = this.player.template.chromecastButton) == null || y.click(), this.hide();
2077
2078
  }), this.player.container.querySelectorAll(
2078
2079
  ".kplayer-setting-back-main"
2079
- ).forEach((y) => {
2080
- y.addEventListener("click", () => {
2080
+ ).forEach((h) => {
2081
+ h.addEventListener("click", () => {
2081
2082
  this.player.template.settingBox.classList.remove(
2082
2083
  "kplayer-setting-box-speed"
2083
2084
  ), this.player.template.settingBox.classList.remove(
@@ -2089,36 +2090,36 @@ class xe {
2089
2090
  );
2090
2091
  });
2091
2092
  }), this.player.awaken) {
2092
- this.player.on("awaken_opacity", (h) => {
2093
- this.player.bar.set("awaken", h, "width"), this.player.user.set("opacity", h);
2093
+ this.player.on("awaken_opacity", (p) => {
2094
+ this.player.bar.set("awaken", p, "width"), this.player.user.set("opacity", p);
2094
2095
  }), (a = this.player.awaken) == null || a.opacity(this.player.user.get("opacity"));
2095
- const c = (h) => {
2096
- var p, f, v;
2097
- const m = h;
2098
- let o = ((m.clientX || ((f = (p = m.changedTouches) == null ? void 0 : p[0]) == null ? void 0 : f.clientX) || 0) - u.getBoundingClientRectViewLeft(
2096
+ const y = (p) => {
2097
+ var c, f, v;
2098
+ const k = p;
2099
+ let r = ((k.clientX || ((f = (c = k.changedTouches) == null ? void 0 : c[0]) == null ? void 0 : f.clientX) || 0) - u.getBoundingClientRectViewLeft(
2099
2100
  this.player.template.awakenOpacityBarWrap
2100
2101
  )) / 130;
2101
- o = Math.max(0, Math.min(1, o)), (v = this.player.awaken) == null || v.opacity(o);
2102
- }, k = () => {
2103
- var h;
2104
- document.removeEventListener(u.nameMap.dragEnd, k), document.removeEventListener(u.nameMap.dragMove, c), (h = this.player.template.awakenOpacityBox) == null || h.classList.remove(
2102
+ r = Math.max(0, Math.min(1, r)), (v = this.player.awaken) == null || v.opacity(r);
2103
+ }, m = () => {
2104
+ var p;
2105
+ document.removeEventListener(u.nameMap.dragEnd, m), document.removeEventListener(u.nameMap.dragMove, y), (p = this.player.template.awakenOpacityBox) == null || p.classList.remove(
2105
2106
  "kplayer-setting-awaken-active"
2106
2107
  );
2107
2108
  };
2108
2109
  (l = this.player.template.awakenOpacityBarWrapWrap) == null || l.addEventListener(
2109
2110
  "click",
2110
- (h) => {
2111
- var o;
2112
- let m = ((h.clientX || 0) - u.getBoundingClientRectViewLeft(
2111
+ (p) => {
2112
+ var r;
2113
+ let k = ((p.clientX || 0) - u.getBoundingClientRectViewLeft(
2113
2114
  this.player.template.awakenOpacityBarWrap
2114
2115
  )) / 130;
2115
- m = Math.max(0, Math.min(1, m)), (o = this.player.awaken) == null || o.opacity(m);
2116
+ k = Math.max(0, Math.min(1, k)), (r = this.player.awaken) == null || r.opacity(k);
2116
2117
  }
2117
- ), (r = this.player.template.awakenOpacityBarWrapWrap) == null || r.addEventListener(
2118
+ ), (o = this.player.template.awakenOpacityBarWrapWrap) == null || o.addEventListener(
2118
2119
  u.nameMap.dragStart,
2119
2120
  () => {
2120
- var h;
2121
- document.addEventListener(u.nameMap.dragMove, c), document.addEventListener(u.nameMap.dragEnd, k), (h = this.player.template.awakenOpacityBox) == null || h.classList.add(
2121
+ var p;
2122
+ document.addEventListener(u.nameMap.dragMove, y), document.addEventListener(u.nameMap.dragEnd, m), (p = this.player.template.awakenOpacityBox) == null || p.classList.add(
2122
2123
  "kplayer-setting-awaken-active"
2123
2124
  );
2124
2125
  }
@@ -2144,7 +2145,7 @@ class xe {
2144
2145
  this.player.template.settingBox.classList.add("kplayer-setting-box-open"), this.player.template.mask.classList.add("kplayer-mask-show"), this.player.controller.disableAutoHide = !0;
2145
2146
  }
2146
2147
  }
2147
- class Le {
2148
+ class xe {
2148
2149
  constructor(e) {
2149
2150
  this.player = e, this.doHotKeyHandler = this.doHotKey.bind(this), this.cancelFullScreenHandler = this.cancelFullScreen.bind(this), this.player.options.hotkey && document.addEventListener("keydown", this.doHotKeyHandler), document.addEventListener("keydown", this.cancelFullScreenHandler);
2150
2151
  }
@@ -2252,37 +2253,37 @@ class Ee {
2252
2253
  }
2253
2254
  update() {
2254
2255
  var e;
2255
- this.template.infoVersion && (this.template.infoVersion.innerHTML = "v1.0.0 dev"), this.template.infoType && (this.template.infoType.innerHTML = this.player.type || ""), this.template.infoUrl && (this.template.infoUrl.innerHTML = ((e = this.player.options.video) == null ? void 0 : e.url) || ""), this.template.infoResolution && (this.template.infoResolution.innerHTML = `${this.video.videoWidth} x ${this.video.videoHeight}`), this.template.infoDuration && (this.template.infoDuration.innerHTML = String(this.video.duration)), this.player.options.awaken && typeof this.player.options.awaken == "object" && (this.template.infoAwakenId && (this.template.infoAwakenId.innerHTML = this.player.options.awaken.id || ""), this.template.infoAwakenApi && (this.template.infoAwakenApi.innerHTML = this.player.options.awaken.api || ""));
2256
+ this.template.infoVersion && (this.template.infoVersion.innerHTML = "v1.0.2 dev"), this.template.infoType && (this.template.infoType.innerHTML = this.player.type || ""), this.template.infoUrl && (this.template.infoUrl.innerHTML = ((e = this.player.options.video) == null ? void 0 : e.url) || ""), this.template.infoResolution && (this.template.infoResolution.innerHTML = `${this.video.videoWidth} x ${this.video.videoHeight}`), this.template.infoDuration && (this.template.infoDuration.innerHTML = String(this.video.duration)), this.player.options.awaken && typeof this.player.options.awaken == "object" && (this.template.infoAwakenId && (this.template.infoAwakenId.innerHTML = this.player.options.awaken.id || ""), this.template.infoAwakenApi && (this.template.infoAwakenApi.innerHTML = this.player.options.awaken.api || ""));
2256
2257
  }
2257
2258
  fps(e) {
2258
2259
  this.template.infoFPS && (this.template.infoFPS.innerHTML = `${e.toFixed(1)}`);
2259
2260
  }
2260
2261
  }
2261
2262
  let V = 0;
2262
- const S = [];
2263
+ const q = [];
2263
2264
  function Te(n) {
2264
2265
  const e = n.DefaultConfig.loader;
2265
2266
  return class extends e {
2266
2267
  constructor(i) {
2267
2268
  super(i);
2268
2269
  const s = this.load.bind(this);
2269
- this.load = function(a, l, r) {
2270
- const y = r.onSuccess;
2271
- r.onSuccess = function(c, k, h, m) {
2270
+ this.load = function(a, l, o) {
2271
+ const h = o.onSuccess;
2272
+ o.onSuccess = function(y, m, p, k) {
2272
2273
  try {
2273
2274
  if (a.type === "fragment") {
2274
- const o = c.data;
2275
- let p;
2276
- if (o instanceof ArrayBuffer ? p = o : typeof o == "string" && (p = new TextEncoder().encode(o).buffer), p) {
2277
- const f = new Blob([p], { type: "video/mp2t" }), v = URL.createObjectURL(f);
2278
- c.url = v, setTimeout(() => URL.revokeObjectURL(v), 1e4);
2275
+ const r = y.data;
2276
+ let c;
2277
+ if (r instanceof ArrayBuffer ? c = r : typeof r == "string" && (c = new TextEncoder().encode(r).buffer), c) {
2278
+ const f = new Blob([c], { type: "video/mp2t" }), v = URL.createObjectURL(f);
2279
+ y.url = v, setTimeout(() => URL.revokeObjectURL(v), 1e4);
2279
2280
  }
2280
2281
  }
2281
- } catch (o) {
2282
- console.warn("[KPlayer] BlobHLSLoader error:", o);
2282
+ } catch (r) {
2283
+ console.warn("[KPlayer] BlobHLSLoader error:", r);
2283
2284
  }
2284
- y(c, k, h, m);
2285
- }, s(a, l, r);
2285
+ h(y, m, p, k);
2286
+ }, s(a, l, o);
2286
2287
  };
2287
2288
  }
2288
2289
  };
@@ -2292,55 +2293,55 @@ async function R(n, e, t, i) {
2292
2293
  if (!s.ok) throw new Error(`HTTP ${s.status}`);
2293
2294
  let a = await s.text();
2294
2295
  if (e && t && i) {
2295
- const l = /^\d{2}:\d{2}:\d{2}[.,]\d{3}\s*-->\s*\d{2}:\d{2}:\d{2}[.,]\d{3}$/, r = async (p, f, v) => {
2296
- const x = new Uint8Array(
2297
- p.match(/.{2}/g).map((T) => parseInt(T, 16))
2296
+ const l = /^\d{2}:\d{2}:\d{2}[.,]\d{3}\s*-->\s*\d{2}:\d{2}:\d{2}[.,]\d{3}$/, o = async (c, f, v) => {
2297
+ const L = new Uint8Array(
2298
+ c.match(/.{2}/g).map((T) => parseInt(T, 16))
2298
2299
  ), B = await crypto.subtle.decrypt(
2299
2300
  { name: "AES-CBC", iv: v.buffer },
2300
2301
  f,
2301
- x.buffer
2302
+ L.buffer
2302
2303
  );
2303
2304
  return new TextDecoder().decode(B);
2304
- }, y = new Uint8Array(
2305
- t.match(/.{2}/g).map((p) => parseInt(p, 16))
2306
- ), c = new Uint8Array(
2307
- i.match(/.{2}/g).map((p) => parseInt(p, 16))
2308
- ), k = await crypto.subtle.importKey(
2305
+ }, h = new Uint8Array(
2306
+ t.match(/.{2}/g).map((c) => parseInt(c, 16))
2307
+ ), y = new Uint8Array(
2308
+ i.match(/.{2}/g).map((c) => parseInt(c, 16))
2309
+ ), m = await crypto.subtle.importKey(
2309
2310
  "raw",
2310
- y.buffer,
2311
+ h.buffer,
2311
2312
  { name: "AES-CBC" },
2312
2313
  !1,
2313
2314
  ["decrypt"]
2314
2315
  );
2315
- let h;
2316
+ let p;
2316
2317
  try {
2317
- h = atob(a.trim());
2318
+ p = atob(a.trim());
2318
2319
  } catch {
2319
- h = a;
2320
+ p = a;
2320
2321
  }
2321
- const m = h.split(`
2322
- `), o = [];
2323
- for (const p of m) {
2324
- const f = p.trim();
2322
+ const k = p.split(`
2323
+ `), r = [];
2324
+ for (const c of k) {
2325
+ const f = c.trim();
2325
2326
  if (!f) {
2326
- o.push(p);
2327
+ r.push(c);
2327
2328
  continue;
2328
2329
  }
2329
2330
  if (l.test(f)) {
2330
- o.push(p);
2331
+ r.push(c);
2331
2332
  continue;
2332
2333
  }
2333
2334
  if (/^[0-9a-fA-F]+$/.test(f) && f.length % 2 === 0)
2334
2335
  try {
2335
- const v = await r(f, k, c);
2336
- o.push(v);
2336
+ const v = await o(f, m, y);
2337
+ r.push(v);
2337
2338
  } catch {
2338
- o.push(p);
2339
+ r.push(c);
2339
2340
  }
2340
2341
  else
2341
- o.push(p);
2342
+ r.push(c);
2342
2343
  }
2343
- a = o.join(`
2344
+ a = r.join(`
2344
2345
  `);
2345
2346
  }
2346
2347
  return a;
@@ -2355,29 +2356,29 @@ class Ae {
2355
2356
  const s = { subtitle: "", lang: "off", url: "" };
2356
2357
  if (this.options.subtitle.url.push(s), this.options.subtitle.defaultSubtitle !== void 0) {
2357
2358
  const l = this.options.subtitle.defaultSubtitle;
2358
- typeof l == "string" ? this.options.subtitle.index = this.options.subtitle.url.findIndex((r) => r.lang === l || r.name === l) : typeof l == "number" && (this.options.subtitle.index = l);
2359
+ typeof l == "string" ? this.options.subtitle.index = this.options.subtitle.url.findIndex((o) => o.lang === l || o.name === l) : typeof l == "number" && (this.options.subtitle.index = l);
2359
2360
  }
2360
2361
  const a = this.options.subtitle.url;
2361
2362
  (this.options.subtitle.index === -1 || this.options.subtitle.index == null || this.options.subtitle.index > a.length - 1) && (this.options.subtitle.index = a.findIndex(
2362
2363
  (l) => l.lang === this.options.lang
2363
2364
  )), this.options.subtitle.index === -1 && (this.options.subtitle.index = a.length - 1);
2364
2365
  }
2365
- this.template = new W({
2366
+ this.template = new F({
2366
2367
  container: this.container,
2367
2368
  options: this.options,
2368
2369
  index: V,
2369
2370
  tran: this.tran
2370
- }), this.video = this.template.video, this.bar = new fe(this.template), this.bezel = new ge(this.template.bezel), this.fullScreen = new ue(this), this.controller = new we(this), this.setting = new xe(this), this.plugins = {}, this.docClickFun = () => {
2371
+ }), this.video = this.template.video, this.bar = new fe(this.template), this.bezel = new ge(this.template.bezel), this.fullScreen = new ue(this), this.controller = new we(this), this.setting = new Le(this), this.plugins = {}, this.docClickFun = () => {
2371
2372
  this.focus = !1;
2372
2373
  }, this.containerClickFun = () => {
2373
2374
  this.focus = !0;
2374
- }, document.addEventListener("click", this.docClickFun, !0), this.container.addEventListener("click", this.containerClickFun, !0), this.paused = !0, this.timer = new ve(this), this.hotkey = new Le(this), this.contextmenu = new Be(this), this.initVideo(
2375
+ }, document.addEventListener("click", this.docClickFun, !0), this.container.addEventListener("click", this.containerClickFun, !0), this.paused = !0, this.timer = new ve(this), this.hotkey = new xe(this), this.contextmenu = new Be(this), this.initVideo(
2375
2376
  this.video,
2376
2377
  this.quality && this.quality.type || this.options.video.type || "auto"
2377
2378
  ), this.infoPanel = new Ee(this), (this.options.ad || this.options.vastAD) && (this.ad = new he(this)), this.options.vastAD && this.options.vastADURL && ((i = this.ad) == null || i._loadVAST(this.options.vastADURL)), this.template.titleBack && this.template.titleBack.addEventListener("click", () => {
2378
2379
  var s;
2379
2380
  typeof ((s = this.options.title) == null ? void 0 : s.onBack) == "function" ? this.options.title.onBack(this) : window.history.back(), this.events.trigger("title_back");
2380
- }), !this.awaken && this.options.autoplay && this.play(), this.moveBar = !1, V++, S.push(this);
2381
+ }), !this.awaken && this.options.autoplay && this.play(), this.moveBar = !1, V++, q.push(this);
2381
2382
  }
2382
2383
  seek(e) {
2383
2384
  e = Math.max(e, 0), this.video.duration && (e = Math.min(e, this.video.duration)), this.video.currentTime < e ? this.notice(
@@ -2390,7 +2391,7 @@ class Ae {
2390
2391
  if (this.paused = !1, this.video.paused && !u.isMobile && this.bezel.switch(w.play), this.template.playButton.innerHTML = w.pause, this.template.mobilePlayButton.innerHTML = w.pause, e || Promise.resolve(this.video.play()).catch(() => {
2391
2392
  this.pause();
2392
2393
  }), this.timer.enable("loading"), this.container.classList.remove("kplayer-paused"), this.container.classList.add("kplayer-playing"), this.awaken && this.awaken.play(), this.options.mutex)
2393
- for (const i of S)
2394
+ for (const i of q)
2394
2395
  this !== i && i.pause();
2395
2396
  const t = this.container.querySelector(
2396
2397
  ".kplayer-mobile-play-btn .kplayer-icon-content"
@@ -2429,10 +2430,10 @@ class Ae {
2429
2430
  this.events.on(e, t);
2430
2431
  }
2431
2432
  initMSE(e, t) {
2432
- var a, l, r, y, c, k, h, m;
2433
+ var a, l, o, h, y, m, p, k;
2433
2434
  if (this.type = t, (a = this.options.video.customType) != null && a[t]) {
2434
- const o = this.options.video.customType[t];
2435
- typeof o == "function" ? o(this.video, this) : console.error(`Illegal customType: ${t}`);
2435
+ const r = this.options.video.customType[t];
2436
+ typeof r == "function" ? r(this.video, this) : console.error(`Illegal customType: ${t}`);
2436
2437
  return;
2437
2438
  }
2438
2439
  let i = t;
@@ -2440,26 +2441,26 @@ class Ae {
2440
2441
  const s = this.quality ? this.quality.url : e.src;
2441
2442
  switch (i) {
2442
2443
  case "hls": {
2443
- const o = window.Hls;
2444
- if (!o) {
2444
+ const r = window.Hls;
2445
+ if (!r) {
2445
2446
  this.notice("Error: Can't find Hls.");
2446
2447
  return;
2447
2448
  }
2448
- if (!o.isSupported()) {
2449
+ if (!r.isSupported()) {
2449
2450
  this.notice("Error: Hls is not supported.");
2450
2451
  return;
2451
2452
  }
2452
- const p = ((l = this.options.pluginOptions) == null ? void 0 : l.hls) || {}, f = Te(
2453
- o
2454
- ), v = new o({
2455
- ...p,
2453
+ const c = ((l = this.options.pluginOptions) == null ? void 0 : l.hls) || {}, f = Te(
2454
+ r
2455
+ ), v = new r({
2456
+ ...c,
2456
2457
  loader: f
2457
2458
  });
2458
- this.plugins.hls = v, v.loadSource(e.src), v.attachMedia(e), v.on(o.Events.MANIFEST_PARSED, () => {
2459
- this.buildHlsQualityMenu(v), this.updateHlsQualityCurrentLabel();
2459
+ this.plugins.hls = v, v.loadSource(e.src), v.attachMedia(e), v.on(r.Events.MANIFEST_PARSED, () => {
2460
+ this.buildHlsQualityMenu(v, r), this.updateHlsQualityCurrentLabel();
2460
2461
  }), v.on(
2461
- o.Events.LEVEL_SWITCHED,
2462
- (x, B) => {
2462
+ r.Events.LEVEL_SWITCHED,
2463
+ (L, B) => {
2463
2464
  this.hlsCurrentLevel = B.level, this.updateHlsQualityCurrentLabel();
2464
2465
  }
2465
2466
  ), this.events.on("destroy", () => {
@@ -2468,24 +2469,24 @@ class Ae {
2468
2469
  break;
2469
2470
  }
2470
2471
  case "flv": {
2471
- const o = window.flvjs;
2472
- if (o)
2473
- if (o.isSupported()) {
2474
- const p = o.createPlayer(
2472
+ const r = window.flvjs;
2473
+ if (r)
2474
+ if (r.isSupported()) {
2475
+ const c = r.createPlayer(
2475
2476
  Object.assign(
2476
- ((y = (r = this.options.pluginOptions) == null ? void 0 : r.flv) == null ? void 0 : y.mediaDataSource) || {},
2477
+ ((h = (o = this.options.pluginOptions) == null ? void 0 : o.flv) == null ? void 0 : h.mediaDataSource) || {},
2477
2478
  {
2478
2479
  type: "flv",
2479
2480
  url: e.src
2480
2481
  }
2481
2482
  ),
2482
- (k = (c = this.options.pluginOptions) == null ? void 0 : c.flv) == null ? void 0 : k.config
2483
+ (m = (y = this.options.pluginOptions) == null ? void 0 : y.flv) == null ? void 0 : m.config
2483
2484
  );
2484
- this.plugins.flvjs = p, p.attachMediaElement(e), p.load(), this.events.on("destroy", () => {
2485
- p.unload(), p.detachMediaElement(), p.destroy(), delete this.plugins.flvjs;
2485
+ this.plugins.flvjs = c, c.attachMediaElement(e), c.load(), this.events.on("destroy", () => {
2486
+ c.unload(), c.detachMediaElement(), c.destroy(), delete this.plugins.flvjs;
2486
2487
  }), this.events.on("quality_end", () => {
2487
2488
  var f;
2488
- s !== ((f = this.quality) == null ? void 0 : f.url) && (p.unload(), p.detachMediaElement(), p.destroy());
2489
+ s !== ((f = this.quality) == null ? void 0 : f.url) && (c.unload(), c.detachMediaElement(), c.destroy());
2489
2490
  });
2490
2491
  } else
2491
2492
  this.notice("Error: flvjs is not supported.");
@@ -2494,44 +2495,44 @@ class Ae {
2494
2495
  break;
2495
2496
  }
2496
2497
  case "dash": {
2497
- const o = window.dashjs;
2498
- if (o) {
2499
- const p = o.MediaPlayer().create();
2500
- p.initialize(e, e.src, !1, 0), p.updateSettings(((h = this.options.pluginOptions) == null ? void 0 : h.dash) || {}), this.plugins.dash = p, this.events.on("destroy", () => {
2501
- o.MediaPlayer().reset(), delete this.plugins.dash;
2498
+ const r = window.dashjs;
2499
+ if (r) {
2500
+ const c = r.MediaPlayer().create();
2501
+ c.initialize(e, e.src, !1, 0), c.updateSettings(((p = this.options.pluginOptions) == null ? void 0 : p.dash) || {}), this.plugins.dash = c, this.events.on("destroy", () => {
2502
+ r.MediaPlayer().reset(), delete this.plugins.dash;
2502
2503
  }), this.events.on("quality_end", () => {
2503
2504
  var f;
2504
- s !== ((f = this.quality) == null ? void 0 : f.url) && o.MediaPlayer().reset();
2505
+ s !== ((f = this.quality) == null ? void 0 : f.url) && r.MediaPlayer().reset();
2505
2506
  });
2506
2507
  } else
2507
2508
  this.notice("Error: Can't find dashjs.");
2508
2509
  break;
2509
2510
  }
2510
2511
  case "webtorrent": {
2511
- const o = window.WebTorrent;
2512
- if (o)
2513
- if (o.WEBRTC_SUPPORT) {
2512
+ const r = window.WebTorrent;
2513
+ if (r)
2514
+ if (r.WEBRTC_SUPPORT) {
2514
2515
  this.container.classList.add("kplayer-loading");
2515
- const p = new o(
2516
- ((m = this.options.pluginOptions) == null ? void 0 : m.webtorrent) || {}
2516
+ const c = new r(
2517
+ ((k = this.options.pluginOptions) == null ? void 0 : k.webtorrent) || {}
2517
2518
  );
2518
- this.plugins.webtorrent = p;
2519
+ this.plugins.webtorrent = c;
2519
2520
  const f = e.src;
2520
2521
  e.src = "", e.preload = "metadata", e.addEventListener(
2521
2522
  "durationchange",
2522
2523
  () => this.container.classList.remove("kplayer-loading"),
2523
2524
  { once: !0 }
2524
- ), p.add(f, (v) => {
2525
- const x = v.files.find((B) => B.name.endsWith(".mp4"));
2526
- x == null || x.renderTo(this.video, {
2525
+ ), c.add(f, (v) => {
2526
+ const L = v.files.find((B) => B.name.endsWith(".mp4"));
2527
+ L == null || L.renderTo(this.video, {
2527
2528
  autoplay: this.options.autoplay,
2528
2529
  controls: !1
2529
2530
  });
2530
2531
  }), this.events.on("destroy", () => {
2531
- p.remove(f), p.destroy(), delete this.plugins.webtorrent;
2532
+ c.remove(f), c.destroy(), delete this.plugins.webtorrent;
2532
2533
  }), this.events.on("quality_end", () => {
2533
2534
  var v;
2534
- s !== ((v = this.quality) == null ? void 0 : v.url) && (p.remove(f), p.destroy());
2535
+ s !== ((v = this.quality) == null ? void 0 : v.url) && (c.remove(f), c.destroy());
2535
2536
  });
2536
2537
  } else
2537
2538
  this.notice("Error: Webtorrent is not supported.");
@@ -2592,40 +2593,56 @@ class Ae {
2592
2593
  e.textContent = i ? `${i.height}p` : "Manual";
2593
2594
  }
2594
2595
  }
2595
- buildHlsQualityMenu(e) {
2596
+ buildHlsQualityMenu(e, t) {
2596
2597
  var y;
2597
2598
  if (!((y = e == null ? void 0 : e.levels) != null && y.length)) return;
2598
- const t = /* @__PURE__ */ new Set(), i = [];
2599
- e.levels.forEach((c, k) => {
2600
- const h = `${c.height}-${c.bitrate}`;
2601
- t.has(h) || (t.add(h), i.push({
2602
- index: k,
2603
- name: c.height ? `${c.height}p` : `${Math.round((c.bitrate || 0) / 1e3)}kbps`,
2604
- height: c.height || 0,
2605
- bitrate: c.bitrate || 0
2599
+ const i = /* @__PURE__ */ new Set(), s = [];
2600
+ e.levels.forEach((m, p) => {
2601
+ const k = `${m.height}-${m.bitrate}`;
2602
+ i.has(k) || (i.add(k), s.push({
2603
+ index: p,
2604
+ name: m.height ? `${m.height}p` : `${Math.round((m.bitrate || 0) / 1e3)}kbps`,
2605
+ height: m.height || 0,
2606
+ bitrate: m.bitrate || 0
2606
2607
  }));
2607
- }), i.sort((c, k) => k.height - c.height || k.bitrate - c.bitrate);
2608
- const s = [{ index: -1, name: "Auto" }, ...i], a = this.container.querySelector(
2608
+ }), s.sort((m, p) => p.height - m.height || p.bitrate - m.bitrate);
2609
+ const a = [{ index: -1, name: "Auto" }, ...s], l = this.container.querySelector(
2609
2610
  ".kplayer-quality-list"
2610
2611
  );
2611
- if (!a) return;
2612
- a.innerHTML = s.map(
2613
- (c) => `
2614
- <div class="kplayer-quality-item" data-level="${c.index}">
2615
- <span class="kplayer-label">${c.name}</span>
2616
- </div>
2617
- `
2612
+ if (!l) return;
2613
+ l.innerHTML = a.map(
2614
+ (m) => `
2615
+ <div class="kplayer-quality-item" data-level="${m.index}">
2616
+ <span class="kplayer-label">${m.name}</span>
2617
+ </div>
2618
+ `
2618
2619
  ).join("");
2619
- const l = a.querySelectorAll(".kplayer-quality-item"), r = this.container.querySelector(
2620
+ const o = l.querySelectorAll(".kplayer-quality-item"), h = this.container.querySelector(
2620
2621
  "#kplayer-quality-current"
2621
2622
  );
2622
- l.forEach((c) => {
2623
- c.addEventListener("click", () => {
2624
- var h;
2625
- const k = Number(c.dataset.level);
2626
- e.currentLevel = k, e.nextLevel = k, e.loadLevel = k, l.forEach((m) => m.classList.remove("active")), c.classList.add("active"), r && (r.textContent = ((h = c.textContent) == null ? void 0 : h.trim()) || "");
2623
+ o.forEach((m) => {
2624
+ m.addEventListener("click", () => {
2625
+ var c;
2626
+ const p = Number(m.dataset.level);
2627
+ e.currentLevel = p, e.nextLevel = p, e.loadLevel = p, o.forEach((f) => f.classList.remove("active")), m.classList.add("active");
2628
+ const k = ((c = m.textContent) == null ? void 0 : c.trim()) || "";
2629
+ h && (h.textContent = k), this.notice(
2630
+ `${this.tran("switching-quality").replace("%q", k)}`,
2631
+ -1,
2632
+ void 0,
2633
+ "switch-quality"
2634
+ );
2635
+ const r = () => {
2636
+ this.notice(
2637
+ `${this.tran("switched-quality").replace("%q", k)}`,
2638
+ 2e3,
2639
+ void 0,
2640
+ "switch-quality"
2641
+ ), e.off(t.Events.LEVEL_SWITCHED, r);
2642
+ };
2643
+ e.on(t.Events.LEVEL_SWITCHED, r);
2627
2644
  });
2628
- }), r && (r.textContent = "Auto");
2645
+ }), h && (h.textContent = "Auto");
2629
2646
  }
2630
2647
  switchQuality(e) {
2631
2648
  var l;
@@ -2670,21 +2687,21 @@ class Ae {
2670
2687
  ), this.switchingQuality = !1, this.events.trigger("quality_end");
2671
2688
  }
2672
2689
  }), this.on("error", () => {
2673
- var r;
2674
- this.video.error && this.prevVideo && (this.template.videoWrap.removeChild(this.video), this.video = this.prevVideo, i || this.video.play(), this.qualityIndex = this.prevIndex, this.quality = (r = this.options.video.quality) == null ? void 0 : r[this.qualityIndex ?? 0], this.prevVideo = void 0, this.switchingQuality = !1);
2690
+ var o;
2691
+ this.video.error && this.prevVideo && (this.template.videoWrap.removeChild(this.video), this.video = this.prevVideo, i || this.video.play(), this.qualityIndex = this.prevIndex, this.quality = (o = this.options.video.quality) == null ? void 0 : o[this.qualityIndex ?? 0], this.prevVideo = void 0, this.switchingQuality = !1);
2675
2692
  });
2676
2693
  }
2677
2694
  notice(e, t = 2e3, i = 0.8, s) {
2678
2695
  let a;
2679
2696
  if (s && (a = document.getElementById(`kplayer-notice-${s}`), a && (a.innerHTML = e), this.noticeList[s] && (clearTimeout(this.noticeList[s]), this.noticeList[s] = null)), !a) {
2680
- const l = W.NewNotice(e, i, s);
2697
+ const l = F.NewNotice(e, i, s);
2681
2698
  this.template.noticeList.appendChild(l), a = l;
2682
2699
  }
2683
2700
  this.events.trigger("notice_show", a), t > 0 && (this.noticeList[s || ""] = setTimeout(
2684
- /* @__PURE__ */ ((l, r) => () => {
2701
+ /* @__PURE__ */ ((l, o) => () => {
2685
2702
  l.addEventListener("animationend", () => {
2686
- r.template.noticeList.removeChild(l);
2687
- }), l.classList.add("remove-notice"), r.events.trigger("notice_hide"), r.noticeList[s || ""] = null;
2703
+ o.template.noticeList.removeChild(l);
2704
+ }), l.classList.add("remove-notice"), o.events.trigger("notice_hide"), o.noticeList[s || ""] = null;
2688
2705
  })(a, this),
2689
2706
  t
2690
2707
  ));
@@ -2701,10 +2718,10 @@ class Ae {
2701
2718
  }
2702
2719
  destroy() {
2703
2720
  var e;
2704
- S.splice(S.indexOf(this), 1), this.pause(), document.removeEventListener("click", this.docClickFun, !0), this.container.removeEventListener("click", this.containerClickFun, !0), this.fullScreen.destroy(), this.hotkey.destroy(), this.contextmenu.destroy(), this.controller.destroy(), this.timer.destroy(), this.video.src = "", this.container.innerHTML = "", (e = this.ad) == null || e.destroy(), this.events.trigger("destroy");
2721
+ q.splice(q.indexOf(this), 1), this.pause(), document.removeEventListener("click", this.docClickFun, !0), this.container.removeEventListener("click", this.containerClickFun, !0), this.fullScreen.destroy(), this.hotkey.destroy(), this.contextmenu.destroy(), this.controller.destroy(), this.timer.destroy(), this.video.src = "", this.container.innerHTML = "", (e = this.ad) == null || e.destroy(), this.events.trigger("destroy");
2705
2722
  }
2706
2723
  static get version() {
2707
- return "1.0.0";
2724
+ return "1.0.2";
2708
2725
  }
2709
2726
  async _loadSubtitleTexts() {
2710
2727
  var s;
@@ -2735,19 +2752,19 @@ class Ae {
2735
2752
  return;
2736
2753
  }
2737
2754
  try {
2738
- const r = await R(
2755
+ const o = await R(
2739
2756
  i.url,
2740
2757
  t.encrypt,
2741
2758
  t.key,
2742
2759
  t.iv
2743
2760
  );
2744
- await ((a = this.subtitle) == null ? void 0 : a.loadVttText(r)), (l = this.subtitle) == null || l.show();
2745
- } catch (r) {
2746
- console.warn("[KPlayer] Subtitle switch failed:", r);
2761
+ await ((a = this.subtitle) == null ? void 0 : a.loadVttText(o)), (l = this.subtitle) == null || l.show();
2762
+ } catch (o) {
2763
+ console.warn("[KPlayer] Subtitle switch failed:", o);
2747
2764
  }
2748
2765
  }
2749
2766
  }
2750
2767
  export {
2751
2768
  Ae as default
2752
2769
  };
2753
- //# sourceMappingURL=kplayer.es.js.map
2770
+ //# sourceMappingURL=kplayer-ts.es.js.map