mirror of
https://github.com/zhw2590582/ArtPlayer.git
synced 2026-10-09 11:56:15 -08:00
71 lines
204 KiB
JavaScript
71 lines
204 KiB
JavaScript
/*!
|
|
* artplayer.js v5.4.1
|
|
* Github: https://github.com/zhw2590582/ArtPlayer
|
|
* (c) 2017-2026 Harvey Zhao
|
|
* Released under the MIT License.
|
|
*
|
|
* ArtPlayer bundled third-party notices
|
|
*
|
|
*
|
|
* screenfull - reference v6.0.2, locally adapted
|
|
* https://github.com/sindresorhus/screenfull
|
|
* MIT License
|
|
*
|
|
* Copyright (c) Sindre Sorhus <sindresorhus@gmail.com> (https://sindresorhus.com)
|
|
*
|
|
* Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
|
|
*
|
|
* The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
|
|
*
|
|
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
*
|
|
* Hint.css v2.7.0 - scoped and styled for ArtPlayer
|
|
* https://github.com/chinchang/hint.css
|
|
* MIT License
|
|
*
|
|
* Copyright (c) 2021 Kushagra Gour
|
|
*
|
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
* of this software and associated documentation files (the "Software"), to deal
|
|
* in the Software without restriction, including without limitation the rights
|
|
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
* copies of the Software, and to permit persons to whom the Software is
|
|
* furnished to do so, subject to the following conditions:
|
|
*
|
|
* The above copyright notice and this permission notice shall be included in all
|
|
* copies or substantial portions of the Software.
|
|
*
|
|
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
* SOFTWARE.
|
|
*
|
|
* option-validator v2.0.6
|
|
* https://github.com/zhw2590582/option-validator
|
|
* MIT License
|
|
*
|
|
* Copyright (c) 2018 Harvey Zack
|
|
*
|
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
* of this software and associated documentation files (the "Software"), to deal
|
|
* in the Software without restriction, including without limitation the rights
|
|
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
* copies of the Software, and to permit persons to whom the Software is
|
|
* furnished to do so, subject to the following conditions:
|
|
*
|
|
* The above copyright notice and this permission notice shall be included in all
|
|
* copies or substantial portions of the Software.
|
|
*
|
|
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
* SOFTWARE.
|
|
*/
|
|
!function(t,e){"object"===typeof exports&&"undefined"!==typeof module?module.exports=e():"function"==typeof define&&define.amd?(t.Artplayer=e(),define(function(){return t.Artplayer})):(t="undefined"!==typeof globalThis?globalThis:t||self).Artplayer=e()}(this,function(){"use strict";function t(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}var e,r={exports:{}};var n=(e||(e=1,r.exports=function(){function t(e){return(t="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(e)}var e=Object.prototype.toString,r=function(r){if(void 0===r)return"undefined";if(null===r)return"null";var o=t(r);if("boolean"===o)return"boolean";if("string"===o)return"string";if("number"===o)return"number";if("symbol"===o)return"symbol";if("function"===o)return"GeneratorFunction"===n(r)?"generatorfunction":"function";if(function(t){return Array.isArray?Array.isArray(t):t instanceof Array}(r))return"array";if(function(t){return!(!t.constructor||"function"!=typeof t.constructor.isBuffer)&&t.constructor.isBuffer(t)}(r))return"buffer";if(function(t){try{if("number"==typeof t.length&&"function"==typeof t.callee)return!0}catch(e){if(-1!==e.message.indexOf("callee"))return!0}return!1}(r))return"arguments";if(function(t){return t instanceof Date||"function"==typeof t.toDateString&&"function"==typeof t.getDate&&"function"==typeof t.setDate}(r))return"date";if(function(t){return t instanceof Error||"string"==typeof t.message&&t.constructor&&"number"==typeof t.constructor.stackTraceLimit}(r))return"error";if(function(t){return t instanceof RegExp||"string"==typeof t.flags&&"boolean"==typeof t.ignoreCase&&"boolean"==typeof t.multiline&&"boolean"==typeof t.global}(r))return"regexp";switch(n(r)){case"Symbol":return"symbol";case"Promise":return"promise";case"WeakMap":return"weakmap";case"WeakSet":return"weakset";case"Map":return"map";case"Set":return"set";case"Int8Array":return"int8array";case"Uint8Array":return"uint8array";case"Uint8ClampedArray":return"uint8clampedarray";case"Int16Array":return"int16array";case"Uint16Array":return"uint16array";case"Int32Array":return"int32array";case"Uint32Array":return"uint32array";case"Float32Array":return"float32array";case"Float64Array":return"float64array"}if(function(t){return"function"==typeof t.throw&&"function"==typeof t.return&&"function"==typeof t.next}(r))return"generator";switch(o=e.call(r)){case"[object Object]":return"object";case"[object Map Iterator]":return"mapiterator";case"[object Set Iterator]":return"setiterator";case"[object String Iterator]":return"stringiterator";case"[object Array Iterator]":return"arrayiterator"}return o.slice(8,-1).toLowerCase().replace(/\s/g,"")};function n(t){return t.constructor?t.constructor.name:null}function o(t,e){var n=2<arguments.length&&void 0!==arguments[2]?arguments[2]:["option"];return i(t,e,n),a(t,e,n),function(t,e,n){var s=r(e),c=r(t);if("object"===s){if("object"!==c)throw new Error("[Type Error]: '".concat(n.join("."),"' require 'object' type, but got '").concat(c,"'"));Object.keys(e).forEach(function(r){var s=t[r],c=e[r],l=n.slice();l.push(r),i(s,c,l),a(s,c,l),o(s,c,l)})}if("array"===s){if("array"!==c)throw new Error("[Type Error]: '".concat(n.join("."),"' require 'array' type, but got '").concat(c,"'"));t.forEach(function(r,s){var c=t[s],l=e[s]||e[0],d=n.slice();d.push(s),i(c,l,d),a(c,l,d),o(c,l,d)})}}(t,e,n),t}function i(t,e,n){if("string"===r(e)){var o=r(t);if("?"===e[0]&&(e=e.slice(1)+"|undefined"),!(-1<e.indexOf("|")?e.split("|").map(function(t){return t.toLowerCase().trim()}).filter(Boolean).some(function(t){return o===t}):e.toLowerCase().trim()===o))throw new Error("[Type Error]: '".concat(n.join("."),"' require '").concat(e,"' type, but got '").concat(o,"'"))}}function a(t,e,n){if("function"===r(e)){var o=e(t,r(t),n);if(!0!==o){var i=r(o);throw"string"===i?new Error(o):"error"===i?o:new Error("[Validator Error]: The scheme for '".concat(n.join("."),"' validator require return true, but got '").concat(o,"'"))}}}return o.kindOf=r,o}()),r.exports);const o=t(n),i="5.4.1";function a(t,e){let r=document.getElementById(t);r||(r=document.createElement("style"),r.id=t,"loading"===document.readyState?document.addEventListener("DOMContentLoaded",()=>{document.head.appendChild(r)}):(document.head||document.documentElement).appendChild(r)),r.textContent=e}const s=globalThis.CUSTOM_USER_AGENT??("undefined"===typeof navigator?"":navigator.userAgent),c=/^(?:(?!chrome|android).)*safari/i.test(s),l=/iPad|iPhone|iPod/i.test(s)&&("undefined"===typeof window||!window.MSStream),d=l||s.includes("Macintosh")&&"undefined"!==typeof navigator&&navigator.maxTouchPoints>=1,u=/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(s)||d,p="undefined"!==typeof window&&"undefined"!==typeof document;const f={properties:["audioTracks","autoplay","buffered","controller","controls","crossOrigin","currentSrc","currentTime","defaultMuted","defaultPlaybackRate","duration","ended","error","loop","mediaGroup","muted","networkState","paused","playbackRate","played","preload","readyState","seekable","seeking","src","startDate","textTracks","videoTracks","volume"],methods:["addTextTrack","canPlayType","load","play","pause"],events:["abort","canplay","canplaythrough","durationchange","emptied","ended","error","loadeddata","loadedmetadata","loadstart","pause","play","playing","progress","ratechange","seeked","seeking","stalled","suspend","timeupdate","volumechange","waiting"],prototypes:["width","height","videoWidth","videoHeight","poster","webkitDecodedFrameCount","webkitDroppedFrameCount","playsInline","webkitSupportsFullscreen","webkitDisplayingFullscreen","onenterpictureinpicture","onleavepictureinpicture","disablePictureInPicture","cancelVideoFrameCallback","requestVideoFrameCallback","getVideoPlaybackQuality","requestPictureInPicture","webkitEnterFullScreen","webkitEnterFullscreen","webkitExitFullScreen","webkitExitFullscreen"]};class h extends Error{constructor(t){super("Failed to release ArtPlayer resources"),this.errors=t,this.name="ResourceCleanupError"}}class m{constructor(){this.cleanups=new Set,this.disposed=!1}get closed(){return this.disposed}add(t){let e=!0;const r=()=>{e&&(e=!1,this.cleanups.delete(r),t())};return this.closed?r():this.cleanups.add(r),r}child(){const t=new m,e=this.add(()=>{t.dispose()});return t.add(()=>{e()}),t}dispose(){if(this.closed)return;this.disposed=!0;const t=[];for(const r of Array.from(this.cleanups).reverse())try{r()}catch(e){e instanceof h?t.push(...e.errors):t.push(e)}if(t.length)throw new h(t)}}const g=new WeakMap,v=new WeakMap;function y(t){const e=g.get(t);if(!e)throw new Error("ArtPlayer lifecycle has not been initialized");return e}function b(t){return y(t).scope}function w(t){const e=y(t);return e.destroying||e.scope.closed}function x(t,e,r,n,o=!1){const i=y(t);if(i.destroying||i.scope.closed)return;i.destroying=!0;const a=[],s=t=>{try{t()}catch(e){a.push(...e instanceof h?e.errors:[e])}};n&&t.template?.$video&&s(()=>t.reset()),s(()=>i.scope.dispose()),s(()=>(t.template||i.mountingTemplate)?.destroy(r));const c=e.indexOf(t);-1!==c&&e.splice(c,1),t.isDestroy=!0,o||(i.releaseContainer?.(),i.releaseContainer=void 0),s(()=>t.emit("destroy")),s(()=>i.finalizers.dispose()),o&&i.rollback&&s(i.rollback),i.rollback=void 0,i.releaseContainer?.(),i.releaseContainer=void 0;for(const l of a.slice(1))console.warn("Additional ArtPlayer cleanup failure:",l);if(a.length)throw a[0]}const k=new WeakMap;function $(t,e){const r=b(t).child();return k.set(e,r),r}function E(t){const e=k.get(t);if(!e)throw new Error("ArtPlayer component has not been registered");return e}function A(t){k.get(t)?.dispose()}function C(t,e,r,n){const o=E(e);if(o.closed)return;const i=(...t)=>{if(!o.closed)return n(...t)};t.on(r,i),o.add(()=>{t.off(r,i)})}function S(t,e){return{on:(r,n)=>{C(t,e,r,n)},proxy:(r,n,o)=>function(t,e,r,n,o){const i=E(e);if(i.closed)return()=>{};const a=t.events.proxy(r,n,t=>{if(!i.closed)return o(t)});return i.add(()=>{t.events.remove(a)})}(t,e,r,n,o)}}function T(t){if(t.composedPath)return t.composedPath();const e=[];let r=t.target;for(;r;)e.push(r),r=r.parentNode??null;return"undefined"===typeof window||e.includes(window)||e.push(window),e}function L(t,e){return T(t).includes(e)}function P(){const t=document.createElement("div");return t.style.display="flex","flex"===t.style.display}function M(t){return t.getBoundingClientRect()}function z(){const t=document.createElement("div");t.style.cssText="position:fixed;top:env(safe-area-inset-top,0px);right:env(safe-area-inset-right,0px);bottom:env(safe-area-inset-bottom,0px);left:env(safe-area-inset-left,0px);pointer-events:none;visibility:hidden;";try{document.body.appendChild(t);const e=getComputedStyle(t);return{top:Number.parseFloat(e.top)||0,right:Number.parseFloat(e.right)||0,bottom:Number.parseFloat(e.bottom)||0,left:Number.parseFloat(e.left)||0}}finally{t.remove()}}function R(t,e=document){return e.querySelector(t)}function O(t,e){return t.classList.add(e)}function D(t,e){return t.classList.remove(e)}function I(t,e){return t.classList.contains(e)}function N(t,e){return e instanceof Element?t.appendChild(e):t.insertAdjacentHTML("beforeend",String(e)),t.lastElementChild||t.lastChild}function _(t){return Array.from(t.parentElement.children).filter(e=>e!==t)}function W(t,e){_(t).forEach(t=>D(t,e)),O(t,e)}function F(t,e){return e.parentNode.replaceChild(t,e),t}function V(t){return document.createElement(t)}function Y(t,e,r="top"){u||(t.setAttribute("aria-label",e),O(t,"hint--rounded"),O(t,`hint--${r}`))}function B(t="",e=""){const r=V("i");return O(r,"art-icon"),O(r,`art-icon-${t}`),N(r,e),r}function H(t,e,r){return t.style[e]=r,t}function j(t,e){for(const r in e)H(t,r,e[r]);return t}function q(t,e,r){return new Promise((n,o)=>{const i=r?r.child():new m;let a=!1,s=()=>{};function c(t){if(!a){a=!0;try{i.dispose()}catch(e){console.warn("Additional image cleanup failure:",e)}try{s()}catch(e){console.warn("Additional image cleanup failure:",e)}o(t)}}function l(t){if(!a&&!i.closed){a=!0;try{i.dispose(),n(t)}catch(e){try{s()}finally{o(e)}}}}if(i.add(()=>{if(!a){a=!0;try{s()}finally{n(void 0)}}}),!i.closed)try{const n=new Image;d(n,()=>{if(!e||1===e)return void l(n);const t=document.createElement("canvas"),o=t.getContext("2d");if(t.width=n.width*e,t.height=n.height*e,!o)throw new TypeError("Canvas 2D context is unavailable");a||i.closed||(o.drawImage(n,0,0,t.width,t.height),a||i.closed||t.toBlob(t=>{if(!a&&!i.closed)try{if(!t)throw new Error("Unable to encode thumbnail image");const e=URL.createObjectURL(t);let n=!1;const o=()=>{n||(n=!0,URL.revokeObjectURL(e))};if(s=r?r.add(o):o,a||i.closed)return void s();const c=new Image;d(c,()=>l(c)),i.closed||(c.src=e)}catch(e){c(e)}}))}),i.closed||(n.src=t)}catch(u){c(u)}function d(e,r){e.onload=()=>{if(!a&&!i.closed)try{r()}catch(u){c(u)}},e.onerror=()=>c(new Error(`Image load failed: ${t}`)),i.add(()=>{e.onload=null,e.onerror=null,a||e.removeAttribute("src")})}})}class U extends Error{constructor(t,e){super(t),"captureStackTrace"in Error&&"function"===typeof Error.captureStackTrace&&Error.captureStackTrace(this,e||this.constructor),this.name="ArtPlayerError"}}function X(t,e){if(!t)throw new U(e);return t}function G(t){const e=t;return e&&"function"===typeof e.catch?e.catch(()=>{}):t}function K(t){const e=t.search(/[?#]/),r=(e<0?t:t.slice(0,e)).trim().toLowerCase();return r.slice(r.lastIndexOf(".")+1)}function Z(t,e){const r=document.createElement("a");r.style.display="none",r.href=t,r.download=e,document.body.appendChild(r);try{r.click()}finally{r.remove()}}function J(t,e,r){return Math.max(Math.min(t,Math.max(e,r)),Math.min(e,r))}function Q(t){return t.charAt(0).toUpperCase()+t.slice(1)}function tt(t){if(!t)return"00:00";const e=Math.floor(t/3600),r=Math.floor((t-3600*e)/60),n=Math.floor(t-3600*e-60*r);return(e>0?[e,r,n]:[r,n]).map(t=>t<10?`0${t}`:String(t)).join(":")}const et={"&":"&","<":"<",">":">","'":"'",'"':"""},rt={"&":"&","<":"<",">":">","'":"'",""":'"'},nt=/(&|<|>|'|")/g;function ot(t){return t.replace(/[&<>'"]/g,t=>et[t]||t)}const it=Object.defineProperty,{hasOwnProperty:at}=Object.prototype;function st(t,e){return at.call(t,e)}function ct(t,e){return Object.getOwnPropertyDescriptor(t,e)}function lt(...t){const e=t=>!!t&&"object"===typeof t&&!Array.isArray(t);return t.reduce((t,r)=>(Object.keys(r).forEach(n=>{const o=t[n],i=r[n];let a;a=Array.isArray(o)&&Array.isArray(i)?o.concat(...i):e(o)&&e(i)?lt(o,i):i,it(t,n,{value:a,enumerable:!0,configurable:!0,writable:!0})}),t),{})}function dt(t){return"WEBVTT \r\n\r\n".concat((e=t,e.replace(/(\d\d:\d\d:\d\d)[,.](\d+)/g,(t,e,r)=>{let n=r.slice(0,3);return 1===r.length&&(n=`${r}00`),2===r.length&&(n=`${r}0`),`${e},${n}`})).replace(/\{\\([ibu])\}/g,"</$1>").replace(/\{\\([ibu])1\}/g,"<$1>").replace(/\{([ibu])\}/g,"<$1>").replace(/\{\/([ibu])\}/g,"</$1>").replace(/(\d\d:\d\d:\d\d),(\d\d\d)/g,"$1.$2").replace(/\{[\s\S]*?\}/g,"").concat("\r\n\r\n"));var e}function ut(t){return URL.createObjectURL(new Blob([t],{type:"text/vtt"}))}function pt(t){const e=new RegExp("Dialogue:\\s\\d,(\\d+:\\d\\d:\\d\\d.\\d\\d),(\\d+:\\d\\d:\\d\\d.\\d\\d),([^,]*),([^,]*),(?:[^,]*,){4}([\\s\\S]*)$","i");function r(t=""){return t.split(/[:.]/).map((t,e,r)=>{if(e===r.length-1){if(1===t.length)return`.${t}00`;if(2===t.length)return`.${t}0`}else if(1===t.length)return(0===e?"0":":0")+t;return 0===e?t:e===r.length-1?`.${t}`:`:${t}`}).join("")}return`WEBVTT\n\n${t.split(/\r?\n/).map(t=>{const n=t.match(e);if(!n)return null;const[,o="",i="",,,a=""]=n;return{start:r(o.trim()),end:r(i.trim()),text:a.replace(/\{[\s\S]*?\}/g,"").replace(/(\\N)/g,"\n").trim().split(/\r?\n/).map(t=>t.trim()).join("\n")}}).filter(t=>t).map((t,e)=>t?`${e+1}\n${t.start} --\x3e ${t.end}\n${t.text}`:"").filter(t=>t.trim()).join("\n\n")}`}const ft=Object.freeze(Object.defineProperty({__proto__:null,ArtPlayerError:U,addClass:O,append:N,assToVtt:pt,capitalize:Q,clamp:J,createElement:V,debounce:function(t,e){let r;return function(...n){clearTimeout(r),r=setTimeout(()=>(r=void 0,t.apply(this,n)),e)}},def:it,download:Z,errorHandle:X,escape:ot,get:ct,getComposedPath:T,getExt:K,getIcon:B,getRect:M,getSafeAreaInsets:z,getStyle:function(t,e,r=!0){const n=window.getComputedStyle(t,null).getPropertyValue(e);return r?Number.parseFloat(n):n},has:st,hasClass:I,includeFromEvent:L,inverseClass:W,isBrowser:p,isIOS:l,isIOS13:d,isInViewport:function(t,e=0){const r=t.getBoundingClientRect(),n=window.innerHeight||document.documentElement.clientHeight,o=window.innerWidth||document.documentElement.clientWidth,i=r.top-e<=n&&r.top+r.height+e>=0,a=r.left-e<=o+e&&r.left+r.width+e>=0;return i&&a},isMobile:u,isSafari:c,loadImg:function(t,e){return q(t,e,void 0)},mergeDeep:lt,query:R,queryAll:function(t,e=document){return Array.from(e.querySelectorAll(t))},remove:function(t){return t.parentNode.removeChild(t)},removeClass:D,replaceElement:F,secondToTime:tt,setStyle:H,setStyleText:a,setStyles:j,siblings:_,silencePromise:G,sleep:function(t=0){return new Promise(e=>setTimeout(e,t))},srtToVtt:dt,supportsFlex:P,throttle:function(t,e){let r=!1;return function(...n){r||(t.apply(this,n),r=!0,setTimeout(()=>{r=!1},e))}},tooltip:Y,unescape:function(t){return t.replace(nt,t=>rt[t]||t)},userAgent:s,vttToBlob:ut},Symbol.toStringTag,{value:"Module"}));function ht(){}function mt(t,e,r,n,o={}){const{capture:i=!1,once:a=!1,signal:s}=o;if(t.closed||s?.aborted)return ht;let c=ht;function l(e){a&&c(),t.closed||("function"===typeof n?n.call(this,e):n.handleEvent(e))}return e.addEventListener(r,l,o),c=t.add(()=>{try{e.removeEventListener(r,l,i)}finally{s?.removeEventListener("abort",c)}}),s?.addEventListener("abort",c,{once:!0}),c}function gt(t,e,r){if(t.closed)return ht;let n=!0,o=ht;const i=setTimeout(()=>{n&&(o(),t.closed||e())},r);return o=t.add(()=>{n=!1,clearTimeout(i)}),o}function vt(t,e=0){return t.closed?Promise.resolve(!1):new Promise(r=>{let n=!1,o=ht;const i=setTimeout(()=>{n=!0,o(),r(!0)},e);o=t.add(()=>{clearTimeout(i),n||r(!1)})})}const yt=new WeakSet;function bt(t){yt.add(t),t.preventDefault()}function wt(t){return!t.altKey&&!t.ctrlKey&&!t.metaKey&&!t.isComposing&&229!==t.keyCode}function xt(t,e,r=()=>e.click(),n=()=>!0){if(t.closed)return;e.hasAttribute("role")||e.setAttribute("role","button"),e.hasAttribute("tabindex")||(e.tabIndex=0);let o=!1;const i=()=>n()&&"true"!==e.getAttribute("aria-disabled")&&!e.hasAttribute("disabled"),a=t=>(t.composedPath()[0]||t.target)===e;mt(t,e,"keydown",t=>{const e=t;a(e)&&wt(e)&&!e.defaultPrevented&&("Enter"===e.key?(bt(e),!e.repeat&&i()&&r()):" "===e.key&&(bt(e),!e.repeat&&i()&&(o=!0)))}),mt(t,e,"keyup",t=>{const n=t;if(" "!==n.key)return;const s=o;o=!1,s&&a(n)&&wt(n)&&!n.defaultPrevented&&i()&&e.ownerDocument.activeElement===e&&(bt(n),r())}),mt(t,e,"blur",()=>{o=!1}),t.add(()=>{o=!1})}function kt(t,e){return N(t,e)}function $t(t,e){return e.querySelector(t)}const Et=new WeakSet;function At(t){const e=t.template.$player;!w(t)&&e.isConnected&&(e.hasAttribute("tabindex")||(e.setAttribute("tabindex","-1"),Et.has(e)||(Et.add(e),b(t).add(()=>{Et.delete(e),"-1"===e.getAttribute("tabindex")&&e.removeAttribute("tabindex")}))),e.focus({preventScroll:!0}))}const Ct=new WeakSet,St="[tabindex],button,input,select,textarea,a[href],[contenteditable]";function Tt(t){return[t,...t.querySelectorAll(St)].find(t=>{if(!t.matches(St)||t.tabIndex<0||t.matches(":disabled")||t.closest("[inert]")||"true"===t.getAttribute("aria-disabled")||!t.getClientRects().length)return!1;const e=t.ownerDocument.defaultView?.getComputedStyle(t);return"hidden"!==e?.visibility&&"collapse"!==e?.visibility})}function Lt(t,e,r){const n=e?.ownerDocument,o=n?.activeElement;if(!["control","contextmenu"].includes(t.name??"")||Ct.has(t)||!e||!n||!o||!e.contains(o))return()=>{};const i=t.art.template.$player,a=Array.from(i.querySelectorAll(`.art-${t.name}`)),s=a.indexOf(e),c=[...a.slice(s+1),...a.slice(0,s).reverse()];return Ct.add(t),()=>{if(Ct.delete(t),w(t.art)||!i.isConnected||n.activeElement!==n.body)return;const e=r?t.cache.get(r)?.$ref:void 0;for(const t of[...e?[e]:[],...c]){if(!i.contains(t))continue;const e=Tt(t);if(e)return void e.focus({preventScroll:!0})}At(t.art)}}const Pt="array",Mt="boolean",zt="string",Rt="number",Ot="object",Dt="function";function It(t,e,r){return X(e===zt||e===Rt||t instanceof Element,`${r.join(".")} require '${zt}' or 'Element' type`)}const Nt={html:It,disable:`?${Mt}`,name:`?${zt}`,index:`?${Rt}`,style:`?${Ot}`,click:`?${Dt}`,mounted:`?${Dt}`,tooltip:`?${zt}|${Rt}`,width:`?${Rt}`,selector:`?${Pt}`,onSelect:`?${Dt}`,switch:`?${Mt}`,onSwitch:`?${Dt}`,range:`?${Pt}`,onRange:`?${Dt}`,onChange:`?${Dt}`},_t={id:zt,container:It,url:zt,poster:zt,type:zt,theme:zt,lang:zt,volume:Rt,isLive:Mt,muted:Mt,autoplay:Mt,autoSize:Mt,autoMini:Mt,loop:Mt,flip:Mt,playbackRate:Mt,aspectRatio:Mt,screenshot:Mt,setting:Mt,hotkey:Mt,pip:Mt,mutex:Mt,backdrop:Mt,fullscreen:Mt,fullscreenWeb:Mt,subtitleOffset:Mt,miniProgressBar:Mt,useSSR:Mt,playsInline:Mt,lock:Mt,gesture:Mt,fastForward:Mt,autoPlayback:Mt,autoOrientation:Mt,airplay:Mt,proxy:`?${Dt}`,plugins:[Dt],layers:[Nt],contextmenu:[Nt],settings:[Nt],controls:[{...Nt,position:(t,e,r)=>{const n=["top","left","right"];return X("string"===typeof t&&n.includes(t),`${r.join(".")} only accept ${n.toString()} as parameters`)}}],quality:[{default:`?${Mt}`,html:zt,url:zt}],highlight:[{time:Rt,text:zt}],thumbnails:{url:zt,number:Rt,column:Rt,width:Rt,height:Rt,scale:Rt},subtitle:{url:zt,name:zt,type:zt,style:Ot,escape:Mt,encoding:zt,onVttLoad:Dt},moreVideoAttr:Ot,i18n:Ot,icons:Ot,cssVar:Ot,customType:Ot},Wt=new WeakSet;class Ft{constructor(t){this.id=0,this.art=t,this.cache=new Map,this.add=this.add.bind(this),this.remove=this.remove.bind(this),this.update=this.update.bind(this)}get show(){return I(this.art.template.$player,`art-${this.name}-show`)}set show(t){const{$player:e}=this.art.template,r=`art-${this.name}-show`;t?O(e,r):D(e,r),this.art.emit(this.name,t)}toggle(){this.show=!this.show}add(t){if(w(this.art))return;const e="function"===typeof t?t(this.art):t;if(w(this.art))return;if(e.html=e.html||"",o(e,Nt),!this.$parent||!this.name||e.disable)return;const r=e.name||`${this.name}${this.id}`,n=this.cache;X(!n.has(r),`Can't add an existing [${r}] to the [${this.name}]`),this.id+=1;const i=document.createElement("div"),a=$(this.art,i),s=[],c=Object.getOwnPropertyDescriptor(this,r);let l=!1;a.add(()=>{for(const t of s)this.art.events.remove(t)});try{if(a.closed)return;if(function(t,e,r,n,o,i){O(t,`art-${r}`),O(t,`art-${r}-${n}`);const a=Array.from(e.children);t.dataset.index=String(i.index||o);const s=a.find(e=>Number(e.dataset.index)>=Number(t.dataset.index));s?s.insertAdjacentElement("beforebegin",t):N(e,t),i.html&&N(t,i.html),i.style&&j(t,i.style),i.tooltip&&Y(t,i.tooltip)}(i,this.$parent,this.name,r,this.id,e),a.closed)return;if(e.click){("control"===this.name&&!e.selector||"contextmenu"===this.name&&!i.querySelector("[data-value]"))&&!i.querySelector("button,input,select,textarea,a[href],[tabindex],[contenteditable]")&&xt(a,i);const t=this.art.events.proxy(i,"click",t=>{a.closed||(t.preventDefault(),e.click.call(this.art,this,t))});s.push(t)}if(e.selector&&["left","right"].includes(e.position)&&this.selector(e,i,s),a.closed)return;return function(t,e,r){const n=t;"__proto__"===e?Object.defineProperty(n,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):n[e]=r}(this,r,i),l=!0,n.set(r,{$ref:i,events:s,option:e}),e.mounted&&e.mounted.call(this.art,i),i}catch(d){try{A(i)}catch(u){console.warn("ArtPlayer component cleanup failed:",u)}throw n.get(r)?.$ref===i&&n.delete(r),l&&this[r]===i&&(c?Object.defineProperty(this,r,c):delete this[r]),i.remove(),d}}remove(t){X(this.cache.has(t),`Can't find [${t}] from the [${this.name}]`);const e=this.cache.get(t);if(Wt.has(e))return;const r=Lt(this,e.$ref);Wt.add(e);try{e.option.beforeUnmount&&e.option.beforeUnmount.call(this.art,e.$ref);try{A(e.$ref)}finally{this.cache.get(t)===e&&(this.cache.delete(t),delete this[t]),e.$ref.remove()}}finally{Wt.delete(e),r()}}update(t){const e=Lt(this,this.cache.get(t.name)?.$ref,t.name);try{if(this.cache.has(t.name)){const e=this.cache.get(t.name);t=Object.assign(e.option,t),this.remove(t.name)}return this.add(t)}finally{e()}}}function Vt(t){for(const e of t.querySelectorAll("[data-value]"))e.setAttribute("aria-pressed",String(e.classList.contains("art-current")))}function Yt(t,e){const r=E(t);if(!r.closed){t.setAttribute("role","group"),t.setAttribute("aria-label",e);for(const n of t.querySelectorAll("[data-value]"))xt(r,n),n.setAttribute("aria-label",`${e}: ${n.textContent?.trim()??""}`);Vt(t)}}const Bt=new WeakMap;function Ht(t,e){e?Bt.set(t,e):Bt.delete(t)}function jt(t){const e=new Set;let r=t;for(;!e.has(r);){e.add(r);let t,n=r;for(;n&&!t;)t=Bt.get(n),n=n.parentElement;if(!t)return r;r=t}return t}function qt(t){const e=t;return!!e&&(["INPUT","TEXTAREA","SELECT"].includes(e.tagName)||e.isContentEditable)}function Ut(t){const e=t.ownerDocument.defaultView?.getComputedStyle(t).visibility;return t.isConnected&&!t.matches(":disabled")&&!t.closest("[inert]")&&"true"!==t.getAttribute("aria-disabled")&&t.getClientRects().length>0&&"hidden"!==e&&"collapse"!==e}class Xt extends Ft{constructor(t){super(t),this.name="contextmenu",this.$parent=t.template.$contextmenu,$(t,this.$parent),u||this.init()}init(){const{option:t,template:{$player:e,$contextmenu:r}}=this.art,{on:n,proxy:o}=S(this.art,r);t.playbackRate&&this.add(function(t){return e=>{const{i18n:r,constructor:{PLAYBACK_RATE:n}}=e,o=n.map(t=>`<span data-value="${t}">${1===t?r.get("Normal"):t.toFixed(1)}</span>`).join(""),i=r.get("Play Speed");return{...t,html:`${i}: ${o}`,click:(t,r)=>{const n=r.target instanceof HTMLElement?r.target.dataset.value:void 0;n&&(e.playbackRate=Number(n),t.show=!1)},mounted:t=>{const{on:r}=S(e,t),n=R('[data-value="1"]',t);n&&W(n,"art-current"),Yt(t,i),r("video:ratechange",()=>{const r=Array.from(t.querySelectorAll("span")).find(t=>Number(t.dataset.value)===e.playbackRate);r&&(W(r,"art-current"),Vt(t))})}}}}({name:"playbackRate",index:10})),t.aspectRatio&&this.add(function(t){return e=>{const{i18n:r,constructor:{ASPECT_RATIO:n}}=e,o=n.map(t=>`<span data-value="${t}">${"default"===t?r.get("Default"):t}</span>`).join(""),i=r.get("Aspect Ratio");return{...t,html:`${i}: ${o}`,click:(t,r)=>{const n=r.target instanceof HTMLElement?r.target.dataset.value:void 0;n&&(e.aspectRatio=n,t.show=!1)},mounted:t=>{const{on:r}=S(e,t),n=R('[data-value="default"]',t);n&&W(n,"art-current"),Yt(t,i),r("aspectRatio",e=>{const r=Array.from(t.querySelectorAll("span")).find(t=>t.dataset.value===e);r&&(W(r,"art-current"),Vt(t))})}}}}({name:"aspectRatio",index:20})),t.flip&&this.add(function(t){return e=>{const{i18n:r,constructor:{FLIP:n}}=e,o=n.map(t=>`<span data-value="${t}">${r.get(Q(t))}</span>`).join(""),i=r.get("Video Flip");return{...t,html:`${i}: ${o}`,click:(t,r)=>{const n=r.target instanceof HTMLElement?r.target.dataset.value:void 0;n&&(e.flip=n.toLowerCase(),t.show=!1)},mounted:t=>{const{on:r}=S(e,t),n=R('[data-value="normal"]',t);n&&W(n,"art-current"),Yt(t,i),r("flip",e=>{const r=Array.from(t.querySelectorAll("span")).find(t=>t.dataset.value===e);r&&(W(r,"art-current"),Vt(t))})}}}}({name:"flip",index:30})),this.add(function(t){return e=>({...t,html:e.i18n.get("Video Info"),click:t=>{e.info.show=!0,t.show=!1}})}({name:"info",index:40})),this.add(function(t){return{...t,html:`<a href="https://artplayer.org" target="_blank" style="width:100%;">ArtPlayer ${i}</a>`}}({name:"version",index:50})),this.add(function(t){return e=>({...t,html:e.i18n.get("Close"),click:t=>{t.show=!1}})}({name:"close",index:60}));for(let i=0;i<t.contextmenu.length;i++)this.add(t.contextmenu[i]);if(w(this.art))return;A(r);const a=$(this.art,r),s=(t,e)=>{this.show=!0,a.closed||w(this.art)||!this.show||function(t,e,r){const{$player:n,$contextmenu:o}=t.template,{height:i,width:a,left:s,top:c}=M(n),{height:l,width:d}=M(o);let u=e-s,p=r-c;e+d>s+a&&(u=a-d),r+l>c+i&&(p=i-l),w(t)||j(o,{top:`${p}px`,left:`${u}px`})}(this.art,t,e)},c=function(t,e){const{art:r}=t,{$player:n,$contextmenu:o}=r.template,i=E(o),a=()=>!i.closed&&!w(r);let s,c=!1,l="",d=0;const u=()=>{const t=n.ownerDocument.activeElement;s=t&&n.contains(t)?jt(t):n,Ht(o,s)},p=()=>Array.from(o.querySelectorAll("[tabindex],button,input,select,textarea,a[href],[contenteditable]")).filter(t=>t.tabIndex>=0&&Ut(t)),f=r.i18n.get("Context Menu");if(!a())return{pointer:()=>!1};o.setAttribute("role","group"),o.setAttribute("aria-label",f);const h=t=>{if(!a())return;if(t)return void(o.contains(n.ownerDocument.activeElement)||u());const e=n.ownerDocument.activeElement,i=o.contains(e)||c&&e===n.ownerDocument.body,d=s;s=void 0,c=!1,l="",Ht(o),i&&(d&&n.contains(d)&&Ut(d)&&d.focus({preventScroll:!0}),(n.ownerDocument.activeElement===n.ownerDocument.body||o.contains(n.ownerDocument.activeElement))&&At(r))};r.on("contextmenu",h),i.add(()=>{r.off("contextmenu",h),Ht(o)}),mt(i,o,"focusin",()=>{c=!0});let m=!1;return mt(i,o,"focusout",e=>{o.contains(e.relatedTarget)||m||(m=!0,gt(i,()=>{m=!1,a()&&t.show&&!o.contains(n.ownerDocument.activeElement)&&(t.show=!1)},0))}),mt(i,n,"keydown",n=>{const i=n;if(!a()||!wt(i)||i.defaultPrevented)return;if(("ContextMenu"===i.key||"F10"===i.key&&i.shiftKey)&&r.constructor.CONTEXTMENU&&!qt(i.target)){bt(i),u();const r=i.target.getBoundingClientRect();return e(r.left,r.bottom),void(a()&&t.show&&p()[0]?.focus({preventScroll:!0}))}if(!t.show||!o.contains(i.target))return;if("Escape"===i.key)return bt(i),void(t.show=!1);if("Tab"===i.key)return void(t.show=!1);if(qt(i.target))return;const s=p(),c=s.indexOf(i.target);let f;if("ArrowDown"===i.key||"ArrowRight"===i.key)f=s[(c+1)%s.length];else if("ArrowUp"===i.key||"ArrowLeft"===i.key)f=s[(c+s.length-1)%s.length];else if("Home"===i.key)f=s[0];else if("End"===i.key)f=s[s.length-1];else{if(1!==i.key.length||" "===i.key)return;{const t=i.key.toLowerCase();l=Date.now()-d>700?t:l+t,d=Date.now();const e=[...l].every(e=>e===t)?t:l;f=[...s.slice(c+1),...s.slice(0,c+1)].find(t=>(t.getAttribute("aria-label")||t.textContent||"").trim().toLowerCase().startsWith(e))}}bt(i),f?.focus({preventScroll:!0})}),{pointer:t=>!(!a()||!r.constructor.CONTEXTMENU||qt(t.target))&&(u(),!0)}}(this,s);o(e,"contextmenu",t=>{c.pointer(t)&&(t.preventDefault(),s(t.clientX,t.clientY))}),o(e,"click",t=>{L(t,r)||(this.show=!1)}),n("blur",()=>{this.show=!1})}}const Gt=new WeakMap,Kt=new WeakMap,Zt=new WeakMap;function Jt(t,e){const r=Gt.get(t);r?.active()&&void 0!==r.resumePlaying&&(!e&&r.internalPause?r.internalPause=!1:(r.resumePlaying=e,e||r.pauseRevision++))}function Qt(t){return Zt.get(t)||b(t)}function te(t){const e=Gt.get(t),r=Zt.get(t);return()=>Gt.get(t)===e&&(!e||e.active())&&Zt.get(t)===r&&(!r||!r.closed)}function ee(t){const e=Zt.get(t),r=b(t).child(),n=r.child();Zt.set(t,r),r.add(()=>{Zt.get(t)===r&&Zt.delete(t)});const o={scope:n,assigned:!1,acceptingEvents:!1,pauseRevision:0,active:()=>!w(t)&&!n.closed&&Gt.get(t)===o};return Gt.set(t,o),n.add(()=>{Gt.get(t)===o&&Gt.delete(t),o.onAssigned=void 0,o.onError=void 0}),e?.dispose(),o}function re(t){t.assigned=!0;const e=t.onAssigned;t.onAssigned=void 0,t.active()&&e?.()}function ne(t,e,r){Kt.set(t,e),e.acceptingEvents=!0;try{t.url=r}finally{Kt.get(t)===e&&(Kt.delete(t),re(e))}}function oe(t,e){t.active()&&(t.onError?t.onError(e):console.warn("Failed to initialize ArtPlayer source:",e),t.scope.dispose())}function ie(t,e){const{$progress:r}=t.template,{left:n}=M(r),o=J((u?e.touches[0].clientX:e.clientX)-n,0,r.clientWidth),i=o/r.clientWidth*t.duration;return{second:i,time:tt(i),width:o,percentage:J(o/r.clientWidth,0,1)}}function ae(t,e,r=()=>!0){if(r())if(t.isRotate){const n=(e.touches[0].clientY-t.top)/t.height,o=n*t.duration;if(!r())return;t.emit("setBar","played",n,e),r()&&(t.seek=o)}else{const{second:n,percentage:o}=ie(t,e);if(!r())return;t.emit("setBar","played",o,e),r()&&(t.seek=n)}}const se=new Map([["ArrowRight",1],["ArrowUp",1],["ArrowLeft",-1],["ArrowDown",-1],["PageUp",10],["PageDown",-10]]);function ce(t,e,r,n,o,i="horizontal"){const a=t=>[t.min,t.max,t.value,t.step].every(Number.isFinite)&&t.max>t.min&&t.step>0,s=(t,e)=>Math.min(e.max,Math.max(e.min,t)),c=()=>{if(t.closed)return;const r=n(),o=a(r),i=o?s(r.value,r):0;e.setAttribute("aria-disabled",String(!o)),e.setAttribute("aria-valuemin",String(o?r.min:0)),e.setAttribute("aria-valuemax",String(o?r.max:0)),e.setAttribute("aria-valuenow",String(i)),e.setAttribute("aria-valuetext",r.text(i))};return t.closed||(e.setAttribute("role","slider"),e.tabIndex=0,e.setAttribute("aria-label",r),e.setAttribute("aria-orientation",i),mt(t,e,"keydown",t=>{const r=t;if((r.composedPath()[0]||r.target)!==e||!wt(r)||r.defaultPrevented)return;const i=se.get(r.key);if(void 0===i&&"Home"!==r.key&&"End"!==r.key)return;bt(r);const l=n();if(!a(l))return void c();const d="Home"===r.key?l.min:"End"===r.key?l.max:s(l.value,l)+i*l.step;o(s(d,l)),c()}),c()),c}const le=new WeakMap;function de(t){return le.get(t)||0}function ue(t,e,r){let n,o=!1,i=!1,a=!1,s=de(t);const c=()=>a||de(t)!==s,l=()=>!!t.template?.$video?.seeking;return{restore(i=()=>{t.currentTime=e}){if(!r()||c())return;const d=de(t);i(),s=de(t),s>d+1&&(a=!0),r()&&(n=t.currentTime,r()&&!c()&&(o=l()))},manual(){a=!0},ready(){if(!r()||l())return!1;const e=void 0!==n&&Math.abs(t.currentTime-n)>.05;if(!c()&&o&&!i&&void 0!==n&&e){if(i=!0,!r())return!1;t.currentTime=n}return r()&&!l()}}}function pe(t,e){const{icons:r,option:n}=t,{$player:o}=t.template,i=E(e),{on:a}=S(t,e);let s=()=>{};const c=$t(".art-progress-hover",e),l=$t(".art-progress-loaded",e),d=$t(".art-progress-played",e),p=$t(".art-progress-highlight",e),f=$t(".art-progress-indicator",e),h=$t(".art-progress-tip",e);function m(r,n){const{width:o,time:i}=n||ie(t,r);h.textContent=i||"00:00";const a=h.clientWidth;o<=a/2?H(h,"left",0):o>e.clientWidth-a/2?H(h,"left",e.clientWidth-a+"px"):H(h,"left",o-a/2+"px")}r.indicator?N(f,r.indicator):H(f,"backgroundColor","var(--art-theme)"),a("setBar",function(r,n,a){const g="played"===r&&a&&u;if("loaded"===r&&H(l,"width",100*n+"%"),"hover"===r&&(H(c,"width",100*n+"%"),L(a,p)?function(r){const{width:n}=ie(t,r),o=r.target instanceof HTMLElement?r.target.dataset.text:void 0;h.textContent=o??"";const i=h.clientWidth;n<=i/2?H(h,"left",0):n>e.clientWidth-i/2?H(h,"left",e.clientWidth-i+"px"):H(h,"left",n-i/2+"px")}(a):m(a),0===n?D(o,"art-progress-hover"):O(o,"art-progress-hover")),"played"===r&&(H(d,"width",100*n+"%"),H(f,"left",100*n+"%")),g){O(o,"art-progress-hover");m(a,{width:e.clientWidth*n,time:tt(n*t.duration)}),s(),s=gt(i,()=>{D(o,"art-progress-hover")},500)}}),a("video:loadedmetadata",function(){p.textContent="";for(let e=0;e<n.highlight.length;e++){const r=n.highlight[e],o=J(r.time,0,t.duration)/t.duration*100,i=document.createElement("span");i.dataset.text=r.text,i.dataset.time=String(r.time),i.style.left=`${o}%`,N(p,i)}}),t.constructor.USE_RAF?a("raf",()=>{t.emit("setBar","played",t.played),t.emit("setBar","loaded",t.loaded)}):(a("video:timeupdate",()=>{t.emit("setBar","played",t.played)}),a("video:progress",()=>{t.emit("setBar","loaded",t.loaded)}),a("video:ended",()=>{t.emit("setBar","played",1)})),t.emit("setBar","loaded",t.loaded||0)}function fe(t){return e=>({...t,html:'\n <div class="art-control-progress-inner">\n <div class="art-progress-hover"></div>\n <div class="art-progress-loaded"></div>\n <div class="art-progress-played"></div>\n <div class="art-progress-highlight"></div>\n <div class="art-progress-indicator"></div>\n <div class="art-progress-tip">00:00</div>\n </div>\n ',mounted:t=>{pe(e,t),function(t,e){const{$progress:r}=t.template,n=e.querySelector(".art-progress-indicator"),{on:o,proxy:i}=S(t,e),a=E(e);let s=0;const c=()=>{const e=te(t);return()=>!a.closed&&!w(t)&&e()},l=()=>{const t=++s,e=c();return()=>t===s&&e()};if(!u){let e;i(r,"click",e=>{e.target!==n&&ae(t,e,l())}),i(r,"mousemove",e=>{const r=c(),{percentage:n}=ie(t,e);r()&&t.emit("setBar","hover",n,e)}),i(r,"mouseleave",e=>{t.emit("setBar","hover",0,e)}),i(r,"mousedown",t=>{e=0===t.button?l():void 0}),o("document:mousemove",r=>{const n=e;if(n?.()){const{second:o,percentage:i}=ie(t,r);if(!n()||e!==n)return;t.emit("setBar","played",i,r),n()&&e===n&&(t.seek=o)}else e=void 0}),o("document:mouseup",()=>{e=void 0})}}(e,t),function(t,e){const r=E(e),{on:n}=S(t,e);let o,i=0;const a=ce(r,e,t.i18n.get("Progress"),()=>({min:0,max:t.duration,value:t.currentTime,step:t.constructor.SEEK_STEP,text:e=>`${tt(e)} / ${tt(Number.isFinite(t.duration)&&t.duration>0?t.duration:0)}`}),e=>{const n=++i;o?.dispose();const s=r.child();o=s;const c=Qt(t).add(()=>{s.dispose()});s.add(()=>{c()}),s.add(()=>{o===s&&(o=void 0)});const l=te(t),d=()=>n===i&&!s.closed&&!w(t)&&l(),u=ue(t,e,d),p=()=>{d()?u.ready()&&(s.dispose(),a()):s.dispose()};for(const r of["video:seeked","video:ended"])t.on(r,p),s.add(()=>{t.off(r,p)});try{t.emit("setBar","played",e/t.duration),d()&&u.restore(()=>{t.seek=e}),p()}catch(f){throw s.dispose(),f}});n("video:loadedmetadata",a),n("video:durationchange",a),n("video:emptied",a),n("video:timeupdate",a),n("video:seeking",a),n("video:seeked",a),n("video:ended",a)}(e,t)}})}function he(t){const{option:e}=t.art;e.isLive||t.add(fe({name:"progress",position:"top",index:10})),t.add({name:"thumbnails",position:"top",index:20}),t.add(function(t){return e=>({...t,mounted:t=>{const{on:r,proxy:n}=S(e,t),{icons:o,i18n:i}=e,a=kt(t,o.play),s=kt(t,o.pause);function c(){t.setAttribute("aria-label",i.get("Play")),H(a,"display","flex"),H(s,"display","none")}function l(){t.setAttribute("aria-label",i.get("Pause")),H(a,"display","none"),H(s,"display","flex")}xt(E(t),t,()=>(e.playing?s:a).click()),Y(a,i.get("Play")),Y(s,i.get("Pause")),n(a,"click",()=>{G(e.play())}),n(s,"click",()=>{e.pause()}),e.playing?l():c(),r("video:playing",()=>{l()}),r("video:pause",()=>{c()})}})}({name:"playAndPause",position:"left",index:10})),t.add(function(t){return e=>({...t,mounted:t=>{const{on:r,proxy:n}=S(e,t),{icons:o,i18n:i}=e,a=kt(t,o.volume),s=kt(t,o.volumeClose);for(const e of[a,s])xt(E(t),e),e.setAttribute("aria-label",i.get("Mute"));const c=kt(t,'<div class="art-volume-panel"></div>'),l=kt(c,'<div class="art-volume-inner"></div>'),d=kt(l,'<div class="art-volume-val"></div>'),p=kt(l,'<div class="art-volume-slider"></div>'),f=kt(p,'<div class="art-volume-handle"></div>'),h=kt(f,'<div class="art-volume-loaded"></div>'),m=kt(p,'<div class="art-volume-indicator"></div>'),g=E(t);let v=0;const y=ce(g,p,i.get("Volume"),()=>({min:0,max:100,value:e.muted?0:100*e.volume,step:100*e.constructor.VOLUME_STEP,text:t=>`${Math.round(t)}%`}),t=>{const r=++v;e.muted=!1,r!==v||g.closed||w(e)||(e.volume=t/100)},"vertical");function b(t){const{top:e,height:r}=M(p);return 1-(t.clientY-e)/r}function x(){y();const r=t.ownerDocument.activeElement,n=e.muted||0===e.volume,o=n?s:a;if(a.setAttribute("aria-pressed",String(e.muted)),s.setAttribute("aria-pressed",String(e.muted)),n)H(a,"display","none"),H(s,"display","flex"),H(m,"top","100%"),H(h,"top","100%"),d.textContent="0";else{const t=100*e.volume;H(a,"display","flex"),H(s,"display","none"),H(m,"top",100-t+"%"),H(h,"top",100-t+"%"),d.textContent=String(Math.floor(t))}r!==a&&r!==s||r===o||o.focus({preventScroll:!0})}if(x(),r("video:volumechange",x),n(a,"click",()=>{e.muted=!0}),n(s,"click",()=>{e.muted=!1}),u)H(c,"display","none");else{let t=!1;n(p,"mousedown",r=>{t=0===r.button,e.volume=b(r)}),r("document:mousemove",r=>{t&&(e.muted=!1,e.volume=b(r))}),r("document:mouseup",()=>{t&&(t=!1)})}}})}({name:"volume",position:"left",index:20})),e.isLive||t.add(function(t){return e=>({...t,style:u?{fontSize:"12px",padding:"0 5px"}:{cursor:"auto",padding:"0 10px"},mounted:t=>{const{on:r}=S(e,t);function n(){const r=`${tt(e.currentTime)} / ${tt(e.duration)}`;r!==t.textContent&&(t.textContent=r)}n();const o=["video:loadedmetadata","video:timeupdate","video:progress"];for(let e=0;e<o.length;e++)r(o[e],n)}})}({name:"time",position:"left",index:30})),e.quality.length&&vt(b(t.art)).then(r=>{r&&!b(t.art).closed&&(t.art.quality=e.quality)}).catch(t=>{console.warn("ArtPlayer quality initialization failed:",t)}),e.screenshot&&!u&&t.add(function(t){return e=>({...t,tooltip:e.i18n.get("Screenshot"),mounted:t=>{const{proxy:r}=S(e,t),{icons:n}=e;xt(E(t),t),kt(t,n.screenshot),r(t,"click",()=>{G(e.screenshot())})}})}({name:"screenshot",position:"right",index:20})),e.setting&&t.add(function(t){return e=>({...t,tooltip:e.i18n.get("Show Setting"),mounted:t=>{const{on:r,proxy:n}=S(e,t),{icons:o,i18n:i}=e;kt(t,o.setting),xt(E(t),t),t.setAttribute("aria-expanded","false"),n(t,"click",()=>{e.setting.toggle(),e.setting.resize()}),r("setting",e=>{t.setAttribute("aria-expanded",String(e)),Y(t,i.get(e?"Hide Setting":"Show Setting"))})}})}({name:"setting",position:"right",index:30})),e.pip&&t.add(function(t){return e=>({...t,tooltip:e.i18n.get("PIP Mode"),mounted:t=>{const{on:r,proxy:n}=S(e,t),{icons:o,i18n:i}=e;xt(E(t),t),kt(t,o.pip),n(t,"click",()=>{e.pip=!e.pip}),r("pip",e=>{Y(t,i.get(e?"Exit PIP Mode":"PIP Mode"))})}})}({name:"pip",position:"right",index:40})),e.airplay&&"WebKitPlaybackTargetAvailabilityEvent"in window&&window.WebKitPlaybackTargetAvailabilityEvent&&t.add(function(t){return e=>({...t,tooltip:e.i18n.get("AirPlay"),mounted:t=>{const{proxy:r}=S(e,t),{icons:n}=e;xt(E(t),t),kt(t,n.airplay),r(t,"click",()=>e.airplay())}})}({name:"airplay",position:"right",index:50})),e.fullscreenWeb&&t.add(function(t){return e=>({...t,tooltip:e.i18n.get("Web Fullscreen"),mounted:t=>{const{on:r,proxy:n}=S(e,t),{icons:o,i18n:i}=e;xt(E(t),t);const a=kt(t,o.fullscreenWebOn),s=kt(t,o.fullscreenWebOff);H(s,"display","none"),n(t,"click",()=>{e.fullscreenWeb=!e.fullscreenWeb}),r("fullscreenWeb",e=>{e?(Y(t,i.get("Exit Web Fullscreen")),H(a,"display","none"),H(s,"display","inline-flex")):(Y(t,i.get("Web Fullscreen")),H(a,"display","inline-flex"),H(s,"display","none"))})}})}({name:"fullscreenWeb",position:"right",index:60})),e.fullscreen&&t.add(function(t){return e=>({...t,tooltip:e.i18n.get("Fullscreen"),mounted:t=>{const{on:r,proxy:n}=S(e,t),{icons:o,i18n:i}=e;xt(E(t),t);const a=kt(t,o.fullscreenOn),s=kt(t,o.fullscreenOff);H(s,"display","none"),n(t,"click",()=>{e.fullscreen=!e.fullscreen}),r("fullscreen",e=>{e?(Y(t,i.get("Exit Fullscreen")),H(a,"display","none"),H(s,"display","inline-flex")):(Y(t,i.get("Fullscreen")),H(a,"display","inline-flex"),H(s,"display","none"))})}})}({name:"fullscreen",position:"right",index:70}));for(let r=0;r<e.controls.length;r++)t.add(e.controls[r])}const me=new WeakMap;const ge="button,input,select,textarea,a[href],[tabindex],[contenteditable]";const ve=new WeakMap;function ye(t,e){const r=ve.get(t);X(!r||E(r.owner).closed,"Cannot share selector items between active controls"),r||(it(t,"$control_option",{get:()=>ve.get(t).option.selector}),it(t,"$control_item",{get:()=>ve.get(t).item}),it(t,"$control_value",{get:()=>ve.get(t).value})),ve.set(t,e)}function be(t,e){t.innerHTML=e}function we(t,e,r,n,o){const{proxy:i}=t.events,a=E(n),s=r.selector;O(n,"art-control-selector");const c=document.createElement("div");O(c,"art-selector-value"),N(c,r.html),n.textContent="",N(n,c);const l=kt(n,'<div class="art-selector-list"></div>');for(let f=0;f<s.length;f++){const t=s[f],e=document.createElement("div");O(e,"art-selector-item"),t.default&&O(e,"art-current"),e.dataset.index=String(f),e.dataset.value=String(t.value),be(e,t.html),N(l,e),ye(t,{option:r,item:e,value:c,owner:n})}let d=0;const u=i(l,"click",async n=>{if(a.closed)return;const o=T(n),i=r.selector.find(t=>o.includes(t.$control_item));if(!i)return;const s=++d,l=()=>!a.closed&&s===d,u=a.add(function(t,e){return me.set(t,e),()=>{me.get(t)===e&&me.delete(t)}}(n,l));try{if(e(i),a.closed)return;if(r.onSelect){const e=await r.onSelect.call(t,i,i.$control_item,n);if(l()){const t=c.contains(c.ownerDocument.activeElement);be(c,e),ve.get(i)?.refresh?.(t)}}}catch(p){console.warn("ArtPlayer selector failed:",p)}finally{u()}});o.push(u);const p=function(t,e,r,n,o){if(t.closed)return()=>{};const i=Array.from(n.children),a=i.some(t=>t.querySelector(ge));n.setAttribute("role",a?"group":"listbox"),n.setAttribute("aria-label",o);let s=!1,c=!1,l=!1,d="",u=0;const p=()=>i.length>0&&(c||s&&!l),f=()=>r.querySelector('button,a[href],[role="button"]')||r,h=(e=!1)=>{if(t.closed)return;const n=f();r.querySelector(ge)?(r.removeAttribute("role"),r.removeAttribute("tabindex")):(r.setAttribute("role","button"),r.tabIndex=0),n!==r&&(r.removeAttribute("aria-haspopup"),r.removeAttribute("aria-expanded"),r.removeAttribute("aria-disabled")),a?n.removeAttribute("aria-haspopup"):n.setAttribute("aria-haspopup","listbox"),n.setAttribute("aria-expanded",String(p())),n.setAttribute("aria-disabled",String(0===i.length)),e&&r.isConnected&&r.ownerDocument.activeElement===r.ownerDocument.body&&n.focus({preventScroll:!0})},m=(t,r=!1)=>{c=t,l=r,e.classList.toggle("art-selector-open",t),e.classList.toggle("art-selector-dismissed",r),h()},g=e=>{e&&!t.closed&&((e.querySelector(ge)||e).focus({preventScroll:!0}),t.closed||e.scrollIntoView({block:"nearest",inline:"nearest"}))},v=(e=!1)=>{!t.closed&&i.length&&(m(!0),d="",g(i.find(t=>t.classList.contains("art-current"))||i[e?i.length-1:0]))},y=()=>{if(t.closed)return;const o=n.contains(e.ownerDocument.activeElement);m(!1,!0),d="",o&&r.isConnected&&f().focus({preventScroll:!0})};xt(t,r,()=>{r.click(),e.ownerDocument.activeElement===r&&v()}),h();for(const b of i){const e=b.classList.contains("art-current");a?b.setAttribute("aria-current",String(e)):(b.setAttribute("role","option"),b.setAttribute("aria-selected",String(e))),b.querySelector(ge)||(b.tabIndex=-1,xt(t,b,()=>{b.click(),y()}))}return mt(t,r,"keydown",t=>{const e=t;!wt(e)||e.defaultPrevented||e.target!==r&&e.target!==f()||("ArrowDown"===e.key||"ArrowUp"===e.key?(bt(e),v("ArrowUp"===e.key)):"Escape"===e.key&&p()&&(bt(e),y()))}),mt(t,r,"click",t=>{t.isTrusted&&0===t.detail&&f()!==r&&v()}),mt(t,n,"keydown",t=>{const e=t;if(!wt(e)||e.defaultPrevented)return;if("Escape"===e.key)return bt(e),void y();const r=i.indexOf(e.target);if(r<0)return;let n;switch(1!==e.key.length&&(d=""),e.key){case"ArrowDown":n=Math.min(r+1,i.length-1);break;case"ArrowUp":n=Math.max(r-1,0);break;case"Home":n=0;break;case"End":n=i.length-1;break;case"ArrowLeft":case"ArrowRight":return void bt(e);default:{if(1!==e.key.length||" "===e.key)return;const t=Date.now();d=t-u<500?d+e.key.toLocaleLowerCase():e.key.toLocaleLowerCase(),u=t;const o=[...d].every(t=>t===d[0])?d[0]:d;for(let e=1;e<=i.length;e++){const t=(r+e)%i.length;if(i[t].textContent?.trim().toLocaleLowerCase().startsWith(o)){n=t;break}}}}bt(e),void 0!==n&&g(i[n])}),mt(t,n,"click",t=>{t.isTrusted&&0===t.detail&&y()}),mt(t,e,"mouseenter",()=>{s=!0,m(c)}),mt(t,e,"mouseleave",()=>{s=!1,m(n.contains(e.ownerDocument.activeElement))}),mt(t,e,"focusout",t=>{e.contains(t.relatedTarget)||m(!1,!0)}),t.add(()=>{e.classList.remove("art-selector-open","art-selector-dismissed")}),h}(a,n,c,l,String(r.tooltip||r.name||c.textContent||t.i18n.get("Open")));for(const f of s)ve.get(f).refresh=p}class xe extends Ft{constructor(t){super(t),this.isHover=!1,this.name="control",this.timer=Date.now();const{constructor:e}=t,{$player:r,$bottom:n}=this.art.template,o=function(t,e,r){let n,o,i=!0;const a=()=>!t.closed&&i&&e.contains(e.ownerDocument.activeElement),s=()=>{const t=a(),n=e.classList.contains("art-keyboard-focus");e.classList.toggle("art-keyboard-focus",t),t&&!n&&r()},c=()=>{i=!0,s()},l=()=>{i=!1,s()},d=()=>{n!==e.ownerDocument&&(o?.dispose(),n=e.ownerDocument,o=t.child(),mt(o,n,"keydown",c,{capture:!0}),mt(o,n,"mousedown",l,{capture:!0}),mt(o,n,"touchstart",l,{capture:!0,passive:!0}))};return d(),mt(t,e,"keydown",c,{capture:!0}),mt(t,e,"mousedown",l,{capture:!0}),mt(t,e,"touchstart",l,{capture:!0,passive:!0}),mt(t,e,"focusin",()=>{d(),s()}),mt(t,e,"focusout",()=>{e.classList.remove("art-keyboard-focus")}),t.add(()=>{e.classList.remove("art-keyboard-focus")}),a}($(t,n),r,()=>{this.show=!0}),{on:i,proxy:a}=S(t,n);a(r,"focusin",e=>{t.isFocus=!0,t.isInput="INPUT"===e.target?.tagName}),a(r,"focusout",e=>{r.contains(e.relatedTarget)||(t.isFocus=!1,t.isInput=!1)}),i("mousemove",()=>{u||(this.show=!0)}),i("click",()=>{u?this.toggle():this.show=!0}),i("document:mousemove",t=>{this.isHover=L(t,n)}),i("video:timeupdate",()=>{!t.setting.show&&!this.isHover&&!t.isInput&&!o()&&t.playing&&this.show&&Date.now()-this.timer>=e.CONTROL_HIDE_TIME&&(this.show=!1)}),i("control",t=>{t?(D(r,"art-hide-cursor"),O(r,"art-hover"),this.timer=Date.now()):(O(r,"art-hide-cursor"),D(r,"art-hover"))}),this.init(),b(t).closed||function(t){const{$bottom:e,$controls:r,$player:n}=t.template,o=E(e),{on:i}=S(t,e),a=()=>{if(o.closed)return;const t=r.offsetHeight;t>0&&n.style.getPropertyValue("--art-controls-height")!==`${t}px`&&n.style.setProperty("--art-controls-height",`${t}px`)};if(i("resize",a),"undefined"!==typeof ResizeObserver){const t=new ResizeObserver(a);return t.observe(r),void o.add(()=>{t.disconnect()})}if("undefined"!==typeof MutationObserver){const t=new MutationObserver(a);t.observe(r,{childList:!0,subtree:!0,attributes:!0,characterData:!0}),o.add(()=>{t.disconnect()})}a()}(t)}init(){he(this)}add(t){if(w(this.art))return;const e="function"===typeof t?t(this.art):t,{$progress:r,$controlsLeft:n,$controlsRight:o}=this.art.template;switch(e.position){case"top":this.$parent=r;break;case"left":this.$parent=n;break;case"right":this.$parent=o;break;default:X(!1,"Control option.position must one of 'top', 'left', 'right'")}super.add(e)}check(t){!function(t){if(!t)return;const e=t.$control_value.contains(t.$control_value.ownerDocument.activeElement);be(t.$control_value,t.html);for(let r=0;r<t.$control_option.length;r++){const e=t.$control_option[r];e.default=e===t;const n=e.$control_item;n.setAttribute("option"===n.getAttribute("role")?"aria-selected":"aria-current",String(e.default)),e.default&&W(e.$control_item,"art-current")}ve.get(t)?.refresh?.(e)}(t)}selector(t,e,r){we(this.art,t=>this.check(t),t,e,r)}}function ke(t,e){const{constructor:r,template:{$video:n}}=t;!function(t){const{$player:e}=t.template,r=r=>{if(w(t))return;const n=L(r,e);t.isInput=n&&"INPUT"===r.target?.tagName,t.isFocus=n,t.emit(n?"focus":"blur",r)};t.on("document:click",r),t.on("document:contextmenu",r),b(t).add(()=>{t.off("document:click",r),t.off("document:contextmenu",r)})}(t);let o=[];e.proxy(n,"click",e=>{if(w(t))return;const n=Date.now();o.push(n);const{MOBILE_CLICK_PLAY:i,DBCLICK_TIME:a,MOBILE_DBCLICK_PLAY:s,DBCLICK_FULLSCREEN:c}=r,l=o.filter(t=>n-t<=a);switch(l.length){case 1:if(t.emit("click",e),w(t))return;(!u||!t.isLock&&i)&&G(t.toggle()),o=l;break;case 2:if(t.emit("dblclick",e),w(t))return;u?!t.isLock&&s&&G(t.toggle()):c&&(t.fullscreen=!t.fullscreen),o=[];break;default:o=[]}})}function $e(t){let e;const r=()=>{e=void 0},n=r=>e===r&&!w(t)&&!t.isLock&&!t.option.isLive&&t.isRotate===r.rotated&&r.sourceActive(),o=t=>{t&&r()};t.on("document:touchend",r),t.on("document:touchcancel",r),t.on("lock",o),b(t).add(()=>{r(),t.off("document:touchend",r),t.off("document:touchcancel",r),t.off("lock",o)});return{start:(o,i)=>{r();const a=i.touches[0];if(w(t)||t.isLock||t.option.isLive||1!==i.touches.length||!a)return;if(![a.pageX,a.pageY,a.clientX,a.clientY,t.currentTime].every(Number.isFinite))return;const s={target:o,identifier:a.identifier,x:a.pageX,y:a.pageY,time:t.currentTime,rotated:t.isRotate,sourceActive:te(t)};if(e=s,o===t.template.$progress){const o=t.isRotate?t.height:t.template.$progress.clientWidth;if(!Number.isFinite(o)||o<=0||!Number.isFinite(t.duration)||t.duration<=0)return void r();try{ae(t,i,()=>n(s))}catch(c){throw e===s&&r(),c}n(s)&&(s.time=t.currentTime)}},move:o=>{const i=e,a=o.touches[0];if(!i)return;if(!n(i)||1!==o.touches.length||!a||a.identifier!==i.identifier)return void r();const s=i.rotated?t.height:t.width,c=i.target===t.template.$video?t.constructor.TOUCH_MOVE_RATIO:1;if(![a.pageX,a.pageY,s,t.duration,c].every(Number.isFinite)||s<=0||t.duration<=0)return void r();const l=function(t,e,r,n){const o=e-n,i=r-t;if(Math.abs(i)<2&&Math.abs(o)<2)return 0;const a=180*Math.atan2(o,i)/Math.PI;return a>=-45&&a<45?4:a>=45&&a<135?1:a>=-135&&a<-45?2:a>=135&&a<=180||a>=-180&&a<-135?3:0}(i.x,i.y,a.pageX,a.pageY);if(!(i.rotated?1===l||2===l:3===l||4===l))return;const d=J((i.rotated?a.pageY-i.y:a.pageX-i.x)/s,-1,1),u=J(i.time+t.duration*d*c,0,t.duration);t.seek=u,n(i)&&(t.emit("setBar","played",J(u/t.duration,0,1),o),n(i)&&(t.notice.show=`${tt(u)} / ${tt(t.duration)}`))},cancel:r}}const Ee=["click","mouseup","keydown","touchend","touchcancel","touchmove","mousemove","pointerup","contextmenu","pointermove","visibilitychange","webkitfullscreenchange"],Ae=["resize","scroll","orientationchange"];const Ce=new WeakMap;function Se(t){const e=Ce.get(t);if(!e)throw new Error("ArtPlayer event registry has not been initialized");return e}function Te(t,e,r,n,o={}){if(Array.isArray(r)){const i=[];try{return r.map(r=>{const a=Te(t,e,r,n,o);return i.push(a),a})}catch(f){for(const t of i.reverse())try{t()}catch(h){console.warn("Failed to roll back event listener:",h)}throw f}}const i=r,a=Se(t);if(a.scope.closed||a.cleaning)return()=>{};const s="boolean"===typeof o?o:{capture:Boolean(o?.capture),once:Boolean(o?.once),passive:o?.passive,signal:o?.signal},c="boolean"===typeof s?s:s.capture,l="boolean"===typeof s?void 0:s.signal;if(a.scope.closed||a.cleaning||l?.aborted)return()=>{};let d=!0;function u(r=!1){(d||r)&&(e.removeEventListener(i,n,c),l?.removeEventListener("abort",p),d=!1,t.destroyEvents.delete(p))}function p(){u()}t.destroyEvents.add(p);try{e.addEventListener(i,n,s),!d||a.scope.closed||a.cleaning?u(!0):l?.aborted?p():l?.addEventListener("abort",p,{once:!0})}catch(f){try{u(!0)}catch(h){console.warn("Failed to roll back event listener:",h)}throw f}return p}function Le(t){return(e,r)=>{if(w(t))return;const n=(...e)=>{if(!w(t))return r(...e)};t.on(e,n),b(t).add(()=>{t.off(e,n)})}}function Pe(t){if(!t.constructor.USE_RAF)return;const e=b(t);let r=()=>{};const n=()=>{w(t)||(t.playing&&t.emit("raf"),w(t)||(r=function(t,e){if(t.closed)return ht;let r=!0,n=ht;const o=requestAnimationFrame(o=>{r&&(n(),t.closed||e(o))});return n=t.add(()=>{r=!1,cancelAnimationFrame(o)}),n}(e,n)))};n(),Le(t)("destroy",()=>r())}class Me{constructor(t){this.destroyEvents=new Set,function(t,e){Ce.set(t,{scope:b(e),cleaning:!1})}(this,t),b(t).add(()=>{this.destroy()}),this.proxy=this.proxy.bind(this),this.hover=this.hover.bind(this),ke(t,this),function(t,e){const{$player:r}=t.template;e.hover(r,e=>{w(t)||(O(r,"art-hover"),t.emit("hover",!0,e))},e=>{w(t)||(D(r,"art-hover"),t.emit("hover",!1,e))})}(t,this),function(t,e){const{$player:r}=t.template;e.proxy(r,"mousemove",e=>{w(t)||t.emit("mousemove",e)})}(t,this),function(t,e){const{option:r,constructor:n}=t,o=Le(t);o("resize",()=>{const{aspectRatio:e,notice:n}=t;"standard"===t.state&&r.autoSize&&t.autoSize(),w(t)||(t.aspectRatio=e,w(t)||(n.show=""))});const i=b(t);let a=()=>{};const s=()=>{w(t)||(a(),a=gt(i,()=>t.emit("resize"),n.RESIZE_TIME))};o("window:orientationchange",s),o("window:resize",s);const c=t.template.$player.ownerDocument.defaultView?.screen?.orientation;"function"===typeof c?.addEventListener&&e.proxy(c,"change",s)}(t,this),function(t,e){if(!u||t.option.isLive)return;const{$video:r,$progress:n}=t.template,o=$e(t),i=t=>{e.proxy(t,"touchstart",e=>o.start(t,e)),e.proxy(t,"touchmove",t=>o.move(t)),e.proxy(t,"touchcancel",o.cancel)};t.option.gesture&&i(r),i(n)}(t,this),function(t){const{option:e,constructor:r,template:{$container:n}}=t,o=r.SCROLL_TIME,i=b(t),a=Le(t);let s=!1;a("window:scroll",()=>{s||(t.emit("view",function(t,e){const r=t.getBoundingClientRect(),n=t.ownerDocument,o=n.defaultView,i=o?.innerHeight||n.documentElement.clientHeight,a=o?.innerWidth||n.documentElement.clientWidth,s=r.top-e<=i&&r.top+r.height+e>=0,c=r.left-e<=a+e&&r.left+r.width+e>=0;return s&&c}(n,r.SCROLL_GAP)),w(t)||(s=!0,gt(i,()=>{s=!1},o)))}),a("view",r=>{e.autoMini&&(t.mini=!r)})}(t),function(t,e){let r,n=0;b(t).add(()=>{r=void 0,n++});const o=t=>{if(t){for(const r of t.disposers)e.remove(r);t.disposers.length=0}};function i(i={}){if(w(t))return;const a=++n,s={disposers:[]},c=()=>a!==n||w(t);try{const{$player:n}=t.template,o=i.document||n.ownerDocument||document,a=i.window||n.ownerDocument?.defaultView||window,l=(n,o,i)=>{for(const a of o){if(c())return;s.disposers.push(e.proxy(n,a,e=>{r!==s||w(t)||t.emit(`${i}:${a}`,e)}))}};l(o,Ee,"document"),l(a,Ae,"window")}catch(d){throw o(s),d}if(c())return void o(s);const l=r;r=s,o(l)}i(),e.bindGlobalEvents=i}(t,this),Pe(t)}proxy(t,e,r,n={}){return Array.isArray(e),Te(this,t,e,r,n)}hover(t,e,r){e&&this.proxy(t,"mouseenter",e),r&&this.proxy(t,"mouseleave",r)}remove(t){!function(t,e){if(t.destroyEvents.has(e))try{e(),t.destroyEvents.delete(e)}catch(r){console.warn("Failed to remove event listener:",r)}}(this,t)}destroy(){!function(t){const e=Se(t);if(!e.cleaning){e.cleaning=!0;try{for(const e of t.destroyEvents)try{e(),t.destroyEvents.delete(e)}catch(r){console.warn("Failed to destroy event listener:",r)}}finally{e.cleaning=!1}}}(this)}}function ze(t){if(t&&1===t.nodeType)return t}function Re(t){const e=t.tagName.toUpperCase();return"INPUT"===e||"TEXTAREA"===e||"SELECT"===e||t.isContentEditable}function Oe(t,e){if(function(t){return yt.has(t)}(t)||t.altKey||t.ctrlKey||t.metaKey||t.shiftKey||t.isComposing||229===t.keyCode)return!1;const r=function(t,e){const r=t.target;return 9===r?.nodeType?r:r?.ownerDocument||t.view?.document||e}(t,e);let n=ze(r.activeElement);for(;n?.shadowRoot?.activeElement;)n=ze(n.shadowRoot.activeElement);if(n&&Re(n))return!1;const o=ze(t.composedPath?.()[0])||ze(t.target),i="Enter"===t.key||"Enter"===t.code||"NumpadEnter"===t.code;if(i||" "===t.key||"Space"===t.code){const t='button,summary,[role="button"],[role="switch"]'+(i?",a[href]":"");if(o?.closest?.(t)||n?.closest?.(t))return!1}return!o||!Re(o)}const De=new WeakMap;class Ie{constructor(t){this.art=t,this.keys={},De.set(this,{subscribed:!1}),u||this.init()}init(){const t=this.art;if(w(t))return;const e=De.get(this);if(t.option.hotkey){if(!e.defaults){const r=function(t){const{constructor:e}=t;return{Escape:()=>{t.fullscreenWeb&&(t.fullscreenWeb=!1)},Space:()=>{G(t.toggle())},ArrowLeft:()=>{t.backward=e.SEEK_STEP},ArrowUp:()=>{t.volume+=e.VOLUME_STEP},ArrowRight:()=>{t.forward=e.SEEK_STEP},ArrowDown:()=>{t.volume-=e.VOLUME_STEP}}}(t);e.defaults=()=>{for(const t of Object.keys(r))this.add(t,r[t])}}e.defaults()}if(e.subscribed)return;e.subscribed=!0;const r=e=>{if(!w(t)){if(t.isFocus&&Oe(e,t.template.$player.ownerDocument)){const r=Object.prototype.hasOwnProperty.call(this.keys,e.code)?this.keys[e.code]:void 0;if(r){e.preventDefault();for(let n=0;n<r.length;n++){if(w(t))return;r[n].call(t,e)}if(w(t))return;t.emit("hotkey",e)}}w(t)||t.emit("keydown",e)}};t.on("document:keydown",r),b(t).add(()=>{e.subscribed=!1,t.off("document:keydown",r)})}add(t,e){const r=Object.prototype.hasOwnProperty.call(this.keys,t)?this.keys[t]:void 0;return r?r.includes(e)||r.push(e):Object.defineProperty(this.keys,t,{value:[e],enumerable:!0,configurable:!0,writable:!0}),this}remove(t,e){const r=Object.prototype.hasOwnProperty.call(this.keys,t)?this.keys[t]:void 0;if(r){const n=r.indexOf(e);-1!==n&&r.splice(n,1),0===r.length&&delete this.keys[t]}return this}}const Ne={"Context Menu":"\u5feb\u6377\u83dc\u5355",Lock:"\u9501\u5b9a",Back:"\u8fd4\u56de",Settings:"\u8bbe\u7f6e",Progress:"\u64ad\u653e\u8fdb\u5ea6","Video Info":"\u7edf\u8ba1\u4fe1\u606f",Close:"\u5173\u95ed","Video Load Failed":"\u52a0\u8f7d\u5931\u8d25",Volume:"\u97f3\u91cf",Play:"\u64ad\u653e",Pause:"\u6682\u505c",Rate:"\u901f\u5ea6",Mute:"\u9759\u97f3","Video Flip":"\u753b\u9762\u7ffb\u8f6c",Horizontal:"\u6c34\u5e73",Vertical:"\u5782\u76f4",Reconnect:"\u91cd\u65b0\u8fde\u63a5","Show Setting":"\u663e\u793a\u8bbe\u7f6e","Hide Setting":"\u9690\u85cf\u8bbe\u7f6e",Screenshot:"\u622a\u56fe","Play Speed":"\u64ad\u653e\u901f\u5ea6","Aspect Ratio":"\u753b\u9762\u6bd4\u4f8b",Default:"\u9ed8\u8ba4",Normal:"\u6b63\u5e38",Open:"\u6253\u5f00","Switch Video":"\u5207\u6362","Switch Subtitle":"\u5207\u6362\u5b57\u5e55",Fullscreen:"\u5168\u5c4f","Exit Fullscreen":"\u9000\u51fa\u5168\u5c4f","Web Fullscreen":"\u7f51\u9875\u5168\u5c4f","Exit Web Fullscreen":"\u9000\u51fa\u7f51\u9875\u5168\u5c4f","Mini Player":"\u8ff7\u4f60\u64ad\u653e\u5668","PIP Mode":"\u5f00\u542f\u753b\u4e2d\u753b","Exit PIP Mode":"\u9000\u51fa\u753b\u4e2d\u753b","PIP Not Supported":"\u4e0d\u652f\u6301\u753b\u4e2d\u753b","Fullscreen Not Supported":"\u4e0d\u652f\u6301\u5168\u5c4f","Subtitle Offset":"\u5b57\u5e55\u504f\u79fb","Last Seen":"\u4e0a\u6b21\u770b\u5230","Jump Play":"\u8df3\u8f6c\u64ad\u653e",AirPlay:"\u9694\u7a7a\u64ad\u653e","AirPlay Not Available":"\u9694\u7a7a\u64ad\u653e\u4e0d\u53ef\u7528"};!function(t,e){if("undefined"!==typeof window){window[t]=e}}("artplayer-i18n-zh-cn",Ne);class _e{constructor(t){this.art=t,this.languages={"zh-cn":Ne},this.language={},this.update(t.option.i18n)}init(){const t=this.art.option.lang.toLowerCase();this.language=st(this.languages,t)&&this.languages[t]||{}}get(t){return st(this.language,t)&&this.language[t]||t}update(t){this.languages=lt(this.languages,t),this.init()}}const We={loading:'<svg xmlns="http://www.w3.org/2000/svg" width="50px" height="50px" viewBox="0 0 100 100" preserveAspectRatio="xMidYMid" class="uil-default">\r\n <rect x="0" y="0" width="100" height="100" fill="none" class="bk"/>\r\n <rect x="47" y="40" width="6" height="20" rx="5" ry="5" transform="rotate(0 50 50) translate(0 -30)">\r\n <animate attributeName="opacity" from="1" to="0" dur="1s" begin="-1s" repeatCount="indefinite"/>\r\n </rect>\r\n <rect x="47" y="40" width="6" height="20" rx="5" ry="5" transform="rotate(30 50 50) translate(0 -30)">\r\n <animate attributeName="opacity" from="1" to="0" dur="1s" begin="-0.9166666666666666s" repeatCount="indefinite"/>\r\n </rect>\r\n <rect x="47" y="40" width="6" height="20" rx="5" ry="5" transform="rotate(60 50 50) translate(0 -30)">\r\n <animate attributeName="opacity" from="1" to="0" dur="1s" begin="-0.8333333333333334s" repeatCount="indefinite"/>\r\n </rect>\r\n <rect x="47" y="40" width="6" height="20" rx="5" ry="5" transform="rotate(90 50 50) translate(0 -30)">\r\n <animate attributeName="opacity" from="1" to="0" dur="1s" begin="-0.75s" repeatCount="indefinite"/></rect>\r\n <rect x="47" y="40" width="6" height="20" rx="5" ry="5" transform="rotate(120 50 50) translate(0 -30)">\r\n <animate attributeName="opacity" from="1" to="0" dur="1s" begin="-0.6666666666666666s" repeatCount="indefinite"/>\r\n </rect>\r\n <rect x="47" y="40" width="6" height="20" rx="5" ry="5" transform="rotate(150 50 50) translate(0 -30)">\r\n <animate attributeName="opacity" from="1" to="0" dur="1s" begin="-0.5833333333333334s" repeatCount="indefinite"/>\r\n </rect>\r\n <rect x="47" y="40" width="6" height="20" rx="5" ry="5" transform="rotate(180 50 50) translate(0 -30)">\r\n <animate attributeName="opacity" from="1" to="0" dur="1s" begin="-0.5s" repeatCount="indefinite"/></rect>\r\n <rect x="47" y="40" width="6" height="20" rx="5" ry="5" transform="rotate(210 50 50) translate(0 -30)">\r\n <animate attributeName="opacity" from="1" to="0" dur="1s" begin="-0.4166666666666667s" repeatCount="indefinite"/>\r\n </rect>\r\n <rect x="47" y="40" width="6" height="20" rx="5" ry="5" transform="rotate(240 50 50) translate(0 -30)">\r\n <animate attributeName="opacity" from="1" to="0" dur="1s" begin="-0.3333333333333333s" repeatCount="indefinite"/>\r\n </rect>\r\n <rect x="47" y="40" width="6" height="20" rx="5" ry="5" transform="rotate(270 50 50) translate(0 -30)">\r\n <animate attributeName="opacity" from="1" to="0" dur="1s" begin="-0.25s" repeatCount="indefinite"/></rect>\r\n <rect x="47" y="40" width="6" height="20" rx="5" ry="5" transform="rotate(300 50 50) translate(0 -30)">\r\n <animate attributeName="opacity" from="1" to="0" dur="1s" begin="-0.16666666666666666s" repeatCount="indefinite"/>\r\n </rect>\r\n <rect x="47" y="40" width="6" height="20" rx="5" ry="5" transform="rotate(330 50 50) translate(0 -30)">\r\n <animate attributeName="opacity" from="1" to="0" dur="1s" begin="-0.08333333333333333s" repeatCount="indefinite"/>\r\n </rect>\r\n</svg>',state:'<svg xmlns="http://www.w3.org/2000/svg" width="80" height="80" viewBox="0 0 24 24">\r\n<path d="M9.5 9.325v5.35q0 .575.525.875t1.025-.05l4.15-2.65q.475-.3.475-.85t-.475-.85L11.05 8.5q-.5-.35-1.025-.05t-.525.875ZM12 22q-2.075 0-3.9-.788t-3.175-2.137q-1.35-1.35-2.137-3.175T2 12q0-2.075.788-3.9t2.137-3.175q1.35-1.35 3.175-2.137T12 2q2.075 0 3.9.788t3.175 2.137q1.35 1.35 2.138 3.175T22 12q0 2.075-.788 3.9t-2.137 3.175q-1.35 1.35-3.175 2.138T12 22Z"/>\r\n</svg>\r\n',play:'<svg xmlns="http://www.w3.org/2000/svg" height="22" width="22" viewBox="0 0 22 22">\r\n <path d="M17.982 9.275L8.06 3.27A2.013 2.013 0 0 0 5 4.994v12.011a2.017 2.017 0 0 0 3.06 1.725l9.922-6.005a2.017 2.017 0 0 0 0-3.45z"></path>\r\n</svg>',pause:'<svg xmlns="http://www.w3.org/2000/svg" height="22" width="22" viewBox="0 0 22 22">\r\n <path d="M7 3a2 2 0 0 0-2 2v12a2 2 0 1 0 4 0V5a2 2 0 0 0-2-2zM15 3a2 2 0 0 0-2 2v12a2 2 0 1 0 4 0V5a2 2 0 0 0-2-2z"></path>\r\n</svg>',check:'<svg xmlns="http://www.w3.org/2000/svg" version="1.1" viewBox="0 0 24 24" style="width: 100%; height: 100%;">\r\n<path d="M9 16.2L4.8 12l-1.4 1.4L9 19 21 7l-1.4-1.4L9 16.2z" />\r\n</svg>',volume:'<svg xmlns="http://www.w3.org/2000/svg" height="22" width="22" viewBox="0 0 22 22">\r\n <path d="M10.188 4.65L6 8H5a2 2 0 0 0-2 2v2a2 2 0 0 0 2 2h1l4.188 3.35a.5.5 0 0 0 .812-.39V5.04a.498.498 0 0 0-.812-.39zM14.446 3.778a1 1 0 0 0-.862 1.804 6.002 6.002 0 0 1-.007 10.838 1 1 0 0 0 .86 1.806A8.001 8.001 0 0 0 19 11a8.001 8.001 0 0 0-4.554-7.222z"></path>\r\n <path d="M15 11a3.998 3.998 0 0 0-2-3.465v6.93A3.998 3.998 0 0 0 15 11z"></path>\r\n</svg>',volumeClose:'<svg xmlns="http://www.w3.org/2000/svg" height="22" width="22" viewBox="0 0 22 22">\r\n <path d="M15 11a3.998 3.998 0 0 0-2-3.465v2.636l1.865 1.865A4.02 4.02 0 0 0 15 11z"></path>\r\n <path d="M13.583 5.583A5.998 5.998 0 0 1 17 11a6 6 0 0 1-.585 2.587l1.477 1.477a8.001 8.001 0 0 0-3.446-11.286 1 1 0 0 0-.863 1.805zM18.778 18.778l-2.121-2.121-1.414-1.414-1.415-1.415L13 13l-2-2-3.889-3.889-3.889-3.889a.999.999 0 1 0-1.414 1.414L5.172 8H5a2 2 0 0 0-2 2v2a2 2 0 0 0 2 2h1l4.188 3.35a.5.5 0 0 0 .812-.39v-3.131l2.587 2.587-.01.005a1 1 0 0 0 .86 1.806c.215-.102.424-.214.627-.333l2.3 2.3a1.001 1.001 0 0 0 1.414-1.416zM11 5.04a.5.5 0 0 0-.813-.39L8.682 5.854 11 8.172V5.04z"></path>\r\n</svg>',screenshot:'<svg xmlns="http://www.w3.org/2000/svg" height="22" width="22" viewBox="0 0 50 50">\r\n\t<path d="M 19.402344 6 C 17.019531 6 14.96875 7.679688 14.5 10.011719 L 14.097656 12 L 9 12 C 6.238281 12 4 14.238281 4 17 L 4 38 C 4 40.761719 6.238281 43 9 43 L 41 43 C 43.761719 43 46 40.761719 46 38 L 46 17 C 46 14.238281 43.761719 12 41 12 L 35.902344 12 L 35.5 10.011719 C 35.03125 7.679688 32.980469 6 30.597656 6 Z M 25 17 C 30.519531 17 35 21.480469 35 27 C 35 32.519531 30.519531 37 25 37 C 19.480469 37 15 32.519531 15 27 C 15 21.480469 19.480469 17 25 17 Z M 25 19 C 20.589844 19 17 22.589844 17 27 C 17 31.410156 20.589844 35 25 35 C 29.410156 35 33 31.410156 33 27 C 33 22.589844 29.410156 19 25 19 Z "/>\r\n</svg>\r\n',setting:'<svg xmlns="http://www.w3.org/2000/svg" height="22" width="22" viewBox="0 0 22 22">\r\n <circle cx="11" cy="11" r="2"></circle>\r\n <path d="M19.164 8.861L17.6 8.6a6.978 6.978 0 0 0-1.186-2.099l.574-1.533a1 1 0 0 0-.436-1.217l-1.997-1.153a1.001 1.001 0 0 0-1.272.23l-1.008 1.225a7.04 7.04 0 0 0-2.55.001L8.716 2.829a1 1 0 0 0-1.272-.23L5.447 3.751a1 1 0 0 0-.436 1.217l.574 1.533A6.997 6.997 0 0 0 4.4 8.6l-1.564.261A.999.999 0 0 0 2 9.847v2.306c0 .489.353.906.836.986l1.613.269a7 7 0 0 0 1.228 2.075l-.558 1.487a1 1 0 0 0 .436 1.217l1.997 1.153c.423.244.961.147 1.272-.23l1.04-1.263a7.089 7.089 0 0 0 2.272 0l1.04 1.263a1 1 0 0 0 1.272.23l1.997-1.153a1 1 0 0 0 .436-1.217l-.557-1.487c.521-.61.94-1.31 1.228-2.075l1.613-.269a.999.999 0 0 0 .835-.986V9.847a.999.999 0 0 0-.836-.986zM11 15a4 4 0 1 1 0-8 4 4 0 0 1 0 8z"></path>\r\n</svg>',pip:'<svg viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg" width="22" height="22">\r\n<path d="M844.8 219.648h-665.6c-6.144 0-10.24 4.608-10.24 10.752v563.2c0 5.632 4.096 10.24 10.24 10.24h256v92.16h-256a102.4 102.4 0 0 1-102.4-102.4v-563.2c0-56.832 45.568-102.4 102.4-102.4h665.6a102.4 102.4 0 0 1 102.4 102.4v204.8h-92.16v-204.8c0-6.144-4.608-10.752-10.24-10.752zM614.4 588.8c-28.672 0-51.2 22.528-51.2 51.2v204.8c0 28.16 22.528 51.2 51.2 51.2h281.6c28.16 0 51.2-23.04 51.2-51.2v-204.8c0-28.672-23.04-51.2-51.2-51.2H614.4z"></path>\r\n</svg>',arrowLeft:'<svg xmlns="http://www.w3.org/2000/svg" height="32" width="32" version="1.1" viewBox="0 0 32 32">\r\n <path d="M 19.41,20.09 14.83,15.5 19.41,10.91 18,9.5 l -6,6 6,6 z" />\r\n</svg>',arrowRight:'<svg xmlns="http://www.w3.org/2000/svg" height="32" width="32" version="1.1" viewBox="0 0 32 32">\r\n <path d="m 12.59,20.34 4.58,-4.59 -4.58,-4.59 1.41,-1.41 6,6 -6,6 z" />\r\n</svg>',playbackRate:'<svg height="24" viewBox="0 0 24 24" width="24"><path d="M10,8v8l6-4L10,8L10,8z M6.3,5L5.7,4.2C7.2,3,9,2.2,11,2l0.1,1C9.3,3.2,7.7,3.9,6.3,5z M5,6.3L4.2,5.7C3,7.2,2.2,9,2,11 l1,.1C3.2,9.3,3.9,7.7,5,6.3z M5,17.7c-1.1-1.4-1.8-3.1-2-4.8L2,13c0.2,2,1,3.8,2.2,5.4L5,17.7z M11.1,21c-1.8-0.2-3.4-0.9-4.8-2 l-0.6,.8C7.2,21,9,21.8,11,22L11.1,21z M22,12c0-5.2-3.9-9.4-9-10l-0.1,1c4.6,.5,8.1,4.3,8.1,9s-3.5,8.5-8.1,9l0.1,1 C18.2,21.5,22,17.2,22,12z" data-darkreader-inline-fill="" style="--darkreader-inline-fill:#a8a6a4;"></path></svg>',aspectRatio:'<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 88 88" preserveAspectRatio="xMidYMid meet" style="width: 100%; height: 100%; transform: translate3d(0px, 0px, 0px);"><defs><clipPath id="__lottie_element_216"><rect width="88" height="88" x="0" y="0"></rect></clipPath></defs><g clip-path="url(#__lottie_element_216)"><g transform="matrix(1,0,0,1,44,44)" opacity="1" style="display: block;"><g opacity="1" transform="matrix(1,0,0,1,0,0)"><path fill-opacity="1" d=" M12.437999725341797,-12.70199966430664 C12.437999725341797,-12.70199966430664 9.618000030517578,-9.881999969482422 9.618000030517578,-9.881999969482422 C8.82800006866455,-9.092000007629395 8.82800006866455,-7.831999778747559 9.618000030517578,-7.052000045776367 C9.618000030517578,-7.052000045776367 16.687999725341797,0.017999999225139618 16.687999725341797,0.017999999225139618 C16.687999725341797,0.017999999225139618 9.618000030517578,7.0879998207092285 9.618000030517578,7.0879998207092285 C8.82800006866455,7.877999782562256 8.82800006866455,9.137999534606934 9.618000030517578,9.918000221252441 C9.618000030517578,9.918000221252441 12.437999725341797,12.748000144958496 12.437999725341797,12.748000144958496 C13.227999687194824,13.527999877929688 14.48799991607666,13.527999877929688 15.267999649047852,12.748000144958496 C15.267999649047852,12.748000144958496 26.58799934387207,1.437999963760376 26.58799934387207,1.437999963760376 C27.368000030517578,0.6579999923706055 27.368000030517578,-0.6119999885559082 26.58799934387207,-1.3919999599456787 C26.58799934387207,-1.3919999599456787 15.267999649047852,-12.70199966430664 15.267999649047852,-12.70199966430664 C14.48799991607666,-13.491999626159668 13.227999687194824,-13.491999626159668 12.437999725341797,-12.70199966430664z M-12.442000389099121,-12.70199966430664 C-13.182000160217285,-13.442000389099121 -14.362000465393066,-13.482000350952148 -15.142000198364258,-12.821999549865723 C-15.142000198364258,-12.821999549865723 -15.272000312805176,-12.70199966430664 -15.272000312805176,-12.70199966430664 C-15.272000312805176,-12.70199966430664 -26.582000732421875,-1.3919999599456787 -26.582000732421875,-1.3919999599456787 C-27.32200050354004,-0.6520000100135803 -27.36199951171875,0.5180000066757202 -26.70199966430664,1.3079999685287476 C-26.70199966430664,1.3079999685287476 -26.582000732421875,1.437999963760376 -26.582000732421875,1.437999963760376 C-26.582000732421875,1.437999963760376 -15.272000312805176,12.748000144958496 -15.272000312805176,12.748000144958496 C-14.531999588012695,13.48799991607666 -13.362000465393066,13.527999877929688 -12.571999549865723,12.868000030517578 C-12.571999549865723,12.868000030517578 -12.442000389099121,12.748000144958496 -12.442000389099121,12.748000144958496 C-12.442000389099121,12.748000144958496 -9.612000465393066,9.918000221252441 -9.612000465393066,9.918000221252441 C-8.871999740600586,9.178000450134277 -8.831999778747559,8.008000373840332 -9.501999855041504,7.2179999351501465 C-9.501999855041504,7.2179999351501465 -9.612000465393066,7.0879998207092285 -9.612000465393066,7.0879998207092285 C-9.612000465393066,7.0879998207092285 -16.68199920654297,0.017999999225139618 -16.68199920654297,0.017999999225139618 C-16.68199920654297,0.017999999225139618 -9.612000465393066,-7.052000045776367 -9.612000465393066,-7.052000045776367 C-8.871999740600586,-7.791999816894531 -8.831999778747559,-8.961999893188477 -9.501999855041504,-9.751999855041504 C-9.501999855041504,-9.751999855041504 -9.612000465393066,-9.881999969482422 -9.612000465393066,-9.881999969482422 C-9.612000465393066,-9.881999969482422 -12.442000389099121,-12.70199966430664 -12.442000389099121,-12.70199966430664z M28,-28 C32.41999816894531,-28 36,-24.420000076293945 36,-20 C36,-20 36,20 36,20 C36,24.420000076293945 32.41999816894531,28 28,28 C28,28 -28,28 -28,28 C-32.41999816894531,28 -36,24.420000076293945 -36,20 C-36,20 -36,-20 -36,-20 C-36,-24.420000076293945 -32.41999816894531,-28 -28,-28 C-28,-28 28,-28 28,-28z" data-darkreader-inline-fill="" style="--darkreader-inline-fill:#a8a6a4;"></path></g></g></g></svg>',config:'<svg height="24" viewBox="0 0 24 24" width="24"><path d="M15,17h6v1h-6V17z M11,17H3v1h8v2h1v-2v-1v-2h-1V17z M14,8h1V6V5V3h-1v2H3v1h11V8z M18,5v1h3V5H18z M6,14h1v-2v-1V9H6v2H3v1 h3V14z M10,12h11v-1H10V12z" data-darkreader-inline-fill="" style="--darkreader-inline-fill:#a8a6a4;"></path></svg>',lock:'<?xml version="1.0" standalone="no"?>\r\n<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">\r\n<svg t="1650612139149" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="20" height="20">\r\n<path d="M298.666667 426.666667V341.333333a213.333333 213.333333 0 1 1 426.666666 0v85.333334h42.666667a85.333333 85.333333 0 0 1 85.333333 85.333333v256a85.333333 85.333333 0 0 1-85.333333 85.333333H256a85.333333 85.333333 0 0 1-85.333333-85.333333v-256a85.333333 85.333333 0 0 1 85.333333-85.333333h42.666667z m213.333333-213.333334a128 128 0 0 0-128 128v85.333334h256V341.333333a128 128 0 0 0-128-128z"></path>\r\n</svg>\r\n',flip:'<?xml version="1.0" standalone="no"?>\r\n<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">\r\n<svg t="1652445277062" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="24" height="24">\r\n<path d="M554.666667 810.666667v85.333333h-85.333334v-85.333333h85.333334zM170.666667 178.005333a42.666667 42.666667 0 0 1 34.986666 18.218667l203.904 291.328a42.666667 42.666667 0 0 1 0 48.896l-203.946666 291.328A42.666667 42.666667 0 0 1 128 803.328V220.672a42.666667 42.666667 0 0 1 42.666667-42.666667z m682.666666 0a42.666667 42.666667 0 0 1 42.368 37.717334l0.298667 4.949333v582.656a42.666667 42.666667 0 0 1-74.24 28.629333l-3.413333-4.181333-203.904-291.328a42.666667 42.666667 0 0 1-3.029334-43.861333l3.029334-5.034667 203.946666-291.328A42.666667 42.666667 0 0 1 853.333333 178.005333zM554.666667 640v85.333333h-85.333334v-85.333333h85.333334zM196.266667 319.104V716.8L335.957333 512 196.309333 319.104zM554.666667 469.333333v85.333334h-85.333334v-85.333334h85.333334z m0-170.666666v85.333333h-85.333334V298.666667h85.333334z m0-170.666667v85.333333h-85.333334V128h85.333334z">\r\n</path>\r\n</svg>\r\n',unlock:'<?xml version="1.0" standalone="no"?>\r\n<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">\r\n<svg t="1650612464266" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="20" height="20"><path d="M666.752 194.517333L617.386667 268.629333A128 128 0 0 0 384 341.333333l0.042667 85.333334h384a85.333333 85.333333 0 0 1 85.333333 85.333333v256a85.333333 85.333333 0 0 1-85.333333 85.333333H256a85.333333 85.333333 0 0 1-85.333333-85.333333v-256a85.333333 85.333333 0 0 1 85.333333-85.333333h42.666667V341.333333a213.333333 213.333333 0 0 1 368.085333-146.816z"></path></svg>\r\n',fullscreenOff:'<?xml version="1.0" standalone="no"?>\r\n<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">\r\n<svg class="icon" width="22" height="22" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg">\r\n<path d="M768 298.666667h170.666667v85.333333h-256V128h85.333333v170.666667zM341.333333 384H85.333333V298.666667h170.666667V128h85.333333v256z m426.666667 341.333333v170.666667h-85.333333v-256h256v85.333333h-170.666667zM341.333333 640v256H256v-170.666667H85.333333v-85.333333h256z" />\r\n</svg>\r\n',fullscreenOn:'<?xml version="1.0" standalone="no"?>\r\n<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">\r\n<svg class="icon" width="22" height="22" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg">\r\n<path d="M625.777778 256h142.222222V398.222222h113.777778V142.222222H625.777778v113.777778zM256 398.222222V256H398.222222v-113.777778H142.222222V398.222222h113.777778zM768 625.777778v142.222222H625.777778v113.777778h256V625.777778h-113.777778zM398.222222 768H256V625.777778h-113.777778v256H398.222222v-113.777778z" />\r\n</svg>\r\n',fullscreenWebOff:'<?xml version="1.0" standalone="no"?>\r\n<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">\r\n<svg class="icon" width="18" height="18" viewBox="0 0 1152 1024" version="1.1" xmlns="http://www.w3.org/2000/svg">\r\n<path d="M1075.2 0H76.8A76.8 76.8 0 0 0 0 76.8v870.4A76.8 76.8 0 0 0 76.8 1024h998.4a76.8 76.8 0 0 0 76.8-76.8V76.8A76.8 76.8 0 0 0 1075.2 0zM1024 128v768H128V128h896zM896 512a64 64 0 0 1 7.488 127.552L896 640h-128v128a64 64 0 0 1-56.512 63.552L704 832a64 64 0 0 1-63.552-56.512L640 768V582.592c0-34.496 25.024-66.112 61.632-70.208L709.632 512H896zM256 512a64 64 0 0 1-7.488-127.552L256 384h128V256a64 64 0 0 1 56.512-63.552L448 192a64 64 0 0 1 63.552 56.512L512 256v185.408c0 34.432-25.024 66.112-61.632 70.144L442.368 512H256z" />\r\n</svg>\r\n',fullscreenWebOn:'<?xml version="1.0" standalone="no"?>\r\n<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">\r\n<svg class="icon" width="18" height="18" viewBox="0 0 1152 1024" version="1.1" xmlns="http://www.w3.org/2000/svg">\r\n<path d="M1075.2 0H76.8A76.8 76.8 0 0 0 0 76.8v870.4A76.8 76.8 0 0 0 76.8 1024h998.4a76.8 76.8 0 0 0 76.8-76.8V76.8A76.8 76.8 0 0 0 1075.2 0zM1024 128v768H128V128h896zM448 192a64 64 0 0 1 7.488 127.552L448 320H320v128a64 64 0 0 1-56.512 63.552L256 512a64 64 0 0 1-63.552-56.512L192 448V262.592c0-34.432 25.024-66.112 61.632-70.144L261.632 192H448zM704 832a64 64 0 0 1-7.488-127.552L704 704h128V576a64 64 0 0 1 56.512-63.552L896 512a64 64 0 0 1 63.552 56.512L960 576v185.408c0 34.496-25.024 66.112-61.632 70.208l-8 0.384H704z" />\r\n</svg>\r\n',switchOn:'<?xml version="1.0" standalone="no"?>\r\n<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">\r\n<svg class="icon" width="26" height="26" viewBox="0 0 1664 1024" version="1.1" xmlns="http://www.w3.org/2000/svg">\r\n <path fill="#648FFC" d="M1152 0H512a512 512 0 0 0 0 1024h640a512 512 0 0 0 0-1024z m0 960a448 448 0 1 1 448-448 448 448 0 0 1-448 448z" />\r\n</svg>',switchOff:'<?xml version="1.0" standalone="no"?>\r\n<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">\r\n<svg class="icon" width="26" height="26" viewBox="0 0 1740 1024" version="1.1" xmlns="http://www.w3.org/2000/svg">\r\n <path d="M511.8976 1024h670.5152c282.4192-0.4096 511.1808-229.4784 511.1808-511.8976 0-282.4192-228.7616-511.488-511.1808-511.8976H511.8976C229.4784 0.6144 0.7168 229.6832 0.7168 512.1024c0 282.4192 228.7616 511.488 511.1808 511.8976zM511.3344 48.64A464.5888 464.5888 0 1 1 48.0256 513.024 463.872 463.872 0 0 1 511.3344 48.4352V48.64z" />\r\n</svg>\r\n',error:'<?xml version="1.0" standalone="no"?>\r\n<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">\r\n<svg t="1652850026663" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="2749" xmlns:xlink="http://www.w3.org/1999/xlink" width="50" height="50">\r\n<path d="M593.8176 168.5504l356.00384 595.21024c26.15296 43.74528 10.73152 99.7376-34.44736 125.05088-14.39744 8.06912-30.72 12.30848-47.37024 12.30848H155.97568C103.75168 901.12 61.44 860.16 61.44 809.61536c0-16.09728 4.38272-31.92832 12.71808-45.8752L430.16192 168.5504c26.17344-43.7248 84.00896-58.65472 129.20832-33.34144a93.0816 93.0816 0 0 1 34.44736 33.34144zM512 819.2a61.44 61.44 0 1 0 0-122.88 61.44 61.44 0 0 0 0 122.88z m0-512a72.31488 72.31488 0 0 0-71.76192 81.3056l25.72288 205.7216a46.40768 46.40768 0 0 0 92.07808 0l25.72288-205.74208A72.31488 72.31488 0 0 0 512 307.2z" p-id="2750">\r\n</path>\r\n</svg>',close:'<?xml version="1.0" standalone="no"?>\r\n<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">\r\n<svg t="1655876154826" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="22" height="22">\r\n<path d="M571.733333 512l268.8-268.8c17.066667-17.066667 17.066667-42.666667 0-59.733333-17.066667-17.066667-42.666667-17.066667-59.733333 0L512 452.266667 243.2 183.466667c-17.066667-17.066667-42.666667-17.066667-59.733333 0-17.066667 17.066667-17.066667 42.666667 0 59.733333L452.266667 512 183.466667 780.8c-17.066667 17.066667-17.066667 42.666667 0 59.733333 8.533333 8.533333 19.2 12.8 29.866666 12.8s21.333333-4.266667 29.866667-12.8L512 571.733333l268.8 268.8c8.533333 8.533333 19.2 12.8 29.866667 12.8s21.333333-4.266667 29.866666-12.8c17.066667-17.066667 17.066667-42.666667 0-59.733333L571.733333 512z" p-id="2131">\r\n</path>\r\n</svg>',airplay:'<svg width="18px" height="18px" viewBox="0 0 18 18" xmlns="http://www.w3.org/2000/svg">\r\n <g>\r\n <path d="M16,1 L2,1 C1.447,1 1,1.447 1,2 L1,12 C1,12.553 1.447,13 2,13 L5,13 L5,11 L3,11 L3,3 L15,3 L15,11 L13,11 L13,13 L16,13 C16.553,13 17,12.553 17,12 L17,2 C17,1.447 16.553,1 16,1 L16,1 Z"></path>\r\n <polygon points="4 17 14 17 9 11"></polygon>\r\n </g>\r\n</svg>\r\n'};class Fe{constructor(t){const e={...We,...t.option.icons};for(const r in e)it(this,r,{get:()=>B(r,e[r])})}}const Ve=new WeakMap;function Ye(t,e,r){const n=()=>!e.closed&&!w(t),o=t=>{try{e.dispose()}catch(r){console.warn("Failed to release info polling resources:",r)}throw t};try{const{proxy:i,constructor:a,template:{$infoPanel:s,$infoClose:c,$video:l}}=t,d=i(c,"click",()=>{n()&&r()});e.add(()=>{t.events.remove(d)});const u=Array.from(s.querySelectorAll("[data-video]")),p=()=>e.dispose();t.on("destroy",p),e.add(()=>{t.off("destroy",p)}),function(t,e,r){const{$player:n,$info:o,$infoClose:i}=t.template;if(!o)return;const a=()=>!e.closed&&!w(t),s=()=>n.classList.contains("art-info-show"),c=t.i18n.get("Close");if(!a())return;const l=t.i18n.get("Video Info");if(!a())return;i.setAttribute("aria-label",c),o.setAttribute("role","group"),o.setAttribute("aria-label",l),xt(e,i,()=>i.click(),s),mt(e,o,"keydown",t=>{const e=t;a()&&s()&&wt(e)&&!e.defaultPrevented&&"Escape"===e.key&&(bt(e),r())});const d=e=>{if(!a())return;const r=n.ownerDocument,s=r.activeElement;if(e)o.contains(s)||(Ve.delete(t),s&&n.contains(s)&&(Ve.set(t,jt(s)),n.classList.contains("art-keyboard-focus")&&i.focus({preventScroll:!0})));else{const e=Ve.get(t);if(Ve.delete(t),!o.contains(s))return;const i=e&&r.defaultView?.getComputedStyle(e).visibility;e?.isConnected&&n.contains(e)&&e.getClientRects().length&&"hidden"!==i&&"collapse"!==i&&!e.matches(":disabled")&&!e.closest("[inert]")&&"true"!==e.getAttribute("aria-disabled")?e.focus({preventScroll:!0}):At(t)}};t.on("info",d),e.add(()=>{t.off("info",d)})}(t,e,r);const f=()=>{try{for(const t of u){if(!n())return;const e=Reflect.get(l,t.dataset.video??"undefined");if(!n())return;const r="number"===typeof e?e.toFixed(2):e;if(!n())return;if(t.textContent!==r){const e=null==r?null:`${r}`;if(!n())return;t.textContent=e}}n()&>(e,f,a.INFO_LOOP_TIME)}catch(t){o(t)}};n()&&f()}catch(i){o(i)}}const Be=new WeakMap;class He extends Ft{constructor(t){super(t),this.name="info",Be.set(this,{revision:0}),u||this.init()}init(){const t=Be.get(this),e=++t.revision;if(t.scope?.dispose(),w(this.art)||t.revision!==e)return;const r=b(this.art).child();t.scope=r,r.add(()=>{t.scope===r&&(t.scope=void 0)}),Ye(this.art,r,()=>{this.show=!1})}}class je extends Ft{constructor(t){super(t);const{option:e,template:{$layer:r}}=t;this.name="layer",this.$parent=r;for(let n=0;n<e.layers.length;n++)this.add(e.layers[n])}}class qe extends Ft{constructor(t){super(t),this.name="loading";const e=t.icons.loading;w(t)||kt(t.template.$loading,e)}}class Ue extends Ft{constructor(t){super(t),this.name="mask";const{template:e,icons:r,events:n}=t,o=r.state;if(w(t))return;const i=kt(e.$state,o),a=r.error;if(w(t))return;const s=kt(e.$state,a);H(s,"display","none");let c=!1;const l=()=>{H(i,"display","none"),H(s,"display",null),w(t)&&(c=!0)};var d;t.on("destroy",l),(d=t,y(d).finalizers).add(()=>{try{c||l()}finally{t.off("destroy",l)}}),w(t)||n.proxy(e.$state,"click",()=>{w(t)||G(t.play())})}}const Xe=new WeakMap;function Ge(t){const e=Xe.get(t);e.revision++,e.pending=void 0,null!==t.timer&&(clearTimeout(t.timer),t.timer=null)}class Ke{constructor(t){this.art=t,this.timer=null,Xe.set(this,{revision:0});const e=()=>this.destroy();t.on("destroy",e),b(t).add(()=>{t.off("destroy",e)}),b(t).add(()=>{this.destroy()})}destroy(){Ge(this)}set show(t){if(w(this.art))return;const e=Xe.get(this);e.revision++;const{constructor:r,template:{$player:n,$noticeInner:o}}=this.art;if(t){Ge(this);const i=e.revision,a=()=>!w(this.art)&&e.revision===i;if(o.textContent=t instanceof Error?t.message.trim():t,!a())return;if(O(n,"art-notice-show"),!a())return;const s=r.NOTICE_TIME;if(!a())return;const c={};e.pending=c;const l=setTimeout(()=>{if(w(this.art)||e.pending!==c)return;e.pending=void 0;const t=e.revision;o.textContent="",w(this.art)||e.revision!==t||D(n,"art-notice-show")},s);a()?this.timer=l:clearTimeout(l)}else D(n,"art-notice-show")}get show(){const{template:{$player:t}}=this.art;return t.classList.contains("art-notice-show")}}function Ze(t,e){return function(t,e){const r=lt(e,t);return r.container=t.container,o(r,_t)}(t,e)}function Je({width:t,height:e}){return Number.isFinite(t)&&t>0&&Number.isFinite(e)&&e>0}function Qe(t,e){if(!Je(t)||!Number.isFinite(e)||e<=0)return;const r=t.width/t.height>e?{width:e*t.height,height:t.height,axis:"width"}:{width:t.width,height:t.width/e,axis:"height"};return Je(r)?r:void 0}function tr(t,e,r,n=!1){const o=e=>{w(t)||r(e)};t[n?"once":"on"](e,o),b(t).add(()=>{t.off(e,o)})}function er(t,e,r){for(const[n,o]of e){if(w(t)||r&&!r())return;t[n].show=o}}function rr(t){const{option:e,constructor:r,i18n:n,notice:o,template:{$player:i}}=t;let a,s=Qt(t),c=0;return{reset(){c=0,a?.dispose(),D(i,"art-error")},loadStart(){D(i,"art-error")},schedule(l){(async l=>{if(w(t))return;const d=Qt(t);if(d!==s&&(s=d,c=0),a&&!a.closed)return;const u=d.child();a=u,u.add(()=>{a===u&&(a=void 0)});const p=()=>!w(t)&&!u.closed&&d===Qt(t),f=c<r.RECONNECT_TIME_MAX;try{if(!f){if(er(t,[["mask",!0],["loading",!1],["controls",!0]],p),!p())return;O(i,"art-error")}if(!(await vt(u,r.RECONNECT_SLEEP_TIME))||!p())return;if(f){const r=e.url;if(!p())return;c+=1;const i=c;u.dispose();const a=ee(t);if(s=Qt(t),ne(t,a,r),!a.active())return;const d=`${n.get("Reconnect")}: ${i}`;if(!a.active())return;o.show=d,a.active()&&t.emit("error",l,i)}else{const t=n.get("Video Load Failed");p()&&(o.show=t)}}finally{u.dispose()}})(l).catch(t=>{console.warn("ArtPlayer reconnect failed:",t)})}}}const nr=[["requestFullscreen","exitFullscreen","fullscreenElement","fullscreenEnabled","fullscreenchange","fullscreenerror"],["webkitRequestFullscreen","webkitExitFullscreen","webkitFullscreenElement","webkitFullscreenEnabled","webkitfullscreenchange","webkitfullscreenerror"],["webkitRequestFullScreen","webkitCancelFullScreen","webkitCurrentFullScreenElement","webkitCancelFullScreen","webkitfullscreenchange","webkitfullscreenerror"],["mozRequestFullScreen","mozCancelFullScreen","mozFullScreenElement","mozFullScreenEnabled","mozfullscreenchange","mozfullscreenerror"],["msRequestFullscreen","msExitFullscreen","msFullscreenElement","msFullscreenEnabled","MSFullscreenChange","MSFullscreenError"]],or=(()=>{if("undefined"===typeof document)return!1;const t=nr[0],e={};for(const r of nr){if(r[1]in document){for(const[n,o]of r.entries())e[t[n]]=o;return e}}return!1})(),ir={change:or.fullscreenchange,error:or.fullscreenerror},ar={request:(t=document.documentElement,e)=>new Promise((r,n)=>{const o=()=>{ar.off("change",o),r()};ar.on("change",o);const i=t[or.requestFullscreen](e);i instanceof Promise&&i.then(o).catch(n)}),exit:()=>new Promise((t,e)=>{if(!ar.isFullscreen)return void t();const r=()=>{ar.off("change",r),t()};ar.on("change",r);const n=document[or.exitFullscreen]();n instanceof Promise&&n.then(r).catch(e)}),toggle:(t,e)=>ar.isFullscreen?ar.exit():ar.request(t,e),onchange(t){ar.on("change",t)},onerror(t){ar.on("error",t)},on(t,e){const r=ir[t];r&&document.addEventListener(r,e,!1)},off(t,e){const r=ir[t];r&&document.removeEventListener(r,e,!1)},raw:or};function sr(t,e,...r){const n=Reflect.get(t,e);if("function"!==typeof n)throw new TypeError(`Fullscreen method ${e} is not available`);return n.apply(t,r)}Object.defineProperties(ar,{isFullscreen:{get:()=>Boolean(document[or.fullscreenElement])},element:{enumerable:!0,get:()=>document[or.fullscreenElement]},isEnabled:{enumerable:!0,get:()=>Boolean(document[or.fullscreenEnabled])}});const cr=new WeakMap;function lr(t){try{Promise.resolve(t()).catch(()=>{})}catch{}}function dr(t){const{document:e,elementProperty:r,changeEvent:n,target:o,exit:i}=t,a=function(t,e,r){let n=cr.get(t);if(!n){n=new WeakMap,cr.set(t,n);const o=n;t.addEventListener(r,()=>{const r=Reflect.get(t,e),n=r&&o.get(r);n&&(o.delete(r),lr(n))})}return n}(e,r,n);a.set(o,i),t.element===o&&(a.delete(o),lr(i))}function ur(t,e,r,n,o=()=>t.element!==t.target){const i=e.child();let a,s,c=!1,l=!1,d=!1,u=!1,p=!1;const f=new Promise((t,e)=>{a=t,s=e});function h(t=!1,e){if(!c){c=!0;try{i.dispose()}catch(r){t||(t=!0,e=r)}t?s(e):a()}}i.add(()=>{c||(c=!0,l=!0,a(),d&&!u&&r&&dr(t))});const m=()=>{d&&!u&&(r?t.element===t.target:o())&&h()};if(mt(i,t.document,t.changeEvent,m),mt(i,t.document,t.errorEvent,e=>{e.target!==t.target&&e.target!==t.document||(p=!0,d&&!u&&h(!0,new Error("Fullscreen request failed")))}),!i.closed)try{r&&function(t){cr.get(t.document)?.delete(t.target)}(t);const e=r?t.request():t.exit();u=Boolean(e&&"function"===typeof e.then),d=!0,l&&!u&&r&&dr(t),u?Promise.resolve(e).then(()=>{l?n():h()},t=>h(!0,t)).catch(()=>{}):p?h(!0,new Error("Fullscreen request failed")):m()}catch(g){h(!0,g)}return{promise:f,cancel:()=>i.dispose()}}function pr(t,e){const r=b(t).child(),{$player:n,$video:o}=t.template,i=()=>e.element===n||e.element===o;let a,s=i(),c=0,l=s,d=!1,u=!1,p=!1;function f(){if(i())try{Promise.resolve(e.exit()).catch(()=>{})}catch{}}return r.add(()=>{c+=1,l=!1,n.classList.remove("art-fullscreen"),f()}),mt(r,e.document,e.changeEvent,()=>{const r=i();if(r&&function(t){return cr.get(t.document)?.has(t.target)??!1}(e))return;if(r&&u)return void f();if(r===s||w(t))return;s=r;const o=c,a=()=>w(t)||i()!==r||o!==c&&l!==r;t.emit("fullscreen",r),a()||(r&&(t.state="fullscreen"),a()||(n.classList.toggle("art-fullscreen",r),t.emit("resize")))}),mt(r,e.document,e.errorEvent,r=>{(r.target===n||r.target===o||r.target===e.document&&(p||void 0!==a||i()))&&!w(t)&&t.emit("fullscreenError",r)}),{get:()=>!w(t)&&i(),set(n){if(w(t))return Promise.resolve();const o=++c;if(l=Boolean(n),l?u=!1:d&&(u=!0),a?.cancel(),a=void 0,d=!1,!l&&!i())return Promise.resolve();p=!0,d=l;const s=ur(e,r,l,()=>{!w(t)&&l||f()},()=>!i());p=!1,c===o?a=s:s.cancel();const h=s.promise.catch(e=>{throw w(t)||c!==o||(t.notice.show=e),e}).finally(()=>{c===o&&(a=void 0,d=!1)});return h.catch(()=>{}),h}}}const fr=new WeakSet;function hr(t,e=!1){return"string"===typeof t.webkitPresentationMode?"fullscreen"===t.webkitPresentationMode:"boolean"===typeof t.webkitDisplayingFullscreen?t.webkitDisplayingFullscreen:t.ownerDocument.fullscreenElement===t||e}function mr(t){fr.delete(t),t.removeEventListener("webkitbeginfullscreen",gr),t.removeEventListener("webkitpresentationmodechanged",gr)}function gr(t){if(fr.has(this)&&hr(this,"webkitbeginfullscreen"===t.type)){mr(this);try{this.webkitExitFullscreen?.()}catch{}}}function vr(t){fr.add(t),t.addEventListener("webkitbeginfullscreen",gr),t.addEventListener("webkitpresentationmodechanged",gr)}function yr(t){const{$video:e}=t.template,r=b(t).child();let n=!1,o=hr(e),i=o,a=!1,s=0;const c=()=>hr(e,n);function l(r){if(w(t)||(l=e,fr.has(l)))return;var l;"boolean"===typeof r&&(n=r);const d=c();if(d&&(a=!1),d===o)return;o=d;const u=s,p=()=>w(t)||c()!==d||u!==s&&i!==d;t.emit("fullscreen",d),p()||(d&&(t.state="fullscreen"),p()||t.emit("resize"))}r.add(()=>{s++,i=!1,a&&vr(e),c()&&e.webkitExitFullscreen?.()}),mt(r,e,"webkitbeginfullscreen",()=>l(!0)),mt(r,e,"webkitendfullscreen",()=>l(!1)),mt(r,e,"webkitpresentationmodechanged",()=>l());const d=()=>l();return t.on("document:webkitfullscreenchange",d),r.add(()=>{t.off("document:webkitfullscreenchange",d)}),{get:()=>!w(t)&&c(),set(r){if(w(t))return;const n=++s;if(i=Boolean(r),r){if(mr(e),t.state="fullscreen",w(t)||n!==s)return;a=!0;try{e.webkitEnterFullscreen()}catch(o){throw n===s&&(a=!1),o}}else a&&(a=!1,vr(e)),c()&&e.webkitExitFullscreen()}}}function br(t){return{node:t,parent:t.parentNode,next:t.nextSibling}}function wr({node:t,parent:e,next:r}){if(!e)return void t.parentNode?.removeChild(t);const n=r?.parentNode===e?r:null;t.parentNode===e&&t.nextSibling===n||e.insertBefore(t,n)}function xr(t,e,r){const n=Math.max(0,r.viewportWidth-r.width),o=Math.max(0,r.viewportHeight-r.height);return{left:Math.max(0,Math.min(t,n)),top:Math.max(0,Math.min(e,o))}}function kr(t){const{width:e,height:r}=t.getBoundingClientRect(),n=t.ownerDocument.defaultView;return{width:e,height:r,viewportWidth:n.innerWidth,viewportHeight:n.innerHeight}}function $r(t,e,r,n){const o=e.child();if(o.closed)return;const i=t.template.$mini;if(i){const t=i.style.display;return o.add(()=>{i.style.display=t}),{element:i,cancelDrag:()=>{},fresh:!1}}const a=t.template.$player.ownerDocument,s=a.createElement("div");s.className="art-mini-popup",o.add(()=>{s.remove()});try{const e=a.createElement("div");if(e.className="art-mini-close",e.append(t.icons.close),o.closed)return;const i=a.createElement("div");i.className="art-mini-state";const c=t.icons.play,l=t.icons.pause;if(o.closed)return;i.append(c,l),s.append(e,i),xt(o,e,()=>e.click(),r),xt(o,i,()=>(t.playing?l:c).click(),r);const d=t.i18n.get("Close");if(o.closed||w(t))return;e.setAttribute("aria-label",d);const u=t.i18n.get("Mini Player");if(o.closed||w(t))return;s.setAttribute("role","group"),s.setAttribute("aria-label",u),mt(o,s,"keydown",t=>{const e=t;r()&&wt(e)&&!e.defaultPrevented&&"Escape"===e.key&&(bt(e),n())}),mt(o,e,"click",n),mt(o,c,"click",()=>{G(t.play())}),mt(o,l,"click",()=>{t.pause()});const p=()=>{if(o.closed)return;const e=t.i18n.get(t.playing?"Pause":"Play");o.closed||w(t)||(i.setAttribute("aria-label",e),c.style.display=t.playing?"none":"flex",l.style.display=t.playing?"flex":"none")};p();for(const r of["video:playing","video:pause","video:timeupdate"])t.on(r,p),o.add(()=>{t.off(r,p)});const f=function(t,e,r,n){let o=!1,i=0,a=0;const s=()=>{o=!1,e.classList.remove("art-mini-dragging"),e.style.transform=""};mt(r,e,"mousedown",t=>{const e=t;0===e.button&&n()&&(o=!0,i=e.clientX,a=e.clientY)});const c=t=>{!r.closed&&o&&n()&&(e.classList.add("art-mini-dragging"),e.style.transform=`translate(${t.clientX-i}px, ${t.clientY-a}px)`)},l=()=>{if(r.closed||!o||!n())return;const i=e.getBoundingClientRect(),a=xr(i.left,i.top,kr(e));s(),e.style.left=`${a.left}px`,e.style.top=`${a.top}px`,t.storage.set("left",a.left),r.closed||t.storage.set("top",a.top)};return t.on("document:mousemove",c),r.add(()=>{t.off("document:mousemove",c)}),t.on("document:mouseup",l),r.add(()=>{t.off("document:mouseup",l)}),r.add(s),s}(t,s,o,r);if(o.closed)return;if(t.template.$mini=s,a.body.append(s),!o.closed)return{element:s,cancelDrag:f,fresh:!0,focus:()=>e.focus({preventScroll:!0})}}catch(c){throw o.dispose(),t.template.$mini===s&&delete t.template.$mini,c}}function Er(t){const{$player:e,$video:r}=t.template,n=b(t).child();let o,i,a=0,s=!1,c=!1;const l=()=>!w(t)&&e.classList.contains("art-mini"),d=function(t){const e=t.template.$player;let r;return{entering(){const n=e.ownerDocument,o=n.activeElement,i=o&&e.contains(o);t.template.$mini?.contains(o)||(r=i?jt(o):void 0);const a=i&&e.classList.contains("art-keyboard-focus");return e=>{!a||w(t)||n.activeElement!==o&&n.activeElement!==n.body||e?.()}},leaving(n){const o=e.ownerDocument,i=n?.contains(o.activeElement);return()=>{if(!i||w(t)||o.activeElement!==o.body&&!n?.contains(o.activeElement))return;const e=r&&o.defaultView?.getComputedStyle(r).visibility;r?.isConnected&&r.getClientRects().length&&"hidden"!==e&&"collapse"!==e&&"true"!==r.getAttribute("aria-disabled")&&!r.matches(":disabled")&&!r.closest("[inert]")?r.focus({preventScroll:!0}):At(t)}}}}(t);function u(){if(i){const e=i,r=a;i=void 0;try{wr(e)}catch(t){throw r!==a||i||(i=e),t}}}function p(){if(w(t))return;const r=++a;c=!1;const n=d.leaving(t.template.$mini);u(),w(t)||r!==a||(o?.cancelDrag(),e.classList.remove("art-mini"),t.template.$mini&&(t.template.$mini.style.display="none",n(),w(t)||r!==a||t.emit("mini",!1)))}function f(){if(w(t))return;const h=++a;if(s)return void(c=!0);const m=d.entering();if(t.state="mini",!w(t)&&h===a){i??(i=br(r)),e.classList.add("art-mini");try{if(!o){s=!0;try{o=$r(t,n,l,p)}finally{s=!1}}if(c)return c=!1,void f();if(!o||w(t))return;if(h!==a)return void(l()||(o.element.style.display="none"));if(o.fresh?o.element.prepend(r):o.element.append(r),w(t)||h!==a)return;o.element.style.display=o.fresh?"":"flex",o.fresh=!1;const e=t.storage.get("top"),i=function(t,e,r){return"number"===typeof t&&Number.isFinite(t)&&"number"===typeof e&&Number.isFinite(e)&&t>=0&&e>=0&&t+r.width<=r.viewportWidth&&e+r.height<=r.viewportHeight?{left:t,top:e,reset:!1}:{...xr(r.viewportWidth-r.width-50,r.viewportHeight-r.height-50,r),reset:!0}}(t.storage.get("left"),e,kr(o.element));if(w(t)||h!==a)return;if(o.element.style.left=`${i.left}px`,o.element.style.top=`${i.top}px`,i.reset){if(t.storage.set("top",i.top),w(t)||h!==a)return;t.storage.set("left",i.left)}w(t)||h!==a||m(o.focus),w(t)||h!==a||t.emit("mini",!0)}catch(g){const r=c;throw c=!1,w(t)||h!==a&&!r||(u(),e.classList.remove("art-mini"),o&&(o.element.style.display="none")),g}}}return n.add(()=>{a++;try{u()}finally{o?.cancelDrag(),e.classList.remove("art-mini")}}),{get:l,set(t){t?f():p()}}}const Ar=new WeakSet,Cr=t=>"picture-in-picture"===t.webkitPresentationMode;function Sr(t){Ar.delete(t),t.removeEventListener("webkitpresentationmodechanged",Tr),t.removeEventListener("enterpictureinpicture",Tr)}function Tr(){if(Ar.has(this)&&Cr(this)){Sr(this);try{this.webkitSetPresentationMode?.("inline")}catch{}}}function Lr(t){Ar.add(t),t.addEventListener("webkitpresentationmodechanged",Tr),t.addEventListener("enterpictureinpicture",Tr)}function Pr(t,e,r,n,o=!0){let i,a=!1;const s=e=>{t.closed||a||(o&&(a=!0,i()),n(e))};return e[o?"once":"on"](r,s),i=t.add(()=>{e.off(r,s)}),s}function Mr(t,e,r){return new Promise((n,o)=>{if(w(t)||e===t.url)return void n();const i=function(t){const e=Gt.get(t);return e?.active()?e.resumePlaying:void 0}(t)??t.playing,a=ee(t);a.resumePlaying=i;const s=a.scope.child();let c=!1;const l=(t=!1,e)=>{c||(c=!0,a.resumePlaying=void 0,a.onError=void 0,a.onAssigned=void 0,s.dispose(),t?o(e):n(),t&&a.scope.dispose())};s.add(()=>{l()});const d=()=>!c&&a.active(),u=t=>l(!0,t);a.onError=u;try{const{aspectRatio:n,playbackRate:o}=t;a.internalPause=!0;try{t.pause()}finally{a.internalPause=!1}if(!d())return;const i=s.child();let c=!1,p=!1,f=!1;const h=ue(t,r,d),m=async()=>{const e=a.pauseRevision;if(t.aspectRatio=n,d()){if(a.resumePlaying)try{await t.play()}catch{}d()&&(a.pauseRevision===e&&(t.notice.show=""),l())}},g=()=>{if(d()&&!p&&c)try{if(t.template?.$video?.seeking)return;if(!d())return;if(f||(f=!0,t.playbackRate=o),!h.ready()||!d()||p)return;p=!0,i.dispose(),m().catch(u)}catch(e){u(e)}},v={"video:error":u,"video:loadedmetadata":()=>{if(d())try{h.restore()}catch(t){u(t)}},"video:canplay":()=>{c=!0,g()},"video:seeked":g,seek:h.manual},y=s.child(),b=[],w=Object.keys(v);for(const e of w)Pr(y,t,e,t=>{a.acceptingEvents&&b.push([e,t])},!1);if(ne(t,a,e),!d())return;if(t.notice.show="",!d())return;const x=()=>{if(y.dispose(),!e)return void l();const r={};for(const e of w)r[e]=Pr(i,t,e,v[e],"video:seeked"!==e);for(const[t,e]of b){if(!d()||i.closed)break;r[t](e)}b.length=0};a.assigned?x():a.onAssigned=x}catch(p){u(p)}})}function zr(t,e){const{number:r,column:n,width:o,height:i,scale:a}=t,{imageWidth:s,videoWidth:c,videoHeight:l,progressWidth:d,position:u}=e,p=Number(n),f=Number(o)*Number(a)||s/p,h=Number(i)*Number(a)||f/(c/l),m=Math.floor(u/(d/Number(r)));return{height:`${h}px`,width:`${f}px`,backgroundPosition:`-${m%p*f}px -${Math.floor(m/p)*h}px`,left:u<=f/2?0:u>d-f/2?d-f+"px":u-f/2+"px"}}function Rr(t){const{option:e,template:{$video:r}}=t;it(t,"url",{get:()=>r.src,async set(n){if(w(t))return;const o=function(t){const e=Kt.get(t);return Kt.delete(t),e||ee(t)}(t);o.acceptingEvents=!1;try{if(!n)return void(await vt(o.scope)&&o.active()&&(t.loading.show=!0));const i=t.url,a=e.type||K(n),s=e.customType[a];if(a&&s){if(!(await vt(o.scope))||!o.active())return;t.loading.show=!0}if(!o.active())return;const c=o.scope.child();let l=!1,d=!1;Pr(c,t,"video:canplay",()=>{l=!d}),Pr(c,t,"video:error",()=>{d=!0});try{if(o.acceptingEvents=!0,a&&s){const e=s.call(t,r,n,t);Promise.resolve(e).catch(t=>oe(o,t))}else{if(!o.active())return;r.src=n}}finally{c.dispose()}if(!o.active())return;if(i!==t.url&&(t.option.url=n,o.active()&&t.isReady&&i)){const e=()=>{o.active()&&t.emit("restart",n)};l?e():d||Pr(o.scope,t,"video:canplay",e)}}catch(i){oe(o,i)}finally{re(o)}}})}const Or=[function(t){const{template:{$video:e}}=t;it(t,"attr",{value(t,r){const n=e;if(void 0===r)return n[t];n[t]=r}})},function(t){const{i18n:e,notice:r,option:n,constructor:{instances:o},template:{$video:i}}=t;it(t,"play",{async value(){Jt(t,!0);const a=function(t){const e=te(t),r=Gt.get(t),n=r?.pauseRevision;return()=>e()&&r?.pauseRevision===n}(t),s=await i.play();if(!a())return s;const c=e.get("Play");if(!a())return s;if(r.show=c,!a())return s;if(t.emit("play"),n.mutex)for(let e=0;e<o.length&&a();e++){const r=o[e];r!==t&&r.pause()}return s}})},function(t){const{template:{$video:e},i18n:r,notice:n}=t;it(t,"pause",{value(){Jt(t,!1);const o=e.pause();return n.show=r.get("Pause"),t.emit("pause"),o}})},function(t){it(t,"toggle",{value:()=>t.playing?t.pause():t.play()})},function(t){const{notice:e}=t;it(t,"seek",{set(r){t.currentTime=r,t.duration&&(e.show=`${tt(t.currentTime)} / ${tt(t.duration)}`),t.emit("seek",t.currentTime,r)}});const r=t;it(t,"forward",{set(e){r.seek=t.currentTime+e}}),it(t,"backward",{set(e){r.seek=t.currentTime-e}})},function(t){const{template:{$video:e},i18n:r,notice:n,storage:o}=t;it(t,"volume",{get:()=>e.volume||0,set:t=>{e.volume=J(t,0,1),n.show=`${r.get("Volume")}: ${Number.parseInt(String(100*e.volume),10)}`,0!==e.volume&&o.set("volume",e.volume)}}),it(t,"muted",{get:()=>e.muted,set:r=>{e.muted=r,t.emit("muted",r)}})},function(t){const{$video:e}=t.template;it(t,"currentTime",{get:()=>e.currentTime||0,set:r=>{const n=Number.parseFloat(r);Number.isNaN(n)||(!function(t){le.set(t,de(t)+1)}(t),e.currentTime=J(n,0,t.duration))}})},function(t){it(t,"duration",{get:()=>{const{duration:e}=t.template.$video;return e===1/0?0:e||0}})},function(t){const e=e=>Mr(t,e,0);it(t,"switchQuality",{value:e=>Mr(t,e,t.currentTime)}),it(t,"switchUrl",{value:e}),it(t,"switch",{set:e})},function(t){const{template:{$video:e},i18n:r,notice:n}=t,o=t;it(t,"playbackRate",{get:()=>e.playbackRate,set(t){if(t){if(t===e.playbackRate)return;e.playbackRate=t,n.show=`${r.get("Rate")}: ${1===t?r.get("Normal"):`${t}x`}`}else o.playbackRate=1}})},function(t){const{i18n:e,notice:r,template:{$video:n,$player:o}}=t;it(t,"aspectRatio",{get:()=>o.dataset.aspectRatio||"default",set(i){if(!w(t)){if(i||(i="default"),"default"===i)n.style.width="",n.style.height="",n.style.margin="",delete o.dataset.aspectRatio;else{const e=i.split(":").map(Number),r=Qe({width:o.clientWidth,height:o.clientHeight},e[0]/e[1]);if(w(t))return;"width"===r?.axis?(n.style.width=`${r.width}px`,n.style.height="100%",n.style.margin="0 auto"):r&&(n.style.width="100%",n.style.height=`${r.height}px`,n.style.margin="auto 0"),o.dataset.aspectRatio=i}r.show=`${e.get("Aspect Ratio")}: ${"default"===i?e.get("Default"):i}`,w(t)||t.emit("aspectRatio",i)}}})},function(t){const{notice:e,template:{$video:r}}=t,n=document.createElement("canvas");function o(o){const i=te(t);return new Promise((a,s)=>{const c=r=>{try{!w(t)&&i()&&(e.show=r)}catch(n){return void s(n)}s(r)};try{!function(t,e){t.width=e.videoWidth,t.height=e.videoHeight;const r=t.getContext("2d");if(!r)throw new TypeError("Canvas 2D context is unavailable");r.drawImage(e,0,0)}(n,r),o?function(t,e,r){t.toBlob(t=>{try{if(!t)throw new Error("Unable to encode screenshot blob");e(URL.createObjectURL(t))}catch(n){r(n)}})}(n,a,c):a(n.toDataURL("image/png"))}catch(l){c(l)}})}it(t,"getDataURL",{value:()=>o(!1)}),it(t,"getBlobUrl",{value:()=>o(!0)}),it(t,"screenshot",{value:async e=>{const n=te(t),o=await t.getDataURL();if(!w(t)&&n()){const i=e||`artplayer_${tt(r.currentTime)}`;!w(t)&&n()&&Z(o,`${i}.png`),!w(t)&&n()&&t.emit("screenshot",o)}return o}})},function(t){const{i18n:e,notice:r,template:{$video:n,$player:o}}=t,i=()=>{if(w(t))return;const i=function(t){const e=ar.raw,r=t.ownerDocument;if(e&&Reflect.get(r,e.fullscreenEnabled))return{document:r,target:t,get element(){return Reflect.get(r,e.fullscreenElement)},elementProperty:e.fullscreenElement,changeEvent:e.fullscreenchange,errorEvent:e.fullscreenerror,request:()=>sr(t,e.requestFullscreen,void 0),exit:()=>sr(r,e.exitFullscreen)}}(o);i?it(t,"fullscreen",pr(t,i)):n.webkitSupportsFullscreen&&"function"===typeof n.webkitEnterFullscreen&&"function"===typeof n.webkitExitFullscreen?it(t,"fullscreen",yr(t)):it(t,"fullscreen",{get:()=>!1,set(){w(t)||(r.show=e.get("Fullscreen Not Supported"))}}),it(t,"fullscreen",ct(t,"fullscreen"))};t.once("video:loadedmetadata",i),b(t).add(()=>{t.off("video:loadedmetadata",i)})},function(t){const e=function(t){const{$player:e}=t.template;let r,n=0;function o(t,r){return null===t.style?e.removeAttribute("style"):e.setAttribute("style",t.style),!!r()&&(e.classList.remove("art-fullscreen-web"),!!r()&&(wr(t.placement),r()))}return b(t).add(()=>{n+=1;const t=r;if(r=void 0,t)try{o(t,()=>!0)}catch(i){try{e.parentNode!==t.placement.parent&&e.parentNode?.removeChild(e)}catch(a){throw new h([i,a])}throw i}}),i=>{if(w(t))return;const a=++n,s=()=>a===n&&!w(t),c=function(t){const e=t.ownerDocument?.activeElement,r=e&&t.contains(e);return()=>{r&&e.isConnected&&t.contains(e)&&e.ownerDocument.activeElement===e.ownerDocument.body&&e.focus({preventScroll:!0})}}(e);if(i){r||(r={placement:br(e),style:e.getAttribute("style")});const n=r;try{const r=e.ownerDocument.body;if(t.constructor.FULLSCREEN_WEB_IN_BODY&&e.parentNode!==r&&r.appendChild(e),!s())return;if(t.state="fullscreenWeb",!s())return;e.style.width="100%",e.style.height="100%",e.classList.add("art-fullscreen-web")}catch(l){throw s()&&o(n,s)&&(r=void 0,c()),l}if(!s())return;if(c(),!s())return;t.emit("fullscreenWeb",!0)}else{if(r){if(!o(r,s))return;r=void 0}else e.classList.remove("art-fullscreen-web");if(!s())return;if(c(),!s())return;t.emit("fullscreenWeb",!1)}s()&&t.emit("resize")}}(t);it(t,"fullscreenWeb",{get:()=>t.template.$player.classList.contains("art-fullscreen-web"),set:e})},function(t){const{i18n:e,notice:r,template:{$video:n}}=t,o=n.ownerDocument;o.pictureInPictureEnabled&&"function"===typeof n.requestPictureInPicture&&"function"===typeof o.exitPictureInPicture?it(t,"pip",function(t){const{$video:e}=t.template,r=e.ownerDocument,n=b(t).child(),o=()=>r.pictureInPictureElement===e;let i=o(),a=i,s=!1,c=!1,l=0;function d(){if(o())try{r.exitPictureInPicture().catch(()=>{})}catch{}}function u(e,r,n){e.then(()=>{!r||!w(t)&&a||d()},e=>{w(t)||l!==n||(t.notice.show=e)}).finally(()=>{l===n&&(s=!1)}).catch(()=>{})}return e.disablePictureInPicture=!1,n.add(()=>{l++,a=!1,d()}),mt(n,e,"enterpictureinpicture",()=>{if(c)return void d();if(!o()||i)return;const e=l;t.state="pip",!w(t)&&e===l&&o()&&(i=!0,t.emit("pip",!0))}),mt(n,e,"leavepictureinpicture",()=>{i&&!o()&&(i=!1,t.emit("pip",!1))}),{get:()=>!w(t)&&o()?e:null,set(n){if(w(t))return;const i=++l;if(a=Boolean(n),a?c=!1:s&&(c=!0),s=!1,a){if(t.state="pip",w(t)||l!==i)return;s=!0;try{u(e.requestPictureInPicture(),!0,i)}catch(d){throw l===i&&(s=!1),d}}else o()&&u(r.exitPictureInPicture(),!1,i)}}}(t)):"function"===typeof n.webkitSupportsPresentationMode&&"function"===typeof n.webkitSetPresentationMode?it(t,"pip",function(t){const{$video:e}=t.template,r=b(t).child();let n=!1,o=!1,i=0,a=0;function s(r=!1){if(w(t)||Ar.has(e))return;const s=Cr(e);if(s&&(o=!1),s===n&&!r)return;const c=i;s&&(t.state="pip"),w(t)||i!==c||Cr(e)!==s||(n=s,a++,t.emit("pip",s))}e.webkitSetPresentationMode("inline"),r.add(()=>{i++,o&&Lr(e),Cr(e)&&e.webkitSetPresentationMode("inline")});for(const c of["webkitpresentationmodechanged","enterpictureinpicture","leavepictureinpicture"])mt(r,e,c,()=>s());return{get:()=>!w(t)&&Cr(e),set(r){if(w(t))return;const n=++i,c=a;if(r){if(!1===e.webkitSupportsPresentationMode?.("picture-in-picture"))return void(t.notice.show=t.i18n.get("PIP Not Supported"));if(Sr(e),t.state="pip",w(t)||i!==n)return;o=!0;try{e.webkitSetPresentationMode("picture-in-picture")}catch(l){throw n===i&&(o=!1),l}}else o&&(o=!1,Lr(e)),Cr(e)&&e.webkitSetPresentationMode("inline");w(t)||n!==i||c!==a||Cr(e)!==Boolean(r)||s(!0)}}}(t)):it(t,"pip",{get:()=>!1,set(){w(t)||(r.show=e.get("PIP Not Supported"))}})},function(t){const{$video:e}=t.template,r=t;it(t,"loaded",{get:()=>r.loadedTime/e.duration}),it(t,"loadedTime",{get:()=>e.buffered.length?e.buffered.end(e.buffered.length-1):0})},function(t){it(t,"played",{get:()=>t.currentTime/t.duration})},function(t){const{$video:e}=t.template;it(t,"playing",{get:()=>"boolean"===typeof e.playing?e.playing:!!(e.currentTime>0&&!e.paused&&!e.ended&&e.readyState>2)})},function(t){const{$container:e,$player:r,$video:n}=t.template;it(t,"autoSize",{value(){if(w(t))return;const o={width:n.videoWidth,height:n.videoHeight};if(!Je(o))return;const i=M(e),a=Qe(i,o.width/o.height);a&&!w(t)&&("width"===a.axis?(r.style.width=a.width/i.width*100+"%",r.style.height="100%"):(r.style.width="100%",r.style.height=a.height/i.height*100+"%"),t.emit("autoSize",{width:t.width,height:t.height}))}})},function(t){const e=t;it(t,"rect",{get:()=>M(t.template.$player)});const r=["bottom","height","left","right","top","width"];for(let n=0;n<r.length;n++){const o=r[n];it(t,o,{get:()=>e.rect[o]})}it(t,"x",{get:()=>e.left+window.pageXOffset}),it(t,"y",{get:()=>e.top+window.pageYOffset})},function(t){const{template:{$player:e},i18n:r,notice:n}=t;it(t,"flip",{get:()=>e.dataset.flip||"normal",set(o){w(t)||(o||(o="normal"),"normal"===o?delete e.dataset.flip:e.dataset.flip=o,n.show=`${r.get("Video Flip")}: ${r.get(Q(o))}`,w(t)||t.emit("flip",o))}})},function(t){it(t,"mini",Er(t))},function(t){const{template:{$poster:e}}=t;it(t,"poster",{get:()=>{try{return e.style.backgroundImage.match(/"(.*)"/)[1]}catch{return""}},set(t){H(e,"backgroundImage",`url(${t})`)}})},function(t){const{$container:e,$video:r}=t.template;it(t,"autoHeight",{value(){if(w(t))return;const n=function(t,e){if(!Number.isFinite(t)||t<=0||!Je(e))return;const r=e.height*(t/e.width);return Number.isFinite(r)&&r>0?r:void 0}(e.clientWidth,{width:r.videoWidth,height:r.videoHeight});void 0===n||w(t)||(e.style.height=`${n}px`,t.emit("autoHeight",n))}})},function(t){const{$player:e}=t.template;it(t,"cssVar",{value:(t,r)=>r?e.style.setProperty(t,r):getComputedStyle(e).getPropertyValue(t)})},function(t){it(t,"theme",{get:()=>t.cssVar("--art-theme"),set(e){t.cssVar("--art-theme",e)}})},function(t){it(t,"type",{get:()=>t.option.type,set(e){t.option.type=e}})},function(t){const e=["mini","pip","fullscreen","fullscreenWeb"];it(t,"state",{get:()=>e.find(e=>t[e])||"standard",set(r){for(let n=0;n<e.length;n++){const o=e[n];o!==r&&t[o]&&(t[o]=!1)}}})},function(t){const{notice:e,i18n:r,template:n}=t;it(t,"subtitleOffset",{get:()=>n.$track?.offset||0,set(o){const{cues:i}=t.subtitle;if(!n.$track||0===i.length)return;const a=J(o,-10,10);n.$track.offset=a;for(let e=0;e<i.length;e++){const r=i[e];r.originalStartTime=r.originalStartTime??r.startTime,r.originalEndTime=r.originalEndTime??r.endTime,r.startTime=J(r.originalStartTime+a,0,t.duration),r.endTime=J(r.originalEndTime+a,0,t.duration)}t.subtitle.update(),e.show=`${r.get("Subtitle Offset")}: ${o}s`,t.emit("subtitleOffset",o)}})},function(t){if(w(t))return;const{i18n:e,notice:r,proxy:n,template:{$video:o}}=t;let i=!0;const a=window.WebKitPlaybackTargetAvailabilityEvent;if(w(t))return;const s=a&&o.webkitShowPlaybackTargetPicker;w(t)||(s?n(o,"webkitplaybacktargetavailabilitychanged",e=>{if(!w(t))switch(e.availability){case"available":i=!0;break;case"not-available":i=!1}}):i=!1,w(t)||it(t,"airplay",{value(){if(!w(t))if(i){const e=o.webkitShowPlaybackTargetPicker;if(w(t))return;Reflect.apply(e,o,[]),w(t)||t.emit("airplay")}else{const n=e.get("AirPlay Not Available");w(t)||(r.show=n)}}}))},function(t){it(t,"quality",{set(e){const{controls:r,notice:n,i18n:o}=t,i=e.find(t=>t.default)||e[0];r.update({name:"quality",position:"right",index:10,style:{marginRight:"10px"},html:i?.html||"",selector:e,async onSelect(e,r,i){const a=function(t){return t&&me.get(t)||(()=>!0)}(i);if(await t.switchQuality(e.url),!w(t)&&a()){const r=`${o.get("Switch Video")}: ${e.html}`;!w(t)&&a()&&(n.show=r)}return e.html}})}})},function(t){const{option:e,template:{$progress:r,$video:n}}=t;let o,i,a,s=b(t).child(),c=!1;function l(){const e=s;s=b(t).child(),o=void 0,c=!1,a=void 0,e.dispose()}function d(){const i=a,c=s;if(!i||!o)return;const l=()=>!w(t)&&!c.closed&&s===c&&a===i&&i.sourceActive()&&t.controls?.thumbnails===i.element;if(!l())return;const d=r.clientWidth*i.percentage;if(!(d>0&&d<r.clientWidth))return;const u={backgroundImage:`url(${o.src})`,...zr(e.thumbnails,{imageWidth:o.naturalWidth,videoWidth:n.videoWidth,videoHeight:n.videoHeight,progressWidth:r.clientWidth,position:d})};for(const[t,e]of Object.entries(u)){if(!l())return;H(i.element,t,e)}}Le(t)("setBar",(r,n,p)=>{const f=t.controls?.thumbnails,{url:h,scale:m}=e.thumbnails;if(!w(t)&&f&&h&&("hover"===r||"played"===r&&p&&u)){if(i!==f){const t=E(f);if(t.closed)return;i=f,t.add(()=>{i===f&&(i=void 0,l())})}if(a={percentage:n,element:f,sourceActive:te(t)},o)d();else if(!c){const t=s;c=!0,function(t,e,r){return q(t,e,r)}(h,m,t).then(e=>{s!==t||t.closed||(c=!1,o=e,d())}).catch(e=>{s!==t||t.closed||(c=!1,console.warn("ArtPlayer thumbnail load failed:",e))})}}}),it(t,"thumbnails",{get:()=>t.option.thumbnails,set:e=>{w(t)||!e.url||t.option.isLive||w(t)||(t.option.thumbnails=e,l())}})},function(t){!function(t){const{proxy:e,template:{$video:r}}=t;for(let n=0;n<f.events.length;n++)e(r,f.events[n],e=>{w(t)||t.emit(`video:${e.type}`,e)})}(t);const e=rr(t);!function(t,e){tr(t,"video:canplay",()=>{e.reset(),er(t,[["loading",!1]])}),tr(t,"video:canplay",()=>{er(t,[["loading",!1],["controls",!0],["mask",!0]]),w(t)||(t.isReady=!0,t.emit("ready"))},!0)}(t,e),function(t){const{option:e}=t;tr(t,"video:ended",()=>{if(e.loop){const e=te(t);if(t.seek=0,w(t)||!e())return;G(t.play()),e()&&er(t,[["controls",!1],["mask",!1]],e)}else er(t,[["controls",!0],["mask",!0]])})}(t),tr(t,"video:error",e.schedule),function(t,e){const{template:{$poster:r}}=t;tr(t,"video:loadedmetadata",()=>{t.emit("resize"),u&&er(t,[["loading",!1],["controls",!0],["mask",!0]])}),tr(t,"video:loadstart",()=>{e.loadStart(),er(t,[["loading",!0],["mask",!1],["controls",!0]])}),tr(t,"video:pause",()=>{er(t,[["controls",!0],["mask",!0]])}),tr(t,"video:play",()=>{er(t,[["mask",!1]]),w(t)||H(r,"display","none")}),tr(t,"video:playing",()=>er(t,[["mask",!1]])),tr(t,"video:progress",()=>{t.playing&&er(t,[["loading",!1]])}),tr(t,"video:seeked",()=>er(t,[["loading",!1],["mask",!0]])),tr(t,"video:seeking",()=>er(t,[["loading",!0],["mask",!1]])),tr(t,"video:timeupdate",()=>er(t,[["mask",!1]])),tr(t,"video:waiting",()=>er(t,[["loading",!0],["mask",!1]]))}(t,e)},function(t){if(w(t))return;const{option:e,storage:r,template:{$video:n,$poster:o}}=t;for(const s in e.moreVideoAttr){if(w(t))return;const r=e.moreVideoAttr[s];if(w(t))return;t.attr(s,r)}if(w(t))return;if(e.muted){const r=e.muted;if(w(t))return;t.muted=r}if(w(t))return;if(e.volume){const r=J(e.volume,0,1);if(w(t))return;n.volume=r}if(w(t))return;const i=r.get("volume");if(w(t))return;if("number"===typeof i&&(n.volume=J(i,0,1)),w(t))return;if(e.poster){const r=`url(${e.poster})`;if(w(t))return;H(o,"backgroundImage",r)}if(w(t))return;if(e.autoplay){const r=e.autoplay;if(w(t))return;n.autoplay=r}if(w(t))return;if(e.playsInline){if(w(t))return;if(n.playsInline=!0,w(t))return;n["webkit-playsinline"]=!0}if(w(t))return;if(e.theme){const r=e.cssVar,n=e.theme;if(w(t))return;r["--art-theme"]=n}for(const s in e.cssVar){if(w(t))return;const r=e.cssVar[s];if(w(t))return;t.cssVar(s,r)}if(w(t))return;const a=e.url;w(t)||(t.url=a)}];class Dr{constructor(t){if(!w(t)){Rr(t);for(const e of Or){if(w(t))return;e(t)}}}}const Ir=new WeakMap,Nr="art-auto-orientation-fullscreen";function _r(t){if(Ir.get(t.orientation)===t)try{t.orientation.unlock()}catch{}}const Wr="art-auto-orientation",Fr=["width","height","transform-origin","transform"];function Vr(t){const{$player:e,$video:r}=t.template,n=()=>{const t={width:r.videoWidth,height:r.videoHeight},n=e.ownerDocument.documentElement,o={width:n.clientWidth,height:n.clientHeight};return Je(t)&&Je(o)&&(t.width>t.height&&o.width<o.height||t.width<t.height&&o.width>o.height)},o=function(t,e){const{$player:r}=t.template,n=b(t);let o,i=()=>{};function a(){i(),i=()=>{};const e=o;if(o=void 0,e&&t.fullscreenWeb)for(const{name:t,value:o,priority:i}of e)r.style.setProperty(t,o,i);const n=r.classList.contains(Wr);r.classList.remove(Wr),n&&(t.isRotate=!1,w(t)||t.emit("resize"))}function s(n){if(!t.fullscreenWeb||!e())return;const i=z();if(w(t)||!t.fullscreenWeb)return;const a=r.ownerDocument.documentElement;o??(o=Fr.map(t=>({name:t,value:r.style.getPropertyValue(t),priority:r.style.getPropertyPriority(t)}))),r.style.width=a.clientHeight-i.top-i.bottom+"px",r.style.height=a.clientWidth-i.left-i.right+"px",r.style.transformOrigin="0 0",r.style.transform=`rotate(90deg) translate(${i.top}px, -${a.clientWidth-i.right}px)`,r.classList.add(Wr),t.isRotate=!0,n&&t.emit("resize")}return n.add(a),r=>{w(t)||(r?o?s(!1):e()&&(i(),i=gt(n,()=>{o||s(!0)},Number(t.constructor.AUTO_ORIENTATION_TIME??0))):a())}}(t,n),i=function(t,e){const{$player:r}=t.template;let n;function o(){const t=n;n=void 0,r.classList.remove(Nr),t&&(t.cancelled=!0,_r(t),t.settled&&Ir.get(t.orientation)===t&&Ir.delete(t.orientation))}return b(t).add(o),i=>{if(w(t))return;if(!i)return void o();if(n&&!n.cancelled&&Ir.get(n.orientation)===n)return;const a=r.ownerDocument.defaultView?.screen?.orientation;if("function"!==typeof a?.lock||"function"!==typeof a.unlock||!e())return;const s={orientation:a,cancelled:!1,settled:!1};n=s,Ir.set(a,s);const c=()=>!w(t)&&!s.cancelled&&n===s&&Ir.get(a)===s,l=e=>{s.settled=!0;const o=c();Ir.get(a)===s&&Ir.delete(a),n===s&&(n=void 0),o&&(r.classList.remove(Nr),t.notice.show=e)};try{const t=a.lock(a.type.startsWith("portrait")?"landscape":"portrait");Promise.resolve(t).then(()=>{s.settled=!0,c()?r.classList.add(Nr):(_r(s),Ir.get(a)===s&&Ir.delete(a))}).catch(l)}catch(d){l(d)}}}(t,n);return t.on("fullscreenWeb",o),t.on("fullscreen",i),b(t).add(()=>{t.off("fullscreenWeb",o),t.off("fullscreen",i)}),{name:"autoOrientation",get state(){return e.classList.contains("art-auto-orientation")}}}function Yr(t){return t.get("times")||{}}function Br(t){const{storage:e}=t,r=function(t){const{i18n:e,icons:r,storage:n,constructor:o,template:{$poster:i}}=t,a=t.layers.add({name:"auto-playback",html:'\n <div class="art-auto-playback-close"></div>\n <div class="art-auto-playback-last"></div>\n <div class="art-auto-playback-jump"></div>\n '});if(!a||w(t))return()=>{};const s=$t(".art-auto-playback-last",a),c=$t(".art-auto-playback-jump",a),l=$t(".art-auto-playback-close",a);kt(l,r.close);const d=E(a);let u,p=0;const f=()=>{const r=++p;if(u?.dispose(),d.closed||w(t)||p!==r)return;const f=d.child();u=f;const h=()=>u===f&&!f.closed&&!w(t);f.add(()=>{u===f&&(u=void 0,H(a,"display","none"))});const m=Qt(t).add(()=>{f.dispose()});f.add(()=>{m()});const g=Yr(n)[t.option.id||t.option.url];if(!h())return;if(H(a,"display","none"),!h()||!g||!(g>=o.AUTO_PLAYBACK_MIN))return;if(!h())return;if(H(a,"display","flex"),!h())return;const v=`${e.get("Last Seen")} ${tt(g)}`;if(!h())return;if(s.textContent=v,!h())return;const y=e.get("Jump Play");if(!h())return;if(c.textContent=y,!h())return;const b=(e,r)=>{const n=t.events.proxy(e,"click",()=>{h()&&r()});f.add(()=>{t.events.remove(n)})};if(b(l,()=>{H(a,"display","none")}),!h())return;if(b(c,()=>{t.seek=g,h()&&(G(t.play()),h()&&(H(i,"display","none"),h()&&H(a,"display","none")))}),!h())return;let x=()=>{},k=!1;const $=()=>{!k&&h()&&(k=!0,x(),gt(f,()=>{h()&&H(a,"display","none")},o.AUTO_PLAYBACK_TIMEOUT))};t.on("video:timeupdate",$),x=f.add(()=>{t.off("video:timeupdate",$)}),k&&x()};return()=>{C(t,a,"ready",f),C(t,a,"restart",f)}}(t);return function(t){const{storage:e,constructor:r}=t;Le(t)("video:timeupdate",()=>{if(!t.playing)return;const n=Yr(e),o=Object.keys(n),i=r.AUTO_PLAYBACK_MAX,a=t.option.id||t.option.url,s=t.currentTime;w(t)||(o.length>i&&delete n[o[0]],n[a]=s,w(t)||e.set("times",n))})}(t),r(),{name:"auto-playback",get times(){return Yr(e)},clear:()=>e.del("times"),delete(t){const r=Yr(e);return delete r[t],e.set("times",r),r}}}function Hr(t){let e,r=0;return{start:n=>{const o=++r;if(e?.scope.dispose(),o!==r||w(t)||1!==n.touches.length||!t.playing||t.isLock)return;const i={scope:Qt(t).child(),active:!1,previousRate:1};e=i,i.scope.add(()=>{if(e===i&&(e=void 0,i.active))try{t.playbackRate=i.previousRate}finally{e?.active||D(t.template.$player,"art-fast-forward")}}),gt(i.scope,()=>{if(e!==i||w(t)||!t.playing||t.isLock)i.scope.dispose();else try{if(i.previousRate=t.playbackRate,e!==i||i.scope.closed)return;i.active=!0;const r=t.constructor.FAST_FORWARD_VALUE;if(e!==i||i.scope.closed||w(t))return;t.playbackRate=r,e!==i||i.scope.closed||w(t)||O(t.template.$player,"art-fast-forward")}catch(r){try{i.scope.dispose()}catch(n){console.warn("Failed to restore fast-forward playback rate:",n)}throw r}},t.constructor.FAST_FORWARD_TIME)},stop:()=>{r++,e?.scope.dispose()}}}function jr(t){const{proxy:e,template:{$player:r,$video:n}}=t,o=Hr(t),i=Le(t);return e(n,"touchstart",t=>o.start(t)),e(n,"touchcancel",o.stop),i("document:touchmove",o.stop),i("document:touchend",o.stop),i("document:touchcancel",o.stop),i("video:pause",o.stop),i("destroy",o.stop),i("lock",t=>{t&&o.stop()}),{name:"fastForward",get state(){return I(r,"art-fast-forward")}}}function qr(t,e,r,n){let o;const i=()=>!r.closed&&!w(t),a=t.i18n.get("Lock");if(!i())return()=>{};e.setAttribute("aria-label",a),xt(r,e),mt(r,e,"keydown",t=>{const r=t;i()&&n()&&wt(r)&&!r.defaultPrevented&&"Escape"===r.key&&(bt(r),e.click())});const s=n=>{if(i())if(e.setAttribute("aria-pressed",String(n)),n&&!o){const{$player:n,$bottom:a}=t.template,s=a.contains(a.ownerDocument.activeElement)&&n.classList.contains("art-keyboard-focus");o=r.child(),function(t,e){const r=new Map,n=e.hasAttribute("inert"),o=e.getAttribute("aria-hidden"),i=(t,e)=>{"-1"===t.getAttribute("tabindex")&&(null===e?t.removeAttribute("tabindex"):t.setAttribute("tabindex",e))};if(t.add(()=>{for(const[t,e]of r)i(t,e);r.clear(),n||""!==e.getAttribute("inert")||e.removeAttribute("inert"),"true"===e.getAttribute("aria-hidden")&&(null===o?e.removeAttribute("aria-hidden"):e.setAttribute("aria-hidden",o))}),t.closed)return;n||e.setAttribute("inert",""),e.setAttribute("aria-hidden","true");const a=()=>{if(!t.closed){for(const[t,n]of r)e.contains(t)||(i(t,n),r.delete(t));for(const t of e.querySelectorAll("[tabindex],button,input,select,textarea,a[href],[contenteditable]"))r.has(t)||(r.set(t,t.getAttribute("tabindex")),t.setAttribute("tabindex","-1"))}};if(a(),"undefined"!==typeof MutationObserver){const r=new MutationObserver(a);r.observe(e,{childList:!0,subtree:!0}),t.add(()=>{r.disconnect()})}}(o,a),i()&&s&&e.focus({preventScroll:!0})}else if(!n&&o){const t=o;o=void 0,t.dispose()}};return s(n()),s}function Ur(t){const{layers:e,icons:r,template:{$player:n}}=t;function o(){return I(n,"art-lock")}function i(){w(t)||(O(n,"art-lock"),w(t)||(t.isLock=!0,w(t)||t.emit("lock",!0)))}function a(){w(t)||(D(n,"art-lock"),w(t)||(t.isLock=!1,w(t)||t.emit("lock",!1)))}return e.add({name:"lock",mounted(e){const n=E(e);if(n.closed||w(t))return;const i=kt(e,r.lock);if(n.closed||w(t))return;const a=kt(e,r.unlock);if(n.closed||w(t))return;const s=qr(t,e,n,o);n.closed||w(t)||(o()?(H(i,"display","inline-flex"),n.closed||w(t)||H(a,"display","none")):H(i,"display","none"),C(t,e,"lock",e=>{w(t)||(H(i,"display",e?"inline-flex":"none"),n.closed||w(t)||H(a,"display",e?"none":"inline-flex"),n.closed||w(t)||s(e))}))},click(){o()?a():i()}}),{name:"lock",get state(){return o()},set state(t){t?i():a()}}}function Xr(t){return Le(t)("control",e=>{e?D(t.template.$player,"art-mini-progress-bar"):O(t.template.$player,"art-mini-progress-bar")}),{name:"mini-progress-bar"}}class Gr{constructor(t){this.art=t,this.id=0;const{option:e}=t;!function(t,e){w(t.art)||!e.miniProgressBar||e.isLive||t.add(Xr),!w(t.art)&&e.lock&&u&&t.add(Ur),w(t.art)||!e.autoPlayback||e.isLive||t.add(Br),!w(t.art)&&e.autoOrientation&&u&&t.add(Vr),!w(t.art)&&e.fastForward&&u&&!e.isLive&&t.add(jr)}(this,e);for(let r=0;r<e.plugins.length;r++){if(w(t))return;const n=this.add(e.plugins[r]);n instanceof Promise&&n.catch(t=>console.warn("Failed to initialize ArtPlayer plugin:",t))}}add(t){X(!w(this.art),"Cannot add a plugin after ArtPlayer is destroyed"),this.id+=1;const e=t.call(this.art,this.art);return e instanceof Promise?e.then(e=>this.next(t,e)):this.next(t,e)}next(t,e){return function(t,e,r){if(w(t.art))return t;const n=r&&r.name||e.name||`plugin${t.id}`;if(w(t.art))return t;let o=n;const i=st(t,o);if(w(t.art))return t;const a=`Cannot add a plugin that already has the same name: ${n}`;return w(t.art)||(X(!i,a),("object"===typeof n&&null!==n||"function"===typeof n)&&(o=Reflect.ownKeys({[o]:void 0})[0]),w(t.art)||it(t,o,{value:r})),t}(this,t,e)}}const Kr=new WeakMap;function Zr(t){return!t.closed&&!Kr.get(t)}function Jr(t){Kr.set(t,(Kr.get(t)||0)+1);let e=!0;return()=>{if(!e)return;e=!1;const r=(Kr.get(t)||1)-1;r?Kr.set(t,r):Kr.delete(t)}}const Qr=new WeakMap,tn=new WeakMap,en=["$parent","$parents","$option","$events","$formatted"];function rn(t){const e=new Set;let r=t;for(;r&&!e.has(r);){e.add(r);const t=Qr.get(r);if(!t||!t.owner.active||t.owner.scope?.closed||!t.option.includes(r))return!1;if(!t.parent)return t.owner.root===t.option;if(Qr.get(t.parent)?.owner!==t.owner)return!1;r=t.parent}return!1}function nn(t){let e=t;for(;e;){const r=Object.getOwnPropertyDescriptor(e,"name");if(r)return"set"in r?"function"===typeof r.set:Boolean(r.writable&&(e===t||Object.isExtensible(t)));e=Object.getPrototypeOf(e)}return Object.isExtensible(t)}function on(t){const e=Qr.get(t);if(!e)throw new Error("Setting item has not been formatted");return e}function an(t,e){for(let r=0;r<t.length;r++){const n=t[r];e(n),n.selector?.length&&an(n.selector,e)}}const sn=new WeakMap;function cn(t){const e=sn.get(t);if(!e)throw new Error("Setting panel has not been registered");return e}function ln(t){const e=sn.get(t);e?e.dispose():t.remove()}const dn=new WeakMap,un=new WeakMap,pn=new WeakMap;function fn(t,e){const r=e.splice(0),n=[];for(const i of r)try{t.events.remove(i)}catch(o){n.push(o)}if(n.length)throw new h(n)}function hn(t){return un.get(t)}function mn(t){const e=dn.get(t);if(!e)throw new Error("Setting item has not been rendered");return e}function gn(t,e){const r=dn.get(e);r&&!r.closed?r.dispose():function(t){return Qr.has(t)}(e)&&fn(t,on(e).events)}function vn(t,e){const r=dn.get(e);if(!r||r.closed)return;if(!Zr(r))throw new Error("Setting item update is already in progress");const n=un.get(e),o=on(e).events,i=o.splice(0);pn.set(r,i);const a=Jr(r);let s=!0;return{resume(){if(!s)return;s=!1;const c=[],l=dn.get(e);for(const e of[()=>{l&&l!==r&&l.dispose()},()=>fn(t,o)])try{e()}catch(d){d instanceof h?c.push(...d.errors):c.push(d)}if(r.closed||w(t)||(o.push(...i.splice(0)),pn.set(r,o),dn.set(e,r),un.set(e,n)),a(),c.length)throw new h(c)},dispose(){if(s){s=!1;try{r.dispose()}finally{a()}}}}}function yn(t,e,r,n,o,i){const a=i||mn(e);if(!Zr(a)||w(t))return;const s=t.proxy(r,n,e=>{if(Zr(a)&&!w(t))try{return o(e)}catch(r){console.warn("ArtPlayer setting callback failed:",r)}});!Zr(a)||w(t)?t.events.remove(s):(on(e).events.push(s),i&&i!==dn.get(e)&&i.add(()=>{const r=on(e).events,n=r.indexOf(s);n>=0&&(r.splice(n,1),t.events.remove(s))}))}function bn(t,e,r,n){const o=mn(e);if(!Zr(o)||w(t))return;const i=(...e)=>{if(Zr(o)&&!w(t))return n(...e)};t.on(r,i),o.add(()=>{t.off(r,i)})}const wn='[tabindex="0"],button,input,select,textarea,a[href],[contenteditable]';function xn(t){if(!t.isConnected||t.matches(":disabled")||t.closest("[inert]")||"true"===t.getAttribute("aria-disabled")||!t.getClientRects().length)return!1;const e=t.ownerDocument.defaultView?.getComputedStyle(t).visibility;return"hidden"!==e&&"collapse"!==e}function kn(t){return Array.from(t.querySelectorAll(wn)).filter(t=>"-1"!==t.getAttribute("tabindex")&&xn(t))}function $n(t,e,r=!1){if(!t.show||w(t.art)||!t.active)return;const n=t.cache.get(t.active);if(!n||!Zr(cn(n)))return;const o=function(t,e,r=!1){if(e&&e!==t&&t.contains(e)&&e.matches(wn)&&"-1"!==e.getAttribute("tabindex")&&xn(e))return e;const n=kn(t),o=t.querySelector(".art-setting-item.art-current");return n.find(t=>e?.contains(t))||(r?n[n.length-1]:n.find(t=>o?.contains(t))||n.find(t=>!t.classList.contains("art-setting-item-back"))||n[0])}(n,e,r);o?.focus({preventScroll:!0}),w(t.art)||o?.scrollIntoView({block:"nearest",inline:"nearest"})}function En(t){const e=t.$parent.ownerDocument,r=e.activeElement,n=t.$parent.contains(r);return o=>{n&&!w(t.art)&&(e.activeElement===e.body||e.activeElement===r&&!r?.getClientRects().length)&&$n(t,o)}}function An(t){const{art:e}=t,r=b(e).child();if(r.closed)return;const n=()=>t.$parent.ownerDocument;let o=!1;const i=()=>{t.show=!1,r.closed||w(e)||t.render()},a=i=>{r.closed||w(e)||(i?n().activeElement===e.controls.setting&&e.template.$player.classList.contains("art-keyboard-focus")&&$n(t,void 0,o):t.$parent.contains(n().activeElement)&&function(t){const{art:e,$parent:r}=t,n=e.template.$player,o=r.ownerDocument,i=e.controls.setting;!w(e)&&r.contains(o.activeElement)&&(i&&n.contains(i)&&xn(i)&&i.focus({preventScroll:!0}),(o.activeElement===o.body||r.contains(o.activeElement))&&At(e))}(t))};e.on("setting",a),r.add(()=>{e.off("setting",a)}),mt(r,e.template.$player,"keydown",r=>{const n=r;if(!wt(n)||n.defaultPrevented||w(e))return;const a=n.target;if(a===e.controls.setting){if("ArrowDown"===n.key||"ArrowUp"===n.key)if(bt(n),t.show)$n(t,void 0,"ArrowUp"===n.key);else{o="ArrowUp"===n.key;try{t.show=!0}finally{o=!1}}else"Escape"===n.key&&t.show&&(bt(n),i());return}if(!t.show||!t.$parent.contains(a))return;if("Escape"===n.key)return bt(n),void i();if(!["ArrowUp","ArrowDown","ArrowLeft","ArrowRight","Home","End"].includes(n.key))return;const s=a.closest(".art-setting-item");if(!s||a!==s&&!a.matches('button,a[href],[role="button"]'))return;const c=t.active&&t.cache.get(t.active);if(!c)return;const l=t.active?.find(t=>t.$item===s);if(!Zr(cn(c))||l&&!Zr(mn(l)))return void bt(n);const d=kn(c),u=d.indexOf(a);if(u<0)return;let p;switch(n.key){case"ArrowDown":p=Math.min(u+1,d.length-1);break;case"ArrowUp":p=Math.max(u-1,0);break;case"Home":p=0;break;case"End":p=d.length-1;break;case"ArrowLeft":{const t=c.querySelector(".art-setting-item-back");return bt(n),void t?.click()}case"ArrowRight":return bt(n),void(l?.selector?.length&&a.click());default:return}bt(n),void 0!==p&&$n(t,d[p])});let s=!1;mt(r,t.$parent,"focusout",o=>{const a=o.relatedTarget;a&&(t.$parent.contains(a)||a===e.controls.setting)||s||(s=!0,gt(r,()=>{s=!1,r.closed||w(e)||!t.show||t.$parent.contains(n().activeElement)||n().activeElement===e.controls.setting||i()},0))})}function Cn(t){const{art:e,active:r}=t,{controls:n,constructor:{SETTING_WIDTH:o,SETTING_ITEM_HEIGHT:i},template:{$player:a,$setting:s,$bottom:c}}=e;if(!n.setting||!t.show||!r)return;const l=a.getBoundingClientRect(),d=n.setting.getBoundingClientRect(),p=l.width/a.offsetWidth||1,f=(d.left-l.left+d.width/2)/p-a.clientLeft,h=function(t){const{containerWidth:e,containerHeight:r,requestedWidth:n,rows:o,rowHeight:i,controlCenter:a,bottom:s,padding:c}=t,l=Math.min(Math.max(0,c),Math.max(0,e/2)),d=Math.min(Math.max(0,n),Math.max(0,e-2*l));return{width:d,height:Math.min(Math.max(0,o*i),Math.max(0,r-s-l)),left:Math.max(l,Math.min(a-d/2,e-l-d))}}({containerWidth:a.clientWidth,containerHeight:a.clientHeight,requestedWidth:r[0]?.$parent?.width||o,rows:r.length+(r===t.option?0:1),rowHeight:i,controlCenter:f,bottom:Number.parseFloat(getComputedStyle(s).bottom)||0,padding:Number.parseFloat(getComputedStyle(c).paddingLeft)||0});s.style.height=`${h.height}px`,s.style.width=`${h.width}px`,e.isRotate||u||(f+h.width/2>a.clientWidth?(s.style.left="",s.style.right=""):(s.style.left=`${h.left}px`,s.style.right="auto"))}const Sn=new WeakMap;function Tn(t){Sn.delete(t)}const Ln=new WeakMap;function Pn(t,e){e?Ln.set(t,e):Ln.delete(t)}function Mn(t){const e=new Map(Reflect.ownKeys(t).map(e=>[e,Object.getOwnPropertyDescriptor(t,e)])),r=[],n=Ln.get(t),o=n?.();for(const i of["html","icon","tooltip"]){const t=e.get(i)?.value;t instanceof Node&&r.push({node:t,parent:t.parentNode,next:t.nextSibling})}return()=>{for(const r of Reflect.ownKeys(t))!e.has(r)&&Object.getOwnPropertyDescriptor(t,r)?.configurable&&Reflect.deleteProperty(t,r);for(const[r,n]of e)Object.defineProperty(t,r,n);o?.(),Pn(t,n);for(const{node:t,parent:e,next:n}of r)e?e.insertBefore(t,n?.parentNode===e?n:null):t.parentNode?.removeChild(t)}}function zn(t){const e=t.$item?.querySelector(".art-setting-range");e&&e.setAttribute("aria-label",t.$html?.textContent||"")}const Rn=new WeakMap;async function On(t,e,r,n,o,i,a,s){try{const c=mn(e),l=mn(i),d=(Rn.get(i)||0)+1;Rn.set(i,d);const u=()=>Zr(c)&&Zr(l)&&!w(t.art)&&Rn.get(i)===d;if(s?.(),!u())return;const p=await o.call(t.art,e,r,n);u()&&Reflect.set(i,a,p)}catch(c){console.warn("ArtPlayer setting callback failed:",c)}}function Dn(t){const e=[];return function t(r){const n=Array.from(r.childNodes);e.push({node:r,children:n,attributes:1===r.nodeType?Array.from(r.attributes,t=>[t.name,t.value]):void 0,value:r.nodeValue}),n.forEach(t)}(t),()=>{for(const{node:t,children:r,attributes:n,value:o}of e){for(;t.firstChild;)t.removeChild(t.firstChild);for(const e of r)t.appendChild(e);if(n){const e=t;for(const t of Array.from(e.attributes))e.removeAttribute(t.name);for(const[t,r]of n)e.setAttribute(t,r)}else t.nodeValue=o}}}const In=new WeakMap;function Nn(t){const e=[];for(const n of t)try{n()}catch(r){r instanceof h?e.push(...r.errors):e.push(r)}if(e.length)throw new h(e)}function _n(t){In.get(t)?.()}function Wn(t,e){const r=t.find(e.name);if(w(t.art))return r||e;if(!r)return t.add(e);const n=En(t);Tn(r),_n(r);const o=Mn(r),i=r.$item,a=i?.parentNode,s=i?.nextSibling,c=i?Dn(i):void 0,l=t.active,d=["height","width","left","right"].map(e=>[e,t.$parent.style.getPropertyValue(e),t.$parent.style.getPropertyPriority(e)]),u=function(t,e){const r=new Set,n=new Set,o=e=>{if(!r.has(e)&&(r.add(e),e.selector)){const r=t.cache.get(e.selector);r&&n.add(r),e.selector.forEach(o)}};o(e);const i=[],a=[];try{for(const e of r){const r=vn(t.art,e);r&&i.push(r)}for(const t of n)a.push(Jr(cn(t)))}catch(c){try{Nn([...i.reverse().map(t=>t.resume),...a])}catch(l){console.warn("ArtPlayer setting restore failed:",l)}throw c}let s=!0;return{items:r,resume(){s&&(s=!1,Nn([...i.reverse().map(t=>t.resume),...a]))},dispose(){s&&(s=!1,Nn([...i.reverse().map(t=>t.dispose),...Array.from(n).reverse().map(t=>()=>ln(t)),...a]))}}}(t,r);let p=!0,f=!1;const h=()=>{if(!p)return;p=!1;for(const t of u.items)In.get(t)===h&&In.delete(t);if(w(t.art))return void u.dispose();const e=r.$item;try{Nn([u.resume,()=>{e&&e!==i&&e.remove()},o,()=>c?.(),()=>{a&&i&&a.insertBefore(i,s?.parentNode===a?s:null)},()=>t.format(),()=>{if(f){t.active=l,l&&t.cache.has(l)&&W(t.cache.get(l),"art-current");for(const[e,r,n]of d)t.$parent.style.setProperty(e,r,n)}}]),n(i)}catch(m){console.warn("ArtPlayer setting restore failed:",m)}},m=()=>p&&!w(t.art)&&In.get(r)===h;for(const y of u.items)In.set(y,h);const g=b(t.art).add(()=>{p=!1;for(const t of u.items)In.get(t)===h&&In.delete(t);u.dispose()});try{if(function(t,e,r){for(const n of Reflect.ownKeys(e)){if(!r())return;const o=Object.getOwnPropertyDescriptor(e,n);if(!o?.enumerable||!r())continue;const i=Reflect.get(e,n);if(!r())return;if(!Reflect.set(t,n,i))throw new TypeError(`Cannot assign setting item property [${String(n)}]`)}}(r,e,m),!m())return r;if(t.format(),!m())return r;if(t.createItem(r,!0),!m())return r;if(f=!0,t.render(),!m())return r;p=!1;for(const t of u.items)In.get(t)===h&&In.delete(t);return u.dispose(),n(r.$item),r}catch(v){throw m()&&h(),v}finally{g()}}const Fn=new WeakMap;function Vn(t,e,r){it(t,`$${e}`,{configurable:!0,get:()=>r}),it(t,e,{configurable:!0,get:()=>r.innerHTML,set(n){r.innerHTML="",N(r,n),"html"===e&&zn(t)}})}function Yn(t,e,r=!1){const n=function(t){const e=In.get(t);return()=>!e||In.get(t)===e}(e);if(!t.cache.has(e.$option))return;const o=t.cache.get(e.$option),i=e.$item;let a="selector";st(e,"switch")&&(a="switch"),st(e,"range")&&(a="range"),st(e,"onClick")&&(a="button");const{icons:s,constructor:c}=t.art;if(!n())return;const l=function(t,e,r=b(t)){const n=dn.get(e);(!n||Zr(n)||n.closed)&&gn(t,e);const o=r.child();return dn.set(e,o),un.set(e,r),pn.set(o,on(e).events),o.add(()=>{fn(t,pn.get(o))}),o}(t.art,e,cn(o)),d=()=>Zr(l)&&!w(t.art)&&n();if(!d())return;const u=document.createElement("div");try{if(Pn(e),O(u,"art-setting-item"),H(u,"height",`${c.SETTING_ITEM_HEIGHT}px`),u.dataset.name=e.name||"",u.dataset.value=String(e.value||""),!d())return;const n=kt(u,'<div class="art-setting-item-left"></div>'),p=kt(u,'<div class="art-setting-item-right"></div>'),f=document.createElement("div");switch(O(f,"art-setting-item-left-icon"),a){case"button":case"switch":case"range":{const t=e.icon||s.config;if(!d())return;N(f,t);break}case"selector":if(e.selector?.length){const t=e.icon||s.config;if(!d())return;N(f,t)}else N(f,s.check)}if(N(n,f),!d())return;Vn(e,"icon",f);const h=document.createElement("div");O(h,"art-setting-item-left-text");const m=e.html||"";if(!d())return;N(h,m),N(n,h),Vn(e,"html",h);const g=document.createElement("div");O(g,"art-setting-item-right-tooltip");const v=e.tooltip||"";if(!d())return;switch(N(g,v),N(p,g),Vn(e,"tooltip",g),a){case"switch":{const t=document.createElement("div");O(t,"art-setting-item-right-icon");const r=kt(t,s.switchOn),n=kt(t,s.switchOff),o=e.switch;if(!d())return;H(o?n:r,"display","none"),N(p,t),it(e,"$switch",{configurable:!0,get:()=>t});let i=e.switch;if(!d())return;Pn(e,()=>{const t=i;return()=>{i=t}}),it(e,"switch",{configurable:!0,get:()=>i,set(t){i=t,u.setAttribute("aria-checked",String(Boolean(t))),t?(H(n,"display","none"),H(r,"display",null)):(H(n,"display",null),H(r,"display","none"))}});break}case"range":{const t=document.createElement("div");O(t,"art-setting-item-right-icon");const r=document.createElement("input");r.type="range",N(t,r);for(const[o,i]of["value","min","max","step"].entries()){const t=e.range[o];if(!d())return;Reflect.set(r,i,String(t))}O(r,"art-setting-range"),N(p,t),it(e,"$range",{configurable:!0,get:()=>r});let n=[...e.range];if(!d())return;Pn(e,()=>{const t=n,e=[...t],o={min:r.min,max:r.max,step:r.step,value:r.value};return()=>{t.splice(0,t.length,...e),n=t,Object.assign(r,o)}}),it(e,"range",{configurable:!0,get:()=>n,set(t){n=[...t],r.value=String(t[0]),r.min=String(t[1]),r.max=String(t[2]),r.step=String(t[3])}})}break;case"selector":if(e.selector?.length){const t=document.createElement("div");O(t,"art-setting-item-right-icon"),N(t,s.arrowRight),N(p,t)}}if(!d())return;if(function(t,e,r,n){const{art:o}=t,i=mn(e),a=(t,r,n)=>yn(o,e,t,r,n,i);switch(n){case"switch":e.onSwitch&&a(r,"click",n=>On(t,e,r,n,e.onSwitch,e,"switch"));break;case"range":{const n=e.$range;if(n)for(const[o,i]of[["change","onRange"],["input","onChange"]])e[i]&&a(n,o,o=>On(t,e,r,o,e[i],e,"tooltip",()=>{e.range[0]=n.valueAsNumber}));break}case"selector":a(r,"click",n=>{if(e.selector?.length)t.render(e.selector);else{if(e.$parent?.onSelect)return On(t,e,r,n,e.$parent.onSelect,e.$parent,"tooltip",()=>t.check(e));t.check(e)}}),e.default&&O(r,"art-current");break;case"button":e.onClick&&a(r,"click",n=>On(t,e,r,n,e.onClick,e,"tooltip"))}}(t,e,u,a),!d())return;it(e,"$item",{configurable:!0,get:()=>u}),function(t,e,r,n,o){"range"!==n?r.querySelector("button,input,select,textarea,a[href],[tabindex],[contenteditable]")||("switch"===n?(r.setAttribute("role","switch"),r.setAttribute("aria-checked",String(Boolean(e.switch))),r.setAttribute("aria-disabled",String(!e.onSwitch))):"selector"!==n||e.selector?.length||r.setAttribute("aria-current",String(Boolean(e.default))),xt(o,r,()=>r.click(),()=>Zr(o)&&!w(t.art))):zn(e)}(t,e,u,a,l),r&&i?.parentNode?i.replaceWith(u):N(o,u),e.mounted&&d()&>(l,()=>{if(!w(t.art))try{const r=e.mounted?.call(t.art,u,e);Promise.resolve(r).catch(t=>console.warn("ArtPlayer setting mounted failed:",t))}catch(r){console.warn("ArtPlayer setting mounted failed:",r)}},0)}catch(p){try{l.dispose()}catch(f){console.warn("ArtPlayer setting cleanup failed:",f)}throw u.remove(),p}}function Bn(t,e=t.option){if(w(t.art))return;const r=En(t),n=t.cache.get(e);if(n&&!Zr(cn(n)))return;const o=(Fn.get(t)||0)+1;Fn.set(t,o);const i=()=>Fn.get(t)===o&&!w(t.art),a=t.active,s=["height","width","left","right"].map(e=>[e,t.$parent.style.getPropertyValue(e),t.$parent.style.getPropertyPriority(e)]),c=()=>{t.active=a,a&&t.cache.has(a)&&W(t.cache.get(a),"art-current");for(const[e,r,n]of s)t.$parent.style.setProperty(e,r,n)};if(t.active=e,n)try{W(n,"art-current"),t.resize()}catch(l){throw i()&&t.cache.get(e)===n&&!cn(n).closed&&c(),l}else{const r=document.createElement("div");t.cache.set(e,r);const n=function(t,e,r){const n=b(t.art).child();return sn.set(r,n),n.add(()=>{t.cache.get(e)===r&&t.cache.delete(e),r.remove()}),n}(t,e,r),o=()=>!n.closed&&!w(t.art)&&t.cache.get(e)===r,a=[];try{if(!o())return;O(r,"art-setting-panel"),r.setAttribute("role","group"),r.setAttribute("aria-label",e[0]?.$parent?.$html?.textContent||t.art.i18n.get("Settings")),N(t.$parent,r),W(r,"art-current"),e[0]?.$parent&&t.createHeader(e[0]);for(let r=0;r<e.length&&o();r++){const n=e[r];a.push({item:n,restore:Mn(n)}),t.createItem(n)}if(!o())return;t.resize()}catch(l){const s=o(),p=t.active===e&&i();try{ln(r)}catch(d){console.warn("ArtPlayer setting cleanup failed:",d)}if(s&&!w(t.art)){for(const t of a.reverse())if(hn(t.item)===n)try{t.restore()}catch(u){console.warn("ArtPlayer setting restore failed:",u)}p&&c()}throw l}}i()&&r(a?.[0]?.$parent?.$item)}const Hn=Ft;class jn extends Hn{constructor(t){super(t);const{option:e,template:{$setting:r}}=t;this.name="setting",this.$parent=r,this.id=0,this.active=null,this.cache=new Map,this.option=[...this.builtin,...e.settings];const n=b(t);!function(t,e){tn.set(t,{active:!0,scope:e})}(this,n),n.add(()=>{!function(t){const e=tn.get(t);e&&(e.active=!1,e.root=void 0,e.scope=void 0)}(this)}),e.setting&&(this.format(),this.render(),function(t){const{art:e}=t,r=b(e).child(),n=(t,n)=>{if(r.closed||w(e))return;const o=(...t)=>{if(!r.closed&&!w(e))return n(...t)};e.on(t,o),r.add(()=>{e.off(t,o)})};n("blur",()=>{t.show&&(t.show=!1,t.render())}),n("focus",r=>{const n=L(r,e.controls.setting),o=L(r,t.$parent);!t.show||n||o||(t.show=!1,t.render())}),n("resize",()=>t.resize());const o=()=>{r.closed||w(e)||t.resize()},i=e.proxy(t.$parent,"transitionend",e=>{e.target===t.$parent&&"bottom"===e.propertyName&&o()});r.add(()=>{e.events.remove(i)});const{$player:a,$controls:s}=e.template;if(!r.closed&&"undefined"!==typeof ResizeObserver){const t=new ResizeObserver(o);t.observe(a),t.observe(s),r.add(()=>{t.disconnect()})}if(!r.closed&&"undefined"!==typeof MutationObserver){const t=new MutationObserver(o);"undefined"===typeof ResizeObserver&&t.observe(s,{childList:!0,subtree:!0,attributes:!0,characterData:!0}),t.observe(a,{attributes:!0,attributeFilter:["class","style"]}),r.add(()=>{t.disconnect()})}}(this)),An(this)}get builtin(){const t=[],{option:e}=this.art;return e.playbackRate&&t.push(function(t){const{i18n:e,icons:r,constructor:{SETTING_ITEM_WIDTH:n,PLAYBACK_RATE:o}}=t;function i(t){return 1===t?e.get("Normal"):t.toFixed(1)}function a(){const e=t.setting.find(`playback-rate-${t.playbackRate}`);t.setting.check(e)}return{width:n,name:"playback-rate",html:e.get("Play Speed"),tooltip:i(t.playbackRate),icon:r.playbackRate,selector:o.map(e=>({value:e,name:`playback-rate-${e}`,default:e===t.playbackRate,html:i(e)})),onSelect:e=>(t.playbackRate=e.value,e.html),mounted:(e,r)=>{a(),bn(t,r,"video:ratechange",()=>a())}}}(this.art)),e.aspectRatio&&t.push(function(t){const{i18n:e,icons:r,constructor:{SETTING_ITEM_WIDTH:n,ASPECT_RATIO:o}}=t;function i(t){return"default"===t?e.get("Default"):t}function a(){const e=t.setting.find(`aspect-ratio-${t.aspectRatio}`);t.setting.check(e)}return{width:n,name:"aspect-ratio",html:e.get("Aspect Ratio"),icon:r.aspectRatio,tooltip:i(t.aspectRatio),selector:o.map(e=>({value:e,name:`aspect-ratio-${e}`,default:e===t.aspectRatio,html:i(e)})),onSelect:e=>(t.aspectRatio=e.value,e.html),mounted:(e,r)=>{a(),bn(t,r,"aspectRatio",()=>a())}}}(this.art)),e.flip&&t.push(function(t){const{i18n:e,icons:r,constructor:{SETTING_ITEM_WIDTH:n,FLIP:o}}=t;function i(t){return e.get(Q(t))}function a(){const e=t.setting.find(`flip-${t.flip}`);t.setting.check(e)}return{width:n,name:"flip",html:e.get("Video Flip"),tooltip:i(t.flip),icon:r.flip,selector:o.map(e=>({value:e,name:`flip-${e}`,default:e===t.flip,html:i(e)})),onSelect:e=>(t.flip=e.value,e.html),mounted:(e,r)=>{a(),bn(t,r,"flip",()=>a())}}}(this.art)),e.subtitleOffset&&t.push(function(t){const{i18n:e,icons:r,constructor:n}=t;return{width:n.SETTING_ITEM_WIDTH,name:"subtitle-offset",html:e.get("Subtitle Offset"),icon:r.subtitle,tooltip:"0s",range:[0,-10,10,.1],onChange:e=>(t.subtitleOffset=e.range[0],`${e.range[0]}s`),mounted:(e,r)=>{bn(t,r,"subtitleOffset",t=>{r.$range.value=String(t),r.tooltip=`${t}s`})}}}(this.art)),t}traverse(t,e=this.option){an(e,t)}check(t){!function(t,e){e?.$parent&&(e.$parent.tooltip=e.html,t.traverse(t=>{t.default=t===e,t.$item&&t.$item.setAttribute("aria-current",String(t.default)),t.default&&t.$item&&W(t.$item,"art-current")},e.$option),t.render(e.$parents))}(this,t)}format(t=this.option,e,r,n=[]){this.option=function(t,e,r,n,o=[]){const i=tn.get(t)||{active:!0},a=[],s=new Set,c=new Set(o),l=(t,e,r)=>{for(let n=0;n<t.length;n++){const o=t[n];if(!o||"object"!==typeof o)throw new TypeError("Setting item must be an object");if(s.has(o))throw new Error("Setting items must appear only once in a tree");s.add(o);const d=Qr.get(o);if(d&&d.owner!==i&&rn(o)&&X(!1,`Setting item [${o.name||""}] already belongs to another active player`),o.name&&(X(!c.has(o.name),`The [${o.name}] already exists in [setting]`),c.add(o.name)),!Qr.has(o))for(const t of en){const e=Object.getOwnPropertyDescriptor(o,t);if(e?!e.configurable:!Object.isExtensible(o))throw new TypeError(`Cannot format setting item property [${t}]`)}if(!o.name&&!nn(o))throw new TypeError("Cannot assign an automatic setting item name");a.push({item:o,parent:e,parents:r,option:t,name:o.name||"",generated:!o.name}),o.selector?.length&&l(o.selector,o,t)}};l(e,r,n);let d=t.id;tn.set(t,i),i.root=e;for(const u of a)if(!u.name){do{u.name="setting-"+d++}while(c.has(u.name));c.add(u.name)}for(const u of a){const{item:t,name:e,parent:r,parents:n,option:o}=u,a=Qr.get(t);a||Object.defineProperties(t,{$parent:{get:()=>on(t).parent},$parents:{get:()=>on(t).parents},$option:{get:()=>on(t).option},$events:{get:()=>on(t).events},$formatted:{get:()=>!0}}),Qr.set(t,{parent:r,parents:n,option:o,events:a?.events||[],owner:i}),u.generated&&(t.name=e)}for(const u of a)u.generated||o.push(u.name);return t.id=d,e}(this,t,e,r,n)}find(t=""){return function(t,e=""){let r=null;return an(t,t=>{t.name===e&&(r=t)}),r}(this.option,t)}resize(){Cn(this)}inactivate(t){!function(t,e){const r=[],n=new Set,o=e=>{if(!n.has(e)){n.add(e);for(const t of e.selector||[])o(t);if(e.selector){const n=t.cache.get(e.selector);t.cache.delete(e.selector);try{n&&ln(n)}catch(i){r.push(i)}}try{gn(t.art,e)}catch(i){i instanceof h?r.push(...i.errors):r.push(i)}}};if(o(e),r.length)throw new h(r)}(this,t)}remove(t){const e=En(this),r=this.find(t);X(r,`Can't find [${t}] in the [setting]`),this.traverse(t=>{Tn(t),_n(t)},[r]);const n=r.$option.indexOf(r);r.$option.splice(n,1);const o=r.$item,i=[];for(const s of[()=>this.inactivate(r),()=>o?.remove(),()=>this.render()])try{s()}catch(a){a instanceof h?i.push(...a.errors):i.push(a)}if(i.length)throw new h(i);e()}update(t){return Wn(this,t)}add(t,e=this.option){if(w(this.art))return t;let r=!1;this.traverse(e=>{r||(r=e===t)});const n=e.length,o=r?void 0:function(t){const e={};Sn.set(t,e);const r=()=>Sn.get(t)===e;return{current:r,finish(){r()&&Sn.delete(t)}}}(t);let i=!1;try{e.push(t),this.format(),i=!0,this.createItem(t),this.render()}catch(a){if(w(this.art)||o&&!o.current())throw a;if(e[n]===t&&e.splice(n,1),!r&&i){try{this.inactivate(t)}catch(s){console.warn("ArtPlayer setting cleanup failed:",s)}t.$item?.remove()}throw a}finally{o?.finish()}return t}createHeader(t){!function(t,e){if(!t.cache.has(e.$option))return;const r=t.cache.get(e.$option),{icons:{arrowLeft:n},constructor:{SETTING_ITEM_HEIGHT:o}}=t.art,i=document.createElement("div");H(i,"height",`${o}px`),O(i,"art-setting-item"),O(i,"art-setting-item-back");const a=kt(i,'<div class="art-setting-item-left"></div>'),s=document.createElement("div");O(s,"art-setting-item-left-icon"),N(s,n),N(a,s),N(a,e.$parent.html),yn(t.art,e.$parent,i,"click",()=>t.render(e.$parents),cn(r));const c=cn(r);i.querySelector("button,input,select,textarea,a[href],[tabindex],[contenteditable]")||xt(c,i,()=>i.click(),()=>Zr(c)&&!w(t.art)),i.setAttribute("aria-label",`${t.art.i18n.get("Back")}: ${i.textContent?.trim()||""}`),N(r,i)}(this,t)}createItem(t,e=!1){Yn(this,t,e)}render(t=this.option){Bn(this,t)}}class qn{constructor(){this.name="artplayer_settings",this.settings={}}get(t){try{const e=JSON.parse(window.localStorage.getItem(this.name))||{};return t?e[t]:e}catch{return t?this.settings[t]:this.settings}}set(t,e){try{const r=Object.assign({},this.get(),{[t]:e});window.localStorage.setItem(this.name,JSON.stringify(r))}catch{this.settings[t]=e}}del(t){try{const e=this.get();delete e[t],window.localStorage.setItem(this.name,JSON.stringify(e))}catch{delete this.settings[t]}}clear(){try{window.localStorage.removeItem(this.name)}catch{this.settings={}}}}const Un='.art-video-player{--art-theme: #f00;--art-font-color: #fff;--art-background-color: #000;--art-text-shadow-color: rgba(0, 0, 0, .5);--art-transition-duration: .2s;--art-padding: 10px;--art-border-radius: 3px;--art-progress-height: 6px;--art-progress-color: rgba(255, 255, 255, .25);--art-progress-top-gap: 10px;--art-hover-color: rgba(255, 255, 255, .25);--art-loaded-color: rgba(255, 255, 255, .25);--art-state-size: 80px;--art-state-opacity: .8;--art-bottom-height: 100px;--art-bottom-offset: 20px;--art-bottom-gap: 5px;--art-highlight-width: 8px;--art-highlight-color: rgba(255, 255, 255, .5);--art-control-height: 46px;--art-control-opacity: .75;--art-control-icon-size: 36px;--art-control-icon-scale: 1.1;--art-volume-height: 120px;--art-volume-handle-size: 14px;--art-lock-size: 36px;--art-indicator-scale: 0;--art-indicator-size: 16px;--art-fullscreen-web-index: 9999;--art-settings-icon-size: 24px;--art-settings-max-height: 300px;--art-selector-max-height: 300px;--art-contextmenus-min-width: 250px;--art-subtitle-font-size: 20px;--art-subtitle-gap: 5px;--art-subtitle-bottom: 15px;--art-subtitle-border: #000;--art-widget-background: rgba(0, 0, 0, .85);--art-tip-background: rgba(0, 0, 0, .7);--art-scrollbar-size: 4px;--art-scrollbar-background: rgba(255, 255, 255, .25);--art-scrollbar-background-hover: rgba(255, 255, 255, .5);--art-mini-progress-height: 2px}.art-bg-cover{background-position:center center;background-repeat:no-repeat;background-size:cover}.art-bottom-gradient{background-image:linear-gradient(to top,#000,rgba(0,0,0,.4),transparent);background-repeat:repeat-x;background-position:center bottom}.art-backdrop-filter{-webkit-backdrop-filter:saturate(180%) blur(20px);backdrop-filter:saturate(180%) blur(20px);background-color:#000000bf!important}.art-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.art-video-player{position:relative;margin:0 auto;width:100%;height:100%;outline:0;zoom:1;padding:0;text-align:left;direction:ltr;font-size:14px;line-height:1.3;user-select:none;box-sizing:border-box;color:var(--art-font-color);background-color:var(--art-background-color);text-shadow:0 0 2px var(--art-text-shadow-color);font-family:PingFang SC,Helvetica Neue,Microsoft YaHei,Roboto,Arial,sans-serif;-webkit-tap-highlight-color:rgba(0,0,0,0);-ms-touch-action:manipulation;touch-action:manipulation;-ms-high-contrast-adjust:none}.art-video-player *,.art-video-player *:before,.art-video-player *:after{box-sizing:border-box}.art-video-player ::-webkit-scrollbar{width:var(--art-scrollbar-size);height:var(--art-scrollbar-size)}.art-video-player ::-webkit-scrollbar-thumb{background-color:var(--art-scrollbar-background)}.art-video-player ::-webkit-scrollbar-thumb:hover{background-color:var(--art-scrollbar-background-hover)}.art-video-player img{max-width:100%;vertical-align:top}.art-video-player svg{fill:var(--art-font-color)}.art-video-player a{color:var(--art-font-color);text-decoration:none}.art-icon{line-height:1;display:flex;justify-content:center;align-items:center}.art-video-player.art-backdrop .art-contextmenus,.art-video-player.art-backdrop .art-info,.art-video-player.art-backdrop .art-settings,.art-video-player.art-backdrop .art-layer-auto-playback,.art-video-player.art-backdrop .art-selector-list,.art-video-player.art-backdrop .art-volume-inner{-webkit-backdrop-filter:saturate(180%) blur(20px);backdrop-filter:saturate(180%) blur(20px);background-color:#000000bf!important}.art-video{position:absolute;inset:0;z-index:10;width:100%;height:100%}.art-poster{position:absolute;inset:0;z-index:11;width:100%;height:100%;background-position:center center;background-repeat:no-repeat;background-size:cover;pointer-events:none}.art-video-player .art-subtitle{display:none;justify-content:center;align-items:center;flex-direction:column;position:absolute;z-index:20;width:100%;padding:0 5%;text-align:center;pointer-events:none;gap:var(--art-subtitle-gap);bottom:var(--art-subtitle-bottom);font-size:var(--art-subtitle-font-size);transition:bottom var(--art-transition-duration) ease;text-shadow:var(--art-subtitle-border) 1px 0 1px,var(--art-subtitle-border) 0 1px 1px,var(--art-subtitle-border) -1px 0 1px,var(--art-subtitle-border) 0 -1px 1px,var(--art-subtitle-border) 1px 1px 1px,var(--art-subtitle-border) -1px -1px 1px,var(--art-subtitle-border) 1px -1px 1px,var(--art-subtitle-border) -1px 1px 1px}.art-video-player.art-subtitle-show .art-subtitle{display:flex}.art-video-player.art-control-show .art-subtitle{bottom:calc(var(--art-controls-height, var(--art-control-height)) + var(--art-subtitle-bottom))}.art-danmuku{position:absolute;inset:0;z-index:30;width:100%;height:100%;pointer-events:none;overflow:hidden}.art-video-player .art-layers{position:absolute;inset:0;z-index:40;width:100%;height:100%;display:none;pointer-events:none}.art-video-player .art-layers .art-layer{pointer-events:auto}.art-video-player.art-layer-show .art-layers{display:flex}.art-video-player .art-mask{display:flex;justify-content:center;align-items:center;position:absolute;inset:0;z-index:50;width:100%;height:100%;pointer-events:none}.art-video-player .art-mask .art-state{display:flex;justify-content:center;align-items:center;opacity:0;transform:scale(2);width:var(--art-state-size);height:var(--art-state-size);transition:all var(--art-transition-duration) ease}.art-video-player.art-mask-show .art-state{pointer-events:auto;opacity:var(--art-state-opacity);transform:scale(1)}.art-video-player.art-loading-show .art-state{display:none}.art-video-player .art-loading{display:none;justify-content:center;align-items:center;position:absolute;inset:0;z-index:70;width:100%;height:100%;pointer-events:none}.art-video-player.art-loading-show .art-loading{display:flex}.art-video-player.art-loading-show .art-mask{display:none}.art-video-player .art-bottom{position:absolute;inset:0;z-index:60;width:100%;height:100%;display:flex;flex-direction:column;justify-content:flex-end;opacity:0;overflow:hidden;pointer-events:none;padding:0 var(--art-padding);transition:all var(--art-transition-duration) ease;background-size:100% var(--art-bottom-height);background-image:linear-gradient(to top,#000,rgba(0,0,0,.4),transparent);background-repeat:repeat-x;background-position:center bottom}.art-video-player .art-bottom .art-controls,.art-video-player .art-bottom .art-progress{transform:translateY(var(--art-bottom-offset));transition:transform var(--art-transition-duration) ease}.art-video-player.art-control-show .art-bottom,.art-video-player.art-hover .art-bottom{opacity:1}.art-video-player.art-control-show .art-bottom .art-controls,.art-video-player.art-hover .art-bottom .art-controls,.art-video-player.art-control-show .art-bottom .art-progress,.art-video-player.art-hover .art-bottom .art-progress{transform:translateY(0)}.art-bottom .art-progress{position:relative;z-index:0;cursor:pointer;pointer-events:auto;padding-top:var(--art-progress-top-gap);padding-bottom:var(--art-bottom-gap)}.art-bottom .art-progress .art-control-progress{position:relative;display:flex;justify-content:center;align-items:center;height:var(--art-progress-height)}.art-bottom .art-progress .art-control-progress .art-control-progress-inner{display:flex;align-items:center;position:relative;height:50%;width:100%;transition:height var(--art-transition-duration) ease;background-color:var(--art-progress-color)}.art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-hover{position:absolute;inset:0;z-index:0;width:100%;height:100%;width:0%;background-color:var(--art-hover-color)}.art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-loaded{position:absolute;inset:0;z-index:10;width:100%;height:100%;width:0%;background-color:var(--art-loaded-color)}.art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-played{position:absolute;inset:0;z-index:20;width:100%;height:100%;width:0%;background-color:var(--art-theme)}.art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-highlight{position:absolute;inset:0;z-index:30;width:100%;height:100%;pointer-events:none}.art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-highlight span{position:absolute;inset:0 auto 0 0;z-index:0;width:100%;height:100%;pointer-events:auto;width:var(--art-highlight-width)!important;transform:translate(calc(var(--art-highlight-width) / -2));background-color:var(--art-highlight-color)}.art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-indicator{display:flex;justify-content:center;align-items:center;position:absolute;z-index:40;left:0;border-radius:50%;width:var(--art-indicator-size);height:var(--art-indicator-size);transform:scale(var(--art-indicator-scale));margin-left:calc(var(--art-indicator-size) / -2);transition:transform var(--art-transition-duration) ease}.art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-indicator .art-icon{width:100%;height:100%;pointer-events:none}.art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-indicator:hover{transform:scale(1.2)!important}.art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-indicator:active{transform:scale(1)!important}.art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-tip{transform-origin:bottom center;transform:scale(.5);opacity:0;position:absolute;z-index:50;top:-25px;left:0;padding:3px 5px;line-height:1;font-size:12px;border-radius:var(--art-border-radius);white-space:nowrap;background-color:var(--art-tip-background);transition:transform var(--art-transition-duration) ease,opacity var(--art-transition-duration) ease}.art-bottom .art-progress .art-control-thumbnails{transform-origin:bottom center;transform:scale(.5);opacity:0;position:absolute;bottom:calc(var(--art-bottom-gap) + 10px);left:0;border-radius:var(--art-border-radius);pointer-events:none;background-color:var(--art-widget-background);transition:transform var(--art-transition-duration) ease,opacity var(--art-transition-duration) ease;box-shadow:0 1px 3px #0003,0 1px 2px -1px #0003}.art-bottom .art-progress:hover .art-control-progress .art-control-progress-inner{height:100%}.art-bottom:hover .art-progress .art-control-progress .art-control-progress-inner .art-progress-indicator{transform:scale(1)}.art-progress-hover .art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-tip,.art-progress-hover .art-bottom .art-progress .art-control-thumbnails{transform:scale(1);opacity:1}.art-video-player .art-controls{position:relative;z-index:10;pointer-events:auto;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;flex-shrink:0;height:auto;min-height:var(--art-control-height)}.art-video-player .art-controls .art-controls-left,.art-video-player .art-controls .art-controls-right{display:flex;flex-wrap:wrap;max-width:100%;min-height:var(--art-control-height)}.art-video-player .art-controls .art-controls-center{display:none;justify-content:center;align-items:center;flex:1;height:100%;padding:0 10px}.art-video-player .art-controls .art-controls-right{justify-content:flex-end;margin-left:auto}.art-video-player .art-controls .art-control{display:flex;justify-content:center;align-items:center;flex-shrink:0;max-width:100%;cursor:pointer;white-space:nowrap;opacity:var(--art-control-opacity);min-height:var(--art-control-height);min-width:var(--art-control-height);transition:opacity var(--art-transition-duration) ease}.art-video-player .art-controls .art-control .art-icon{height:var(--art-control-icon-size);width:var(--art-control-icon-size);transform:scale(var(--art-control-icon-scale));transition:transform var(--art-transition-duration) ease}.art-video-player .art-controls .art-control .art-icon:active{transform:scale(calc(var(--art-control-icon-scale) * .8))}.art-video-player .art-controls .art-control:hover{opacity:1}.art-control-volume{position:relative}.art-control-volume .art-volume-panel{display:flex;justify-content:center;align-items:center;position:absolute;left:0;right:0;padding:0 5px;font-size:12px;text-align:center;cursor:default;opacity:0;visibility:hidden;transform:translateY(10px);pointer-events:none;bottom:var(--art-control-height);width:var(--art-control-height);height:var(--art-volume-height);transition:opacity var(--art-transition-duration) ease,transform var(--art-transition-duration) ease}.art-control-volume .art-volume-panel .art-volume-inner{display:flex;flex-direction:column;align-items:center;gap:10px;height:100%;width:100%;padding:10px 0 12px;border-radius:var(--art-border-radius);background-color:var(--art-widget-background)}.art-control-volume .art-volume-panel .art-volume-inner .art-volume-slider{flex:1;width:100%;display:flex;cursor:pointer;position:relative;justify-content:center}.art-control-volume .art-volume-panel .art-volume-inner .art-volume-slider .art-volume-handle{position:relative;display:flex;justify-content:center;width:2px;border-radius:var(--art-border-radius);overflow:hidden;background-color:#ffffff40}.art-control-volume .art-volume-panel .art-volume-inner .art-volume-slider .art-volume-handle .art-volume-loaded{position:absolute;inset:0;z-index:0;width:100%;height:100%;background-color:var(--art-theme)}.art-control-volume .art-volume-panel .art-volume-inner .art-volume-slider .art-volume-indicator{position:absolute;width:var(--art-volume-handle-size);height:var(--art-volume-handle-size);margin-top:calc(var(--art-volume-handle-size) / -2);flex-shrink:0;transform:scale(1);border-radius:100%;background-color:var(--art-theme);transition:transform var(--art-transition-duration) ease}.art-control-volume .art-volume-panel .art-volume-inner .art-volume-slider:active .art-volume-indicator{transform:scale(.9)}.art-control-volume:hover .art-volume-panel,.art-control-volume:focus-within .art-volume-panel{opacity:1;visibility:visible;transform:translateY(0);pointer-events:auto}.art-video-player .art-notice{display:none;position:absolute;inset:0 0 auto;z-index:80;width:100%;height:100%;height:auto;padding:var(--art-padding);pointer-events:none}.art-video-player .art-notice .art-notice-inner{display:inline-flex;padding:5px;line-height:1;border-radius:var(--art-border-radius);background-color:var(--art-tip-background)}.art-video-player.art-notice-show .art-notice{display:flex}.art-video-player .art-contextmenus{display:none;flex-direction:column;position:absolute;z-index:120;padding:5px 0;border-radius:var(--art-border-radius);font-size:12px;background-color:var(--art-widget-background);min-width:var(--art-contextmenus-min-width)}.art-video-player .art-contextmenus .art-contextmenu{cursor:pointer;display:flex;padding:10px 15px;border-bottom:1px solid rgba(255,255,255,.1)}.art-video-player .art-contextmenus .art-contextmenu span{padding:0 8px}.art-video-player .art-contextmenus .art-contextmenu span:hover,.art-video-player .art-contextmenus .art-contextmenu span.art-current{color:var(--art-theme)}.art-video-player .art-contextmenus .art-contextmenu:hover{background-color:#ffffff1a}.art-video-player .art-contextmenus .art-contextmenu:last-child{border-bottom:none}.art-video-player.art-contextmenu-show .art-contextmenus{display:flex}.art-video-player .art-settings{display:none;flex-direction:column;position:absolute;z-index:90;left:auto;overflow-y:auto;overflow-x:hidden;border-radius:var(--art-border-radius);max-height:var(--art-settings-max-height);right:var(--art-padding);bottom:var(--art-controls-height, var(--art-control-height));transition:all var(--art-transition-duration) ease;background-color:var(--art-widget-background)}.art-video-player .art-settings .art-setting-panel{display:none;flex-direction:column}.art-video-player .art-settings .art-setting-panel.art-current{display:flex}.art-video-player .art-settings .art-setting-panel .art-setting-item{display:flex;justify-content:space-between;align-items:center;gap:5px;padding:0 5px;cursor:pointer;overflow:hidden;transition:background-color var(--art-transition-duration) ease}.art-video-player .art-settings .art-setting-panel .art-setting-item:hover{background-color:#ffffff1a}.art-video-player .art-settings .art-setting-panel .art-setting-item.art-current{color:var(--art-theme)}.art-video-player .art-settings .art-setting-panel .art-setting-item .art-icon-check{visibility:hidden;height:15px}.art-video-player .art-settings .art-setting-panel .art-setting-item.art-current .art-icon-check{visibility:visible}.art-video-player .art-settings .art-setting-panel .art-setting-item .art-setting-item-left{display:flex;justify-content:center;align-items:center;flex-shrink:1;min-width:0;overflow:hidden;gap:5px}.art-video-player .art-settings .art-setting-panel .art-setting-item .art-setting-item-left .art-setting-item-left-icon{display:flex;justify-content:center;align-items:center;flex-shrink:0;height:var(--art-settings-icon-size);width:var(--art-settings-icon-size)}.art-video-player .art-settings .art-setting-panel .art-setting-item .art-setting-item-left .art-setting-item-left-text{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.art-video-player .art-settings .art-setting-panel .art-setting-item .art-setting-item-right{display:flex;justify-content:center;align-items:center;flex-shrink:0;min-width:0;max-width:55%;gap:5px;font-size:12px}.art-video-player .art-settings .art-setting-panel .art-setting-item .art-setting-item-right .art-setting-item-right-tooltip{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#ffffff80}.art-video-player .art-settings .art-setting-panel .art-setting-item .art-setting-item-right .art-setting-item-right-icon{display:flex;justify-content:center;align-items:center;flex-shrink:0;min-width:32px;height:24px}.art-video-player .art-settings .art-setting-panel .art-setting-item .art-setting-item-right .art-setting-range{height:3px;width:80px;outline:none;appearance:none;background-color:#fff3}.art-video-player .art-settings .art-setting-panel .art-setting-item-back{border-bottom:1px solid rgba(255,255,255,.1)}.art-video-player.art-setting-show .art-settings{display:flex}.art-video-player .art-info{display:none;position:absolute;left:var(--art-padding);top:var(--art-padding);z-index:100;padding:10px;font-size:12px;border-radius:var(--art-border-radius);background-color:var(--art-widget-background)}.art-video-player .art-info .art-info-panel{display:flex;flex-direction:column;gap:5px}.art-video-player .art-info .art-info-panel .art-info-item{display:flex;align-items:center;gap:5px}.art-video-player .art-info .art-info-panel .art-info-item .art-info-title{width:100px;text-align:right}.art-video-player .art-info .art-info-panel .art-info-item .art-info-content{width:250px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;user-select:all}.art-video-player .art-info .art-info-close{position:absolute;top:5px;right:5px;cursor:pointer}.art-video-player.art-info-show .art-info{display:flex}.art-hide-cursor *{cursor:none!important}.art-video-player[data-aspect-ratio]{overflow:hidden}.art-video-player[data-aspect-ratio] .art-video{object-fit:fill;box-sizing:content-box}.art-fullscreen{--art-progress-height: 8px;--art-indicator-size: 20px;--art-control-height: 60px;--art-control-icon-scale: 1.3}.art-fullscreen-web{--art-progress-height: 8px;--art-indicator-size: 20px;--art-control-height: 60px;--art-control-icon-scale: 1.3;position:fixed;inset:0;z-index:var(--art-fullscreen-web-index);width:100%;height:100%}.art-mini-popup{position:fixed;z-index:9999;width:320px;height:180px;max-width:100vw;max-height:100vh;background:#000;border-radius:var(--art-border-radius);cursor:move;user-select:none;overflow:hidden;transition:opacity .2s ease;box-shadow:0 0 5px #00000080}.art-mini-popup svg{fill:#fff}.art-mini-popup .art-video{pointer-events:none}.art-mini-popup .art-mini-close{position:absolute;z-index:20;right:10px;top:10px;cursor:pointer;opacity:0;transition:opacity .2s ease}.art-mini-popup .art-mini-state{position:absolute;inset:0;z-index:30;width:100%;height:100%;display:flex;justify-content:center;align-items:center;pointer-events:none;opacity:0;transition:opacity .2s ease;background-color:#00000040}.art-mini-popup .art-mini-state .art-icon{opacity:.75;cursor:pointer;transform:scale(3);pointer-events:auto;transition:transform .2s ease}.art-mini-popup .art-mini-state .art-icon:active{transform:scale(2.5)}.art-mini-popup.art-mini-dragging{opacity:.9}.art-mini-popup:hover .art-mini-close,.art-mini-popup:focus-within .art-mini-close,.art-mini-popup:hover .art-mini-state,.art-mini-popup:focus-within .art-mini-state{opacity:1}.art-mini-popup [role=button]:focus-visible{outline:2px solid #fff;outline-offset:-2px}.art-video-player[data-flip=horizontal] .art-video{transform:scaleX(-1)}.art-video-player[data-flip=vertical] .art-video{transform:scaleY(-1)}.art-video-player .art-layer-lock{display:none;justify-content:center;align-items:center;position:absolute;top:50%;border-radius:50%;transform:translateY(-50%);height:var(--art-lock-size);width:var(--art-lock-size);left:var(--art-padding);background-color:var(--art-tip-background)}.art-video-player .art-layer-auto-playback{display:none;gap:10px;align-items:center;position:absolute;border-radius:var(--art-border-radius);padding:10px;line-height:1;left:var(--art-padding);bottom:calc(var(--art-controls-height, var(--art-control-height)) + var(--art-bottom-gap) + 10px);background-color:var(--art-widget-background)}.art-video-player .art-layer-auto-playback .art-auto-playback-close{display:flex;justify-content:center;align-items:center;cursor:pointer}.art-video-player .art-layer-auto-playback .art-auto-playback-close svg{width:15px;height:15px;fill:var(--art-theme)}.art-video-player .art-layer-auto-playback .art-auto-playback-jump{color:var(--art-theme);cursor:pointer}.art-video-player.art-lock .art-layer-lock{display:flex}.art-video-player.art-lock:not(.art-control-show) .art-layer-lock{opacity:0;pointer-events:none}.art-video-player.art-lock:not(.art-control-show) .art-layer-lock:focus-within{opacity:1;pointer-events:auto}.art-video-player.art-lock .art-subtitle{bottom:var(--art-subtitle-bottom)!important}.art-video-player.art-mini-progress-bar .art-bottom,.art-video-player.art-lock .art-bottom{opacity:1;padding:0;background-image:none}.art-video-player.art-mini-progress-bar .art-bottom .art-controls,.art-video-player.art-lock .art-bottom .art-controls,.art-video-player.art-mini-progress-bar .art-bottom .art-progress,.art-video-player.art-lock .art-bottom .art-progress{transform:translateY(calc(var(--art-controls-height, var(--art-control-height)) + var(--art-bottom-gap) + var(--art-progress-height) / 4))}.art-video-player.art-mini-progress-bar .art-bottom .art-progress-indicator,.art-video-player.art-lock .art-bottom .art-progress-indicator{display:none!important}.art-video-player.art-control-show .art-layer-lock{display:flex}.art-control-selector{position:relative;display:flex;justify-content:center}.art-control-selector .art-selector-list{display:flex;flex-direction:column;align-items:center;text-align:center;position:absolute;border-radius:var(--art-border-radius);overflow-y:auto;overflow-x:hidden;opacity:0;visibility:hidden;transform:translateY(10px);pointer-events:none;bottom:var(--art-control-height);max-height:var(--art-selector-max-height);background-color:var(--art-widget-background);transition:opacity var(--art-transition-duration) ease,transform var(--art-transition-duration) ease}.art-control-selector .art-selector-list .art-selector-item{display:flex;justify-content:center;align-items:center;width:100%;padding:10px 15px;flex-shrink:0;line-height:1}.art-control-selector .art-selector-list .art-selector-item:hover{background-color:#ffffff1a}.art-control-selector .art-selector-list .art-selector-item:hover,.art-control-selector .art-selector-list .art-selector-item.art-current{color:var(--art-theme)}.art-control-selector:hover:not(.art-selector-dismissed) .art-selector-list,.art-control-selector.art-selector-open .art-selector-list{opacity:1;visibility:visible;transform:translateY(0);pointer-events:auto}.art-video-player [class*=hint--]{position:relative;display:inline-block;font-style:normal}.art-video-player [class*=hint--]:before,.art-video-player [class*=hint--]:after{position:absolute;-webkit-transform:translate3d(0,0,0);-moz-transform:translate3d(0,0,0);transform:translateZ(0);visibility:hidden;opacity:0;z-index:1000000;pointer-events:none;-webkit-transition:.3s ease;-moz-transition:.3s ease;transition:.3s ease;-webkit-transition-delay:0ms;-moz-transition-delay:0ms;transition-delay:0ms}.art-video-player [class*=hint--]:hover:before,.art-video-player [class*=hint--]:hover:after{visibility:visible;opacity:1}.art-video-player [class*=hint--]:hover:before,.art-video-player [class*=hint--]:hover:after{-webkit-transition-delay:.1s;-moz-transition-delay:.1s;transition-delay:.1s}.art-video-player [class*=hint--]:before{content:"";position:absolute;background:transparent;border:6px solid transparent;z-index:1000001}.art-video-player [class*=hint--]:after{background:#000;color:#fff;padding:8px 10px;font-size:12px;font-family:Helvetica Neue,Helvetica,Arial,sans-serif;line-height:12px;white-space:nowrap}.art-video-player [class*=hint--][aria-label]:after{content:attr(aria-label)}.art-video-player [class*=hint--][data-hint]:after{content:attr(data-hint)}.art-video-player [aria-label=""]:before,.art-video-player [aria-label=""]:after,.art-video-player [data-hint=""]:before,.art-video-player [data-hint=""]:after{display:none!important}.art-video-player .hint--top-left:before{border-top-color:#000}.art-video-player .hint--top-right:before{border-top-color:#000}.art-video-player .hint--top:before{border-top-color:#000}.art-video-player .hint--bottom-left:before{border-bottom-color:#000}.art-video-player .hint--bottom-right:before{border-bottom-color:#000}.art-video-player .hint--bottom:before{border-bottom-color:#000}.art-video-player .hint--left:before{border-left-color:#000}.art-video-player .hint--right:before{border-right-color:#000}.art-video-player .hint--top:before{margin-bottom:-11px}.art-video-player .hint--top:before,.art-video-player .hint--top:after{bottom:100%;left:50%}.art-video-player .hint--top:before{left:calc(50% - 6px)}.art-video-player .hint--top:after{-webkit-transform:translateX(-50%);-moz-transform:translateX(-50%);transform:translate(-50%)}.art-video-player .hint--top:hover:before{-webkit-transform:translateY(-8px);-moz-transform:translateY(-8px);transform:translateY(-8px)}.art-video-player .hint--top:hover:after{-webkit-transform:translateX(-50%) translateY(-8px);-moz-transform:translateX(-50%) translateY(-8px);transform:translate(-50%) translateY(-8px)}.art-video-player .hint--bottom:before{margin-top:-11px}.art-video-player .hint--bottom:before,.art-video-player .hint--bottom:after{top:100%;left:50%}.art-video-player .hint--bottom:before{left:calc(50% - 6px)}.art-video-player .hint--bottom:after{-webkit-transform:translateX(-50%);-moz-transform:translateX(-50%);transform:translate(-50%)}.art-video-player .hint--bottom:hover:before{-webkit-transform:translateY(8px);-moz-transform:translateY(8px);transform:translateY(8px)}.art-video-player .hint--bottom:hover:after{-webkit-transform:translateX(-50%) translateY(8px);-moz-transform:translateX(-50%) translateY(8px);transform:translate(-50%) translateY(8px)}.art-video-player .hint--right:before{margin-left:-11px;margin-bottom:-6px}.art-video-player .hint--right:after{margin-bottom:-14px}.art-video-player .hint--right:before,.art-video-player .hint--right:after{left:100%;bottom:50%}.art-video-player .hint--right:hover:before{-webkit-transform:translateX(8px);-moz-transform:translateX(8px);transform:translate(8px)}.art-video-player .hint--right:hover:after{-webkit-transform:translateX(8px);-moz-transform:translateX(8px);transform:translate(8px)}.art-video-player .hint--left:before{margin-right:-11px;margin-bottom:-6px}.art-video-player .hint--left:after{margin-bottom:-14px}.art-video-player .hint--left:before,.art-video-player .hint--left:after{right:100%;bottom:50%}.art-video-player .hint--left:hover:before{-webkit-transform:translateX(-8px);-moz-transform:translateX(-8px);transform:translate(-8px)}.art-video-player .hint--left:hover:after{-webkit-transform:translateX(-8px);-moz-transform:translateX(-8px);transform:translate(-8px)}.art-video-player .hint--top-left:before{margin-bottom:-11px}.art-video-player .hint--top-left:before,.art-video-player .hint--top-left:after{bottom:100%;left:50%}.art-video-player .hint--top-left:before{left:calc(50% - 6px)}.art-video-player .hint--top-left:after{-webkit-transform:translateX(-100%);-moz-transform:translateX(-100%);transform:translate(-100%)}.art-video-player .hint--top-left:after{margin-left:12px}.art-video-player .hint--top-left:hover:before{-webkit-transform:translateY(-8px);-moz-transform:translateY(-8px);transform:translateY(-8px)}.art-video-player .hint--top-left:hover:after{-webkit-transform:translateX(-100%) translateY(-8px);-moz-transform:translateX(-100%) translateY(-8px);transform:translate(-100%) translateY(-8px)}.art-video-player .hint--top-right:before{margin-bottom:-11px}.art-video-player .hint--top-right:before,.art-video-player .hint--top-right:after{bottom:100%;left:50%}.art-video-player .hint--top-right:before{left:calc(50% - 6px)}.art-video-player .hint--top-right:after{-webkit-transform:translateX(0);-moz-transform:translateX(0);transform:translate(0)}.art-video-player .hint--top-right:after{margin-left:-12px}.art-video-player .hint--top-right:hover:before{-webkit-transform:translateY(-8px);-moz-transform:translateY(-8px);transform:translateY(-8px)}.art-video-player .hint--top-right:hover:after{-webkit-transform:translateY(-8px);-moz-transform:translateY(-8px);transform:translateY(-8px)}.art-video-player .hint--bottom-left:before{margin-top:-11px}.art-video-player .hint--bottom-left:before,.art-video-player .hint--bottom-left:after{top:100%;left:50%}.art-video-player .hint--bottom-left:before{left:calc(50% - 6px)}.art-video-player .hint--bottom-left:after{-webkit-transform:translateX(-100%);-moz-transform:translateX(-100%);transform:translate(-100%)}.art-video-player .hint--bottom-left:after{margin-left:12px}.art-video-player .hint--bottom-left:hover:before{-webkit-transform:translateY(8px);-moz-transform:translateY(8px);transform:translateY(8px)}.art-video-player .hint--bottom-left:hover:after{-webkit-transform:translateX(-100%) translateY(8px);-moz-transform:translateX(-100%) translateY(8px);transform:translate(-100%) translateY(8px)}.art-video-player .hint--bottom-right:before{margin-top:-11px}.art-video-player .hint--bottom-right:before,.art-video-player .hint--bottom-right:after{top:100%;left:50%}.art-video-player .hint--bottom-right:before{left:calc(50% - 6px)}.art-video-player .hint--bottom-right:after{-webkit-transform:translateX(0);-moz-transform:translateX(0);transform:translate(0)}.art-video-player .hint--bottom-right:after{margin-left:-12px}.art-video-player .hint--bottom-right:hover:before{-webkit-transform:translateY(8px);-moz-transform:translateY(8px);transform:translateY(8px)}.art-video-player .hint--bottom-right:hover:after{-webkit-transform:translateY(8px);-moz-transform:translateY(8px);transform:translateY(8px)}.art-video-player .hint--small:after,.art-video-player .hint--medium:after,.art-video-player .hint--large:after{white-space:normal;line-height:1.4em;word-wrap:break-word}.art-video-player .hint--small:after{width:80px}.art-video-player .hint--medium:after{width:150px}.art-video-player .hint--large:after{width:300px}.art-video-player [class*=hint--]:after{text-shadow:0 -1px 0px black;box-shadow:4px 4px 8px #0000004d}.art-video-player .hint--error:after{background-color:#b34e4d;text-shadow:0 -1px 0px #592726}.art-video-player .hint--error.hint--top-left:before{border-top-color:#b34e4d}.art-video-player .hint--error.hint--top-right:before{border-top-color:#b34e4d}.art-video-player .hint--error.hint--top:before{border-top-color:#b34e4d}.art-video-player .hint--error.hint--bottom-left:before{border-bottom-color:#b34e4d}.art-video-player .hint--error.hint--bottom-right:before{border-bottom-color:#b34e4d}.art-video-player .hint--error.hint--bottom:before{border-bottom-color:#b34e4d}.art-video-player .hint--error.hint--left:before{border-left-color:#b34e4d}.art-video-player .hint--error.hint--right:before{border-right-color:#b34e4d}.art-video-player .hint--warning:after{background-color:#c09854;text-shadow:0 -1px 0px #6c5328}.art-video-player .hint--warning.hint--top-left:before{border-top-color:#c09854}.art-video-player .hint--warning.hint--top-right:before{border-top-color:#c09854}.art-video-player .hint--warning.hint--top:before{border-top-color:#c09854}.art-video-player .hint--warning.hint--bottom-left:before{border-bottom-color:#c09854}.art-video-player .hint--warning.hint--bottom-right:before{border-bottom-color:#c09854}.art-video-player .hint--warning.hint--bottom:before{border-bottom-color:#c09854}.art-video-player .hint--warning.hint--left:before{border-left-color:#c09854}.art-video-player .hint--warning.hint--right:before{border-right-color:#c09854}.art-video-player .hint--info:after{background-color:#3986ac;text-shadow:0 -1px 0px #1a3c4d}.art-video-player .hint--info.hint--top-left:before{border-top-color:#3986ac}.art-video-player .hint--info.hint--top-right:before{border-top-color:#3986ac}.art-video-player .hint--info.hint--top:before{border-top-color:#3986ac}.art-video-player .hint--info.hint--bottom-left:before{border-bottom-color:#3986ac}.art-video-player .hint--info.hint--bottom-right:before{border-bottom-color:#3986ac}.art-video-player .hint--info.hint--bottom:before{border-bottom-color:#3986ac}.art-video-player .hint--info.hint--left:before{border-left-color:#3986ac}.art-video-player .hint--info.hint--right:before{border-right-color:#3986ac}.art-video-player .hint--success:after{background-color:#458746;text-shadow:0 -1px 0px #1a321a}.art-video-player .hint--success.hint--top-left:before{border-top-color:#458746}.art-video-player .hint--success.hint--top-right:before{border-top-color:#458746}.art-video-player .hint--success.hint--top:before{border-top-color:#458746}.art-video-player .hint--success.hint--bottom-left:before{border-bottom-color:#458746}.art-video-player .hint--success.hint--bottom-right:before{border-bottom-color:#458746}.art-video-player .hint--success.hint--bottom:before{border-bottom-color:#458746}.art-video-player .hint--success.hint--left:before{border-left-color:#458746}.art-video-player .hint--success.hint--right:before{border-right-color:#458746}.art-video-player .hint--always:after,.art-video-player .hint--always:before{opacity:1;visibility:visible}.art-video-player .hint--always.hint--top:before{-webkit-transform:translateY(-8px);-moz-transform:translateY(-8px);transform:translateY(-8px)}.art-video-player .hint--always.hint--top:after{-webkit-transform:translateX(-50%) translateY(-8px);-moz-transform:translateX(-50%) translateY(-8px);transform:translate(-50%) translateY(-8px)}.art-video-player .hint--always.hint--top-left:before{-webkit-transform:translateY(-8px);-moz-transform:translateY(-8px);transform:translateY(-8px)}.art-video-player .hint--always.hint--top-left:after{-webkit-transform:translateX(-100%) translateY(-8px);-moz-transform:translateX(-100%) translateY(-8px);transform:translate(-100%) translateY(-8px)}.art-video-player .hint--always.hint--top-right:before{-webkit-transform:translateY(-8px);-moz-transform:translateY(-8px);transform:translateY(-8px)}.art-video-player .hint--always.hint--top-right:after{-webkit-transform:translateY(-8px);-moz-transform:translateY(-8px);transform:translateY(-8px)}.art-video-player .hint--always.hint--bottom:before{-webkit-transform:translateY(8px);-moz-transform:translateY(8px);transform:translateY(8px)}.art-video-player .hint--always.hint--bottom:after{-webkit-transform:translateX(-50%) translateY(8px);-moz-transform:translateX(-50%) translateY(8px);transform:translate(-50%) translateY(8px)}.art-video-player .hint--always.hint--bottom-left:before{-webkit-transform:translateY(8px);-moz-transform:translateY(8px);transform:translateY(8px)}.art-video-player .hint--always.hint--bottom-left:after{-webkit-transform:translateX(-100%) translateY(8px);-moz-transform:translateX(-100%) translateY(8px);transform:translate(-100%) translateY(8px)}.art-video-player .hint--always.hint--bottom-right:before{-webkit-transform:translateY(8px);-moz-transform:translateY(8px);transform:translateY(8px)}.art-video-player .hint--always.hint--bottom-right:after{-webkit-transform:translateY(8px);-moz-transform:translateY(8px);transform:translateY(8px)}.art-video-player .hint--always.hint--left:before{-webkit-transform:translateX(-8px);-moz-transform:translateX(-8px);transform:translate(-8px)}.art-video-player .hint--always.hint--left:after{-webkit-transform:translateX(-8px);-moz-transform:translateX(-8px);transform:translate(-8px)}.art-video-player .hint--always.hint--right:before{-webkit-transform:translateX(8px);-moz-transform:translateX(8px);transform:translate(8px)}.art-video-player .hint--always.hint--right:after{-webkit-transform:translateX(8px);-moz-transform:translateX(8px);transform:translate(8px)}.art-video-player .hint--rounded:after{border-radius:4px}.art-video-player .hint--no-animate:before,.art-video-player .hint--no-animate:after{-webkit-transition-duration:0ms;-moz-transition-duration:0ms;transition-duration:0ms}.art-video-player .hint--bounce:before,.art-video-player .hint--bounce:after{-webkit-transition:opacity .3s ease,visibility .3s ease,-webkit-transform .3s cubic-bezier(.71,1.7,.77,1.24);-moz-transition:opacity .3s ease,visibility .3s ease,-moz-transform .3s cubic-bezier(.71,1.7,.77,1.24);transition:opacity .3s ease,visibility .3s ease,transform .3s cubic-bezier(.71,1.7,.77,1.24)}.art-video-player .hint--no-shadow:before,.art-video-player .hint--no-shadow:after{text-shadow:initial;box-shadow:initial}.art-video-player .hint--no-arrow:before{display:none}.art-video-player.art-mobile{--art-bottom-gap: 10px;--art-control-height: 38px;--art-control-icon-scale: 1;--art-state-size: 60px;--art-settings-max-height: 180px;--art-selector-max-height: 180px;--art-indicator-scale: 1;--art-control-opacity: 1}.art-video-player.art-mobile .art-controls-left{margin-left:calc(var(--art-padding) / -1)}.art-video-player.art-mobile .art-controls-right{margin-right:calc(var(--art-padding) / -1)}.art-video-player [tabindex]:focus-visible,.art-video-player input:focus-visible,.art-video-player button:focus-visible,.art-video-player a:focus-visible{outline:2px solid currentColor;outline-offset:-2px}.art-video-player.art-keyboard-focus :focus{outline:2px solid currentColor;outline-offset:-2px}.art-video-player.art-keyboard-focus:not(.art-lock) .art-bottom{opacity:1}.art-video-player.art-keyboard-focus:not(.art-lock) .art-bottom .art-controls,.art-video-player.art-keyboard-focus:not(.art-lock) .art-bottom .art-progress{transform:translateY(0)}';class Xn{constructor(t){this.scope=t.child(),this.cancelled=new Promise(t=>{this.scope.add(()=>{t(void 0)})}),this.signal=function(t){if("undefined"===typeof AbortController)return;const e=new AbortController;return t.add(()=>{e.abort()}),e}(this.scope)?.signal}get active(){return!this.scope.closed}cancel(){this.scope.dispose()}async run(t){if(this.active)try{return await Promise.race([t(),this.cancelled])}finally{this.cancel()}}}const Gn=new WeakMap;function Kn(t){return Gn.get(t)}function Zn(t){const e=t.ownedURL;t.ownedURL=void 0,e&&URL.revokeObjectURL(e)}const Jn=Ft;class Qn extends Jn{constructor(t){super(t),this.name="subtitle",this.option=null,this.destroyEvent=()=>null;const e=function(t,e){const r=b(e).child(),n={scope:r,revision:0,render:0,trackRevision:0};return Gn.set(t,n),r.add(()=>{Zn(n)}),n}(this,t);this.init(t.option.subtitle).catch(()=>{});let r=!1;const n=()=>{if(e.scope.closed||!this.url)return;const n=t.template.$video.webkitDisplayingFullscreen;"boolean"===typeof n&&n!==r&&(r=n,this.createTrack(n?"subtitles":"metadata",this.url))};t.on("video:timeupdate",n),e.scope.add(()=>{t.off("video:timeupdate",n)})}get url(){return this.art.template.$track.src}set url(t){this.switch(t).catch(()=>{})}get textTrack(){return this.art.template.$video?.textTracks?.[0]}get activeCues(){return Array.from(this.textTrack?.activeCues||[])}get cues(){return Array.from(this.textTrack?.cues||[])}style(t,e){const{$subtitle:r}=this.art.template;return"object"===typeof t?j(r,t):H(r,t,e)}update(){!function(t){const e=Kn(t);if(e.scope.closed)return;const r=e.revision,n=++e.render,o=()=>!e.scope.closed&&e.revision===r&&e.render===n,{art:i}=t,{$subtitle:a}=i.template;if(a.innerHTML="",!t.activeCues.length)return;if(i.emit("subtitleBeforeUpdate",t.activeCues),!o())return;const s=t.activeCues.map((t,e)=>t.text.split(/\r?\n/).filter(t=>t.trim()).map(t=>`<div class="art-subtitle-line" data-group="${e}">\n ${i.option.subtitle.escape?ot(t):t}\n </div>`).join("")).join("");o()&&(a.innerHTML=s,i.emit("subtitleAfterUpdate",t.activeCues))}(this)}async switch(t,e={}){const{i18n:r,notice:n,option:o}=this.art,i={...o.subtitle,...e,url:t},a=Kn(this),s=a.revision+1,c=await this.init(i);return!a.scope.closed&&a.revision===s&&e.name&&(n.show=`${r.get("Switch Subtitle")}: ${e.name}`),c}createTrack(t,e){!function(t,e,r){const n=Kn(t);if(n.scope.closed)return;const o=++n.trackRevision,{art:i}=t,{template:a}=i,s=a.$track,c=s.parentNode,l=s.nextSibling,d=document.createElement("track"),u=n.scope.child();u.add(()=>{d.onload=null,d.onerror=null});let p=!1;try{if(d.default=!0,d.kind=e,d.src=r,d.label=i.option.subtitle.name||"Artplayer",d.track.mode="hidden",d.onload=()=>{u.closed||a.$track!==d||i.emit("subtitleLoad",t.cues,t.option)},d.onerror=()=>{u.closed||a.$track!==d||(i.notice.show=new Error("Failed to load subtitle track"))},u.closed||n.trackRevision!==o)return void u.dispose();s.remove(),a.$video.appendChild(d),a.$track=d;const c=t.textTrack,l=c?i.proxy(c,"cuechange",()=>{u.closed||a.$track!==d||t.update()}):()=>{};if(u.add(()=>{i.events.remove(l)}),u.closed||n.trackRevision!==o)return u.dispose(),void d.remove();const f=n.track;n.track=u,t.destroyEvent=l,s.onload=null,s.onerror=null,p=!0;try{f?.dispose()}finally{n.ownedURL&&n.ownedURL!==r&&Zn(n)}}catch(f){if(p)throw f;if(u.dispose(),d.remove(),n.scope.closed||n.trackRevision!==o)throw f;throw a.$track=s,c&&c.insertBefore(s,l?.parentNode===c?l:null),f}}(this,t,e)}async init(t){const e=Kn(this),r=function(t){const e=t.request,r=new Xn(t.scope);return t.request=r,t.revision+=1,e?.cancel(),r}(e),{notice:n,template:{$subtitle:i}}=this.art;return r.run(async()=>{if(!this.textTrack)return null;if(o(t,_t.subtitle),!t.url)return;let a;this.option=t,this.style(t.style);try{if(!r.active)return;const n=await fetch(t.url,{signal:r.signal});if(!r.active)return;if(!n.ok)throw new Error(`Failed to load subtitle: ${n.status} ${n.statusText}`);const o=await n.arrayBuffer();if(!r.active)return;const s=function(t,e){const r=new TextDecoder(e.encoding).decode(t);switch(e.type||K(e.url)){case"srt":return{vtt:e.onVttLoad(dt(r))};case"ass":return{vtt:e.onVttLoad(pt(r))};case"vtt":return{vtt:e.onVttLoad(r)};default:return}}(o,t);if(!r.active)return;const c=void 0===s?t.url:a=ut(s.vtt);if(!r.active)return;i.innerHTML="";const l=e.trackRevision+1;if(this.url!==c&&this.createTrack("metadata",c),!r.active||e.trackRevision>l)return;return a&&(e.ownedURL=a,a=void 0),c}catch(s){if(!r.active)return;throw i.innerHTML="",n.show=s,s}finally{a&&(e.scope.closed||this.url!==a?URL.revokeObjectURL(a):e.ownedURL=a)}})}}const to=`\n <div class="art-video-player art-subtitle-show art-layer-show art-control-show art-mask-show">\n <video class="art-video">\n <track default kind="metadata" src=""></track>\n </video>\n <div class="art-poster"></div>\n <div class="art-subtitle"></div>\n <div class="art-danmuku"></div>\n <div class="art-layers"></div>\n <div class="art-mask">\n <div class="art-state"></div>\n </div>\n <div class="art-bottom">\n <div class="art-progress"></div>\n <div class="art-controls">\n <div class="art-controls-left"></div>\n <div class="art-controls-center"></div>\n <div class="art-controls-right"></div>\n </div>\n </div>\n <div class="art-loading"></div>\n <div class="art-notice">\n <div class="art-notice-inner"></div>\n </div>\n <div class="art-settings"></div>\n <div class="art-info">\n <div class="art-info-panel">\n <div class="art-info-item">\n <div class="art-info-title">Player version:</div>\n <div class="art-info-content">${i}</div>\n </div>\n <div class="art-info-item">\n <div class="art-info-title">Video url:</div>\n <div class="art-info-content" data-video="currentSrc"></div>\n </div>\n <div class="art-info-item">\n <div class="art-info-title">Video volume:</div>\n <div class="art-info-content" data-video="volume"></div>\n </div>\n <div class="art-info-item">\n <div class="art-info-title">Video time:</div>\n <div class="art-info-content" data-video="currentTime"></div>\n </div>\n <div class="art-info-item">\n <div class="art-info-title">Video duration:</div>\n <div class="art-info-content" data-video="duration"></div>\n </div>\n <div class="art-info-item">\n <div class="art-info-title">Video resolution:</div>\n <div class="art-info-content">\n <span data-video="videoWidth"></span> x <span data-video="videoHeight"></span>\n </div>\n </div>\n </div>\n <div class="art-info-close">[x]</div>\n </div>\n <div class="art-contextmenus"></div>\n </div>\n `;class eo{constructor(t){this.art=t;const{option:e,constructor:r}=t;e.container instanceof Element?this.$container=e.container:(this.$container=R(e.container),X(this.$container,`No container element found by ${e.container}`)),X(P(),"The current browser does not support flex layout");const n=this.$container.tagName.toLowerCase();X("div"===n,`Unsupported container element type, only support 'div' but got '${n}'`),X(r.instances.every(t=>t.template.$container!==this.$container),"Cannot mount multiple instances on the same dom element"),this.query=this.query.bind(this),function(t,e,r){const n=v.get(e);if(n&&n!==t)throw new Error("Cannot mount multiple instances on the same dom element");const o=y(t);o.rollback=r,v.set(e,t),o.releaseContainer=()=>{v.get(e)===t&&v.delete(e)}}(t,this.$container,Dn(this.$container)),function(t,e,r){const n=y(t),o=n.mountingTemplate;n.mountingTemplate=e;try{r()}finally{n.mountingTemplate=o}}(t,this,()=>{this.$container.dataset.artId=String(t.id),this.init()})}static get html(){return to}query(t){return R(t,this.$container)}init(){const{option:t}=this.art;var e;if(t.useSSR||(this.$container.innerHTML=eo.html),(e=this).$player=e.query(".art-video-player"),e.$video=e.query(".art-video"),e.$track=e.query("track"),e.$poster=e.query(".art-poster"),e.$subtitle=e.query(".art-subtitle"),e.$danmuku=e.query(".art-danmuku"),e.$bottom=e.query(".art-bottom"),e.$progress=e.query(".art-progress"),e.$controls=e.query(".art-controls"),e.$controlsLeft=e.query(".art-controls-left"),e.$controlsCenter=e.query(".art-controls-center"),e.$controlsRight=e.query(".art-controls-right"),e.$layer=e.query(".art-layers"),e.$loading=e.query(".art-loading"),e.$notice=e.query(".art-notice"),e.$noticeInner=e.query(".art-notice-inner"),e.$mask=e.query(".art-mask"),e.$state=e.query(".art-state"),e.$setting=e.query(".art-settings"),e.$info=e.query(".art-info"),e.$infoPanel=e.query(".art-info-panel"),e.$infoClose=e.query(".art-info-close"),e.$contextmenu=e.query(".art-contextmenus"),t.proxy){const e=t.proxy.call(this.art,this.art);if(w(this.art))return;!function(t){X(t instanceof HTMLVideoElement||t instanceof HTMLCanvasElement,"Function 'option.proxy' needs to return 'HTMLVideoElement' or 'HTMLCanvasElement'")}(e),F(e,this.$video),e.className="art-video",this.$video=e}t.backdrop&&O(this.$player,"art-backdrop"),u&&O(this.$player,"art-mobile")}destroy(t){t?this.$container.innerHTML="":O(this.$player,"art-destroy")}}const ro=(t,e)=>Object.prototype.hasOwnProperty.call(t,e);class no{on(t,e,r){const n=this.e||(this.e={});let o=ro(n,t)?n[t]:void 0;return o||(o=[],Object.defineProperty(n,t,{value:o,enumerable:!0,configurable:!0,writable:!0})),o.push({fn:e,ctx:r}),this}once(t,e,r){const n=this,o=e;let i=!1;function a(...e){i||(i=!0,n.off(t,a),o.apply(r,e))}return a._=e,this.on(t,a,r)}emit(t,...e){const r=this.e||(this.e={}),n=(ro(r,t)&&r[t]||[]).slice();for(const o of n)o.fn.apply(o.ctx,e);return this}off(t,e){const r=this.e||(this.e={}),n=ro(r,t)?r[t]:void 0,o=[];if(n&&e)for(let i=0,a=n.length;i<a;i+=1){const t=n[i];t.fn!==e&&t.fn._!==e&&o.push(t)}return o.length?r[t]=o:delete r[t],this}}let oo=0;const io=[];class ao extends no{constructor(t,e){if(super(),!p)throw new Error("Artplayer can only be used in the browser environment");this.id=++oo,this.option=Ze(t,ao.option),this.isLock=!1,this.isReady=!1,this.isFocus=!1,this.isInput=!1,this.isRotate=!1,this.isDestroy=!1,function(t){const e={scope:new m,finalizers:new m,destroying:!1};g.set(t,e),e.scope.add(()=>{e.destroying||e.finalizers.dispose()})}(this);try{if(this.template=new eo(this),b(this).closed)return;if(this.events=new Me(this),b(this).closed)return;if(this.storage=new qn,b(this).closed)return;if(this.icons=new Fe(this),b(this).closed)return;if(this.i18n=new _e(this),b(this).closed)return;if(this.notice=new Ke(this),b(this).closed)return;if(this.player=new Dr(this),b(this).closed)return;if(this.layers=new je(this),b(this).closed)return;if(this.controls=new xe(this),b(this).closed)return;if(this.contextmenu=new Xt(this),b(this).closed)return;if(this.subtitle=new Qn(this),b(this).closed)return;if(this.info=new He(this),b(this).closed)return;if(this.loading=new qe(this),b(this).closed)return;if(this.hotkey=new Ie(this),b(this).closed)return;if(this.mask=new Ue(this),b(this).closed)return;if(this.setting=new jn(this),b(this).closed)return;if(this.plugins=new Gr(this),b(this).closed)return;if("function"===typeof e&&this.on("ready",()=>e.call(this,this)),ao.DEBUG){const t=t=>console.log(`[ART.${this.id}] -> ${t}`);t(`Version@${ao.version}`);for(let e=0;e<f.events.length;e++)this.on(`video:${f.events[e]}`,e=>t(`Event@${e.type}`))}(function(t){const e=y(t);return e.rollback=void 0,!e.scope.closed})(this)&&io.push(this)}catch(r){try{x(this,io,!0,ao.REMOVE_SRC_WHEN_DESTROY,!0)}catch(n){console.warn("Failed to clean up ArtPlayer initialization:",n)}throw r}}static get instances(){return io}static get version(){return i}static get config(){return f}static get utils(){return ft}static get scheme(){return _t}static get Emitter(){return no}static get validator(){return o}static get kindOf(){return o.kindOf}static get html(){return eo.html}static get option(){return{id:"",container:"#artplayer",url:"",poster:"",type:"",theme:"#f00",volume:.7,isLive:!1,muted:!1,autoplay:!1,autoSize:!1,autoMini:!1,loop:!1,flip:!1,playbackRate:!1,aspectRatio:!1,screenshot:!1,setting:!1,hotkey:!0,pip:!1,mutex:!0,backdrop:!0,fullscreen:!1,fullscreenWeb:!1,subtitleOffset:!1,miniProgressBar:!1,useSSR:!1,playsInline:!0,lock:!1,gesture:!0,fastForward:!1,autoPlayback:!1,autoOrientation:!1,airplay:!1,proxy:void 0,layers:[],contextmenu:[],controls:[],settings:[],quality:[],highlight:[],plugins:[],thumbnails:{url:"",number:60,column:10,width:0,height:0,scale:1},subtitle:{url:"",type:"",style:{},name:"",escape:!0,encoding:"utf-8",onVttLoad:t=>t},moreVideoAttr:{controls:!1,preload:c?"auto":"metadata"},i18n:{},icons:{},cssVar:{},customType:{},lang:navigator?.language.toLowerCase()}}get proxy(){return this.events.proxy}get query(){return this.template.query}get video(){return this.template.$video}reset(){this.video.removeAttribute("src"),this.video.load()}destroy(t=!0){x(this,io,t,ao.REMOVE_SRC_WHEN_DESTROY)}}var so,co;return ao.STYLE=Un,ao.DEBUG=!1,ao.CONTEXTMENU=!0,ao.NOTICE_TIME=2e3,ao.SETTING_WIDTH=250,ao.SETTING_ITEM_WIDTH=200,ao.SETTING_ITEM_HEIGHT=35,ao.RESIZE_TIME=200,ao.SCROLL_TIME=200,ao.SCROLL_GAP=50,ao.AUTO_PLAYBACK_MAX=10,ao.AUTO_PLAYBACK_MIN=5,ao.AUTO_PLAYBACK_TIMEOUT=3e3,ao.RECONNECT_TIME_MAX=5,ao.RECONNECT_SLEEP_TIME=1e3,ao.CONTROL_HIDE_TIME=3e3,ao.DBCLICK_TIME=300,ao.DBCLICK_FULLSCREEN=!0,ao.MOBILE_DBCLICK_PLAY=!0,ao.MOBILE_CLICK_PLAY=!1,ao.AUTO_ORIENTATION_TIME=200,ao.INFO_LOOP_TIME=1e3,ao.FAST_FORWARD_VALUE=3,ao.FAST_FORWARD_TIME=1e3,ao.TOUCH_MOVE_RATIO=.5,ao.VOLUME_STEP=.1,ao.SEEK_STEP=5,ao.PLAYBACK_RATE=[.5,.75,1,1.25,1.5,2],ao.ASPECT_RATIO=["default","4:3","16:9"],ao.FLIP=["normal","horizontal","vertical"],ao.FULLSCREEN_WEB_IN_BODY=!0,ao.LOG_VERSION=!0,ao.USE_RAF=!1,ao.REMOVE_SRC_WHEN_DESTROY=!0,so=ao,co=Un,p&&(window.Artplayer=so,a("artplayer-style",co),setTimeout(()=>{so.LOG_VERSION&&console.log(`%c ArtPlayer %c ${so.version} %c https://artplayer.org`,"color: #fff; background: #5f5f5f","color: #fff; background: #4bc729","")},100)),ao});
|