@lzwme/m3u8-dl 1.6.0 → 1.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.MD +8 -8
- package/README.zh-CN.md +8 -8
- package/cjs/i18n/locales/en.d.ts +9 -0
- package/cjs/i18n/locales/en.js +9 -0
- package/cjs/i18n/locales/zh-CN.d.ts +9 -0
- package/cjs/i18n/locales/zh-CN.js +9 -0
- package/cjs/lib/local-play.js +1 -1
- package/cjs/lib/utils.d.ts +2 -0
- package/cjs/lib/utils.js +14 -0
- package/cjs/server/download-server.d.ts +11 -4
- package/cjs/server/download-server.js +167 -71
- package/client/assets/main-BSWj1VKy.js +29 -0
- package/client/assets/main-T6xR17Gh.css +1 -0
- package/client/index.html +2 -2
- package/client/m3u8-capture.user.js +40 -20
- package/client/play.html +36 -19
- package/package.json +8 -4
- package/client/assets/main-ChJ1yjNN.css +0 -1
- package/client/assets/main-DZTEqg-V.js +0 -29
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const o of document.querySelectorAll('link[rel="modulepreload"]'))n(o);new MutationObserver(o=>{for(const l of o)if(l.type==="childList")for(const r of l.addedNodes)r.tagName==="LINK"&&r.rel==="modulepreload"&&n(r)}).observe(document,{childList:!0,subtree:!0});function s(o){const l={};return o.integrity&&(l.integrity=o.integrity),o.referrerPolicy&&(l.referrerPolicy=o.referrerPolicy),o.crossOrigin==="use-credentials"?l.credentials="include":o.crossOrigin==="anonymous"?l.credentials="omit":l.credentials="same-origin",l}function n(o){if(o.ep)return;o.ep=!0;const l=s(o);fetch(o.href,l)}})();function pl(e){const t=Object.create(null);for(const s of e.split(","))t[s]=1;return s=>s in t}const Te={},Ps=[],Dt=()=>{},Pa=()=>!1,Xn=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&(e.charCodeAt(2)>122||e.charCodeAt(2)<97),ml=e=>e.startsWith("onUpdate:"),at=Object.assign,hl=(e,t)=>{const s=e.indexOf(t);s>-1&&e.splice(s,1)},Wc=Object.prototype.hasOwnProperty,Ce=(e,t)=>Wc.call(e,t),ae=Array.isArray,Ds=e=>yn(e)==="[object Map]",Hs=e=>yn(e)==="[object Set]",Yl=e=>yn(e)==="[object Date]",pe=e=>typeof e=="function",Be=e=>typeof e=="string",St=e=>typeof e=="symbol",Ie=e=>e!==null&&typeof e=="object",Da=e=>(Ie(e)||pe(e))&&pe(e.then)&&pe(e.catch),Aa=Object.prototype.toString,yn=e=>Aa.call(e),Hc=e=>yn(e).slice(8,-1),Na=e=>yn(e)==="[object Object]",gl=e=>Be(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,Qs=pl(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),Qn=e=>{const t=Object.create(null);return(s=>t[s]||(t[s]=e(s)))},Bc=/-\w/g,_t=Qn(e=>e.replace(Bc,t=>t.slice(1).toUpperCase())),Gc=/\B([A-Z])/g,as=Qn(e=>e.replace(Gc,"-$1").toLowerCase()),Jn=Qn(e=>e.charAt(0).toUpperCase()+e.slice(1)),_o=Qn(e=>e?`on${Jn(e)}`:""),ns=(e,t)=>!Object.is(e,t),Nn=(e,...t)=>{for(let s=0;s<e.length;s++)e[s](...t)},Ra=(e,t,s,n=!1)=>{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,writable:n,value:s})},Zn=e=>{const t=parseFloat(e);return isNaN(t)?e:t};let Xl;const eo=()=>Xl||(Xl=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});function to(e){if(ae(e)){const t={};for(let s=0;s<e.length;s++){const n=e[s],o=Be(n)?Yc(n):to(n);if(o)for(const l in o)t[l]=o[l]}return t}else if(Be(e)||Ie(e))return e}const Kc=/;(?![^(]*\))/g,qc=/:([^]+)/,zc=/\/\*[^]*?\*\//g;function Yc(e){const t={};return e.replace(zc,"").split(Kc).forEach(s=>{if(s){const n=s.split(qc);n.length>1&&(t[n[0].trim()]=n[1].trim())}}),t}function Ne(e){let t="";if(Be(e))t=e;else if(ae(e))for(let s=0;s<e.length;s++){const n=Ne(e[s]);n&&(t+=n+" ")}else if(Ie(e))for(const s in e)e[s]&&(t+=s+" ");return t.trim()}const Xc="itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly",Qc=pl(Xc);function Fa(e){return!!e||e===""}function Jc(e,t){if(e.length!==t.length)return!1;let s=!0;for(let n=0;s&&n<e.length;n++)s=_n(e[n],t[n]);return s}function _n(e,t){if(e===t)return!0;let s=Yl(e),n=Yl(t);if(s||n)return s&&n?e.getTime()===t.getTime():!1;if(s=St(e),n=St(t),s||n)return e===t;if(s=ae(e),n=ae(t),s||n)return s&&n?Jc(e,t):!1;if(s=Ie(e),n=Ie(t),s||n){if(!s||!n)return!1;const o=Object.keys(e).length,l=Object.keys(t).length;if(o!==l)return!1;for(const r in e){const i=e.hasOwnProperty(r),c=t.hasOwnProperty(r);if(i&&!c||!i&&c||!_n(e[r],t[r]))return!1}}return String(e)===String(t)}function bl(e,t){return e.findIndex(s=>_n(s,t))}const Oa=e=>!!(e&&e.__v_isRef===!0),m=e=>Be(e)?e:e==null?"":ae(e)||Ie(e)&&(e.toString===Aa||!pe(e.toString))?Oa(e)?m(e.value):JSON.stringify(e,Ua,2):String(e),Ua=(e,t)=>Oa(t)?Ua(e,t.value):Ds(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((s,[n,o],l)=>(s[wo(n,l)+" =>"]=o,s),{})}:Hs(t)?{[`Set(${t.size})`]:[...t.values()].map(s=>wo(s))}:St(t)?wo(t):Ie(t)&&!ae(t)&&!Na(t)?String(t):t,wo=(e,t="")=>{var s;return St(e)?`Symbol(${(s=e.description)!=null?s:t})`:e};let st;class Ma{constructor(t=!1){this.detached=t,this._active=!0,this._on=0,this.effects=[],this.cleanups=[],this._isPaused=!1,this.parent=st,!t&&st&&(this.index=(st.scopes||(st.scopes=[])).push(this)-1)}get active(){return this._active}pause(){if(this._active){this._isPaused=!0;let t,s;if(this.scopes)for(t=0,s=this.scopes.length;t<s;t++)this.scopes[t].pause();for(t=0,s=this.effects.length;t<s;t++)this.effects[t].pause()}}resume(){if(this._active&&this._isPaused){this._isPaused=!1;let t,s;if(this.scopes)for(t=0,s=this.scopes.length;t<s;t++)this.scopes[t].resume();for(t=0,s=this.effects.length;t<s;t++)this.effects[t].resume()}}run(t){if(this._active){const s=st;try{return st=this,t()}finally{st=s}}}on(){++this._on===1&&(this.prevScope=st,st=this)}off(){this._on>0&&--this._on===0&&(st=this.prevScope,this.prevScope=void 0)}stop(t){if(this._active){this._active=!1;let s,n;for(s=0,n=this.effects.length;s<n;s++)this.effects[s].stop();for(this.effects.length=0,s=0,n=this.cleanups.length;s<n;s++)this.cleanups[s]();if(this.cleanups.length=0,this.scopes){for(s=0,n=this.scopes.length;s<n;s++)this.scopes[s].stop(!0);this.scopes.length=0}if(!this.detached&&this.parent&&!t){const o=this.parent.scopes.pop();o&&o!==this&&(this.parent.scopes[this.index]=o,o.index=this.index)}this.parent=void 0}}}function vl(e){return new Ma(e)}function Va(){return st}function Zc(e,t=!1){st&&st.cleanups.push(e)}let Pe;const xo=new WeakSet;class ja{constructor(t){this.fn=t,this.deps=void 0,this.depsTail=void 0,this.flags=5,this.next=void 0,this.cleanup=void 0,this.scheduler=void 0,st&&st.active&&st.effects.push(this)}pause(){this.flags|=64}resume(){this.flags&64&&(this.flags&=-65,xo.has(this)&&(xo.delete(this),this.trigger()))}notify(){this.flags&2&&!(this.flags&32)||this.flags&8||Ha(this)}run(){if(!(this.flags&1))return this.fn();this.flags|=2,Ql(this),Ba(this);const t=Pe,s=kt;Pe=this,kt=!0;try{return this.fn()}finally{Ga(this),Pe=t,kt=s,this.flags&=-3}}stop(){if(this.flags&1){for(let t=this.deps;t;t=t.nextDep)wl(t);this.deps=this.depsTail=void 0,Ql(this),this.onStop&&this.onStop(),this.flags&=-2}}trigger(){this.flags&64?xo.add(this):this.scheduler?this.scheduler():this.runIfDirty()}runIfDirty(){Uo(this)&&this.run()}get dirty(){return Uo(this)}}let Wa=0,Js,Zs;function Ha(e,t=!1){if(e.flags|=8,t){e.next=Zs,Zs=e;return}e.next=Js,Js=e}function yl(){Wa++}function _l(){if(--Wa>0)return;if(Zs){let t=Zs;for(Zs=void 0;t;){const s=t.next;t.next=void 0,t.flags&=-9,t=s}}let e;for(;Js;){let t=Js;for(Js=void 0;t;){const s=t.next;if(t.next=void 0,t.flags&=-9,t.flags&1)try{t.trigger()}catch(n){e||(e=n)}t=s}}if(e)throw e}function Ba(e){for(let t=e.deps;t;t=t.nextDep)t.version=-1,t.prevActiveLink=t.dep.activeLink,t.dep.activeLink=t}function Ga(e){let t,s=e.depsTail,n=s;for(;n;){const o=n.prevDep;n.version===-1?(n===s&&(s=o),wl(n),eu(n)):t=n,n.dep.activeLink=n.prevActiveLink,n.prevActiveLink=void 0,n=o}e.deps=t,e.depsTail=s}function Uo(e){for(let t=e.deps;t;t=t.nextDep)if(t.dep.version!==t.version||t.dep.computed&&(Ka(t.dep.computed)||t.dep.version!==t.version))return!0;return!!e._dirty}function Ka(e){if(e.flags&4&&!(e.flags&16)||(e.flags&=-17,e.globalVersion===rn)||(e.globalVersion=rn,!e.isSSR&&e.flags&128&&(!e.deps&&!e._dirty||!Uo(e))))return;e.flags|=2;const t=e.dep,s=Pe,n=kt;Pe=e,kt=!0;try{Ba(e);const o=e.fn(e._value);(t.version===0||ns(o,e._value))&&(e.flags|=128,e._value=o,t.version++)}catch(o){throw t.version++,o}finally{Pe=s,kt=n,Ga(e),e.flags&=-3}}function wl(e,t=!1){const{dep:s,prevSub:n,nextSub:o}=e;if(n&&(n.nextSub=o,e.prevSub=void 0),o&&(o.prevSub=n,e.nextSub=void 0),s.subs===e&&(s.subs=n,!n&&s.computed)){s.computed.flags&=-5;for(let l=s.computed.deps;l;l=l.nextDep)wl(l,!0)}!t&&!--s.sc&&s.map&&s.map.delete(s.key)}function eu(e){const{prevDep:t,nextDep:s}=e;t&&(t.nextDep=s,e.prevDep=void 0),s&&(s.prevDep=t,e.nextDep=void 0)}let kt=!0;const qa=[];function Kt(){qa.push(kt),kt=!1}function qt(){const e=qa.pop();kt=e===void 0?!0:e}function Ql(e){const{cleanup:t}=e;if(e.cleanup=void 0,t){const s=Pe;Pe=void 0;try{t()}finally{Pe=s}}}let rn=0;class tu{constructor(t,s){this.sub=t,this.dep=s,this.version=s.version,this.nextDep=this.prevDep=this.nextSub=this.prevSub=this.prevActiveLink=void 0}}class xl{constructor(t){this.computed=t,this.version=0,this.activeLink=void 0,this.subs=void 0,this.map=void 0,this.key=void 0,this.sc=0,this.__v_skip=!0}track(t){if(!Pe||!kt||Pe===this.computed)return;let s=this.activeLink;if(s===void 0||s.sub!==Pe)s=this.activeLink=new tu(Pe,this),Pe.deps?(s.prevDep=Pe.depsTail,Pe.depsTail.nextDep=s,Pe.depsTail=s):Pe.deps=Pe.depsTail=s,za(s);else if(s.version===-1&&(s.version=this.version,s.nextDep)){const n=s.nextDep;n.prevDep=s.prevDep,s.prevDep&&(s.prevDep.nextDep=n),s.prevDep=Pe.depsTail,s.nextDep=void 0,Pe.depsTail.nextDep=s,Pe.depsTail=s,Pe.deps===s&&(Pe.deps=n)}return s}trigger(t){this.version++,rn++,this.notify(t)}notify(t){yl();try{for(let s=this.subs;s;s=s.prevSub)s.sub.notify()&&s.sub.dep.notify()}finally{_l()}}}function za(e){if(e.dep.sc++,e.sub.flags&4){const t=e.dep.computed;if(t&&!e.dep.subs){t.flags|=20;for(let n=t.deps;n;n=n.nextDep)za(n)}const s=e.dep.subs;s!==e&&(e.prevSub=s,s&&(s.nextSub=e)),e.dep.subs=e}}const Un=new WeakMap,_s=Symbol(""),Mo=Symbol(""),an=Symbol("");function ot(e,t,s){if(kt&&Pe){let n=Un.get(e);n||Un.set(e,n=new Map);let o=n.get(s);o||(n.set(s,o=new xl),o.map=n,o.key=s),o.track()}}function Vt(e,t,s,n,o,l){const r=Un.get(e);if(!r){rn++;return}const i=c=>{c&&c.trigger()};if(yl(),t==="clear")r.forEach(i);else{const c=ae(e),u=c&&gl(s);if(c&&s==="length"){const d=Number(n);r.forEach((f,g)=>{(g==="length"||g===an||!St(g)&&g>=d)&&i(f)})}else switch((s!==void 0||r.has(void 0))&&i(r.get(s)),u&&i(r.get(an)),t){case"add":c?u&&i(r.get("length")):(i(r.get(_s)),Ds(e)&&i(r.get(Mo)));break;case"delete":c||(i(r.get(_s)),Ds(e)&&i(r.get(Mo)));break;case"set":Ds(e)&&i(r.get(_s));break}}_l()}function su(e,t){const s=Un.get(e);return s&&s.get(t)}function Ss(e){const t=_e(e);return t===e?t:(ot(t,"iterate",an),vt(e)?t:t.map(Ze))}function so(e){return ot(e=_e(e),"iterate",an),e}const nu={__proto__:null,[Symbol.iterator](){return ko(this,Symbol.iterator,Ze)},concat(...e){return Ss(this).concat(...e.map(t=>ae(t)?Ss(t):t))},entries(){return ko(this,"entries",e=>(e[1]=Ze(e[1]),e))},every(e,t){return Ft(this,"every",e,t,void 0,arguments)},filter(e,t){return Ft(this,"filter",e,t,s=>s.map(Ze),arguments)},find(e,t){return Ft(this,"find",e,t,Ze,arguments)},findIndex(e,t){return Ft(this,"findIndex",e,t,void 0,arguments)},findLast(e,t){return Ft(this,"findLast",e,t,Ze,arguments)},findLastIndex(e,t){return Ft(this,"findLastIndex",e,t,void 0,arguments)},forEach(e,t){return Ft(this,"forEach",e,t,void 0,arguments)},includes(...e){return So(this,"includes",e)},indexOf(...e){return So(this,"indexOf",e)},join(e){return Ss(this).join(e)},lastIndexOf(...e){return So(this,"lastIndexOf",e)},map(e,t){return Ft(this,"map",e,t,void 0,arguments)},pop(){return Gs(this,"pop")},push(...e){return Gs(this,"push",e)},reduce(e,...t){return Jl(this,"reduce",e,t)},reduceRight(e,...t){return Jl(this,"reduceRight",e,t)},shift(){return Gs(this,"shift")},some(e,t){return Ft(this,"some",e,t,void 0,arguments)},splice(...e){return Gs(this,"splice",e)},toReversed(){return Ss(this).toReversed()},toSorted(e){return Ss(this).toSorted(e)},toSpliced(...e){return Ss(this).toSpliced(...e)},unshift(...e){return Gs(this,"unshift",e)},values(){return ko(this,"values",Ze)}};function ko(e,t,s){const n=so(e),o=n[t]();return n!==e&&!vt(e)&&(o._next=o.next,o.next=()=>{const l=o._next();return l.done||(l.value=s(l.value)),l}),o}const ou=Array.prototype;function Ft(e,t,s,n,o,l){const r=so(e),i=r!==e&&!vt(e),c=r[t];if(c!==ou[t]){const f=c.apply(e,l);return i?Ze(f):f}let u=s;r!==e&&(i?u=function(f,g){return s.call(this,Ze(f),g,e)}:s.length>2&&(u=function(f,g){return s.call(this,f,g,e)}));const d=c.call(r,u,n);return i&&o?o(d):d}function Jl(e,t,s,n){const o=so(e);let l=s;return o!==e&&(vt(e)?s.length>3&&(l=function(r,i,c){return s.call(this,r,i,c,e)}):l=function(r,i,c){return s.call(this,r,Ze(i),c,e)}),o[t](l,...n)}function So(e,t,s){const n=_e(e);ot(n,"iterate",an);const o=n[t](...s);return(o===-1||o===!1)&&$l(s[0])?(s[0]=_e(s[0]),n[t](...s)):o}function Gs(e,t,s=[]){Kt(),yl();const n=_e(e)[t].apply(e,s);return _l(),qt(),n}const lu=pl("__proto__,__v_isRef,__isVue"),Ya=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!=="arguments"&&e!=="caller").map(e=>Symbol[e]).filter(St));function ru(e){St(e)||(e=String(e));const t=_e(this);return ot(t,"has",e),t.hasOwnProperty(e)}class Xa{constructor(t=!1,s=!1){this._isReadonly=t,this._isShallow=s}get(t,s,n){if(s==="__v_skip")return t.__v_skip;const o=this._isReadonly,l=this._isShallow;if(s==="__v_isReactive")return!o;if(s==="__v_isReadonly")return o;if(s==="__v_isShallow")return l;if(s==="__v_raw")return n===(o?l?gu:ei:l?Za:Ja).get(t)||Object.getPrototypeOf(t)===Object.getPrototypeOf(n)?t:void 0;const r=ae(t);if(!o){let c;if(r&&(c=nu[s]))return c;if(s==="hasOwnProperty")return ru}const i=Reflect.get(t,s,Ve(t)?t:n);if((St(s)?Ya.has(s):lu(s))||(o||ot(t,"get",s),l))return i;if(Ve(i)){const c=r&&gl(s)?i:i.value;return o&&Ie(c)?jo(c):c}return Ie(i)?o?jo(i):wn(i):i}}class Qa extends Xa{constructor(t=!1){super(!1,t)}set(t,s,n,o){let l=t[s];if(!this._isShallow){const c=ls(l);if(!vt(n)&&!ls(n)&&(l=_e(l),n=_e(n)),!ae(t)&&Ve(l)&&!Ve(n))return c||(l.value=n),!0}const r=ae(t)&&gl(s)?Number(s)<t.length:Ce(t,s),i=Reflect.set(t,s,n,Ve(t)?t:o);return t===_e(o)&&(r?ns(n,l)&&Vt(t,"set",s,n):Vt(t,"add",s,n)),i}deleteProperty(t,s){const n=Ce(t,s);t[s];const o=Reflect.deleteProperty(t,s);return o&&n&&Vt(t,"delete",s,void 0),o}has(t,s){const n=Reflect.has(t,s);return(!St(s)||!Ya.has(s))&&ot(t,"has",s),n}ownKeys(t){return ot(t,"iterate",ae(t)?"length":_s),Reflect.ownKeys(t)}}class au extends Xa{constructor(t=!1){super(!0,t)}set(t,s){return!0}deleteProperty(t,s){return!0}}const iu=new Qa,cu=new au,uu=new Qa(!0);const Vo=e=>e,Cn=e=>Reflect.getPrototypeOf(e);function du(e,t,s){return function(...n){const o=this.__v_raw,l=_e(o),r=Ds(l),i=e==="entries"||e===Symbol.iterator&&r,c=e==="keys"&&r,u=o[e](...n),d=s?Vo:t?Mn:Ze;return!t&&ot(l,"iterate",c?Mo:_s),{next(){const{value:f,done:g}=u.next();return g?{value:f,done:g}:{value:i?[d(f[0]),d(f[1])]:d(f),done:g}},[Symbol.iterator](){return this}}}}function Ln(e){return function(...t){return e==="delete"?!1:e==="clear"?void 0:this}}function fu(e,t){const s={get(o){const l=this.__v_raw,r=_e(l),i=_e(o);e||(ns(o,i)&&ot(r,"get",o),ot(r,"get",i));const{has:c}=Cn(r),u=t?Vo:e?Mn:Ze;if(c.call(r,o))return u(l.get(o));if(c.call(r,i))return u(l.get(i));l!==r&&l.get(o)},get size(){const o=this.__v_raw;return!e&&ot(_e(o),"iterate",_s),o.size},has(o){const l=this.__v_raw,r=_e(l),i=_e(o);return e||(ns(o,i)&&ot(r,"has",o),ot(r,"has",i)),o===i?l.has(o):l.has(o)||l.has(i)},forEach(o,l){const r=this,i=r.__v_raw,c=_e(i),u=t?Vo:e?Mn:Ze;return!e&&ot(c,"iterate",_s),i.forEach((d,f)=>o.call(l,u(d),u(f),r))}};return at(s,e?{add:Ln("add"),set:Ln("set"),delete:Ln("delete"),clear:Ln("clear")}:{add(o){!t&&!vt(o)&&!ls(o)&&(o=_e(o));const l=_e(this);return Cn(l).has.call(l,o)||(l.add(o),Vt(l,"add",o,o)),this},set(o,l){!t&&!vt(l)&&!ls(l)&&(l=_e(l));const r=_e(this),{has:i,get:c}=Cn(r);let u=i.call(r,o);u||(o=_e(o),u=i.call(r,o));const d=c.call(r,o);return r.set(o,l),u?ns(l,d)&&Vt(r,"set",o,l):Vt(r,"add",o,l),this},delete(o){const l=_e(this),{has:r,get:i}=Cn(l);let c=r.call(l,o);c||(o=_e(o),c=r.call(l,o)),i&&i.call(l,o);const u=l.delete(o);return c&&Vt(l,"delete",o,void 0),u},clear(){const o=_e(this),l=o.size!==0,r=o.clear();return l&&Vt(o,"clear",void 0,void 0),r}}),["keys","values","entries",Symbol.iterator].forEach(o=>{s[o]=du(o,e,t)}),s}function kl(e,t){const s=fu(e,t);return(n,o,l)=>o==="__v_isReactive"?!e:o==="__v_isReadonly"?e:o==="__v_raw"?n:Reflect.get(Ce(s,o)&&o in n?s:n,o,l)}const pu={get:kl(!1,!1)},mu={get:kl(!1,!0)},hu={get:kl(!0,!1)};const Ja=new WeakMap,Za=new WeakMap,ei=new WeakMap,gu=new WeakMap;function bu(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function vu(e){return e.__v_skip||!Object.isExtensible(e)?0:bu(Hc(e))}function wn(e){return ls(e)?e:Sl(e,!1,iu,pu,Ja)}function ti(e){return Sl(e,!1,uu,mu,Za)}function jo(e){return Sl(e,!0,cu,hu,ei)}function Sl(e,t,s,n,o){if(!Ie(e)||e.__v_raw&&!(t&&e.__v_isReactive))return e;const l=vu(e);if(l===0)return e;const r=o.get(e);if(r)return r;const i=new Proxy(e,l===2?n:s);return o.set(e,i),i}function os(e){return ls(e)?os(e.__v_raw):!!(e&&e.__v_isReactive)}function ls(e){return!!(e&&e.__v_isReadonly)}function vt(e){return!!(e&&e.__v_isShallow)}function $l(e){return e?!!e.__v_raw:!1}function _e(e){const t=e&&e.__v_raw;return t?_e(t):e}function El(e){return!Ce(e,"__v_skip")&&Object.isExtensible(e)&&Ra(e,"__v_skip",!0),e}const Ze=e=>Ie(e)?wn(e):e,Mn=e=>Ie(e)?jo(e):e;function Ve(e){return e?e.__v_isRef===!0:!1}function G(e){return ni(e,!1)}function si(e){return ni(e,!0)}function ni(e,t){return Ve(e)?e:new yu(e,t)}class yu{constructor(t,s){this.dep=new xl,this.__v_isRef=!0,this.__v_isShallow=!1,this._rawValue=s?t:_e(t),this._value=s?t:Ze(t),this.__v_isShallow=s}get value(){return this.dep.track(),this._value}set value(t){const s=this._rawValue,n=this.__v_isShallow||vt(t)||ls(t);t=n?t:_e(t),ns(t,s)&&(this._rawValue=t,this._value=n?t:Ze(t),this.dep.trigger())}}function ye(e){return Ve(e)?e.value:e}const _u={get:(e,t,s)=>t==="__v_raw"?e:ye(Reflect.get(e,t,s)),set:(e,t,s,n)=>{const o=e[t];return Ve(o)&&!Ve(s)?(o.value=s,!0):Reflect.set(e,t,s,n)}};function oi(e){return os(e)?e:new Proxy(e,_u)}function wu(e){const t=ae(e)?new Array(e.length):{};for(const s in e)t[s]=ku(e,s);return t}class xu{constructor(t,s,n){this._object=t,this._key=s,this._defaultValue=n,this.__v_isRef=!0,this._value=void 0}get value(){const t=this._object[this._key];return this._value=t===void 0?this._defaultValue:t}set value(t){this._object[this._key]=t}get dep(){return su(_e(this._object),this._key)}}function ku(e,t,s){const n=e[t];return Ve(n)?n:new xu(e,t,s)}class Su{constructor(t,s,n){this.fn=t,this.setter=s,this._value=void 0,this.dep=new xl(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=rn-1,this.next=void 0,this.effect=this,this.__v_isReadonly=!s,this.isSSR=n}notify(){if(this.flags|=16,!(this.flags&8)&&Pe!==this)return Ha(this,!0),!0}get value(){const t=this.dep.track();return Ka(this),t&&(t.version=this.dep.version),this._value}set value(t){this.setter&&this.setter(t)}}function $u(e,t,s=!1){let n,o;return pe(e)?n=e:(n=e.get,o=e.set),new Su(n,o,s)}const Tn={},Vn=new WeakMap;let gs;function Eu(e,t=!1,s=gs){if(s){let n=Vn.get(s);n||Vn.set(s,n=[]),n.push(e)}}function Cu(e,t,s=Te){const{immediate:n,deep:o,once:l,scheduler:r,augmentJob:i,call:c}=s,u=w=>o?w:vt(w)||o===!1||o===0?jt(w,1):jt(w);let d,f,g,v,$=!1,x=!1;if(Ve(e)?(f=()=>e.value,$=vt(e)):os(e)?(f=()=>u(e),$=!0):ae(e)?(x=!0,$=e.some(w=>os(w)||vt(w)),f=()=>e.map(w=>{if(Ve(w))return w.value;if(os(w))return u(w);if(pe(w))return c?c(w,2):w()})):pe(e)?t?f=c?()=>c(e,2):e:f=()=>{if(g){Kt();try{g()}finally{qt()}}const w=gs;gs=d;try{return c?c(e,3,[v]):e(v)}finally{gs=w}}:f=Dt,t&&o){const w=f,T=o===!0?1/0:o;f=()=>jt(w(),T)}const P=Va(),_=()=>{d.stop(),P&&P.active&&hl(P.effects,d)};if(l&&t){const w=t;t=(...T)=>{w(...T),_()}}let S=x?new Array(e.length).fill(Tn):Tn;const I=w=>{if(!(!(d.flags&1)||!d.dirty&&!w))if(t){const T=d.run();if(o||$||(x?T.some((A,k)=>ns(A,S[k])):ns(T,S))){g&&g();const A=gs;gs=d;try{const k=[T,S===Tn?void 0:x&&S[0]===Tn?[]:S,v];S=T,c?c(t,3,k):t(...k)}finally{gs=A}}}else d.run()};return i&&i(I),d=new ja(f),d.scheduler=r?()=>r(I,!1):I,v=w=>Eu(w,!1,d),g=d.onStop=()=>{const w=Vn.get(d);if(w){if(c)c(w,4);else for(const T of w)T();Vn.delete(d)}},t?n?I(!0):S=d.run():r?r(I.bind(null,!0),!0):d.run(),_.pause=d.pause.bind(d),_.resume=d.resume.bind(d),_.stop=_,_}function jt(e,t=1/0,s){if(t<=0||!Ie(e)||e.__v_skip||(s=s||new Map,(s.get(e)||0)>=t))return e;if(s.set(e,t),t--,Ve(e))jt(e.value,t,s);else if(ae(e))for(let n=0;n<e.length;n++)jt(e[n],t,s);else if(Hs(e)||Ds(e))e.forEach(n=>{jt(n,t,s)});else if(Na(e)){for(const n in e)jt(e[n],t,s);for(const n of Object.getOwnPropertySymbols(e))Object.prototype.propertyIsEnumerable.call(e,n)&&jt(e[n],t,s)}return e}function xn(e,t,s,n){try{return n?e(...n):e()}catch(o){no(o,t,s)}}function Nt(e,t,s,n){if(pe(e)){const o=xn(e,t,s,n);return o&&Da(o)&&o.catch(l=>{no(l,t,s)}),o}if(ae(e)){const o=[];for(let l=0;l<e.length;l++)o.push(Nt(e[l],t,s,n));return o}}function no(e,t,s,n=!0){const o=t?t.vnode:null,{errorHandler:l,throwUnhandledErrorInProduction:r}=t&&t.appContext.config||Te;if(t){let i=t.parent;const c=t.proxy,u=`https://vuejs.org/error-reference/#runtime-${s}`;for(;i;){const d=i.ec;if(d){for(let f=0;f<d.length;f++)if(d[f](e,c,u)===!1)return}i=i.parent}if(l){Kt(),xn(l,null,10,[e,c,u]),qt();return}}Lu(e,s,o,n,r)}function Lu(e,t,s,n=!0,o=!1){if(o)throw e;console.error(e)}const ut=[];let It=-1;const As=[];let Zt=null,Es=0;const li=Promise.resolve();let jn=null;function is(e){const t=jn||li;return e?t.then(this?e.bind(this):e):t}function Tu(e){let t=It+1,s=ut.length;for(;t<s;){const n=t+s>>>1,o=ut[n],l=cn(o);l<e||l===e&&o.flags&2?t=n+1:s=n}return t}function Cl(e){if(!(e.flags&1)){const t=cn(e),s=ut[ut.length-1];!s||!(e.flags&2)&&t>=cn(s)?ut.push(e):ut.splice(Tu(t),0,e),e.flags|=1,ri()}}function ri(){jn||(jn=li.then(ii))}function Iu(e){ae(e)?As.push(...e):Zt&&e.id===-1?Zt.splice(Es+1,0,e):e.flags&1||(As.push(e),e.flags|=1),ri()}function Zl(e,t,s=It+1){for(;s<ut.length;s++){const n=ut[s];if(n&&n.flags&2){if(e&&n.id!==e.uid)continue;ut.splice(s,1),s--,n.flags&4&&(n.flags&=-2),n(),n.flags&4||(n.flags&=-2)}}}function ai(e){if(As.length){const t=[...new Set(As)].sort((s,n)=>cn(s)-cn(n));if(As.length=0,Zt){Zt.push(...t);return}for(Zt=t,Es=0;Es<Zt.length;Es++){const s=Zt[Es];s.flags&4&&(s.flags&=-2),s.flags&8||s(),s.flags&=-2}Zt=null,Es=0}}const cn=e=>e.id==null?e.flags&2?-1:1/0:e.id;function ii(e){try{for(It=0;It<ut.length;It++){const t=ut[It];t&&!(t.flags&8)&&(t.flags&4&&(t.flags&=-2),xn(t,t.i,t.i?15:14),t.flags&4||(t.flags&=-2))}}finally{for(;It<ut.length;It++){const t=ut[It];t&&(t.flags&=-2)}It=-1,ut.length=0,ai(),jn=null,(ut.length||As.length)&&ii()}}let et=null,ci=null;function Wn(e){const t=et;return et=e,ci=e&&e.type.__scopeId||null,t}function rs(e,t=et,s){if(!t||e._n)return e;const n=(...o)=>{n._d&&Gn(-1);const l=Wn(t);let r;try{r=e(...o)}finally{Wn(l),n._d&&Gn(1)}return r};return n._n=!0,n._c=!0,n._d=!0,n}function De(e,t){if(et===null)return e;const s=ao(et),n=e.dirs||(e.dirs=[]);for(let o=0;o<t.length;o++){let[l,r,i,c=Te]=t[o];l&&(pe(l)&&(l={mounted:l,updated:l}),l.deep&&jt(r),n.push({dir:l,instance:s,value:r,oldValue:void 0,arg:i,modifiers:c}))}return e}function ms(e,t,s,n){const o=e.dirs,l=t&&t.dirs;for(let r=0;r<o.length;r++){const i=o[r];l&&(i.oldValue=l[r].value);let c=i.dir[n];c&&(Kt(),Nt(c,s,8,[e.el,i,e,t]),qt())}}const Pu=Symbol("_vte"),Du=e=>e.__isTeleport,Au=Symbol("_leaveCb");function Ll(e,t){e.shapeFlag&6&&e.component?(e.transition=t,Ll(e.component.subTree,t)):e.shapeFlag&128?(e.ssContent.transition=t.clone(e.ssContent),e.ssFallback.transition=t.clone(e.ssFallback)):e.transition=t}function Fe(e,t){return pe(e)?at({name:e.name},t,{setup:e}):e}function ui(e){e.ids=[e.ids[0]+e.ids[2]+++"-",0,0]}const Hn=new WeakMap;function en(e,t,s,n,o=!1){if(ae(e)){e.forEach(($,x)=>en($,t&&(ae(t)?t[x]:t),s,n,o));return}if(Ns(n)&&!o){n.shapeFlag&512&&n.type.__asyncResolved&&n.component.subTree.component&&en(e,t,s,n.component.subTree);return}const l=n.shapeFlag&4?ao(n.component):n.el,r=o?null:l,{i,r:c}=e,u=t&&t.r,d=i.refs===Te?i.refs={}:i.refs,f=i.setupState,g=_e(f),v=f===Te?Pa:$=>Ce(g,$);if(u!=null&&u!==c){if(er(t),Be(u))d[u]=null,v(u)&&(f[u]=null);else if(Ve(u)){u.value=null;const $=t;$.k&&(d[$.k]=null)}}if(pe(c))xn(c,i,12,[r,d]);else{const $=Be(c),x=Ve(c);if($||x){const P=()=>{if(e.f){const _=$?v(c)?f[c]:d[c]:c.value;if(o)ae(_)&&hl(_,l);else if(ae(_))_.includes(l)||_.push(l);else if($)d[c]=[l],v(c)&&(f[c]=d[c]);else{const S=[l];c.value=S,e.k&&(d[e.k]=S)}}else $?(d[c]=r,v(c)&&(f[c]=r)):x&&(c.value=r,e.k&&(d[e.k]=r))};if(r){const _=()=>{P(),Hn.delete(e)};_.id=-1,Hn.set(e,_),pt(_,s)}else er(e),P()}}}function er(e){const t=Hn.get(e);t&&(t.flags|=8,Hn.delete(e))}eo().requestIdleCallback;eo().cancelIdleCallback;const Ns=e=>!!e.type.__asyncLoader,di=e=>e.type.__isKeepAlive;function Nu(e,t){fi(e,"a",t)}function Ru(e,t){fi(e,"da",t)}function fi(e,t,s=lt){const n=e.__wdc||(e.__wdc=()=>{let o=s;for(;o;){if(o.isDeactivated)return;o=o.parent}return e()});if(oo(t,n,s),s){let o=s.parent;for(;o&&o.parent;)di(o.parent.vnode)&&Fu(n,t,s,o),o=o.parent}}function Fu(e,t,s,n){const o=oo(t,e,n,!0);ks(()=>{hl(n[t],o)},s)}function oo(e,t,s=lt,n=!1){if(s){const o=s[e]||(s[e]=[]),l=t.__weh||(t.__weh=(...r)=>{Kt();const i=Sn(s),c=Nt(t,s,e,r);return i(),qt(),c});return n?o.unshift(l):o.push(l),l}}const Yt=e=>(t,s=lt)=>{(!fn||e==="sp")&&oo(e,(...n)=>t(...n),s)},Ou=Yt("bm"),Xt=Yt("m"),Uu=Yt("bu"),Mu=Yt("u"),Vu=Yt("bum"),ks=Yt("um"),ju=Yt("sp"),Wu=Yt("rtg"),Hu=Yt("rtc");function Bu(e,t=lt){oo("ec",e,t)}const Gu="components";function Ku(e,t){return zu(Gu,e,!0,t)||e}const qu=Symbol.for("v-ndc");function zu(e,t,s=!0,n=!1){const o=et||lt;if(o){const l=o.type;{const i=Fd(l,!1);if(i&&(i===t||i===_t(t)||i===Jn(_t(t))))return l}const r=tr(o[e]||l[e],t)||tr(o.appContext[e],t);return!r&&n?l:r}}function tr(e,t){return e&&(e[t]||e[_t(t)]||e[Jn(_t(t))])}function lo(e,t,s,n){let o;const l=s,r=ae(e);if(r||Be(e)){const i=r&&os(e);let c=!1,u=!1;i&&(c=!vt(e),u=ls(e),e=so(e)),o=new Array(e.length);for(let d=0,f=e.length;d<f;d++)o[d]=t(c?u?Mn(Ze(e[d])):Ze(e[d]):e[d],d,void 0,l)}else if(typeof e=="number"){o=new Array(e);for(let i=0;i<e;i++)o[i]=t(i+1,i,void 0,l)}else if(Ie(e))if(e[Symbol.iterator])o=Array.from(e,(i,c)=>t(i,c,void 0,l));else{const i=Object.keys(e);o=new Array(i.length);for(let c=0,u=i.length;c<u;c++){const d=i[c];o[c]=t(e[d],d,c,l)}}else o=[];return o}function pi(e,t,s={},n,o){if(et.ce||et.parent&&Ns(et.parent)&&et.parent.ce){const u=Object.keys(s).length>0;return K(),Rt(Qe,null,[xe("slot",s,n&&n())],u?-2:64)}let l=e[t];l&&l._c&&(l._d=!1),K();const r=l&&mi(l(s)),i=s.key||r&&r.key,c=Rt(Qe,{key:(i&&!St(i)?i:`_${t}`)+(!r&&n?"_fb":"")},r||(n?n():[]),r&&e._===1?64:-2);return!o&&c.scopeId&&(c.slotScopeIds=[c.scopeId+"-s"]),l&&l._c&&(l._d=!0),c}function mi(e){return e.some(t=>dn(t)?!(t.type===zt||t.type===Qe&&!mi(t.children)):!0)?e:null}const Wo=e=>e?Ni(e)?ao(e):Wo(e.parent):null,tn=at(Object.create(null),{$:e=>e,$el:e=>e.vnode.el,$data:e=>e.data,$props:e=>e.props,$attrs:e=>e.attrs,$slots:e=>e.slots,$refs:e=>e.refs,$parent:e=>Wo(e.parent),$root:e=>Wo(e.root),$host:e=>e.ce,$emit:e=>e.emit,$options:e=>gi(e),$forceUpdate:e=>e.f||(e.f=()=>{Cl(e.update)}),$nextTick:e=>e.n||(e.n=is.bind(e.proxy)),$watch:e=>gd.bind(e)}),$o=(e,t)=>e!==Te&&!e.__isScriptSetup&&Ce(e,t),Yu={get({_:e},t){if(t==="__v_skip")return!0;const{ctx:s,setupState:n,data:o,props:l,accessCache:r,type:i,appContext:c}=e;let u;if(t[0]!=="$"){const v=r[t];if(v!==void 0)switch(v){case 1:return n[t];case 2:return o[t];case 4:return s[t];case 3:return l[t]}else{if($o(n,t))return r[t]=1,n[t];if(o!==Te&&Ce(o,t))return r[t]=2,o[t];if((u=e.propsOptions[0])&&Ce(u,t))return r[t]=3,l[t];if(s!==Te&&Ce(s,t))return r[t]=4,s[t];Ho&&(r[t]=0)}}const d=tn[t];let f,g;if(d)return t==="$attrs"&&ot(e.attrs,"get",""),d(e);if((f=i.__cssModules)&&(f=f[t]))return f;if(s!==Te&&Ce(s,t))return r[t]=4,s[t];if(g=c.config.globalProperties,Ce(g,t))return g[t]},set({_:e},t,s){const{data:n,setupState:o,ctx:l}=e;return $o(o,t)?(o[t]=s,!0):n!==Te&&Ce(n,t)?(n[t]=s,!0):Ce(e.props,t)||t[0]==="$"&&t.slice(1)in e?!1:(l[t]=s,!0)},has({_:{data:e,setupState:t,accessCache:s,ctx:n,appContext:o,propsOptions:l,type:r}},i){let c,u;return!!(s[i]||e!==Te&&i[0]!=="$"&&Ce(e,i)||$o(t,i)||(c=l[0])&&Ce(c,i)||Ce(n,i)||Ce(tn,i)||Ce(o.config.globalProperties,i)||(u=r.__cssModules)&&u[i])},defineProperty(e,t,s){return s.get!=null?e._.accessCache[t]=0:Ce(s,"value")&&this.set(e,t,s.value,null),Reflect.defineProperty(e,t,s)}};function sr(e){return ae(e)?e.reduce((t,s)=>(t[s]=null,t),{}):e}let Ho=!0;function Xu(e){const t=gi(e),s=e.proxy,n=e.ctx;Ho=!1,t.beforeCreate&&nr(t.beforeCreate,e,"bc");const{data:o,computed:l,methods:r,watch:i,provide:c,inject:u,created:d,beforeMount:f,mounted:g,beforeUpdate:v,updated:$,activated:x,deactivated:P,beforeDestroy:_,beforeUnmount:S,destroyed:I,unmounted:w,render:T,renderTracked:A,renderTriggered:k,errorCaptured:R,serverPrefetch:H,expose:ne,inheritAttrs:J,components:j,directives:X,filters:le}=t;if(u&&Qu(u,n,null),r)for(const oe in r){const ue=r[oe];pe(ue)&&(n[oe]=ue.bind(s))}if(o){const oe=o.call(s,s);Ie(oe)&&(e.data=wn(oe))}if(Ho=!0,l)for(const oe in l){const ue=l[oe],Ae=pe(ue)?ue.bind(s,s):pe(ue.get)?ue.get.bind(s,s):Dt,Je=!pe(ue)&&pe(ue.set)?ue.set.bind(s):Dt,Ke=fe({get:Ae,set:Je});Object.defineProperty(n,oe,{enumerable:!0,configurable:!0,get:()=>Ke.value,set:Oe=>Ke.value=Oe})}if(i)for(const oe in i)hi(i[oe],n,s,oe);if(c){const oe=pe(c)?c.call(s):c;Reflect.ownKeys(oe).forEach(ue=>{sn(ue,oe[ue])})}d&&nr(d,e,"c");function ce(oe,ue){ae(ue)?ue.forEach(Ae=>oe(Ae.bind(s))):ue&&oe(ue.bind(s))}if(ce(Ou,f),ce(Xt,g),ce(Uu,v),ce(Mu,$),ce(Nu,x),ce(Ru,P),ce(Bu,R),ce(Hu,A),ce(Wu,k),ce(Vu,S),ce(ks,w),ce(ju,H),ae(ne))if(ne.length){const oe=e.exposed||(e.exposed={});ne.forEach(ue=>{Object.defineProperty(oe,ue,{get:()=>s[ue],set:Ae=>s[ue]=Ae,enumerable:!0})})}else e.exposed||(e.exposed={});T&&e.render===Dt&&(e.render=T),J!=null&&(e.inheritAttrs=J),j&&(e.components=j),X&&(e.directives=X),H&&ui(e)}function Qu(e,t,s=Dt){ae(e)&&(e=Bo(e));for(const n in e){const o=e[n];let l;Ie(o)?"default"in o?l=rt(o.from||n,o.default,!0):l=rt(o.from||n):l=rt(o),Ve(l)?Object.defineProperty(t,n,{enumerable:!0,configurable:!0,get:()=>l.value,set:r=>l.value=r}):t[n]=l}}function nr(e,t,s){Nt(ae(e)?e.map(n=>n.bind(t.proxy)):e.bind(t.proxy),t,s)}function hi(e,t,s,n){let o=n.includes(".")?Ti(s,n):()=>s[n];if(Be(e)){const l=t[e];pe(l)&&He(o,l)}else if(pe(e))He(o,e.bind(s));else if(Ie(e))if(ae(e))e.forEach(l=>hi(l,t,s,n));else{const l=pe(e.handler)?e.handler.bind(s):t[e.handler];pe(l)&&He(o,l,e)}}function gi(e){const t=e.type,{mixins:s,extends:n}=t,{mixins:o,optionsCache:l,config:{optionMergeStrategies:r}}=e.appContext,i=l.get(t);let c;return i?c=i:!o.length&&!s&&!n?c=t:(c={},o.length&&o.forEach(u=>Bn(c,u,r,!0)),Bn(c,t,r)),Ie(t)&&l.set(t,c),c}function Bn(e,t,s,n=!1){const{mixins:o,extends:l}=t;l&&Bn(e,l,s,!0),o&&o.forEach(r=>Bn(e,r,s,!0));for(const r in t)if(!(n&&r==="expose")){const i=Ju[r]||s&&s[r];e[r]=i?i(e[r],t[r]):t[r]}return e}const Ju={data:or,props:lr,emits:lr,methods:Xs,computed:Xs,beforeCreate:it,created:it,beforeMount:it,mounted:it,beforeUpdate:it,updated:it,beforeDestroy:it,beforeUnmount:it,destroyed:it,unmounted:it,activated:it,deactivated:it,errorCaptured:it,serverPrefetch:it,components:Xs,directives:Xs,watch:ed,provide:or,inject:Zu};function or(e,t){return t?e?function(){return at(pe(e)?e.call(this,this):e,pe(t)?t.call(this,this):t)}:t:e}function Zu(e,t){return Xs(Bo(e),Bo(t))}function Bo(e){if(ae(e)){const t={};for(let s=0;s<e.length;s++)t[e[s]]=e[s];return t}return e}function it(e,t){return e?[...new Set([].concat(e,t))]:t}function Xs(e,t){return e?at(Object.create(null),e,t):t}function lr(e,t){return e?ae(e)&&ae(t)?[...new Set([...e,...t])]:at(Object.create(null),sr(e),sr(t??{})):t}function ed(e,t){if(!e)return t;if(!t)return e;const s=at(Object.create(null),e);for(const n in t)s[n]=it(e[n],t[n]);return s}function bi(){return{app:null,config:{isNativeTag:Pa,performance:!1,globalProperties:{},optionMergeStrategies:{},errorHandler:void 0,warnHandler:void 0,compilerOptions:{}},mixins:[],components:{},directives:{},provides:Object.create(null),optionsCache:new WeakMap,propsCache:new WeakMap,emitsCache:new WeakMap}}let td=0;function sd(e,t){return function(n,o=null){pe(n)||(n=at({},n)),o!=null&&!Ie(o)&&(o=null);const l=bi(),r=new WeakSet,i=[];let c=!1;const u=l.app={_uid:td++,_component:n,_props:o,_container:null,_context:l,_instance:null,version:Ud,get config(){return l.config},set config(d){},use(d,...f){return r.has(d)||(d&&pe(d.install)?(r.add(d),d.install(u,...f)):pe(d)&&(r.add(d),d(u,...f))),u},mixin(d){return l.mixins.includes(d)||l.mixins.push(d),u},component(d,f){return f?(l.components[d]=f,u):l.components[d]},directive(d,f){return f?(l.directives[d]=f,u):l.directives[d]},mount(d,f,g){if(!c){const v=u._ceVNode||xe(n,o);return v.appContext=l,g===!0?g="svg":g===!1&&(g=void 0),e(v,d,g),c=!0,u._container=d,d.__vue_app__=u,ao(v.component)}},onUnmount(d){i.push(d)},unmount(){c&&(Nt(i,u._instance,16),e(null,u._container),delete u._container.__vue_app__)},provide(d,f){return l.provides[d]=f,u},runWithContext(d){const f=ws;ws=u;try{return d()}finally{ws=f}}};return u}}let ws=null;function sn(e,t){if(lt){let s=lt.provides;const n=lt.parent&<.parent.provides;n===s&&(s=lt.provides=Object.create(n)),s[e]=t}}function rt(e,t,s=!1){const n=xs();if(n||ws){let o=ws?ws._context.provides:n?n.parent==null||n.ce?n.vnode.appContext&&n.vnode.appContext.provides:n.parent.provides:void 0;if(o&&e in o)return o[e];if(arguments.length>1)return s&&pe(t)?t.call(n&&n.proxy):t}}function nd(){return!!(xs()||ws)}const vi={},yi=()=>Object.create(vi),_i=e=>Object.getPrototypeOf(e)===vi;function od(e,t,s,n=!1){const o={},l=yi();e.propsDefaults=Object.create(null),wi(e,t,o,l);for(const r in e.propsOptions[0])r in o||(o[r]=void 0);s?e.props=n?o:ti(o):e.type.props?e.props=o:e.props=l,e.attrs=l}function ld(e,t,s,n){const{props:o,attrs:l,vnode:{patchFlag:r}}=e,i=_e(o),[c]=e.propsOptions;let u=!1;if((n||r>0)&&!(r&16)){if(r&8){const d=e.vnode.dynamicProps;for(let f=0;f<d.length;f++){let g=d[f];if(ro(e.emitsOptions,g))continue;const v=t[g];if(c)if(Ce(l,g))v!==l[g]&&(l[g]=v,u=!0);else{const $=_t(g);o[$]=Go(c,i,$,v,e,!1)}else v!==l[g]&&(l[g]=v,u=!0)}}}else{wi(e,t,o,l)&&(u=!0);let d;for(const f in i)(!t||!Ce(t,f)&&((d=as(f))===f||!Ce(t,d)))&&(c?s&&(s[f]!==void 0||s[d]!==void 0)&&(o[f]=Go(c,i,f,void 0,e,!0)):delete o[f]);if(l!==i)for(const f in l)(!t||!Ce(t,f))&&(delete l[f],u=!0)}u&&Vt(e.attrs,"set","")}function wi(e,t,s,n){const[o,l]=e.propsOptions;let r=!1,i;if(t)for(let c in t){if(Qs(c))continue;const u=t[c];let d;o&&Ce(o,d=_t(c))?!l||!l.includes(d)?s[d]=u:(i||(i={}))[d]=u:ro(e.emitsOptions,c)||(!(c in n)||u!==n[c])&&(n[c]=u,r=!0)}if(l){const c=_e(s),u=i||Te;for(let d=0;d<l.length;d++){const f=l[d];s[f]=Go(o,c,f,u[f],e,!Ce(u,f))}}return r}function Go(e,t,s,n,o,l){const r=e[s];if(r!=null){const i=Ce(r,"default");if(i&&n===void 0){const c=r.default;if(r.type!==Function&&!r.skipFactory&&pe(c)){const{propsDefaults:u}=o;if(s in u)n=u[s];else{const d=Sn(o);n=u[s]=c.call(null,t),d()}}else n=c;o.ce&&o.ce._setProp(s,n)}r[0]&&(l&&!i?n=!1:r[1]&&(n===""||n===as(s))&&(n=!0))}return n}const rd=new WeakMap;function xi(e,t,s=!1){const n=s?rd:t.propsCache,o=n.get(e);if(o)return o;const l=e.props,r={},i=[];let c=!1;if(!pe(e)){const d=f=>{c=!0;const[g,v]=xi(f,t,!0);at(r,g),v&&i.push(...v)};!s&&t.mixins.length&&t.mixins.forEach(d),e.extends&&d(e.extends),e.mixins&&e.mixins.forEach(d)}if(!l&&!c)return Ie(e)&&n.set(e,Ps),Ps;if(ae(l))for(let d=0;d<l.length;d++){const f=_t(l[d]);rr(f)&&(r[f]=Te)}else if(l)for(const d in l){const f=_t(d);if(rr(f)){const g=l[d],v=r[f]=ae(g)||pe(g)?{type:g}:at({},g),$=v.type;let x=!1,P=!0;if(ae($))for(let _=0;_<$.length;++_){const S=$[_],I=pe(S)&&S.name;if(I==="Boolean"){x=!0;break}else I==="String"&&(P=!1)}else x=pe($)&&$.name==="Boolean";v[0]=x,v[1]=P,(x||Ce(v,"default"))&&i.push(f)}}const u=[r,i];return Ie(e)&&n.set(e,u),u}function rr(e){return e[0]!=="$"&&!Qs(e)}const Tl=e=>e==="_"||e==="_ctx"||e==="$stable",Il=e=>ae(e)?e.map(Pt):[Pt(e)],ad=(e,t,s)=>{if(t._n)return t;const n=rs((...o)=>Il(t(...o)),s);return n._c=!1,n},ki=(e,t,s)=>{const n=e._ctx;for(const o in e){if(Tl(o))continue;const l=e[o];if(pe(l))t[o]=ad(o,l,n);else if(l!=null){const r=Il(l);t[o]=()=>r}}},Si=(e,t)=>{const s=Il(t);e.slots.default=()=>s},$i=(e,t,s)=>{for(const n in t)(s||!Tl(n))&&(e[n]=t[n])},id=(e,t,s)=>{const n=e.slots=yi();if(e.vnode.shapeFlag&32){const o=t._;o?($i(n,t,s),s&&Ra(n,"_",o,!0)):ki(t,n)}else t&&Si(e,t)},cd=(e,t,s)=>{const{vnode:n,slots:o}=e;let l=!0,r=Te;if(n.shapeFlag&32){const i=t._;i?s&&i===1?l=!1:$i(o,t,s):(l=!t.$stable,ki(t,o)),r=t}else t&&(Si(e,t),r={default:1});if(l)for(const i in o)!Tl(i)&&r[i]==null&&delete o[i]},pt=Sd;function ud(e){return dd(e)}function dd(e,t){const s=eo();s.__VUE__=!0;const{insert:n,remove:o,patchProp:l,createElement:r,createText:i,createComment:c,setText:u,setElementText:d,parentNode:f,nextSibling:g,setScopeId:v=Dt,insertStaticContent:$}=e,x=(p,h,E,O=null,V=null,M=null,b=void 0,y=null,C=!!h.dynamicChildren)=>{if(p===h)return;p&&!Ks(p,h)&&(O=U(p),Oe(p,V,M,!0),p=null),h.patchFlag===-2&&(C=!1,h.dynamicChildren=null);const{type:D,ref:Q,shapeFlag:W}=h;switch(D){case kn:P(p,h,E,O);break;case zt:_(p,h,E,O);break;case Co:p==null&&S(h,E,O,b);break;case Qe:j(p,h,E,O,V,M,b,y,C);break;default:W&1?T(p,h,E,O,V,M,b,y,C):W&6?X(p,h,E,O,V,M,b,y,C):(W&64||W&128)&&D.process(p,h,E,O,V,M,b,y,C,ee)}Q!=null&&V?en(Q,p&&p.ref,M,h||p,!h):Q==null&&p&&p.ref!=null&&en(p.ref,null,M,p,!0)},P=(p,h,E,O)=>{if(p==null)n(h.el=i(h.children),E,O);else{const V=h.el=p.el;h.children!==p.children&&u(V,h.children)}},_=(p,h,E,O)=>{p==null?n(h.el=c(h.children||""),E,O):h.el=p.el},S=(p,h,E,O)=>{[p.el,p.anchor]=$(p.children,h,E,O,p.el,p.anchor)},I=({el:p,anchor:h},E,O)=>{let V;for(;p&&p!==h;)V=g(p),n(p,E,O),p=V;n(h,E,O)},w=({el:p,anchor:h})=>{let E;for(;p&&p!==h;)E=g(p),o(p),p=E;o(h)},T=(p,h,E,O,V,M,b,y,C)=>{if(h.type==="svg"?b="svg":h.type==="math"&&(b="mathml"),p==null)A(h,E,O,V,M,b,y,C);else{const D=p.el&&p.el._isVueCE?p.el:null;try{D&&D._beginPatch(),H(p,h,V,M,b,y,C)}finally{D&&D._endPatch()}}},A=(p,h,E,O,V,M,b,y)=>{let C,D;const{props:Q,shapeFlag:W,transition:L,dirs:N}=p;if(C=p.el=r(p.type,M,Q&&Q.is,Q),W&8?d(C,p.children):W&16&&R(p.children,C,null,O,V,Eo(p,M),b,y),N&&ms(p,null,O,"created"),k(C,p,p.scopeId,b,O),Q){for(const ie in Q)ie!=="value"&&!Qs(ie)&&l(C,ie,null,Q[ie],M,O);"value"in Q&&l(C,"value",null,Q.value,M),(D=Q.onVnodeBeforeMount)&&Ct(D,O,p)}N&&ms(p,null,O,"beforeMount");const se=fd(V,L);se&&L.beforeEnter(C),n(C,h,E),((D=Q&&Q.onVnodeMounted)||se||N)&&pt(()=>{D&&Ct(D,O,p),se&&L.enter(C),N&&ms(p,null,O,"mounted")},V)},k=(p,h,E,O,V)=>{if(E&&v(p,E),O)for(let M=0;M<O.length;M++)v(p,O[M]);if(V){let M=V.subTree;if(h===M||Pi(M.type)&&(M.ssContent===h||M.ssFallback===h)){const b=V.vnode;k(p,b,b.scopeId,b.slotScopeIds,V.parent)}}},R=(p,h,E,O,V,M,b,y,C=0)=>{for(let D=C;D<p.length;D++){const Q=p[D]=y?es(p[D]):Pt(p[D]);x(null,Q,h,E,O,V,M,b,y)}},H=(p,h,E,O,V,M,b)=>{const y=h.el=p.el;let{patchFlag:C,dynamicChildren:D,dirs:Q}=h;C|=p.patchFlag&16;const W=p.props||Te,L=h.props||Te;let N;if(E&&hs(E,!1),(N=L.onVnodeBeforeUpdate)&&Ct(N,E,h,p),Q&&ms(h,p,E,"beforeUpdate"),E&&hs(E,!0),(W.innerHTML&&L.innerHTML==null||W.textContent&&L.textContent==null)&&d(y,""),D?ne(p.dynamicChildren,D,y,E,O,Eo(h,V),M):b||ue(p,h,y,null,E,O,Eo(h,V),M,!1),C>0){if(C&16)J(y,W,L,E,V);else if(C&2&&W.class!==L.class&&l(y,"class",null,L.class,V),C&4&&l(y,"style",W.style,L.style,V),C&8){const se=h.dynamicProps;for(let ie=0;ie<se.length;ie++){const ge=se[ie],qe=W[ge],je=L[ge];(je!==qe||ge==="value")&&l(y,ge,qe,je,V,E)}}C&1&&p.children!==h.children&&d(y,h.children)}else!b&&D==null&&J(y,W,L,E,V);((N=L.onVnodeUpdated)||Q)&&pt(()=>{N&&Ct(N,E,h,p),Q&&ms(h,p,E,"updated")},O)},ne=(p,h,E,O,V,M,b)=>{for(let y=0;y<h.length;y++){const C=p[y],D=h[y],Q=C.el&&(C.type===Qe||!Ks(C,D)||C.shapeFlag&198)?f(C.el):E;x(C,D,Q,null,O,V,M,b,!0)}},J=(p,h,E,O,V)=>{if(h!==E){if(h!==Te)for(const M in h)!Qs(M)&&!(M in E)&&l(p,M,h[M],null,V,O);for(const M in E){if(Qs(M))continue;const b=E[M],y=h[M];b!==y&&M!=="value"&&l(p,M,y,b,V,O)}"value"in E&&l(p,"value",h.value,E.value,V)}},j=(p,h,E,O,V,M,b,y,C)=>{const D=h.el=p?p.el:i(""),Q=h.anchor=p?p.anchor:i("");let{patchFlag:W,dynamicChildren:L,slotScopeIds:N}=h;N&&(y=y?y.concat(N):N),p==null?(n(D,E,O),n(Q,E,O),R(h.children||[],E,Q,V,M,b,y,C)):W>0&&W&64&&L&&p.dynamicChildren?(ne(p.dynamicChildren,L,E,V,M,b,y),(h.key!=null||V&&h===V.subTree)&&Ei(p,h,!0)):ue(p,h,E,Q,V,M,b,y,C)},X=(p,h,E,O,V,M,b,y,C)=>{h.slotScopeIds=y,p==null?h.shapeFlag&512?V.ctx.activate(h,E,O,b,C):le(h,E,O,V,M,b,C):ve(p,h,C)},le=(p,h,E,O,V,M,b)=>{const y=p.component=Pd(p,O,V);if(di(p)&&(y.ctx.renderer=ee),Dd(y,!1,b),y.asyncDep){if(V&&V.registerDep(y,ce,b),!p.el){const C=y.subTree=xe(zt);_(null,C,h,E),p.placeholder=C.el}}else ce(y,p,h,E,V,M,b)},ve=(p,h,E)=>{const O=h.component=p.component;if(xd(p,h,E))if(O.asyncDep&&!O.asyncResolved){oe(O,h,E);return}else O.next=h,O.update();else h.el=p.el,O.vnode=h},ce=(p,h,E,O,V,M,b)=>{const y=()=>{if(p.isMounted){let{next:W,bu:L,u:N,parent:se,vnode:ie}=p;{const wt=Ci(p);if(wt){W&&(W.el=ie.el,oe(p,W,b)),wt.asyncDep.then(()=>{p.isUnmounted||y()});return}}let ge=W,qe;hs(p,!1),W?(W.el=ie.el,oe(p,W,b)):W=ie,L&&Nn(L),(qe=W.props&&W.props.onVnodeBeforeUpdate)&&Ct(qe,se,W,ie),hs(p,!0);const je=ir(p),gt=p.subTree;p.subTree=je,x(gt,je,f(gt.el),U(gt),p,V,M),W.el=je.el,ge===null&&kd(p,je.el),N&&pt(N,V),(qe=W.props&&W.props.onVnodeUpdated)&&pt(()=>Ct(qe,se,W,ie),V)}else{let W;const{el:L,props:N}=h,{bm:se,m:ie,parent:ge,root:qe,type:je}=p,gt=Ns(h);hs(p,!1),se&&Nn(se),!gt&&(W=N&&N.onVnodeBeforeMount)&&Ct(W,ge,h),hs(p,!0);{qe.ce&&qe.ce._def.shadowRoot!==!1&&qe.ce._injectChildStyle(je);const wt=p.subTree=ir(p);x(null,wt,E,O,p,V,M),h.el=wt.el}if(ie&&pt(ie,V),!gt&&(W=N&&N.onVnodeMounted)){const wt=h;pt(()=>Ct(W,ge,wt),V)}(h.shapeFlag&256||ge&&Ns(ge.vnode)&&ge.vnode.shapeFlag&256)&&p.a&&pt(p.a,V),p.isMounted=!0,h=E=O=null}};p.scope.on();const C=p.effect=new ja(y);p.scope.off();const D=p.update=C.run.bind(C),Q=p.job=C.runIfDirty.bind(C);Q.i=p,Q.id=p.uid,C.scheduler=()=>Cl(Q),hs(p,!0),D()},oe=(p,h,E)=>{h.component=p;const O=p.vnode.props;p.vnode=h,p.next=null,ld(p,h.props,O,E),cd(p,h.children,E),Kt(),Zl(p),qt()},ue=(p,h,E,O,V,M,b,y,C=!1)=>{const D=p&&p.children,Q=p?p.shapeFlag:0,W=h.children,{patchFlag:L,shapeFlag:N}=h;if(L>0){if(L&128){Je(D,W,E,O,V,M,b,y,C);return}else if(L&256){Ae(D,W,E,O,V,M,b,y,C);return}}N&8?(Q&16&&Se(D,V,M),W!==D&&d(E,W)):Q&16?N&16?Je(D,W,E,O,V,M,b,y,C):Se(D,V,M,!0):(Q&8&&d(E,""),N&16&&R(W,E,O,V,M,b,y,C))},Ae=(p,h,E,O,V,M,b,y,C)=>{p=p||Ps,h=h||Ps;const D=p.length,Q=h.length,W=Math.min(D,Q);let L;for(L=0;L<W;L++){const N=h[L]=C?es(h[L]):Pt(h[L]);x(p[L],N,E,null,V,M,b,y,C)}D>Q?Se(p,V,M,!0,!1,W):R(h,E,O,V,M,b,y,C,W)},Je=(p,h,E,O,V,M,b,y,C)=>{let D=0;const Q=h.length;let W=p.length-1,L=Q-1;for(;D<=W&&D<=L;){const N=p[D],se=h[D]=C?es(h[D]):Pt(h[D]);if(Ks(N,se))x(N,se,E,null,V,M,b,y,C);else break;D++}for(;D<=W&&D<=L;){const N=p[W],se=h[L]=C?es(h[L]):Pt(h[L]);if(Ks(N,se))x(N,se,E,null,V,M,b,y,C);else break;W--,L--}if(D>W){if(D<=L){const N=L+1,se=N<Q?h[N].el:O;for(;D<=L;)x(null,h[D]=C?es(h[D]):Pt(h[D]),E,se,V,M,b,y,C),D++}}else if(D>L)for(;D<=W;)Oe(p[D],V,M,!0),D++;else{const N=D,se=D,ie=new Map;for(D=se;D<=L;D++){const ft=h[D]=C?es(h[D]):Pt(h[D]);ft.key!=null&&ie.set(ft.key,D)}let ge,qe=0;const je=L-se+1;let gt=!1,wt=0;const Bs=new Array(je);for(D=0;D<je;D++)Bs[D]=0;for(D=N;D<=W;D++){const ft=p[D];if(qe>=je){Oe(ft,V,M,!0);continue}let Et;if(ft.key!=null)Et=ie.get(ft.key);else for(ge=se;ge<=L;ge++)if(Bs[ge-se]===0&&Ks(ft,h[ge])){Et=ge;break}Et===void 0?Oe(ft,V,M,!0):(Bs[Et-se]=D+1,Et>=wt?wt=Et:gt=!0,x(ft,h[Et],E,null,V,M,b,y,C),qe++)}const Kl=gt?pd(Bs):Ps;for(ge=Kl.length-1,D=je-1;D>=0;D--){const ft=se+D,Et=h[ft],ql=h[ft+1],zl=ft+1<Q?ql.el||ql.placeholder:O;Bs[D]===0?x(null,Et,E,zl,V,M,b,y,C):gt&&(ge<0||D!==Kl[ge]?Ke(Et,E,zl,2):ge--)}}},Ke=(p,h,E,O,V=null)=>{const{el:M,type:b,transition:y,children:C,shapeFlag:D}=p;if(D&6){Ke(p.component.subTree,h,E,O);return}if(D&128){p.suspense.move(h,E,O);return}if(D&64){b.move(p,h,E,ee);return}if(b===Qe){n(M,h,E);for(let W=0;W<C.length;W++)Ke(C[W],h,E,O);n(p.anchor,h,E);return}if(b===Co){I(p,h,E);return}if(O!==2&&D&1&&y)if(O===0)y.beforeEnter(M),n(M,h,E),pt(()=>y.enter(M),V);else{const{leave:W,delayLeave:L,afterLeave:N}=y,se=()=>{p.ctx.isUnmounted?o(M):n(M,h,E)},ie=()=>{M._isLeaving&&M[Au](!0),W(M,()=>{se(),N&&N()})};L?L(M,se,ie):ie()}else n(M,h,E)},Oe=(p,h,E,O=!1,V=!1)=>{const{type:M,props:b,ref:y,children:C,dynamicChildren:D,shapeFlag:Q,patchFlag:W,dirs:L,cacheIndex:N}=p;if(W===-2&&(V=!1),y!=null&&(Kt(),en(y,null,E,p,!0),qt()),N!=null&&(h.renderCache[N]=void 0),Q&256){h.ctx.deactivate(p);return}const se=Q&1&&L,ie=!Ns(p);let ge;if(ie&&(ge=b&&b.onVnodeBeforeUnmount)&&Ct(ge,h,p),Q&6)he(p.component,E,O);else{if(Q&128){p.suspense.unmount(E,O);return}se&&ms(p,null,h,"beforeUnmount"),Q&64?p.type.remove(p,h,E,ee,O):D&&!D.hasOnce&&(M!==Qe||W>0&&W&64)?Se(D,h,E,!1,!0):(M===Qe&&W&384||!V&&Q&16)&&Se(C,h,E),O&&B(p)}(ie&&(ge=b&&b.onVnodeUnmounted)||se)&&pt(()=>{ge&&Ct(ge,h,p),se&&ms(p,null,h,"unmounted")},E)},B=p=>{const{type:h,el:E,anchor:O,transition:V}=p;if(h===Qe){re(E,O);return}if(h===Co){w(p);return}const M=()=>{o(E),V&&!V.persisted&&V.afterLeave&&V.afterLeave()};if(p.shapeFlag&1&&V&&!V.persisted){const{leave:b,delayLeave:y}=V,C=()=>b(E,M);y?y(p.el,M,C):C()}else M()},re=(p,h)=>{let E;for(;p!==h;)E=g(p),o(p),p=E;o(h)},he=(p,h,E)=>{const{bum:O,scope:V,job:M,subTree:b,um:y,m:C,a:D}=p;ar(C),ar(D),O&&Nn(O),V.stop(),M&&(M.flags|=8,Oe(b,p,h,E)),y&&pt(y,h),pt(()=>{p.isUnmounted=!0},h)},Se=(p,h,E,O=!1,V=!1,M=0)=>{for(let b=M;b<p.length;b++)Oe(p[b],h,E,O,V)},U=p=>{if(p.shapeFlag&6)return U(p.component.subTree);if(p.shapeFlag&128)return p.suspense.next();const h=g(p.anchor||p.el),E=h&&h[Pu];return E?g(E):h};let Y=!1;const z=(p,h,E)=>{p==null?h._vnode&&Oe(h._vnode,null,null,!0):x(h._vnode||null,p,h,null,null,null,E),h._vnode=p,Y||(Y=!0,Zl(),ai(),Y=!1)},ee={p:x,um:Oe,m:Ke,r:B,mt:le,mc:R,pc:ue,pbc:ne,n:U,o:e};return{render:z,hydrate:void 0,createApp:sd(z)}}function Eo({type:e,props:t},s){return s==="svg"&&e==="foreignObject"||s==="mathml"&&e==="annotation-xml"&&t&&t.encoding&&t.encoding.includes("html")?void 0:s}function hs({effect:e,job:t},s){s?(e.flags|=32,t.flags|=4):(e.flags&=-33,t.flags&=-5)}function fd(e,t){return(!e||e&&!e.pendingBranch)&&t&&!t.persisted}function Ei(e,t,s=!1){const n=e.children,o=t.children;if(ae(n)&&ae(o))for(let l=0;l<n.length;l++){const r=n[l];let i=o[l];i.shapeFlag&1&&!i.dynamicChildren&&((i.patchFlag<=0||i.patchFlag===32)&&(i=o[l]=es(o[l]),i.el=r.el),!s&&i.patchFlag!==-2&&Ei(r,i)),i.type===kn&&i.patchFlag!==-1&&(i.el=r.el),i.type===zt&&!i.el&&(i.el=r.el)}}function pd(e){const t=e.slice(),s=[0];let n,o,l,r,i;const c=e.length;for(n=0;n<c;n++){const u=e[n];if(u!==0){if(o=s[s.length-1],e[o]<u){t[n]=o,s.push(n);continue}for(l=0,r=s.length-1;l<r;)i=l+r>>1,e[s[i]]<u?l=i+1:r=i;u<e[s[l]]&&(l>0&&(t[n]=s[l-1]),s[l]=n)}}for(l=s.length,r=s[l-1];l-- >0;)s[l]=r,r=t[r];return s}function Ci(e){const t=e.subTree.component;if(t)return t.asyncDep&&!t.asyncResolved?t:Ci(t)}function ar(e){if(e)for(let t=0;t<e.length;t++)e[t].flags|=8}const md=Symbol.for("v-scx"),hd=()=>rt(md);function He(e,t,s){return Li(e,t,s)}function Li(e,t,s=Te){const{immediate:n,deep:o,flush:l,once:r}=s,i=at({},s),c=t&&n||!t&&l!=="post";let u;if(fn){if(l==="sync"){const v=hd();u=v.__watcherHandles||(v.__watcherHandles=[])}else if(!c){const v=()=>{};return v.stop=Dt,v.resume=Dt,v.pause=Dt,v}}const d=lt;i.call=(v,$,x)=>Nt(v,d,$,x);let f=!1;l==="post"?i.scheduler=v=>{pt(v,d&&d.suspense)}:l!=="sync"&&(f=!0,i.scheduler=(v,$)=>{$?v():Cl(v)}),i.augmentJob=v=>{t&&(v.flags|=4),f&&(v.flags|=2,d&&(v.id=d.uid,v.i=d))};const g=Cu(e,t,i);return fn&&(u?u.push(g):c&&g()),g}function gd(e,t,s){const n=this.proxy,o=Be(e)?e.includes(".")?Ti(n,e):()=>n[e]:e.bind(n,n);let l;pe(t)?l=t:(l=t.handler,s=t);const r=Sn(this),i=Li(o,l.bind(n),s);return r(),i}function Ti(e,t){const s=t.split(".");return()=>{let n=e;for(let o=0;o<s.length&&n;o++)n=n[s[o]];return n}}const bd=(e,t)=>t==="modelValue"||t==="model-value"?e.modelModifiers:e[`${t}Modifiers`]||e[`${_t(t)}Modifiers`]||e[`${as(t)}Modifiers`];function vd(e,t,...s){if(e.isUnmounted)return;const n=e.vnode.props||Te;let o=s;const l=t.startsWith("update:"),r=l&&bd(n,t.slice(7));r&&(r.trim&&(o=s.map(d=>Be(d)?d.trim():d)),r.number&&(o=s.map(Zn)));let i,c=n[i=_o(t)]||n[i=_o(_t(t))];!c&&l&&(c=n[i=_o(as(t))]),c&&Nt(c,e,6,o);const u=n[i+"Once"];if(u){if(!e.emitted)e.emitted={};else if(e.emitted[i])return;e.emitted[i]=!0,Nt(u,e,6,o)}}const yd=new WeakMap;function Ii(e,t,s=!1){const n=s?yd:t.emitsCache,o=n.get(e);if(o!==void 0)return o;const l=e.emits;let r={},i=!1;if(!pe(e)){const c=u=>{const d=Ii(u,t,!0);d&&(i=!0,at(r,d))};!s&&t.mixins.length&&t.mixins.forEach(c),e.extends&&c(e.extends),e.mixins&&e.mixins.forEach(c)}return!l&&!i?(Ie(e)&&n.set(e,null),null):(ae(l)?l.forEach(c=>r[c]=null):at(r,l),Ie(e)&&n.set(e,r),r)}function ro(e,t){return!e||!Xn(t)?!1:(t=t.slice(2).replace(/Once$/,""),Ce(e,t[0].toLowerCase()+t.slice(1))||Ce(e,as(t))||Ce(e,t))}function ir(e){const{type:t,vnode:s,proxy:n,withProxy:o,propsOptions:[l],slots:r,attrs:i,emit:c,render:u,renderCache:d,props:f,data:g,setupState:v,ctx:$,inheritAttrs:x}=e,P=Wn(e);let _,S;try{if(s.shapeFlag&4){const w=o||n,T=w;_=Pt(u.call(T,w,d,f,v,g,$)),S=i}else{const w=t;_=Pt(w.length>1?w(f,{attrs:i,slots:r,emit:c}):w(f,null)),S=t.props?i:_d(i)}}catch(w){nn.length=0,no(w,e,1),_=xe(zt)}let I=_;if(S&&x!==!1){const w=Object.keys(S),{shapeFlag:T}=I;w.length&&T&7&&(l&&w.some(ml)&&(S=wd(S,l)),I=Rs(I,S,!1,!0))}return s.dirs&&(I=Rs(I,null,!1,!0),I.dirs=I.dirs?I.dirs.concat(s.dirs):s.dirs),s.transition&&Ll(I,s.transition),_=I,Wn(P),_}const _d=e=>{let t;for(const s in e)(s==="class"||s==="style"||Xn(s))&&((t||(t={}))[s]=e[s]);return t},wd=(e,t)=>{const s={};for(const n in e)(!ml(n)||!(n.slice(9)in t))&&(s[n]=e[n]);return s};function xd(e,t,s){const{props:n,children:o,component:l}=e,{props:r,children:i,patchFlag:c}=t,u=l.emitsOptions;if(t.dirs||t.transition)return!0;if(s&&c>=0){if(c&1024)return!0;if(c&16)return n?cr(n,r,u):!!r;if(c&8){const d=t.dynamicProps;for(let f=0;f<d.length;f++){const g=d[f];if(r[g]!==n[g]&&!ro(u,g))return!0}}}else return(o||i)&&(!i||!i.$stable)?!0:n===r?!1:n?r?cr(n,r,u):!0:!!r;return!1}function cr(e,t,s){const n=Object.keys(t);if(n.length!==Object.keys(e).length)return!0;for(let o=0;o<n.length;o++){const l=n[o];if(t[l]!==e[l]&&!ro(s,l))return!0}return!1}function kd({vnode:e,parent:t},s){for(;t;){const n=t.subTree;if(n.suspense&&n.suspense.activeBranch===e&&(n.el=e.el),n===e)(e=t.vnode).el=s,t=t.parent;else break}}const Pi=e=>e.__isSuspense;function Sd(e,t){t&&t.pendingBranch?ae(e)?t.effects.push(...e):t.effects.push(e):Iu(e)}const Qe=Symbol.for("v-fgt"),kn=Symbol.for("v-txt"),zt=Symbol.for("v-cmt"),Co=Symbol.for("v-stc"),nn=[];let mt=null;function K(e=!1){nn.push(mt=e?null:[])}function $d(){nn.pop(),mt=nn[nn.length-1]||null}let un=1;function Gn(e,t=!1){un+=e,e<0&&mt&&t&&(mt.hasOnce=!0)}function Di(e){return e.dynamicChildren=un>0?mt||Ps:null,$d(),un>0&&mt&&mt.push(e),e}function q(e,t,s,n,o,l){return Di(a(e,t,s,n,o,l,!0))}function Rt(e,t,s,n,o){return Di(xe(e,t,s,n,o,!0))}function dn(e){return e?e.__v_isVNode===!0:!1}function Ks(e,t){return e.type===t.type&&e.key===t.key}const Ai=({key:e})=>e??null,Rn=({ref:e,ref_key:t,ref_for:s})=>(typeof e=="number"&&(e=""+e),e!=null?Be(e)||Ve(e)||pe(e)?{i:et,r:e,k:t,f:!!s}:e:null);function a(e,t=null,s=null,n=0,o=null,l=e===Qe?0:1,r=!1,i=!1){const c={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&Ai(t),ref:t&&Rn(t),scopeId:ci,slotScopeIds:null,children:s,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetStart:null,targetAnchor:null,staticCount:0,shapeFlag:l,patchFlag:n,dynamicProps:o,dynamicChildren:null,appContext:null,ctx:et};return i?(Pl(c,s),l&128&&e.normalize(c)):s&&(c.shapeFlag|=Be(s)?8:16),un>0&&!r&&mt&&(c.patchFlag>0||l&6)&&c.patchFlag!==32&&mt.push(c),c}const xe=Ed;function Ed(e,t=null,s=null,n=0,o=null,l=!1){if((!e||e===qu)&&(e=zt),dn(e)){const i=Rs(e,t,!0);return s&&Pl(i,s),un>0&&!l&&mt&&(i.shapeFlag&6?mt[mt.indexOf(e)]=i:mt.push(i)),i.patchFlag=-2,i}if(Od(e)&&(e=e.__vccOpts),t){t=Cd(t);let{class:i,style:c}=t;i&&!Be(i)&&(t.class=Ne(i)),Ie(c)&&($l(c)&&!ae(c)&&(c=at({},c)),t.style=to(c))}const r=Be(e)?1:Pi(e)?128:Du(e)?64:Ie(e)?4:pe(e)?2:0;return a(e,t,s,n,o,r,l,!0)}function Cd(e){return e?$l(e)||_i(e)?at({},e):e:null}function Rs(e,t,s=!1,n=!1){const{props:o,ref:l,patchFlag:r,children:i,transition:c}=e,u=t?Ld(o||{},t):o,d={__v_isVNode:!0,__v_skip:!0,type:e.type,props:u,key:u&&Ai(u),ref:t&&t.ref?s&&l?ae(l)?l.concat(Rn(t)):[l,Rn(t)]:Rn(t):l,scopeId:e.scopeId,slotScopeIds:e.slotScopeIds,children:i,target:e.target,targetStart:e.targetStart,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:t&&e.type!==Qe?r===-1?16:r|16:r,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:c,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&Rs(e.ssContent),ssFallback:e.ssFallback&&Rs(e.ssFallback),placeholder:e.placeholder,el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce};return c&&n&&Ll(d,c.clone(d)),d}function de(e=" ",t=0){return xe(kn,null,e,t)}function te(e="",t=!1){return t?(K(),Rt(zt,null,e)):xe(zt,null,e)}function Pt(e){return e==null||typeof e=="boolean"?xe(zt):ae(e)?xe(Qe,null,e.slice()):dn(e)?es(e):xe(kn,null,String(e))}function es(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:Rs(e)}function Pl(e,t){let s=0;const{shapeFlag:n}=e;if(t==null)t=null;else if(ae(t))s=16;else if(typeof t=="object")if(n&65){const o=t.default;o&&(o._c&&(o._d=!1),Pl(e,o()),o._c&&(o._d=!0));return}else{s=32;const o=t._;!o&&!_i(t)?t._ctx=et:o===3&&et&&(et.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else pe(t)?(t={default:t,_ctx:et},s=32):(t=String(t),n&64?(s=16,t=[de(t)]):s=8);e.children=t,e.shapeFlag|=s}function Ld(...e){const t={};for(let s=0;s<e.length;s++){const n=e[s];for(const o in n)if(o==="class")t.class!==n.class&&(t.class=Ne([t.class,n.class]));else if(o==="style")t.style=to([t.style,n.style]);else if(Xn(o)){const l=t[o],r=n[o];r&&l!==r&&!(ae(l)&&l.includes(r))&&(t[o]=l?[].concat(l,r):r)}else o!==""&&(t[o]=n[o])}return t}function Ct(e,t,s,n=null){Nt(e,t,7,[s,n])}const Td=bi();let Id=0;function Pd(e,t,s){const n=e.type,o=(t?t.appContext:e.appContext)||Td,l={uid:Id++,vnode:e,type:n,parent:t,appContext:o,root:null,next:null,subTree:null,effect:null,update:null,job:null,scope:new Ma(!0),render:null,proxy:null,exposed:null,exposeProxy:null,withProxy:null,provides:t?t.provides:Object.create(o.provides),ids:t?t.ids:["",0,0],accessCache:null,renderCache:[],components:null,directives:null,propsOptions:xi(n,o),emitsOptions:Ii(n,o),emit:null,emitted:null,propsDefaults:Te,inheritAttrs:n.inheritAttrs,ctx:Te,data:Te,props:Te,attrs:Te,slots:Te,refs:Te,setupState:Te,setupContext:null,suspense:s,suspenseId:s?s.pendingId:0,asyncDep:null,asyncResolved:!1,isMounted:!1,isUnmounted:!1,isDeactivated:!1,bc:null,c:null,bm:null,m:null,bu:null,u:null,um:null,bum:null,da:null,a:null,rtg:null,rtc:null,ec:null,sp:null};return l.ctx={_:l},l.root=t?t.root:l,l.emit=vd.bind(null,l),e.ce&&e.ce(l),l}let lt=null;const xs=()=>lt||et;let Kn,Ko;{const e=eo(),t=(s,n)=>{let o;return(o=e[s])||(o=e[s]=[]),o.push(n),l=>{o.length>1?o.forEach(r=>r(l)):o[0](l)}};Kn=t("__VUE_INSTANCE_SETTERS__",s=>lt=s),Ko=t("__VUE_SSR_SETTERS__",s=>fn=s)}const Sn=e=>{const t=lt;return Kn(e),e.scope.on(),()=>{e.scope.off(),Kn(t)}},ur=()=>{lt&<.scope.off(),Kn(null)};function Ni(e){return e.vnode.shapeFlag&4}let fn=!1;function Dd(e,t=!1,s=!1){t&&Ko(t);const{props:n,children:o}=e.vnode,l=Ni(e);od(e,n,l,t),id(e,o,s||t);const r=l?Ad(e,t):void 0;return t&&Ko(!1),r}function Ad(e,t){const s=e.type;e.accessCache=Object.create(null),e.proxy=new Proxy(e.ctx,Yu);const{setup:n}=s;if(n){Kt();const o=e.setupContext=n.length>1?Rd(e):null,l=Sn(e),r=xn(n,e,0,[e.props,o]),i=Da(r);if(qt(),l(),(i||e.sp)&&!Ns(e)&&ui(e),i){if(r.then(ur,ur),t)return r.then(c=>{dr(e,c)}).catch(c=>{no(c,e,0)});e.asyncDep=r}else dr(e,r)}else Ri(e)}function dr(e,t,s){pe(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:Ie(t)&&(e.setupState=oi(t)),Ri(e)}function Ri(e,t,s){const n=e.type;e.render||(e.render=n.render||Dt);{const o=Sn(e);Kt();try{Xu(e)}finally{qt(),o()}}}const Nd={get(e,t){return ot(e,"get",""),e[t]}};function Rd(e){const t=s=>{e.exposed=s||{}};return{attrs:new Proxy(e.attrs,Nd),slots:e.slots,emit:e.emit,expose:t}}function ao(e){return e.exposed?e.exposeProxy||(e.exposeProxy=new Proxy(oi(El(e.exposed)),{get(t,s){if(s in t)return t[s];if(s in tn)return tn[s](e)},has(t,s){return s in t||s in tn}})):e.proxy}function Fd(e,t=!0){return pe(e)?e.displayName||e.name:e.name||t&&e.__name}function Od(e){return pe(e)&&"__vccOpts"in e}const fe=(e,t)=>$u(e,t,fn);function io(e,t,s){try{Gn(-1);const n=arguments.length;return n===2?Ie(t)&&!ae(t)?dn(t)?xe(e,null,[t]):xe(e,t):xe(e,null,t):(n>3?s=Array.prototype.slice.call(arguments,2):n===3&&dn(s)&&(s=[s]),xe(e,t,s))}finally{Gn(1)}}const Ud="3.5.24";let qo;const fr=typeof window<"u"&&window.trustedTypes;if(fr)try{qo=fr.createPolicy("vue",{createHTML:e=>e})}catch{}const Fi=qo?e=>qo.createHTML(e):e=>e,Md="http://www.w3.org/2000/svg",Vd="http://www.w3.org/1998/Math/MathML",Mt=typeof document<"u"?document:null,pr=Mt&&Mt.createElement("template"),jd={insert:(e,t,s)=>{t.insertBefore(e,s||null)},remove:e=>{const t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,s,n)=>{const o=t==="svg"?Mt.createElementNS(Md,e):t==="mathml"?Mt.createElementNS(Vd,e):s?Mt.createElement(e,{is:s}):Mt.createElement(e);return e==="select"&&n&&n.multiple!=null&&o.setAttribute("multiple",n.multiple),o},createText:e=>Mt.createTextNode(e),createComment:e=>Mt.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>Mt.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,s,n,o,l){const r=s?s.previousSibling:t.lastChild;if(o&&(o===l||o.nextSibling))for(;t.insertBefore(o.cloneNode(!0),s),!(o===l||!(o=o.nextSibling)););else{pr.innerHTML=Fi(n==="svg"?`<svg>${e}</svg>`:n==="mathml"?`<math>${e}</math>`:e);const i=pr.content;if(n==="svg"||n==="mathml"){const c=i.firstChild;for(;c.firstChild;)i.appendChild(c.firstChild);i.removeChild(c)}t.insertBefore(i,s)}return[r?r.nextSibling:t.firstChild,s?s.previousSibling:t.lastChild]}},Wd=Symbol("_vtc");function Hd(e,t,s){const n=e[Wd];n&&(t=(t?[t,...n]:[...n]).join(" ")),t==null?e.removeAttribute("class"):s?e.setAttribute("class",t):e.className=t}const mr=Symbol("_vod"),Bd=Symbol("_vsh"),Gd=Symbol(""),Kd=/(?:^|;)\s*display\s*:/;function qd(e,t,s){const n=e.style,o=Be(s);let l=!1;if(s&&!o){if(t)if(Be(t))for(const r of t.split(";")){const i=r.slice(0,r.indexOf(":")).trim();s[i]==null&&Fn(n,i,"")}else for(const r in t)s[r]==null&&Fn(n,r,"");for(const r in s)r==="display"&&(l=!0),Fn(n,r,s[r])}else if(o){if(t!==s){const r=n[Gd];r&&(s+=";"+r),n.cssText=s,l=Kd.test(s)}}else t&&e.removeAttribute("style");mr in e&&(e[mr]=l?n.display:"",e[Bd]&&(n.display="none"))}const hr=/\s*!important$/;function Fn(e,t,s){if(ae(s))s.forEach(n=>Fn(e,t,n));else if(s==null&&(s=""),t.startsWith("--"))e.setProperty(t,s);else{const n=zd(e,t);hr.test(s)?e.setProperty(as(n),s.replace(hr,""),"important"):e[n]=s}}const gr=["Webkit","Moz","ms"],Lo={};function zd(e,t){const s=Lo[t];if(s)return s;let n=_t(t);if(n!=="filter"&&n in e)return Lo[t]=n;n=Jn(n);for(let o=0;o<gr.length;o++){const l=gr[o]+n;if(l in e)return Lo[t]=l}return t}const br="http://www.w3.org/1999/xlink";function vr(e,t,s,n,o,l=Qc(t)){n&&t.startsWith("xlink:")?s==null?e.removeAttributeNS(br,t.slice(6,t.length)):e.setAttributeNS(br,t,s):s==null||l&&!Fa(s)?e.removeAttribute(t):e.setAttribute(t,l?"":St(s)?String(s):s)}function yr(e,t,s,n,o){if(t==="innerHTML"||t==="textContent"){s!=null&&(e[t]=t==="innerHTML"?Fi(s):s);return}const l=e.tagName;if(t==="value"&&l!=="PROGRESS"&&!l.includes("-")){const i=l==="OPTION"?e.getAttribute("value")||"":e.value,c=s==null?e.type==="checkbox"?"on":"":String(s);(i!==c||!("_value"in e))&&(e.value=c),s==null&&e.removeAttribute(t),e._value=s;return}let r=!1;if(s===""||s==null){const i=typeof e[t];i==="boolean"?s=Fa(s):s==null&&i==="string"?(s="",r=!0):i==="number"&&(s=0,r=!0)}try{e[t]=s}catch{}r&&e.removeAttribute(o||t)}function ss(e,t,s,n){e.addEventListener(t,s,n)}function Yd(e,t,s,n){e.removeEventListener(t,s,n)}const _r=Symbol("_vei");function Xd(e,t,s,n,o=null){const l=e[_r]||(e[_r]={}),r=l[t];if(n&&r)r.value=n;else{const[i,c]=Qd(t);if(n){const u=l[t]=ef(n,o);ss(e,i,u,c)}else r&&(Yd(e,i,r,c),l[t]=void 0)}}const wr=/(?:Once|Passive|Capture)$/;function Qd(e){let t;if(wr.test(e)){t={};let n;for(;n=e.match(wr);)e=e.slice(0,e.length-n[0].length),t[n[0].toLowerCase()]=!0}return[e[2]===":"?e.slice(3):as(e.slice(2)),t]}let To=0;const Jd=Promise.resolve(),Zd=()=>To||(Jd.then(()=>To=0),To=Date.now());function ef(e,t){const s=n=>{if(!n._vts)n._vts=Date.now();else if(n._vts<=s.attached)return;Nt(tf(n,s.value),t,5,[n])};return s.value=e,s.attached=Zd(),s}function tf(e,t){if(ae(t)){const s=e.stopImmediatePropagation;return e.stopImmediatePropagation=()=>{s.call(e),e._stopped=!0},t.map(n=>o=>!o._stopped&&n&&n(o))}else return t}const xr=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&e.charCodeAt(2)>96&&e.charCodeAt(2)<123,sf=(e,t,s,n,o,l)=>{const r=o==="svg";t==="class"?Hd(e,n,r):t==="style"?qd(e,s,n):Xn(t)?ml(t)||Xd(e,t,s,n,l):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):nf(e,t,n,r))?(yr(e,t,n),!e.tagName.includes("-")&&(t==="value"||t==="checked"||t==="selected")&&vr(e,t,n,r,l,t!=="value")):e._isVueCE&&(/[A-Z]/.test(t)||!Be(n))?yr(e,_t(t),n,l,t):(t==="true-value"?e._trueValue=n:t==="false-value"&&(e._falseValue=n),vr(e,t,n,r))};function nf(e,t,s,n){if(n)return!!(t==="innerHTML"||t==="textContent"||t in e&&xr(t)&&pe(s));if(t==="spellcheck"||t==="draggable"||t==="translate"||t==="autocorrect"||t==="sandbox"&&e.tagName==="IFRAME"||t==="form"||t==="list"&&e.tagName==="INPUT"||t==="type"&&e.tagName==="TEXTAREA")return!1;if(t==="width"||t==="height"){const o=e.tagName;if(o==="IMG"||o==="VIDEO"||o==="CANVAS"||o==="SOURCE")return!1}return xr(t)&&Be(s)?!1:t in e}const Fs=e=>{const t=e.props["onUpdate:modelValue"]||!1;return ae(t)?s=>Nn(t,s):t};function of(e){e.target.composing=!0}function kr(e){const t=e.target;t.composing&&(t.composing=!1,t.dispatchEvent(new Event("input")))}const Bt=Symbol("_assign");function Sr(e,t,s){return t&&(e=e.trim()),s&&(e=Zn(e)),e}const Xe={created(e,{modifiers:{lazy:t,trim:s,number:n}},o){e[Bt]=Fs(o);const l=n||o.props&&o.props.type==="number";ss(e,t?"change":"input",r=>{r.target.composing||e[Bt](Sr(e.value,s,l))}),(s||l)&&ss(e,"change",()=>{e.value=Sr(e.value,s,l)}),t||(ss(e,"compositionstart",of),ss(e,"compositionend",kr),ss(e,"change",kr))},mounted(e,{value:t}){e.value=t??""},beforeUpdate(e,{value:t,oldValue:s,modifiers:{lazy:n,trim:o,number:l}},r){if(e[Bt]=Fs(r),e.composing)return;const i=(l||e.type==="number")&&!/^0\d/.test(e.value)?Zn(e.value):e.value,c=t??"";i!==c&&(document.activeElement===e&&e.type!=="range"&&(n&&t===s||o&&e.value.trim()===c)||(e.value=c))}},Is={deep:!0,created(e,t,s){e[Bt]=Fs(s),ss(e,"change",()=>{const n=e._modelValue,o=pn(e),l=e.checked,r=e[Bt];if(ae(n)){const i=bl(n,o),c=i!==-1;if(l&&!c)r(n.concat(o));else if(!l&&c){const u=[...n];u.splice(i,1),r(u)}}else if(Hs(n)){const i=new Set(n);l?i.add(o):i.delete(o),r(i)}else r(Oi(e,l))})},mounted:$r,beforeUpdate(e,t,s){e[Bt]=Fs(s),$r(e,t,s)}};function $r(e,{value:t,oldValue:s},n){e._modelValue=t;let o;if(ae(t))o=bl(t,n.props.value)>-1;else if(Hs(t))o=t.has(n.props.value);else{if(t===s)return;o=_n(t,Oi(e,!0))}e.checked!==o&&(e.checked=o)}const Er={deep:!0,created(e,{value:t,modifiers:{number:s}},n){const o=Hs(t);ss(e,"change",()=>{const l=Array.prototype.filter.call(e.options,r=>r.selected).map(r=>s?Zn(pn(r)):pn(r));e[Bt](e.multiple?o?new Set(l):l:l[0]),e._assigning=!0,is(()=>{e._assigning=!1})}),e[Bt]=Fs(n)},mounted(e,{value:t}){Cr(e,t)},beforeUpdate(e,t,s){e[Bt]=Fs(s)},updated(e,{value:t}){e._assigning||Cr(e,t)}};function Cr(e,t){const s=e.multiple,n=ae(t);if(!(s&&!n&&!Hs(t))){for(let o=0,l=e.options.length;o<l;o++){const r=e.options[o],i=pn(r);if(s)if(n){const c=typeof i;c==="string"||c==="number"?r.selected=t.some(u=>String(u)===String(i)):r.selected=bl(t,i)>-1}else r.selected=t.has(i);else if(_n(pn(r),t)){e.selectedIndex!==o&&(e.selectedIndex=o);return}}!s&&e.selectedIndex!==-1&&(e.selectedIndex=-1)}}function pn(e){return"_value"in e?e._value:e.value}function Oi(e,t){const s=t?"_trueValue":"_falseValue";return s in e?e[s]:t}const lf=["ctrl","shift","alt","meta"],rf={stop:e=>e.stopPropagation(),prevent:e=>e.preventDefault(),self:e=>e.target!==e.currentTarget,ctrl:e=>!e.ctrlKey,shift:e=>!e.shiftKey,alt:e=>!e.altKey,meta:e=>!e.metaKey,left:e=>"button"in e&&e.button!==0,middle:e=>"button"in e&&e.button!==1,right:e=>"button"in e&&e.button!==2,exact:(e,t)=>lf.some(s=>e[`${s}Key`]&&!t.includes(s))},yt=(e,t)=>{const s=e._withMods||(e._withMods={}),n=t.join(".");return s[n]||(s[n]=((o,...l)=>{for(let r=0;r<t.length;r++){const i=rf[t[r]];if(i&&i(o,t))return}return e(o,...l)}))},af={esc:"escape",space:" ",up:"arrow-up",left:"arrow-left",right:"arrow-right",down:"arrow-down",delete:"backspace"},Os=(e,t)=>{const s=e._withKeys||(e._withKeys={}),n=t.join(".");return s[n]||(s[n]=(o=>{if(!("key"in o))return;const l=as(o.key);if(t.some(r=>r===l||af[r]===l))return e(o)}))},cf=at({patchProp:sf},jd);let Lr;function uf(){return Lr||(Lr=ud(cf))}const df=((...e)=>{const t=uf().createApp(...e),{mount:s}=t;return t.mount=n=>{const o=pf(n);if(!o)return;const l=t._component;!pe(l)&&!l.render&&!l.template&&(l.template=o.innerHTML),o.nodeType===1&&(o.textContent="");const r=s(o,!1,ff(o));return o instanceof Element&&(o.removeAttribute("v-cloak"),o.setAttribute("data-v-app","")),r},t});function ff(e){if(e instanceof SVGElement)return"svg";if(typeof MathMLElement=="function"&&e instanceof MathMLElement)return"mathml"}function pf(e){return Be(e)?document.querySelector(e):e}let Ui;const co=e=>Ui=e,Mi=Symbol();function zo(e){return e&&typeof e=="object"&&Object.prototype.toString.call(e)==="[object Object]"&&typeof e.toJSON!="function"}var on;(function(e){e.direct="direct",e.patchObject="patch object",e.patchFunction="patch function"})(on||(on={}));function mf(){const e=vl(!0),t=e.run(()=>G({}));let s=[],n=[];const o=El({install(l){co(o),o._a=l,l.provide(Mi,o),l.config.globalProperties.$pinia=o,n.forEach(r=>s.push(r)),n=[]},use(l){return this._a?s.push(l):n.push(l),this},_p:s,_a:null,_e:e,_s:new Map,state:t});return o}const Vi=()=>{};function Tr(e,t,s,n=Vi){e.add(t);const o=()=>{e.delete(t)&&n()};return!s&&Va()&&Zc(o),o}function $s(e,...t){e.forEach(s=>{s(...t)})}const hf=e=>e(),Ir=Symbol(),Io=Symbol();function Yo(e,t){e instanceof Map&&t instanceof Map?t.forEach((s,n)=>e.set(n,s)):e instanceof Set&&t instanceof Set&&t.forEach(e.add,e);for(const s in t){if(!t.hasOwnProperty(s))continue;const n=t[s],o=e[s];zo(o)&&zo(n)&&e.hasOwnProperty(s)&&!Ve(n)&&!os(n)?e[s]=Yo(o,n):e[s]=n}return e}const gf=Symbol();function bf(e){return!zo(e)||!Object.prototype.hasOwnProperty.call(e,gf)}const{assign:Jt}=Object;function vf(e){return!!(Ve(e)&&e.effect)}function yf(e,t,s,n){const{state:o,actions:l,getters:r}=t,i=s.state.value[e];let c;function u(){i||(s.state.value[e]=o?o():{});const d=wu(s.state.value[e]);return Jt(d,l,Object.keys(r||{}).reduce((f,g)=>(f[g]=El(fe(()=>{co(s);const v=s._s.get(e);return r[g].call(v,v)})),f),{}))}return c=ji(e,u,t,s,n,!0),c}function ji(e,t,s={},n,o,l){let r;const i=Jt({actions:{}},s),c={deep:!0};let u,d,f=new Set,g=new Set,v;const $=n.state.value[e];!l&&!$&&(n.state.value[e]={}),G({});let x;function P(R){let H;u=d=!1,typeof R=="function"?(R(n.state.value[e]),H={type:on.patchFunction,storeId:e,events:v}):(Yo(n.state.value[e],R),H={type:on.patchObject,payload:R,storeId:e,events:v});const ne=x=Symbol();is().then(()=>{x===ne&&(u=!0)}),d=!0,$s(f,H,n.state.value[e])}const _=l?function(){const{state:H}=s,ne=H?H():{};this.$patch(J=>{Jt(J,ne)})}:Vi;function S(){r.stop(),f.clear(),g.clear(),n._s.delete(e)}const I=(R,H="")=>{if(Ir in R)return R[Io]=H,R;const ne=function(){co(n);const J=Array.from(arguments),j=new Set,X=new Set;function le(oe){j.add(oe)}function ve(oe){X.add(oe)}$s(g,{args:J,name:ne[Io],store:T,after:le,onError:ve});let ce;try{ce=R.apply(this&&this.$id===e?this:T,J)}catch(oe){throw $s(X,oe),oe}return ce instanceof Promise?ce.then(oe=>($s(j,oe),oe)).catch(oe=>($s(X,oe),Promise.reject(oe))):($s(j,ce),ce)};return ne[Ir]=!0,ne[Io]=H,ne},w={_p:n,$id:e,$onAction:Tr.bind(null,g),$patch:P,$reset:_,$subscribe(R,H={}){const ne=Tr(f,R,H.detached,()=>J()),J=r.run(()=>He(()=>n.state.value[e],j=>{(H.flush==="sync"?d:u)&&R({storeId:e,type:on.direct,events:v},j)},Jt({},c,H)));return ne},$dispose:S},T=wn(w);n._s.set(e,T);const k=(n._a&&n._a.runWithContext||hf)(()=>n._e.run(()=>(r=vl()).run(()=>t({action:I}))));for(const R in k){const H=k[R];if(Ve(H)&&!vf(H)||os(H))l||($&&bf(H)&&(Ve(H)?H.value=$[R]:Yo(H,$[R])),n.state.value[e][R]=H);else if(typeof H=="function"){const ne=I(H,R);k[R]=ne,i.actions[R]=H}}return Jt(T,k),Jt(_e(T),k),Object.defineProperty(T,"$state",{get:()=>n.state.value[e],set:R=>{P(H=>{Jt(H,R)})}}),n._p.forEach(R=>{Jt(T,r.run(()=>R({store:T,app:n._a,pinia:n,options:i})))}),$&&l&&s.hydrate&&s.hydrate(T.$state,$),u=!0,d=!0,T}function uo(e,t,s){let n;const o=typeof t=="function";n=o?s:t;function l(r,i){const c=nd();return r=r||(c?rt(Mi,null):null),r&&co(r),r=Ui,r._s.has(e)||(o?ji(e,t,n,r):yf(e,n,r)),r._s.get(e)}return l.$id=e,l}const Cs=typeof document<"u";function Wi(e){return typeof e=="object"||"displayName"in e||"props"in e||"__vccOpts"in e}function _f(e){return e.__esModule||e[Symbol.toStringTag]==="Module"||e.default&&Wi(e.default)}const $e=Object.assign;function Po(e,t){const s={};for(const n in t){const o=t[n];s[n]=$t(o)?o.map(e):e(o)}return s}const ln=()=>{},$t=Array.isArray;function Pr(e,t){const s={};for(const n in e)s[n]=n in t?t[n]:e[n];return s}const Hi=/#/g,wf=/&/g,xf=/\//g,kf=/=/g,Sf=/\?/g,Bi=/\+/g,$f=/%5B/g,Ef=/%5D/g,Gi=/%5E/g,Cf=/%60/g,Ki=/%7B/g,Lf=/%7C/g,qi=/%7D/g,Tf=/%20/g;function Dl(e){return e==null?"":encodeURI(""+e).replace(Lf,"|").replace($f,"[").replace(Ef,"]")}function If(e){return Dl(e).replace(Ki,"{").replace(qi,"}").replace(Gi,"^")}function Xo(e){return Dl(e).replace(Bi,"%2B").replace(Tf,"+").replace(Hi,"%23").replace(wf,"%26").replace(Cf,"`").replace(Ki,"{").replace(qi,"}").replace(Gi,"^")}function Pf(e){return Xo(e).replace(kf,"%3D")}function Df(e){return Dl(e).replace(Hi,"%23").replace(Sf,"%3F")}function Af(e){return Df(e).replace(xf,"%2F")}function mn(e){if(e==null)return null;try{return decodeURIComponent(""+e)}catch{}return""+e}const Nf=/\/$/,Rf=e=>e.replace(Nf,"");function Do(e,t,s="/"){let n,o={},l="",r="";const i=t.indexOf("#");let c=t.indexOf("?");return c=i>=0&&c>i?-1:c,c>=0&&(n=t.slice(0,c),l=t.slice(c,i>0?i:t.length),o=e(l.slice(1))),i>=0&&(n=n||t.slice(0,i),r=t.slice(i,t.length)),n=Mf(n??t,s),{fullPath:n+l+r,path:n,query:o,hash:mn(r)}}function Ff(e,t){const s=t.query?e(t.query):"";return t.path+(s&&"?")+s+(t.hash||"")}function Dr(e,t){return!t||!e.toLowerCase().startsWith(t.toLowerCase())?e:e.slice(t.length)||"/"}function Of(e,t,s){const n=t.matched.length-1,o=s.matched.length-1;return n>-1&&n===o&&Us(t.matched[n],s.matched[o])&&zi(t.params,s.params)&&e(t.query)===e(s.query)&&t.hash===s.hash}function Us(e,t){return(e.aliasOf||e)===(t.aliasOf||t)}function zi(e,t){if(Object.keys(e).length!==Object.keys(t).length)return!1;for(const s in e)if(!Uf(e[s],t[s]))return!1;return!0}function Uf(e,t){return $t(e)?Ar(e,t):$t(t)?Ar(t,e):e===t}function Ar(e,t){return $t(t)?e.length===t.length&&e.every((s,n)=>s===t[n]):e.length===1&&e[0]===t}function Mf(e,t){if(e.startsWith("/"))return e;if(!e)return t;const s=t.split("/"),n=e.split("/"),o=n[n.length-1];(o===".."||o===".")&&n.push("");let l=s.length-1,r,i;for(r=0;r<n.length;r++)if(i=n[r],i!==".")if(i==="..")l>1&&l--;else break;return s.slice(0,l).join("/")+"/"+n.slice(r).join("/")}const Qt={path:"/",name:void 0,params:{},query:{},hash:"",fullPath:"/",matched:[],meta:{},redirectedFrom:void 0};let Qo=(function(e){return e.pop="pop",e.push="push",e})({}),Ao=(function(e){return e.back="back",e.forward="forward",e.unknown="",e})({});function Vf(e){if(!e)if(Cs){const t=document.querySelector("base");e=t&&t.getAttribute("href")||"/",e=e.replace(/^\w+:\/\/[^\/]+/,"")}else e="/";return e[0]!=="/"&&e[0]!=="#"&&(e="/"+e),Rf(e)}const jf=/^[^#]+#/;function Wf(e,t){return e.replace(jf,"#")+t}function Hf(e,t){const s=document.documentElement.getBoundingClientRect(),n=e.getBoundingClientRect();return{behavior:t.behavior,left:n.left-s.left-(t.left||0),top:n.top-s.top-(t.top||0)}}const fo=()=>({left:window.scrollX,top:window.scrollY});function Bf(e){let t;if("el"in e){const s=e.el,n=typeof s=="string"&&s.startsWith("#"),o=typeof s=="string"?n?document.getElementById(s.slice(1)):document.querySelector(s):s;if(!o)return;t=Hf(o,e)}else t=e;"scrollBehavior"in document.documentElement.style?window.scrollTo(t):window.scrollTo(t.left!=null?t.left:window.scrollX,t.top!=null?t.top:window.scrollY)}function Nr(e,t){return(history.state?history.state.position-t:-1)+e}const Jo=new Map;function Gf(e,t){Jo.set(e,t)}function Kf(e){const t=Jo.get(e);return Jo.delete(e),t}function qf(e){return typeof e=="string"||e&&typeof e=="object"}function Yi(e){return typeof e=="string"||typeof e=="symbol"}let Ue=(function(e){return e[e.MATCHER_NOT_FOUND=1]="MATCHER_NOT_FOUND",e[e.NAVIGATION_GUARD_REDIRECT=2]="NAVIGATION_GUARD_REDIRECT",e[e.NAVIGATION_ABORTED=4]="NAVIGATION_ABORTED",e[e.NAVIGATION_CANCELLED=8]="NAVIGATION_CANCELLED",e[e.NAVIGATION_DUPLICATED=16]="NAVIGATION_DUPLICATED",e})({});const Xi=Symbol("");Ue.MATCHER_NOT_FOUND+"",Ue.NAVIGATION_GUARD_REDIRECT+"",Ue.NAVIGATION_ABORTED+"",Ue.NAVIGATION_CANCELLED+"",Ue.NAVIGATION_DUPLICATED+"";function Ms(e,t){return $e(new Error,{type:e,[Xi]:!0},t)}function Ot(e,t){return e instanceof Error&&Xi in e&&(t==null||!!(e.type&t))}const zf=["params","query","hash"];function Yf(e){if(typeof e=="string")return e;if(e.path!=null)return e.path;const t={};for(const s of zf)s in e&&(t[s]=e[s]);return JSON.stringify(t,null,2)}function Xf(e){const t={};if(e===""||e==="?")return t;const s=(e[0]==="?"?e.slice(1):e).split("&");for(let n=0;n<s.length;++n){const o=s[n].replace(Bi," "),l=o.indexOf("="),r=mn(l<0?o:o.slice(0,l)),i=l<0?null:mn(o.slice(l+1));if(r in t){let c=t[r];$t(c)||(c=t[r]=[c]),c.push(i)}else t[r]=i}return t}function Rr(e){let t="";for(let s in e){const n=e[s];if(s=Pf(s),n==null){n!==void 0&&(t+=(t.length?"&":"")+s);continue}($t(n)?n.map(o=>o&&Xo(o)):[n&&Xo(n)]).forEach(o=>{o!==void 0&&(t+=(t.length?"&":"")+s,o!=null&&(t+="="+o))})}return t}function Qf(e){const t={};for(const s in e){const n=e[s];n!==void 0&&(t[s]=$t(n)?n.map(o=>o==null?null:""+o):n==null?n:""+n)}return t}const Jf=Symbol(""),Fr=Symbol(""),po=Symbol(""),Al=Symbol(""),Zo=Symbol("");function qs(){let e=[];function t(n){return e.push(n),()=>{const o=e.indexOf(n);o>-1&&e.splice(o,1)}}function s(){e=[]}return{add:t,list:()=>e.slice(),reset:s}}function ts(e,t,s,n,o,l=r=>r()){const r=n&&(n.enterCallbacks[o]=n.enterCallbacks[o]||[]);return()=>new Promise((i,c)=>{const u=g=>{g===!1?c(Ms(Ue.NAVIGATION_ABORTED,{from:s,to:t})):g instanceof Error?c(g):qf(g)?c(Ms(Ue.NAVIGATION_GUARD_REDIRECT,{from:t,to:g})):(r&&n.enterCallbacks[o]===r&&typeof g=="function"&&r.push(g),i())},d=l(()=>e.call(n&&n.instances[o],t,s,u));let f=Promise.resolve(d);e.length<3&&(f=f.then(u)),f.catch(g=>c(g))})}function No(e,t,s,n,o=l=>l()){const l=[];for(const r of e)for(const i in r.components){let c=r.components[i];if(!(t!=="beforeRouteEnter"&&!r.instances[i]))if(Wi(c)){const u=(c.__vccOpts||c)[t];u&&l.push(ts(u,s,n,r,i,o))}else{let u=c();l.push(()=>u.then(d=>{if(!d)throw new Error(`Couldn't resolve component "${i}" at "${r.path}"`);const f=_f(d)?d.default:d;r.mods[i]=d,r.components[i]=f;const g=(f.__vccOpts||f)[t];return g&&ts(g,s,n,r,i,o)()}))}}return l}function Zf(e,t){const s=[],n=[],o=[],l=Math.max(t.matched.length,e.matched.length);for(let r=0;r<l;r++){const i=t.matched[r];i&&(e.matched.find(u=>Us(u,i))?n.push(i):s.push(i));const c=e.matched[r];c&&(t.matched.find(u=>Us(u,c))||o.push(c))}return[s,n,o]}let ep=()=>location.protocol+"//"+location.host;function Qi(e,t){const{pathname:s,search:n,hash:o}=t,l=e.indexOf("#");if(l>-1){let r=o.includes(e.slice(l))?e.slice(l).length:1,i=o.slice(r);return i[0]!=="/"&&(i="/"+i),Dr(i,"")}return Dr(s,e)+n+o}function tp(e,t,s,n){let o=[],l=[],r=null;const i=({state:g})=>{const v=Qi(e,location),$=s.value,x=t.value;let P=0;if(g){if(s.value=v,t.value=g,r&&r===$){r=null;return}P=x?g.position-x.position:0}else n(v);o.forEach(_=>{_(s.value,$,{delta:P,type:Qo.pop,direction:P?P>0?Ao.forward:Ao.back:Ao.unknown})})};function c(){r=s.value}function u(g){o.push(g);const v=()=>{const $=o.indexOf(g);$>-1&&o.splice($,1)};return l.push(v),v}function d(){if(document.visibilityState==="hidden"){const{history:g}=window;if(!g.state)return;g.replaceState($e({},g.state,{scroll:fo()}),"")}}function f(){for(const g of l)g();l=[],window.removeEventListener("popstate",i),window.removeEventListener("pagehide",d),document.removeEventListener("visibilitychange",d)}return window.addEventListener("popstate",i),window.addEventListener("pagehide",d),document.addEventListener("visibilitychange",d),{pauseListeners:c,listen:u,destroy:f}}function Or(e,t,s,n=!1,o=!1){return{back:e,current:t,forward:s,replaced:n,position:window.history.length,scroll:o?fo():null}}function sp(e){const{history:t,location:s}=window,n={value:Qi(e,s)},o={value:t.state};o.value||l(n.value,{back:null,current:n.value,forward:null,position:t.length-1,replaced:!0,scroll:null},!0);function l(c,u,d){const f=e.indexOf("#"),g=f>-1?(s.host&&document.querySelector("base")?e:e.slice(f))+c:ep()+e+c;try{t[d?"replaceState":"pushState"](u,"",g),o.value=u}catch(v){console.error(v),s[d?"replace":"assign"](g)}}function r(c,u){l(c,$e({},t.state,Or(o.value.back,c,o.value.forward,!0),u,{position:o.value.position}),!0),n.value=c}function i(c,u){const d=$e({},o.value,t.state,{forward:c,scroll:fo()});l(d.current,d,!0),l(c,$e({},Or(n.value,c,null),{position:d.position+1},u),!1),n.value=c}return{location:n,state:o,push:i,replace:r}}function np(e){e=Vf(e);const t=sp(e),s=tp(e,t.state,t.location,t.replace);function n(l,r=!0){r||s.pauseListeners(),history.go(l)}const o=$e({location:"",base:e,go:n,createHref:Wf.bind(null,e)},t,s);return Object.defineProperty(o,"location",{enumerable:!0,get:()=>t.location.value}),Object.defineProperty(o,"state",{enumerable:!0,get:()=>t.state.value}),o}let vs=(function(e){return e[e.Static=0]="Static",e[e.Param=1]="Param",e[e.Group=2]="Group",e})({});var ze=(function(e){return e[e.Static=0]="Static",e[e.Param=1]="Param",e[e.ParamRegExp=2]="ParamRegExp",e[e.ParamRegExpEnd=3]="ParamRegExpEnd",e[e.EscapeNext=4]="EscapeNext",e})(ze||{});const op={type:vs.Static,value:""},lp=/[a-zA-Z0-9_]/;function rp(e){if(!e)return[[]];if(e==="/")return[[op]];if(!e.startsWith("/"))throw new Error(`Invalid path "${e}"`);function t(v){throw new Error(`ERR (${s})/"${u}": ${v}`)}let s=ze.Static,n=s;const o=[];let l;function r(){l&&o.push(l),l=[]}let i=0,c,u="",d="";function f(){u&&(s===ze.Static?l.push({type:vs.Static,value:u}):s===ze.Param||s===ze.ParamRegExp||s===ze.ParamRegExpEnd?(l.length>1&&(c==="*"||c==="+")&&t(`A repeatable param (${u}) must be alone in its segment. eg: '/:ids+.`),l.push({type:vs.Param,value:u,regexp:d,repeatable:c==="*"||c==="+",optional:c==="*"||c==="?"})):t("Invalid state to consume buffer"),u="")}function g(){u+=c}for(;i<e.length;){if(c=e[i++],c==="\\"&&s!==ze.ParamRegExp){n=s,s=ze.EscapeNext;continue}switch(s){case ze.Static:c==="/"?(u&&f(),r()):c===":"?(f(),s=ze.Param):g();break;case ze.EscapeNext:g(),s=n;break;case ze.Param:c==="("?s=ze.ParamRegExp:lp.test(c)?g():(f(),s=ze.Static,c!=="*"&&c!=="?"&&c!=="+"&&i--);break;case ze.ParamRegExp:c===")"?d[d.length-1]=="\\"?d=d.slice(0,-1)+c:s=ze.ParamRegExpEnd:d+=c;break;case ze.ParamRegExpEnd:f(),s=ze.Static,c!=="*"&&c!=="?"&&c!=="+"&&i--,d="";break;default:t("Unknown state");break}}return s===ze.ParamRegExp&&t(`Unfinished custom RegExp for param "${u}"`),f(),r(),o}const Ur="[^/]+?",ap={sensitive:!1,strict:!1,start:!0,end:!0};var ct=(function(e){return e[e._multiplier=10]="_multiplier",e[e.Root=90]="Root",e[e.Segment=40]="Segment",e[e.SubSegment=30]="SubSegment",e[e.Static=40]="Static",e[e.Dynamic=20]="Dynamic",e[e.BonusCustomRegExp=10]="BonusCustomRegExp",e[e.BonusWildcard=-50]="BonusWildcard",e[e.BonusRepeatable=-20]="BonusRepeatable",e[e.BonusOptional=-8]="BonusOptional",e[e.BonusStrict=.7000000000000001]="BonusStrict",e[e.BonusCaseSensitive=.25]="BonusCaseSensitive",e})(ct||{});const ip=/[.+*?^${}()[\]/\\]/g;function cp(e,t){const s=$e({},ap,t),n=[];let o=s.start?"^":"";const l=[];for(const u of e){const d=u.length?[]:[ct.Root];s.strict&&!u.length&&(o+="/");for(let f=0;f<u.length;f++){const g=u[f];let v=ct.Segment+(s.sensitive?ct.BonusCaseSensitive:0);if(g.type===vs.Static)f||(o+="/"),o+=g.value.replace(ip,"\\$&"),v+=ct.Static;else if(g.type===vs.Param){const{value:$,repeatable:x,optional:P,regexp:_}=g;l.push({name:$,repeatable:x,optional:P});const S=_||Ur;if(S!==Ur){v+=ct.BonusCustomRegExp;try{`${S}`}catch(w){throw new Error(`Invalid custom RegExp for param "${$}" (${S}): `+w.message)}}let I=x?`((?:${S})(?:/(?:${S}))*)`:`(${S})`;f||(I=P&&u.length<2?`(?:/${I})`:"/"+I),P&&(I+="?"),o+=I,v+=ct.Dynamic,P&&(v+=ct.BonusOptional),x&&(v+=ct.BonusRepeatable),S===".*"&&(v+=ct.BonusWildcard)}d.push(v)}n.push(d)}if(s.strict&&s.end){const u=n.length-1;n[u][n[u].length-1]+=ct.BonusStrict}s.strict||(o+="/?"),s.end?o+="$":s.strict&&!o.endsWith("/")&&(o+="(?:/|$)");const r=new RegExp(o,s.sensitive?"":"i");function i(u){const d=u.match(r),f={};if(!d)return null;for(let g=1;g<d.length;g++){const v=d[g]||"",$=l[g-1];f[$.name]=v&&$.repeatable?v.split("/"):v}return f}function c(u){let d="",f=!1;for(const g of e){(!f||!d.endsWith("/"))&&(d+="/"),f=!1;for(const v of g)if(v.type===vs.Static)d+=v.value;else if(v.type===vs.Param){const{value:$,repeatable:x,optional:P}=v,_=$ in u?u[$]:"";if($t(_)&&!x)throw new Error(`Provided param "${$}" is an array but it is not repeatable (* or + modifiers)`);const S=$t(_)?_.join("/"):_;if(!S)if(P)g.length<2&&(d.endsWith("/")?d=d.slice(0,-1):f=!0);else throw new Error(`Missing required param "${$}"`);d+=S}}return d||"/"}return{re:r,score:n,keys:l,parse:i,stringify:c}}function up(e,t){let s=0;for(;s<e.length&&s<t.length;){const n=t[s]-e[s];if(n)return n;s++}return e.length<t.length?e.length===1&&e[0]===ct.Static+ct.Segment?-1:1:e.length>t.length?t.length===1&&t[0]===ct.Static+ct.Segment?1:-1:0}function Ji(e,t){let s=0;const n=e.score,o=t.score;for(;s<n.length&&s<o.length;){const l=up(n[s],o[s]);if(l)return l;s++}if(Math.abs(o.length-n.length)===1){if(Mr(n))return 1;if(Mr(o))return-1}return o.length-n.length}function Mr(e){const t=e[e.length-1];return e.length>0&&t[t.length-1]<0}const dp={strict:!1,end:!0,sensitive:!1};function fp(e,t,s){const n=cp(rp(e.path),s),o=$e(n,{record:e,parent:t,children:[],alias:[]});return t&&!o.record.aliasOf==!t.record.aliasOf&&t.children.push(o),o}function pp(e,t){const s=[],n=new Map;t=Pr(dp,t);function o(f){return n.get(f)}function l(f,g,v){const $=!v,x=jr(f);x.aliasOf=v&&v.record;const P=Pr(t,f),_=[x];if("alias"in f){const w=typeof f.alias=="string"?[f.alias]:f.alias;for(const T of w)_.push(jr($e({},x,{components:v?v.record.components:x.components,path:T,aliasOf:v?v.record:x})))}let S,I;for(const w of _){const{path:T}=w;if(g&&T[0]!=="/"){const A=g.record.path,k=A[A.length-1]==="/"?"":"/";w.path=g.record.path+(T&&k+T)}if(S=fp(w,g,P),v?v.alias.push(S):(I=I||S,I!==S&&I.alias.push(S),$&&f.name&&!Wr(S)&&r(f.name)),Zi(S)&&c(S),x.children){const A=x.children;for(let k=0;k<A.length;k++)l(A[k],S,v&&v.children[k])}v=v||S}return I?()=>{r(I)}:ln}function r(f){if(Yi(f)){const g=n.get(f);g&&(n.delete(f),s.splice(s.indexOf(g),1),g.children.forEach(r),g.alias.forEach(r))}else{const g=s.indexOf(f);g>-1&&(s.splice(g,1),f.record.name&&n.delete(f.record.name),f.children.forEach(r),f.alias.forEach(r))}}function i(){return s}function c(f){const g=gp(f,s);s.splice(g,0,f),f.record.name&&!Wr(f)&&n.set(f.record.name,f)}function u(f,g){let v,$={},x,P;if("name"in f&&f.name){if(v=n.get(f.name),!v)throw Ms(Ue.MATCHER_NOT_FOUND,{location:f});P=v.record.name,$=$e(Vr(g.params,v.keys.filter(I=>!I.optional).concat(v.parent?v.parent.keys.filter(I=>I.optional):[]).map(I=>I.name)),f.params&&Vr(f.params,v.keys.map(I=>I.name))),x=v.stringify($)}else if(f.path!=null)x=f.path,v=s.find(I=>I.re.test(x)),v&&($=v.parse(x),P=v.record.name);else{if(v=g.name?n.get(g.name):s.find(I=>I.re.test(g.path)),!v)throw Ms(Ue.MATCHER_NOT_FOUND,{location:f,currentLocation:g});P=v.record.name,$=$e({},g.params,f.params),x=v.stringify($)}const _=[];let S=v;for(;S;)_.unshift(S.record),S=S.parent;return{name:P,path:x,params:$,matched:_,meta:hp(_)}}e.forEach(f=>l(f));function d(){s.length=0,n.clear()}return{addRoute:l,resolve:u,removeRoute:r,clearRoutes:d,getRoutes:i,getRecordMatcher:o}}function Vr(e,t){const s={};for(const n of t)n in e&&(s[n]=e[n]);return s}function jr(e){const t={path:e.path,redirect:e.redirect,name:e.name,meta:e.meta||{},aliasOf:e.aliasOf,beforeEnter:e.beforeEnter,props:mp(e),children:e.children||[],instances:{},leaveGuards:new Set,updateGuards:new Set,enterCallbacks:{},components:"components"in e?e.components||null:e.component&&{default:e.component}};return Object.defineProperty(t,"mods",{value:{}}),t}function mp(e){const t={},s=e.props||!1;if("component"in e)t.default=s;else for(const n in e.components)t[n]=typeof s=="object"?s[n]:s;return t}function Wr(e){for(;e;){if(e.record.aliasOf)return!0;e=e.parent}return!1}function hp(e){return e.reduce((t,s)=>$e(t,s.meta),{})}function gp(e,t){let s=0,n=t.length;for(;s!==n;){const l=s+n>>1;Ji(e,t[l])<0?n=l:s=l+1}const o=bp(e);return o&&(n=t.lastIndexOf(o,n-1)),n}function bp(e){let t=e;for(;t=t.parent;)if(Zi(t)&&Ji(e,t)===0)return t}function Zi({record:e}){return!!(e.name||e.components&&Object.keys(e.components).length||e.redirect)}function Hr(e){const t=rt(po),s=rt(Al),n=fe(()=>{const c=ye(e.to);return t.resolve(c)}),o=fe(()=>{const{matched:c}=n.value,{length:u}=c,d=c[u-1],f=s.matched;if(!d||!f.length)return-1;const g=f.findIndex(Us.bind(null,d));if(g>-1)return g;const v=Br(c[u-2]);return u>1&&Br(d)===v&&f[f.length-1].path!==v?f.findIndex(Us.bind(null,c[u-2])):g}),l=fe(()=>o.value>-1&&xp(s.params,n.value.params)),r=fe(()=>o.value>-1&&o.value===s.matched.length-1&&zi(s.params,n.value.params));function i(c={}){if(wp(c)){const u=t[ye(e.replace)?"replace":"push"](ye(e.to)).catch(ln);return e.viewTransition&&typeof document<"u"&&"startViewTransition"in document&&document.startViewTransition(()=>u),u}return Promise.resolve()}return{route:n,href:fe(()=>n.value.href),isActive:l,isExactActive:r,navigate:i}}function vp(e){return e.length===1?e[0]:e}const yp=Fe({name:"RouterLink",compatConfig:{MODE:3},props:{to:{type:[String,Object],required:!0},replace:Boolean,activeClass:String,exactActiveClass:String,custom:Boolean,ariaCurrentValue:{type:String,default:"page"},viewTransition:Boolean},useLink:Hr,setup(e,{slots:t}){const s=wn(Hr(e)),{options:n}=rt(po),o=fe(()=>({[Gr(e.activeClass,n.linkActiveClass,"router-link-active")]:s.isActive,[Gr(e.exactActiveClass,n.linkExactActiveClass,"router-link-exact-active")]:s.isExactActive}));return()=>{const l=t.default&&vp(t.default(s));return e.custom?l:io("a",{"aria-current":s.isExactActive?e.ariaCurrentValue:null,href:s.href,onClick:s.navigate,class:o.value},l)}}}),_p=yp;function wp(e){if(!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)&&!e.defaultPrevented&&!(e.button!==void 0&&e.button!==0)){if(e.currentTarget&&e.currentTarget.getAttribute){const t=e.currentTarget.getAttribute("target");if(/\b_blank\b/i.test(t))return}return e.preventDefault&&e.preventDefault(),!0}}function xp(e,t){for(const s in t){const n=t[s],o=e[s];if(typeof n=="string"){if(n!==o)return!1}else if(!$t(o)||o.length!==n.length||n.some((l,r)=>l!==o[r]))return!1}return!0}function Br(e){return e?e.aliasOf?e.aliasOf.path:e.path:""}const Gr=(e,t,s)=>e??t??s,kp=Fe({name:"RouterView",inheritAttrs:!1,props:{name:{type:String,default:"default"},route:Object},compatConfig:{MODE:3},setup(e,{attrs:t,slots:s}){const n=rt(Zo),o=fe(()=>e.route||n.value),l=rt(Fr,0),r=fe(()=>{let u=ye(l);const{matched:d}=o.value;let f;for(;(f=d[u])&&!f.components;)u++;return u}),i=fe(()=>o.value.matched[r.value]);sn(Fr,fe(()=>r.value+1)),sn(Jf,i),sn(Zo,o);const c=G();return He(()=>[c.value,i.value,e.name],([u,d,f],[g,v,$])=>{d&&(d.instances[f]=u,v&&v!==d&&u&&u===g&&(d.leaveGuards.size||(d.leaveGuards=v.leaveGuards),d.updateGuards.size||(d.updateGuards=v.updateGuards))),u&&d&&(!v||!Us(d,v)||!g)&&(d.enterCallbacks[f]||[]).forEach(x=>x(u))},{flush:"post"}),()=>{const u=o.value,d=e.name,f=i.value,g=f&&f.components[d];if(!g)return Kr(s.default,{Component:g,route:u});const v=f.props[d],$=v?v===!0?u.params:typeof v=="function"?v(u):v:null,P=io(g,$e({},$,t,{onVnodeUnmounted:_=>{_.component.isUnmounted&&(f.instances[d]=null)},ref:c}));return Kr(s.default,{Component:P,route:u})||P}}});function Kr(e,t){if(!e)return null;const s=e(t);return s.length===1?s[0]:s}const Sp=kp;function $p(e){const t=pp(e.routes,e),s=e.parseQuery||Xf,n=e.stringifyQuery||Rr,o=e.history,l=qs(),r=qs(),i=qs(),c=si(Qt);let u=Qt;Cs&&e.scrollBehavior&&"scrollRestoration"in history&&(history.scrollRestoration="manual");const d=Po.bind(null,U=>""+U),f=Po.bind(null,Af),g=Po.bind(null,mn);function v(U,Y){let z,ee;return Yi(U)?(z=t.getRecordMatcher(U),ee=Y):ee=U,t.addRoute(ee,z)}function $(U){const Y=t.getRecordMatcher(U);Y&&t.removeRoute(Y)}function x(){return t.getRoutes().map(U=>U.record)}function P(U){return!!t.getRecordMatcher(U)}function _(U,Y){if(Y=$e({},Y||c.value),typeof U=="string"){const E=Do(s,U,Y.path),O=t.resolve({path:E.path},Y),V=o.createHref(E.fullPath);return $e(E,O,{params:g(O.params),hash:mn(E.hash),redirectedFrom:void 0,href:V})}let z;if(U.path!=null)z=$e({},U,{path:Do(s,U.path,Y.path).path});else{const E=$e({},U.params);for(const O in E)E[O]==null&&delete E[O];z=$e({},U,{params:f(E)}),Y.params=f(Y.params)}const ee=t.resolve(z,Y),F=U.hash||"";ee.params=d(g(ee.params));const p=Ff(n,$e({},U,{hash:If(F),path:ee.path})),h=o.createHref(p);return $e({fullPath:p,hash:F,query:n===Rr?Qf(U.query):U.query||{}},ee,{redirectedFrom:void 0,href:h})}function S(U){return typeof U=="string"?Do(s,U,c.value.path):$e({},U)}function I(U,Y){if(u!==U)return Ms(Ue.NAVIGATION_CANCELLED,{from:Y,to:U})}function w(U){return k(U)}function T(U){return w($e(S(U),{replace:!0}))}function A(U,Y){const z=U.matched[U.matched.length-1];if(z&&z.redirect){const{redirect:ee}=z;let F=typeof ee=="function"?ee(U,Y):ee;return typeof F=="string"&&(F=F.includes("?")||F.includes("#")?F=S(F):{path:F},F.params={}),$e({query:U.query,hash:U.hash,params:F.path!=null?{}:U.params},F)}}function k(U,Y){const z=u=_(U),ee=c.value,F=U.state,p=U.force,h=U.replace===!0,E=A(z,ee);if(E)return k($e(S(E),{state:typeof E=="object"?$e({},F,E.state):F,force:p,replace:h}),Y||z);const O=z;O.redirectedFrom=Y;let V;return!p&&Of(n,ee,z)&&(V=Ms(Ue.NAVIGATION_DUPLICATED,{to:O,from:ee}),Ke(ee,ee,!0,!1)),(V?Promise.resolve(V):ne(O,ee)).catch(M=>Ot(M)?Ot(M,Ue.NAVIGATION_GUARD_REDIRECT)?M:Je(M):ue(M,O,ee)).then(M=>{if(M){if(Ot(M,Ue.NAVIGATION_GUARD_REDIRECT))return k($e({replace:h},S(M.to),{state:typeof M.to=="object"?$e({},F,M.to.state):F,force:p}),Y||O)}else M=j(O,ee,!0,h,F);return J(O,ee,M),M})}function R(U,Y){const z=I(U,Y);return z?Promise.reject(z):Promise.resolve()}function H(U){const Y=re.values().next().value;return Y&&typeof Y.runWithContext=="function"?Y.runWithContext(U):U()}function ne(U,Y){let z;const[ee,F,p]=Zf(U,Y);z=No(ee.reverse(),"beforeRouteLeave",U,Y);for(const E of ee)E.leaveGuards.forEach(O=>{z.push(ts(O,U,Y))});const h=R.bind(null,U,Y);return z.push(h),Se(z).then(()=>{z=[];for(const E of l.list())z.push(ts(E,U,Y));return z.push(h),Se(z)}).then(()=>{z=No(F,"beforeRouteUpdate",U,Y);for(const E of F)E.updateGuards.forEach(O=>{z.push(ts(O,U,Y))});return z.push(h),Se(z)}).then(()=>{z=[];for(const E of p)if(E.beforeEnter)if($t(E.beforeEnter))for(const O of E.beforeEnter)z.push(ts(O,U,Y));else z.push(ts(E.beforeEnter,U,Y));return z.push(h),Se(z)}).then(()=>(U.matched.forEach(E=>E.enterCallbacks={}),z=No(p,"beforeRouteEnter",U,Y,H),z.push(h),Se(z))).then(()=>{z=[];for(const E of r.list())z.push(ts(E,U,Y));return z.push(h),Se(z)}).catch(E=>Ot(E,Ue.NAVIGATION_CANCELLED)?E:Promise.reject(E))}function J(U,Y,z){i.list().forEach(ee=>H(()=>ee(U,Y,z)))}function j(U,Y,z,ee,F){const p=I(U,Y);if(p)return p;const h=Y===Qt,E=Cs?history.state:{};z&&(ee||h?o.replace(U.fullPath,$e({scroll:h&&E&&E.scroll},F)):o.push(U.fullPath,F)),c.value=U,Ke(U,Y,z,h),Je()}let X;function le(){X||(X=o.listen((U,Y,z)=>{if(!he.listening)return;const ee=_(U),F=A(ee,he.currentRoute.value);if(F){k($e(F,{replace:!0,force:!0}),ee).catch(ln);return}u=ee;const p=c.value;Cs&&Gf(Nr(p.fullPath,z.delta),fo()),ne(ee,p).catch(h=>Ot(h,Ue.NAVIGATION_ABORTED|Ue.NAVIGATION_CANCELLED)?h:Ot(h,Ue.NAVIGATION_GUARD_REDIRECT)?(k($e(S(h.to),{force:!0}),ee).then(E=>{Ot(E,Ue.NAVIGATION_ABORTED|Ue.NAVIGATION_DUPLICATED)&&!z.delta&&z.type===Qo.pop&&o.go(-1,!1)}).catch(ln),Promise.reject()):(z.delta&&o.go(-z.delta,!1),ue(h,ee,p))).then(h=>{h=h||j(ee,p,!1),h&&(z.delta&&!Ot(h,Ue.NAVIGATION_CANCELLED)?o.go(-z.delta,!1):z.type===Qo.pop&&Ot(h,Ue.NAVIGATION_ABORTED|Ue.NAVIGATION_DUPLICATED)&&o.go(-1,!1)),J(ee,p,h)}).catch(ln)}))}let ve=qs(),ce=qs(),oe;function ue(U,Y,z){Je(U);const ee=ce.list();return ee.length?ee.forEach(F=>F(U,Y,z)):console.error(U),Promise.reject(U)}function Ae(){return oe&&c.value!==Qt?Promise.resolve():new Promise((U,Y)=>{ve.add([U,Y])})}function Je(U){return oe||(oe=!U,le(),ve.list().forEach(([Y,z])=>U?z(U):Y()),ve.reset()),U}function Ke(U,Y,z,ee){const{scrollBehavior:F}=e;if(!Cs||!F)return Promise.resolve();const p=!z&&Kf(Nr(U.fullPath,0))||(ee||!z)&&history.state&&history.state.scroll||null;return is().then(()=>F(U,Y,p)).then(h=>h&&Bf(h)).catch(h=>ue(h,U,Y))}const Oe=U=>o.go(U);let B;const re=new Set,he={currentRoute:c,listening:!0,addRoute:v,removeRoute:$,clearRoutes:t.clearRoutes,hasRoute:P,getRoutes:x,resolve:_,options:e,push:w,replace:T,go:Oe,back:()=>Oe(-1),forward:()=>Oe(1),beforeEach:l.add,beforeResolve:r.add,afterEach:i.add,onError:ce.add,isReady:Ae,install(U){U.component("RouterLink",_p),U.component("RouterView",Sp),U.config.globalProperties.$router=he,Object.defineProperty(U.config.globalProperties,"$route",{enumerable:!0,get:()=>ye(c)}),Cs&&!B&&c.value===Qt&&(B=!0,w(o.location).catch(ee=>{}));const Y={};for(const ee in Qt)Object.defineProperty(Y,ee,{get:()=>c.value[ee],enumerable:!0});U.provide(po,he),U.provide(Al,ti(Y)),U.provide(Zo,c);const z=U.unmount;re.add(U),U.unmount=function(){re.delete(U),re.size<1&&(u=Qt,X&&X(),X=null,c.value=Qt,B=!1,oe=!1),z()}}};function Se(U){return U.reduce((Y,z)=>Y.then(()=>H(z)),Promise.resolve())}return he}function ec(){return rt(po)}function tc(e){return rt(Al)}function Ep(e,t){typeof console<"u"&&(console.warn("[intlify] "+e),t&&console.warn(t.stack))}const qn=typeof window<"u",cs=(e,t=!1)=>t?Symbol.for(e):Symbol(e),Cp=(e,t,s)=>Lp({l:e,k:t,s}),Lp=e=>JSON.stringify(e).replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029").replace(/\u0027/g,"\\u0027"),We=e=>typeof e=="number"&&isFinite(e),Tp=e=>Nl(e)==="[object Date]",Vs=e=>Nl(e)==="[object RegExp]",mo=e=>be(e)&&Object.keys(e).length===0,Ye=Object.assign,Ip=Object.create,Le=(e=null)=>Ip(e);let qr;const ys=()=>qr||(qr=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:Le());function zr(e){return e.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'").replace(/\//g,"/").replace(/=/g,"=")}function Yr(e){return e.replace(/&(?![a-zA-Z0-9#]{2,6};)/g,"&").replace(/"/g,""").replace(/'/g,"'").replace(/</g,"<").replace(/>/g,">")}function Pp(e){return e=e.replace(/(\w+)\s*=\s*"([^"]*)"/g,(n,o,l)=>`${o}="${Yr(l)}"`),e=e.replace(/(\w+)\s*=\s*'([^']*)'/g,(n,o,l)=>`${o}='${Yr(l)}'`),/\s*on\w+\s*=\s*["']?[^"'>]+["']?/gi.test(e)&&(e=e.replace(/(\s+)(on)(\w+\s*=)/gi,"$1on$3")),[/(\s+(?:href|src|action|formaction)\s*=\s*["']?)\s*javascript:/gi,/(style\s*=\s*["'][^"']*url\s*\(\s*)javascript:/gi].forEach(n=>{e=e.replace(n,"$1javascript:")}),e}const Dp=Object.prototype.hasOwnProperty;function xt(e,t){return Dp.call(e,t)}const Me=Array.isArray,Re=e=>typeof e=="function",Z=e=>typeof e=="string",we=e=>typeof e=="boolean",ke=e=>e!==null&&typeof e=="object",Ap=e=>ke(e)&&Re(e.then)&&Re(e.catch),sc=Object.prototype.toString,Nl=e=>sc.call(e),be=e=>Nl(e)==="[object Object]",Np=e=>e==null?"":Me(e)||be(e)&&e.toString===sc?JSON.stringify(e,null,2):String(e);function Rl(e,t=""){return e.reduce((s,n,o)=>o===0?s+n:s+t+n,"")}const In=e=>!ke(e)||Me(e);function On(e,t){if(In(e)||In(t))throw new Error("Invalid value");const s=[{src:e,des:t}];for(;s.length;){const{src:n,des:o}=s.pop();Object.keys(n).forEach(l=>{l!=="__proto__"&&(ke(n[l])&&!ke(o[l])&&(o[l]=Array.isArray(n[l])?[]:Le()),In(o[l])||In(n[l])?o[l]=n[l]:s.push({src:n[l],des:o[l]}))})}}function Rp(e,t,s){return{line:e,column:t,offset:s}}function el(e,t,s){return{start:e,end:t}}const Ee={EXPECTED_TOKEN:1,INVALID_TOKEN_IN_PLACEHOLDER:2,UNTERMINATED_SINGLE_QUOTE_IN_PLACEHOLDER:3,UNKNOWN_ESCAPE_SEQUENCE:4,INVALID_UNICODE_ESCAPE_SEQUENCE:5,UNBALANCED_CLOSING_BRACE:6,UNTERMINATED_CLOSING_BRACE:7,EMPTY_PLACEHOLDER:8,NOT_ALLOW_NEST_PLACEHOLDER:9,INVALID_LINKED_FORMAT:10,MUST_HAVE_MESSAGES_IN_PLURAL:11,UNEXPECTED_EMPTY_LINKED_MODIFIER:12,UNEXPECTED_EMPTY_LINKED_KEY:13,UNEXPECTED_LEXICAL_ANALYSIS:14},Fp=17;function ho(e,t,s={}){const{domain:n,messages:o,args:l}=s,r=e,i=new SyntaxError(String(r));return i.code=e,t&&(i.location=t),i.domain=n,i}function Op(e){throw e}const Lt=" ",Up="\r",tt=`
|
|
2
|
+
`,Mp="\u2028",Vp="\u2029";function jp(e){const t=e;let s=0,n=1,o=1,l=0;const r=k=>t[k]===Up&&t[k+1]===tt,i=k=>t[k]===tt,c=k=>t[k]===Vp,u=k=>t[k]===Mp,d=k=>r(k)||i(k)||c(k)||u(k),f=()=>s,g=()=>n,v=()=>o,$=()=>l,x=k=>r(k)||c(k)||u(k)?tt:t[k],P=()=>x(s),_=()=>x(s+l);function S(){return l=0,d(s)&&(n++,o=0),r(s)&&s++,s++,o++,t[s]}function I(){return r(s+l)&&l++,l++,t[s+l]}function w(){s=0,n=1,o=1,l=0}function T(k=0){l=k}function A(){const k=s+l;for(;k!==s;)S();l=0}return{index:f,line:g,column:v,peekOffset:$,charAt:x,currentChar:P,currentPeek:_,next:S,peek:I,reset:w,resetPeek:T,skipToPeek:A}}const Ut=void 0,Wp=".",Xr="'",Hp="tokenizer";function Bp(e,t={}){const s=t.location!==!1,n=jp(e),o=()=>n.index(),l=()=>Rp(n.line(),n.column(),n.index()),r=l(),i=o(),c={currentType:13,offset:i,startLoc:r,endLoc:r,lastType:13,lastOffset:i,lastStartLoc:r,lastEndLoc:r,braceNest:0,inLinked:!1,text:""},u=()=>c,{onError:d}=t;function f(b,y,C,...D){const Q=u();if(y.column+=C,y.offset+=C,d){const W=s?el(Q.startLoc,y):null,L=ho(b,W,{domain:Hp,args:D});d(L)}}function g(b,y,C){b.endLoc=l(),b.currentType=y;const D={type:y};return s&&(D.loc=el(b.startLoc,b.endLoc)),C!=null&&(D.value=C),D}const v=b=>g(b,13);function $(b,y){return b.currentChar()===y?(b.next(),y):(f(Ee.EXPECTED_TOKEN,l(),0,y),"")}function x(b){let y="";for(;b.currentPeek()===Lt||b.currentPeek()===tt;)y+=b.currentPeek(),b.peek();return y}function P(b){const y=x(b);return b.skipToPeek(),y}function _(b){if(b===Ut)return!1;const y=b.charCodeAt(0);return y>=97&&y<=122||y>=65&&y<=90||y===95}function S(b){if(b===Ut)return!1;const y=b.charCodeAt(0);return y>=48&&y<=57}function I(b,y){const{currentType:C}=y;if(C!==2)return!1;x(b);const D=_(b.currentPeek());return b.resetPeek(),D}function w(b,y){const{currentType:C}=y;if(C!==2)return!1;x(b);const D=b.currentPeek()==="-"?b.peek():b.currentPeek(),Q=S(D);return b.resetPeek(),Q}function T(b,y){const{currentType:C}=y;if(C!==2)return!1;x(b);const D=b.currentPeek()===Xr;return b.resetPeek(),D}function A(b,y){const{currentType:C}=y;if(C!==7)return!1;x(b);const D=b.currentPeek()===".";return b.resetPeek(),D}function k(b,y){const{currentType:C}=y;if(C!==8)return!1;x(b);const D=_(b.currentPeek());return b.resetPeek(),D}function R(b,y){const{currentType:C}=y;if(!(C===7||C===11))return!1;x(b);const D=b.currentPeek()===":";return b.resetPeek(),D}function H(b,y){const{currentType:C}=y;if(C!==9)return!1;const D=()=>{const W=b.currentPeek();return W==="{"?_(b.peek()):W==="@"||W==="|"||W===":"||W==="."||W===Lt||!W?!1:W===tt?(b.peek(),D()):J(b,!1)},Q=D();return b.resetPeek(),Q}function ne(b){x(b);const y=b.currentPeek()==="|";return b.resetPeek(),y}function J(b,y=!0){const C=(Q=!1,W="")=>{const L=b.currentPeek();return L==="{"||L==="@"||!L?Q:L==="|"?!(W===Lt||W===tt):L===Lt?(b.peek(),C(!0,Lt)):L===tt?(b.peek(),C(!0,tt)):!0},D=C();return y&&b.resetPeek(),D}function j(b,y){const C=b.currentChar();return C===Ut?Ut:y(C)?(b.next(),C):null}function X(b){const y=b.charCodeAt(0);return y>=97&&y<=122||y>=65&&y<=90||y>=48&&y<=57||y===95||y===36}function le(b){return j(b,X)}function ve(b){const y=b.charCodeAt(0);return y>=97&&y<=122||y>=65&&y<=90||y>=48&&y<=57||y===95||y===36||y===45}function ce(b){return j(b,ve)}function oe(b){const y=b.charCodeAt(0);return y>=48&&y<=57}function ue(b){return j(b,oe)}function Ae(b){const y=b.charCodeAt(0);return y>=48&&y<=57||y>=65&&y<=70||y>=97&&y<=102}function Je(b){return j(b,Ae)}function Ke(b){let y="",C="";for(;y=ue(b);)C+=y;return C}function Oe(b){let y="";for(;;){const C=b.currentChar();if(C==="{"||C==="}"||C==="@"||C==="|"||!C)break;if(C===Lt||C===tt)if(J(b))y+=C,b.next();else{if(ne(b))break;y+=C,b.next()}else y+=C,b.next()}return y}function B(b){P(b);let y="",C="";for(;y=ce(b);)C+=y;const D=b.currentChar();if(D&&D!=="}"&&D!==Ut&&D!==Lt&&D!==tt&&D!==" "){const Q=ee(b);return f(Ee.INVALID_TOKEN_IN_PLACEHOLDER,l(),0,C+Q),C+Q}return b.currentChar()===Ut&&f(Ee.UNTERMINATED_CLOSING_BRACE,l(),0),C}function re(b){P(b);let y="";return b.currentChar()==="-"?(b.next(),y+=`-${Ke(b)}`):y+=Ke(b),b.currentChar()===Ut&&f(Ee.UNTERMINATED_CLOSING_BRACE,l(),0),y}function he(b){return b!==Xr&&b!==tt}function Se(b){P(b),$(b,"'");let y="",C="";for(;y=j(b,he);)y==="\\"?C+=U(b):C+=y;const D=b.currentChar();return D===tt||D===Ut?(f(Ee.UNTERMINATED_SINGLE_QUOTE_IN_PLACEHOLDER,l(),0),D===tt&&(b.next(),$(b,"'")),C):($(b,"'"),C)}function U(b){const y=b.currentChar();switch(y){case"\\":case"'":return b.next(),`\\${y}`;case"u":return Y(b,y,4);case"U":return Y(b,y,6);default:return f(Ee.UNKNOWN_ESCAPE_SEQUENCE,l(),0,y),""}}function Y(b,y,C){$(b,y);let D="";for(let Q=0;Q<C;Q++){const W=Je(b);if(!W){f(Ee.INVALID_UNICODE_ESCAPE_SEQUENCE,l(),0,`\\${y}${D}${b.currentChar()}`);break}D+=W}return`\\${y}${D}`}function z(b){return b!=="{"&&b!=="}"&&b!==Lt&&b!==tt}function ee(b){P(b);let y="",C="";for(;y=j(b,z);)C+=y;return C}function F(b){let y="",C="";for(;y=le(b);)C+=y;return C}function p(b){const y=C=>{const D=b.currentChar();return D==="{"||D==="@"||D==="|"||D==="("||D===")"||!D||D===Lt?C:(C+=D,b.next(),y(C))};return y("")}function h(b){P(b);const y=$(b,"|");return P(b),y}function E(b,y){let C=null;switch(b.currentChar()){case"{":return y.braceNest>=1&&f(Ee.NOT_ALLOW_NEST_PLACEHOLDER,l(),0),b.next(),C=g(y,2,"{"),P(b),y.braceNest++,C;case"}":return y.braceNest>0&&y.currentType===2&&f(Ee.EMPTY_PLACEHOLDER,l(),0),b.next(),C=g(y,3,"}"),y.braceNest--,y.braceNest>0&&P(b),y.inLinked&&y.braceNest===0&&(y.inLinked=!1),C;case"@":return y.braceNest>0&&f(Ee.UNTERMINATED_CLOSING_BRACE,l(),0),C=O(b,y)||v(y),y.braceNest=0,C;default:{let Q=!0,W=!0,L=!0;if(ne(b))return y.braceNest>0&&f(Ee.UNTERMINATED_CLOSING_BRACE,l(),0),C=g(y,1,h(b)),y.braceNest=0,y.inLinked=!1,C;if(y.braceNest>0&&(y.currentType===4||y.currentType===5||y.currentType===6))return f(Ee.UNTERMINATED_CLOSING_BRACE,l(),0),y.braceNest=0,V(b,y);if(Q=I(b,y))return C=g(y,4,B(b)),P(b),C;if(W=w(b,y))return C=g(y,5,re(b)),P(b),C;if(L=T(b,y))return C=g(y,6,Se(b)),P(b),C;if(!Q&&!W&&!L)return C=g(y,12,ee(b)),f(Ee.INVALID_TOKEN_IN_PLACEHOLDER,l(),0,C.value),P(b),C;break}}return C}function O(b,y){const{currentType:C}=y;let D=null;const Q=b.currentChar();switch((C===7||C===8||C===11||C===9)&&(Q===tt||Q===Lt)&&f(Ee.INVALID_LINKED_FORMAT,l(),0),Q){case"@":return b.next(),D=g(y,7,"@"),y.inLinked=!0,D;case".":return P(b),b.next(),g(y,8,".");case":":return P(b),b.next(),g(y,9,":");default:return ne(b)?(D=g(y,1,h(b)),y.braceNest=0,y.inLinked=!1,D):A(b,y)||R(b,y)?(P(b),O(b,y)):k(b,y)?(P(b),g(y,11,F(b))):H(b,y)?(P(b),Q==="{"?E(b,y)||D:g(y,10,p(b))):(C===7&&f(Ee.INVALID_LINKED_FORMAT,l(),0),y.braceNest=0,y.inLinked=!1,V(b,y))}}function V(b,y){let C={type:13};if(y.braceNest>0)return E(b,y)||v(y);if(y.inLinked)return O(b,y)||v(y);switch(b.currentChar()){case"{":return E(b,y)||v(y);case"}":return f(Ee.UNBALANCED_CLOSING_BRACE,l(),0),b.next(),g(y,3,"}");case"@":return O(b,y)||v(y);default:{if(ne(b))return C=g(y,1,h(b)),y.braceNest=0,y.inLinked=!1,C;if(J(b))return g(y,0,Oe(b));break}}return C}function M(){const{currentType:b,offset:y,startLoc:C,endLoc:D}=c;return c.lastType=b,c.lastOffset=y,c.lastStartLoc=C,c.lastEndLoc=D,c.offset=o(),c.startLoc=l(),n.currentChar()===Ut?g(c,13):V(n,c)}return{nextToken:M,currentOffset:o,currentPosition:l,context:u}}const Gp="parser",Kp=/(?:\\\\|\\'|\\u([0-9a-fA-F]{4})|\\U([0-9a-fA-F]{6}))/g;function qp(e,t,s){switch(e){case"\\\\":return"\\";case"\\'":return"'";default:{const n=parseInt(t||s,16);return n<=55295||n>=57344?String.fromCodePoint(n):"�"}}}function zp(e={}){const t=e.location!==!1,{onError:s}=e;function n(_,S,I,w,...T){const A=_.currentPosition();if(A.offset+=w,A.column+=w,s){const k=t?el(I,A):null,R=ho(S,k,{domain:Gp,args:T});s(R)}}function o(_,S,I){const w={type:_};return t&&(w.start=S,w.end=S,w.loc={start:I,end:I}),w}function l(_,S,I,w){t&&(_.end=S,_.loc&&(_.loc.end=I))}function r(_,S){const I=_.context(),w=o(3,I.offset,I.startLoc);return w.value=S,l(w,_.currentOffset(),_.currentPosition()),w}function i(_,S){const I=_.context(),{lastOffset:w,lastStartLoc:T}=I,A=o(5,w,T);return A.index=parseInt(S,10),_.nextToken(),l(A,_.currentOffset(),_.currentPosition()),A}function c(_,S){const I=_.context(),{lastOffset:w,lastStartLoc:T}=I,A=o(4,w,T);return A.key=S,_.nextToken(),l(A,_.currentOffset(),_.currentPosition()),A}function u(_,S){const I=_.context(),{lastOffset:w,lastStartLoc:T}=I,A=o(9,w,T);return A.value=S.replace(Kp,qp),_.nextToken(),l(A,_.currentOffset(),_.currentPosition()),A}function d(_){const S=_.nextToken(),I=_.context(),{lastOffset:w,lastStartLoc:T}=I,A=o(8,w,T);return S.type!==11?(n(_,Ee.UNEXPECTED_EMPTY_LINKED_MODIFIER,I.lastStartLoc,0),A.value="",l(A,w,T),{nextConsumeToken:S,node:A}):(S.value==null&&n(_,Ee.UNEXPECTED_LEXICAL_ANALYSIS,I.lastStartLoc,0,Tt(S)),A.value=S.value||"",l(A,_.currentOffset(),_.currentPosition()),{node:A})}function f(_,S){const I=_.context(),w=o(7,I.offset,I.startLoc);return w.value=S,l(w,_.currentOffset(),_.currentPosition()),w}function g(_){const S=_.context(),I=o(6,S.offset,S.startLoc);let w=_.nextToken();if(w.type===8){const T=d(_);I.modifier=T.node,w=T.nextConsumeToken||_.nextToken()}switch(w.type!==9&&n(_,Ee.UNEXPECTED_LEXICAL_ANALYSIS,S.lastStartLoc,0,Tt(w)),w=_.nextToken(),w.type===2&&(w=_.nextToken()),w.type){case 10:w.value==null&&n(_,Ee.UNEXPECTED_LEXICAL_ANALYSIS,S.lastStartLoc,0,Tt(w)),I.key=f(_,w.value||"");break;case 4:w.value==null&&n(_,Ee.UNEXPECTED_LEXICAL_ANALYSIS,S.lastStartLoc,0,Tt(w)),I.key=c(_,w.value||"");break;case 5:w.value==null&&n(_,Ee.UNEXPECTED_LEXICAL_ANALYSIS,S.lastStartLoc,0,Tt(w)),I.key=i(_,w.value||"");break;case 6:w.value==null&&n(_,Ee.UNEXPECTED_LEXICAL_ANALYSIS,S.lastStartLoc,0,Tt(w)),I.key=u(_,w.value||"");break;default:{n(_,Ee.UNEXPECTED_EMPTY_LINKED_KEY,S.lastStartLoc,0);const T=_.context(),A=o(7,T.offset,T.startLoc);return A.value="",l(A,T.offset,T.startLoc),I.key=A,l(I,T.offset,T.startLoc),{nextConsumeToken:w,node:I}}}return l(I,_.currentOffset(),_.currentPosition()),{node:I}}function v(_){const S=_.context(),I=S.currentType===1?_.currentOffset():S.offset,w=S.currentType===1?S.endLoc:S.startLoc,T=o(2,I,w);T.items=[];let A=null;do{const H=A||_.nextToken();switch(A=null,H.type){case 0:H.value==null&&n(_,Ee.UNEXPECTED_LEXICAL_ANALYSIS,S.lastStartLoc,0,Tt(H)),T.items.push(r(_,H.value||""));break;case 5:H.value==null&&n(_,Ee.UNEXPECTED_LEXICAL_ANALYSIS,S.lastStartLoc,0,Tt(H)),T.items.push(i(_,H.value||""));break;case 4:H.value==null&&n(_,Ee.UNEXPECTED_LEXICAL_ANALYSIS,S.lastStartLoc,0,Tt(H)),T.items.push(c(_,H.value||""));break;case 6:H.value==null&&n(_,Ee.UNEXPECTED_LEXICAL_ANALYSIS,S.lastStartLoc,0,Tt(H)),T.items.push(u(_,H.value||""));break;case 7:{const ne=g(_);T.items.push(ne.node),A=ne.nextConsumeToken||null;break}}}while(S.currentType!==13&&S.currentType!==1);const k=S.currentType===1?S.lastOffset:_.currentOffset(),R=S.currentType===1?S.lastEndLoc:_.currentPosition();return l(T,k,R),T}function $(_,S,I,w){const T=_.context();let A=w.items.length===0;const k=o(1,S,I);k.cases=[],k.cases.push(w);do{const R=v(_);A||(A=R.items.length===0),k.cases.push(R)}while(T.currentType!==13);return A&&n(_,Ee.MUST_HAVE_MESSAGES_IN_PLURAL,I,0),l(k,_.currentOffset(),_.currentPosition()),k}function x(_){const S=_.context(),{offset:I,startLoc:w}=S,T=v(_);return S.currentType===13?T:$(_,I,w,T)}function P(_){const S=Bp(_,Ye({},e)),I=S.context(),w=o(0,I.offset,I.startLoc);return t&&w.loc&&(w.loc.source=_),w.body=x(S),e.onCacheKey&&(w.cacheKey=e.onCacheKey(_)),I.currentType!==13&&n(S,Ee.UNEXPECTED_LEXICAL_ANALYSIS,I.lastStartLoc,0,_[I.offset]||""),l(w,S.currentOffset(),S.currentPosition()),w}return{parse:P}}function Tt(e){if(e.type===13)return"EOF";const t=(e.value||"").replace(/\r?\n/gu,"\\n");return t.length>10?t.slice(0,9)+"…":t}function Yp(e,t={}){const s={ast:e,helpers:new Set};return{context:()=>s,helper:l=>(s.helpers.add(l),l)}}function Qr(e,t){for(let s=0;s<e.length;s++)Fl(e[s],t)}function Fl(e,t){switch(e.type){case 1:Qr(e.cases,t),t.helper("plural");break;case 2:Qr(e.items,t);break;case 6:{Fl(e.key,t),t.helper("linked"),t.helper("type");break}case 5:t.helper("interpolate"),t.helper("list");break;case 4:t.helper("interpolate"),t.helper("named");break}}function Xp(e,t={}){const s=Yp(e);s.helper("normalize"),e.body&&Fl(e.body,s);const n=s.context();e.helpers=Array.from(n.helpers)}function Qp(e){const t=e.body;return t.type===2?Jr(t):t.cases.forEach(s=>Jr(s)),e}function Jr(e){if(e.items.length===1){const t=e.items[0];(t.type===3||t.type===9)&&(e.static=t.value,delete t.value)}else{const t=[];for(let s=0;s<e.items.length;s++){const n=e.items[s];if(!(n.type===3||n.type===9)||n.value==null)break;t.push(n.value)}if(t.length===e.items.length){e.static=Rl(t);for(let s=0;s<e.items.length;s++){const n=e.items[s];(n.type===3||n.type===9)&&delete n.value}}}}function Ls(e){switch(e.t=e.type,e.type){case 0:{const t=e;Ls(t.body),t.b=t.body,delete t.body;break}case 1:{const t=e,s=t.cases;for(let n=0;n<s.length;n++)Ls(s[n]);t.c=s,delete t.cases;break}case 2:{const t=e,s=t.items;for(let n=0;n<s.length;n++)Ls(s[n]);t.i=s,delete t.items,t.static&&(t.s=t.static,delete t.static);break}case 3:case 9:case 8:case 7:{const t=e;t.value&&(t.v=t.value,delete t.value);break}case 6:{const t=e;Ls(t.key),t.k=t.key,delete t.key,t.modifier&&(Ls(t.modifier),t.m=t.modifier,delete t.modifier);break}case 5:{const t=e;t.i=t.index,delete t.index;break}case 4:{const t=e;t.k=t.key,delete t.key;break}}delete e.type}function Jp(e,t){const{filename:s,breakLineCode:n,needIndent:o}=t,l=t.location!==!1,r={filename:s,code:"",column:1,line:1,offset:0,map:void 0,breakLineCode:n,needIndent:o,indentLevel:0};l&&e.loc&&(r.source=e.loc.source);const i=()=>r;function c(x,P){r.code+=x}function u(x,P=!0){const _=P?n:"";c(o?_+" ".repeat(x):_)}function d(x=!0){const P=++r.indentLevel;x&&u(P)}function f(x=!0){const P=--r.indentLevel;x&&u(P)}function g(){u(r.indentLevel)}return{context:i,push:c,indent:d,deindent:f,newline:g,helper:x=>`_${x}`,needIndent:()=>r.needIndent}}function Zp(e,t){const{helper:s}=e;e.push(`${s("linked")}(`),js(e,t.key),t.modifier?(e.push(", "),js(e,t.modifier),e.push(", _type")):e.push(", undefined, _type"),e.push(")")}function em(e,t){const{helper:s,needIndent:n}=e;e.push(`${s("normalize")}([`),e.indent(n());const o=t.items.length;for(let l=0;l<o&&(js(e,t.items[l]),l!==o-1);l++)e.push(", ");e.deindent(n()),e.push("])")}function tm(e,t){const{helper:s,needIndent:n}=e;if(t.cases.length>1){e.push(`${s("plural")}([`),e.indent(n());const o=t.cases.length;for(let l=0;l<o&&(js(e,t.cases[l]),l!==o-1);l++)e.push(", ");e.deindent(n()),e.push("])")}}function sm(e,t){t.body?js(e,t.body):e.push("null")}function js(e,t){const{helper:s}=e;switch(t.type){case 0:sm(e,t);break;case 1:tm(e,t);break;case 2:em(e,t);break;case 6:Zp(e,t);break;case 8:e.push(JSON.stringify(t.value),t);break;case 7:e.push(JSON.stringify(t.value),t);break;case 5:e.push(`${s("interpolate")}(${s("list")}(${t.index}))`,t);break;case 4:e.push(`${s("interpolate")}(${s("named")}(${JSON.stringify(t.key)}))`,t);break;case 9:e.push(JSON.stringify(t.value),t);break;case 3:e.push(JSON.stringify(t.value),t);break}}const nm=(e,t={})=>{const s=Z(t.mode)?t.mode:"normal",n=Z(t.filename)?t.filename:"message.intl";t.sourceMap;const o=t.breakLineCode!=null?t.breakLineCode:s==="arrow"?";":`
|
|
3
|
+
`,l=t.needIndent?t.needIndent:s!=="arrow",r=e.helpers||[],i=Jp(e,{filename:n,breakLineCode:o,needIndent:l});i.push(s==="normal"?"function __msg__ (ctx) {":"(ctx) => {"),i.indent(l),r.length>0&&(i.push(`const { ${Rl(r.map(d=>`${d}: _${d}`),", ")} } = ctx`),i.newline()),i.push("return "),js(i,e),i.deindent(l),i.push("}"),delete e.helpers;const{code:c,map:u}=i.context();return{ast:e,code:c,map:u?u.toJSON():void 0}};function om(e,t={}){const s=Ye({},t),n=!!s.jit,o=!!s.minify,l=s.optimize==null?!0:s.optimize,i=zp(s).parse(e);return n?(l&&Qp(i),o&&Ls(i),{ast:i,code:""}):(Xp(i,s),nm(i,s))}function lm(){typeof __INTLIFY_PROD_DEVTOOLS__!="boolean"&&(ys().__INTLIFY_PROD_DEVTOOLS__=!1),typeof __INTLIFY_DROP_MESSAGE_COMPILER__!="boolean"&&(ys().__INTLIFY_DROP_MESSAGE_COMPILER__=!1)}function At(e){return ke(e)&&Ol(e)===0&&(xt(e,"b")||xt(e,"body"))}const nc=["b","body"];function rm(e){return us(e,nc)}const oc=["c","cases"];function am(e){return us(e,oc,[])}const lc=["s","static"];function im(e){return us(e,lc)}const rc=["i","items"];function cm(e){return us(e,rc,[])}const ac=["t","type"];function Ol(e){return us(e,ac)}const ic=["v","value"];function Pn(e,t){const s=us(e,ic);if(s!=null)return s;throw hn(t)}const cc=["m","modifier"];function um(e){return us(e,cc)}const uc=["k","key"];function dm(e){const t=us(e,uc);if(t)return t;throw hn(6)}function us(e,t,s){for(let n=0;n<t.length;n++){const o=t[n];if(xt(e,o)&&e[o]!=null)return e[o]}return s}const dc=[...nc,...oc,...lc,...rc,...uc,...cc,...ic,...ac];function hn(e){return new Error(`unhandled node type: ${e}`)}function Ro(e){return s=>fm(s,e)}function fm(e,t){const s=rm(t);if(s==null)throw hn(0);if(Ol(s)===1){const l=am(s);return e.plural(l.reduce((r,i)=>[...r,Zr(e,i)],[]))}else return Zr(e,s)}function Zr(e,t){const s=im(t);if(s!=null)return e.type==="text"?s:e.normalize([s]);{const n=cm(t).reduce((o,l)=>[...o,tl(e,l)],[]);return e.normalize(n)}}function tl(e,t){const s=Ol(t);switch(s){case 3:return Pn(t,s);case 9:return Pn(t,s);case 4:{const n=t;if(xt(n,"k")&&n.k)return e.interpolate(e.named(n.k));if(xt(n,"key")&&n.key)return e.interpolate(e.named(n.key));throw hn(s)}case 5:{const n=t;if(xt(n,"i")&&We(n.i))return e.interpolate(e.list(n.i));if(xt(n,"index")&&We(n.index))return e.interpolate(e.list(n.index));throw hn(s)}case 6:{const n=t,o=um(n),l=dm(n);return e.linked(tl(e,l),o?tl(e,o):void 0,e.type)}case 7:return Pn(t,s);case 8:return Pn(t,s);default:throw new Error(`unhandled node on format message part: ${s}`)}}const pm=e=>e;let Dn=Le();function mm(e,t={}){let s=!1;const n=t.onError||Op;return t.onError=o=>{s=!0,n(o)},{...om(e,t),detectError:s}}function hm(e,t){if(!__INTLIFY_DROP_MESSAGE_COMPILER__&&Z(e)){we(t.warnHtmlMessage)&&t.warnHtmlMessage;const n=(t.onCacheKey||pm)(e),o=Dn[n];if(o)return o;const{ast:l,detectError:r}=mm(e,{...t,location:!1,jit:!0}),i=Ro(l);return r?i:Dn[n]=i}else{const s=e.cacheKey;if(s){const n=Dn[s];return n||(Dn[s]=Ro(e))}else return Ro(e)}}let gn=null;function gm(e){gn=e}function bm(e,t,s){gn&&gn.emit("i18n:init",{timestamp:Date.now(),i18n:e,version:t,meta:s})}const vm=ym("function:translate");function ym(e){return t=>gn&&gn.emit(e,t)}const Wt={INVALID_ARGUMENT:Fp,INVALID_DATE_ARGUMENT:18,INVALID_ISO_DATE_ARGUMENT:19,NOT_SUPPORT_LOCALE_PROMISE_VALUE:21,NOT_SUPPORT_LOCALE_ASYNC_FUNCTION:22,NOT_SUPPORT_LOCALE_TYPE:23},_m=24;function Ht(e){return ho(e,null,void 0)}function Ul(e,t){return t.locale!=null?ea(t.locale):ea(e.locale)}let Fo;function ea(e){if(Z(e))return e;if(Re(e)){if(e.resolvedOnce&&Fo!=null)return Fo;if(e.constructor.name==="Function"){const t=e();if(Ap(t))throw Ht(Wt.NOT_SUPPORT_LOCALE_PROMISE_VALUE);return Fo=t}else throw Ht(Wt.NOT_SUPPORT_LOCALE_ASYNC_FUNCTION)}else throw Ht(Wt.NOT_SUPPORT_LOCALE_TYPE)}function wm(e,t,s){return[...new Set([s,...Me(t)?t:ke(t)?Object.keys(t):Z(t)?[t]:[s]])]}function fc(e,t,s){const n=Z(s)?s:bn,o=e;o.__localeChainCache||(o.__localeChainCache=new Map);let l=o.__localeChainCache.get(n);if(!l){l=[];let r=[s];for(;Me(r);)r=ta(l,r,t);const i=Me(t)||!be(t)?t:t.default?t.default:null;r=Z(i)?[i]:i,Me(r)&&ta(l,r,!1),o.__localeChainCache.set(n,l)}return l}function ta(e,t,s){let n=!0;for(let o=0;o<t.length&&we(n);o++){const l=t[o];Z(l)&&(n=xm(e,t[o],s))}return n}function xm(e,t,s){let n;const o=t.split("-");do{const l=o.join("-");n=km(e,l,s),o.splice(-1,1)}while(o.length&&n===!0);return n}function km(e,t,s){let n=!1;if(!e.includes(t)&&(n=!0,t)){n=t[t.length-1]!=="!";const o=t.replace(/!/g,"");e.push(o),(Me(s)||be(s))&&s[o]&&(n=s[o])}return n}const ds=[];ds[0]={w:[0],i:[3,0],"[":[4],o:[7]};ds[1]={w:[1],".":[2],"[":[4],o:[7]};ds[2]={w:[2],i:[3,0],0:[3,0]};ds[3]={i:[3,0],0:[3,0],w:[1,1],".":[2,1],"[":[4,1],o:[7,1]};ds[4]={"'":[5,0],'"':[6,0],"[":[4,2],"]":[1,3],o:8,l:[4,0]};ds[5]={"'":[4,0],o:8,l:[5,0]};ds[6]={'"':[4,0],o:8,l:[6,0]};const Sm=/^\s?(?:true|false|-?[\d.]+|'[^']*'|"[^"]*")\s?$/;function $m(e){return Sm.test(e)}function Em(e){const t=e.charCodeAt(0),s=e.charCodeAt(e.length-1);return t===s&&(t===34||t===39)?e.slice(1,-1):e}function Cm(e){if(e==null)return"o";switch(e.charCodeAt(0)){case 91:case 93:case 46:case 34:case 39:return e;case 95:case 36:case 45:return"i";case 9:case 10:case 13:case 160:case 65279:case 8232:case 8233:return"w"}return"i"}function Lm(e){const t=e.trim();return e.charAt(0)==="0"&&isNaN(parseInt(e))?!1:$m(t)?Em(t):"*"+t}function Tm(e){const t=[];let s=-1,n=0,o=0,l,r,i,c,u,d,f;const g=[];g[0]=()=>{r===void 0?r=i:r+=i},g[1]=()=>{r!==void 0&&(t.push(r),r=void 0)},g[2]=()=>{g[0](),o++},g[3]=()=>{if(o>0)o--,n=4,g[0]();else{if(o=0,r===void 0||(r=Lm(r),r===!1))return!1;g[1]()}};function v(){const $=e[s+1];if(n===5&&$==="'"||n===6&&$==='"')return s++,i="\\"+$,g[0](),!0}for(;n!==null;)if(s++,l=e[s],!(l==="\\"&&v())){if(c=Cm(l),f=ds[n],u=f[c]||f.l||8,u===8||(n=u[0],u[1]!==void 0&&(d=g[u[1]],d&&(i=l,d()===!1))))return;if(n===7)return t}}const sa=new Map;function Im(e,t){return ke(e)?e[t]:null}function Pm(e,t){if(!ke(e))return null;let s=sa.get(t);if(s||(s=Tm(t),s&&sa.set(t,s)),!s)return null;const n=s.length;let o=e,l=0;for(;l<n;){const r=s[l];if(dc.includes(r)&&At(o))return null;const i=o[r];if(i===void 0||Re(o))return null;o=i,l++}return o}const Dm="11.1.12",go=-1,bn="en-US",na="",oa=e=>`${e.charAt(0).toLocaleUpperCase()}${e.substr(1)}`;function Am(){return{upper:(e,t)=>t==="text"&&Z(e)?e.toUpperCase():t==="vnode"&&ke(e)&&"__v_isVNode"in e?e.children.toUpperCase():e,lower:(e,t)=>t==="text"&&Z(e)?e.toLowerCase():t==="vnode"&&ke(e)&&"__v_isVNode"in e?e.children.toLowerCase():e,capitalize:(e,t)=>t==="text"&&Z(e)?oa(e):t==="vnode"&&ke(e)&&"__v_isVNode"in e?oa(e.children):e}}let pc;function Nm(e){pc=e}let mc;function Rm(e){mc=e}let hc;function Fm(e){hc=e}let gc=null;const Om=e=>{gc=e},Um=()=>gc;let bc=null;const la=e=>{bc=e},Mm=()=>bc;let ra=0;function Vm(e={}){const t=Re(e.onWarn)?e.onWarn:Ep,s=Z(e.version)?e.version:Dm,n=Z(e.locale)||Re(e.locale)?e.locale:bn,o=Re(n)?bn:n,l=Me(e.fallbackLocale)||be(e.fallbackLocale)||Z(e.fallbackLocale)||e.fallbackLocale===!1?e.fallbackLocale:o,r=be(e.messages)?e.messages:Oo(o),i=be(e.datetimeFormats)?e.datetimeFormats:Oo(o),c=be(e.numberFormats)?e.numberFormats:Oo(o),u=Ye(Le(),e.modifiers,Am()),d=e.pluralRules||Le(),f=Re(e.missing)?e.missing:null,g=we(e.missingWarn)||Vs(e.missingWarn)?e.missingWarn:!0,v=we(e.fallbackWarn)||Vs(e.fallbackWarn)?e.fallbackWarn:!0,$=!!e.fallbackFormat,x=!!e.unresolving,P=Re(e.postTranslation)?e.postTranslation:null,_=be(e.processor)?e.processor:null,S=we(e.warnHtmlMessage)?e.warnHtmlMessage:!0,I=!!e.escapeParameter,w=Re(e.messageCompiler)?e.messageCompiler:pc,T=Re(e.messageResolver)?e.messageResolver:mc||Im,A=Re(e.localeFallbacker)?e.localeFallbacker:hc||wm,k=ke(e.fallbackContext)?e.fallbackContext:void 0,R=e,H=ke(R.__datetimeFormatters)?R.__datetimeFormatters:new Map,ne=ke(R.__numberFormatters)?R.__numberFormatters:new Map,J=ke(R.__meta)?R.__meta:{};ra++;const j={version:s,cid:ra,locale:n,fallbackLocale:l,messages:r,modifiers:u,pluralRules:d,missing:f,missingWarn:g,fallbackWarn:v,fallbackFormat:$,unresolving:x,postTranslation:P,processor:_,warnHtmlMessage:S,escapeParameter:I,messageCompiler:w,messageResolver:T,localeFallbacker:A,fallbackContext:k,onWarn:t,__meta:J};return j.datetimeFormats=i,j.numberFormats=c,j.__datetimeFormatters=H,j.__numberFormatters=ne,__INTLIFY_PROD_DEVTOOLS__&&bm(j,s,J),j}const Oo=e=>({[e]:Le()});function Ml(e,t,s,n,o){const{missing:l,onWarn:r}=e;if(l!==null){const i=l(e,s,t,o);return Z(i)?i:t}else return t}function zs(e,t,s){const n=e;n.__localeChainCache=new Map,e.localeFallbacker(e,s,t)}function jm(e,t){return e===t?!1:e.split("-")[0]===t.split("-")[0]}function Wm(e,t){const s=t.indexOf(e);if(s===-1)return!1;for(let n=s+1;n<t.length;n++)if(jm(e,t[n]))return!0;return!1}function aa(e,...t){const{datetimeFormats:s,unresolving:n,fallbackLocale:o,onWarn:l,localeFallbacker:r}=e,{__datetimeFormatters:i}=e,[c,u,d,f]=sl(...t),g=we(d.missingWarn)?d.missingWarn:e.missingWarn;we(d.fallbackWarn)?d.fallbackWarn:e.fallbackWarn;const v=!!d.part,$=Ul(e,d),x=r(e,o,$);if(!Z(c)||c==="")return new Intl.DateTimeFormat($,f).format(u);let P={},_,S=null;const I="datetime format";for(let A=0;A<x.length&&(_=x[A],P=s[_]||{},S=P[c],!be(S));A++)Ml(e,c,_,g,I);if(!be(S)||!Z(_))return n?go:c;let w=`${_}__${c}`;mo(f)||(w=`${w}__${JSON.stringify(f)}`);let T=i.get(w);return T||(T=new Intl.DateTimeFormat(_,Ye({},S,f)),i.set(w,T)),v?T.formatToParts(u):T.format(u)}const vc=["localeMatcher","weekday","era","year","month","day","hour","minute","second","timeZoneName","formatMatcher","hour12","timeZone","dateStyle","timeStyle","calendar","dayPeriod","numberingSystem","hourCycle","fractionalSecondDigits"];function sl(...e){const[t,s,n,o]=e,l=Le();let r=Le(),i;if(Z(t)){const c=t.match(/(\d{4}-\d{2}-\d{2})(T|\s)?(.*)/);if(!c)throw Ht(Wt.INVALID_ISO_DATE_ARGUMENT);const u=c[3]?c[3].trim().startsWith("T")?`${c[1].trim()}${c[3].trim()}`:`${c[1].trim()}T${c[3].trim()}`:c[1].trim();i=new Date(u);try{i.toISOString()}catch{throw Ht(Wt.INVALID_ISO_DATE_ARGUMENT)}}else if(Tp(t)){if(isNaN(t.getTime()))throw Ht(Wt.INVALID_DATE_ARGUMENT);i=t}else if(We(t))i=t;else throw Ht(Wt.INVALID_ARGUMENT);return Z(s)?l.key=s:be(s)&&Object.keys(s).forEach(c=>{vc.includes(c)?r[c]=s[c]:l[c]=s[c]}),Z(n)?l.locale=n:be(n)&&(r=n),be(o)&&(r=o),[l.key||"",i,l,r]}function ia(e,t,s){const n=e;for(const o in s){const l=`${t}__${o}`;n.__datetimeFormatters.has(l)&&n.__datetimeFormatters.delete(l)}}function ca(e,...t){const{numberFormats:s,unresolving:n,fallbackLocale:o,onWarn:l,localeFallbacker:r}=e,{__numberFormatters:i}=e,[c,u,d,f]=nl(...t),g=we(d.missingWarn)?d.missingWarn:e.missingWarn;we(d.fallbackWarn)?d.fallbackWarn:e.fallbackWarn;const v=!!d.part,$=Ul(e,d),x=r(e,o,$);if(!Z(c)||c==="")return new Intl.NumberFormat($,f).format(u);let P={},_,S=null;const I="number format";for(let A=0;A<x.length&&(_=x[A],P=s[_]||{},S=P[c],!be(S));A++)Ml(e,c,_,g,I);if(!be(S)||!Z(_))return n?go:c;let w=`${_}__${c}`;mo(f)||(w=`${w}__${JSON.stringify(f)}`);let T=i.get(w);return T||(T=new Intl.NumberFormat(_,Ye({},S,f)),i.set(w,T)),v?T.formatToParts(u):T.format(u)}const yc=["localeMatcher","style","currency","currencyDisplay","currencySign","useGrouping","minimumIntegerDigits","minimumFractionDigits","maximumFractionDigits","minimumSignificantDigits","maximumSignificantDigits","compactDisplay","notation","signDisplay","unit","unitDisplay","roundingMode","roundingPriority","roundingIncrement","trailingZeroDisplay"];function nl(...e){const[t,s,n,o]=e,l=Le();let r=Le();if(!We(t))throw Ht(Wt.INVALID_ARGUMENT);const i=t;return Z(s)?l.key=s:be(s)&&Object.keys(s).forEach(c=>{yc.includes(c)?r[c]=s[c]:l[c]=s[c]}),Z(n)?l.locale=n:be(n)&&(r=n),be(o)&&(r=o),[l.key||"",i,l,r]}function ua(e,t,s){const n=e;for(const o in s){const l=`${t}__${o}`;n.__numberFormatters.has(l)&&n.__numberFormatters.delete(l)}}const Hm=e=>e,Bm=e=>"",Gm="text",Km=e=>e.length===0?"":Rl(e),qm=Np;function da(e,t){return e=Math.abs(e),t===2?e?e>1?1:0:1:e?Math.min(e,2):0}function zm(e){const t=We(e.pluralIndex)?e.pluralIndex:-1;return e.named&&(We(e.named.count)||We(e.named.n))?We(e.named.count)?e.named.count:We(e.named.n)?e.named.n:t:t}function Ym(e,t){t.count||(t.count=e),t.n||(t.n=e)}function Xm(e={}){const t=e.locale,s=zm(e),n=ke(e.pluralRules)&&Z(t)&&Re(e.pluralRules[t])?e.pluralRules[t]:da,o=ke(e.pluralRules)&&Z(t)&&Re(e.pluralRules[t])?da:void 0,l=_=>_[n(s,_.length,o)],r=e.list||[],i=_=>r[_],c=e.named||Le();We(e.pluralIndex)&&Ym(s,c);const u=_=>c[_];function d(_,S){const I=Re(e.messages)?e.messages(_,!!S):ke(e.messages)?e.messages[_]:!1;return I||(e.parent?e.parent.message(_):Bm)}const f=_=>e.modifiers?e.modifiers[_]:Hm,g=be(e.processor)&&Re(e.processor.normalize)?e.processor.normalize:Km,v=be(e.processor)&&Re(e.processor.interpolate)?e.processor.interpolate:qm,$=be(e.processor)&&Z(e.processor.type)?e.processor.type:Gm,P={list:i,named:u,plural:l,linked:(_,...S)=>{const[I,w]=S;let T="text",A="";S.length===1?ke(I)?(A=I.modifier||A,T=I.type||T):Z(I)&&(A=I||A):S.length===2&&(Z(I)&&(A=I||A),Z(w)&&(T=w||T));const k=d(_,!0)(P),R=T==="vnode"&&Me(k)&&A?k[0]:k;return A?f(A)(R,T):R},message:d,type:$,interpolate:v,normalize:g,values:Ye(Le(),r,c)};return P}const fa=()=>"",bt=e=>Re(e);function pa(e,...t){const{fallbackFormat:s,postTranslation:n,unresolving:o,messageCompiler:l,fallbackLocale:r,messages:i}=e,[c,u]=ol(...t),d=we(u.missingWarn)?u.missingWarn:e.missingWarn,f=we(u.fallbackWarn)?u.fallbackWarn:e.fallbackWarn,g=we(u.escapeParameter)?u.escapeParameter:e.escapeParameter,v=!!u.resolvedMessage,$=Z(u.default)||we(u.default)?we(u.default)?l?c:()=>c:u.default:s?l?c:()=>c:null,x=s||$!=null&&(Z($)||Re($)),P=Ul(e,u);g&&Qm(u);let[_,S,I]=v?[c,P,i[P]||Le()]:_c(e,c,P,r,f,d),w=_,T=c;if(!v&&!(Z(w)||At(w)||bt(w))&&x&&(w=$,T=w),!v&&(!(Z(w)||At(w)||bt(w))||!Z(S)))return o?go:c;let A=!1;const k=()=>{A=!0},R=bt(w)?w:wc(e,c,S,w,T,k);if(A)return w;const H=eh(e,S,I,u),ne=Xm(H),J=Jm(e,R,ne);let j=n?n(J,c):J;if(g&&Z(j)&&(j=Pp(j)),__INTLIFY_PROD_DEVTOOLS__){const X={timestamp:Date.now(),key:Z(c)?c:bt(w)?w.key:"",locale:S||(bt(w)?w.locale:""),format:Z(w)?w:bt(w)?w.source:"",message:j};X.meta=Ye({},e.__meta,Um()||{}),vm(X)}return j}function Qm(e){Me(e.list)?e.list=e.list.map(t=>Z(t)?zr(t):t):ke(e.named)&&Object.keys(e.named).forEach(t=>{Z(e.named[t])&&(e.named[t]=zr(e.named[t]))})}function _c(e,t,s,n,o,l){const{messages:r,onWarn:i,messageResolver:c,localeFallbacker:u}=e,d=u(e,n,s);let f=Le(),g,v=null;const $="translate";for(let x=0;x<d.length&&(g=d[x],f=r[g]||Le(),(v=c(f,t))===null&&(v=f[t]),!(Z(v)||At(v)||bt(v)));x++)if(!Wm(g,d)){const P=Ml(e,t,g,l,$);P!==t&&(v=P)}return[v,g,f]}function wc(e,t,s,n,o,l){const{messageCompiler:r,warnHtmlMessage:i}=e;if(bt(n)){const u=n;return u.locale=u.locale||s,u.key=u.key||t,u}if(r==null){const u=(()=>n);return u.locale=s,u.key=t,u}const c=r(n,Zm(e,s,o,n,i,l));return c.locale=s,c.key=t,c.source=n,c}function Jm(e,t,s){return t(s)}function ol(...e){const[t,s,n]=e,o=Le();if(!Z(t)&&!We(t)&&!bt(t)&&!At(t))throw Ht(Wt.INVALID_ARGUMENT);const l=We(t)?String(t):(bt(t),t);return We(s)?o.plural=s:Z(s)?o.default=s:be(s)&&!mo(s)?o.named=s:Me(s)&&(o.list=s),We(n)?o.plural=n:Z(n)?o.default=n:be(n)&&Ye(o,n),[l,o]}function Zm(e,t,s,n,o,l){return{locale:t,key:s,warnHtmlMessage:o,onError:r=>{throw l&&l(r),r},onCacheKey:r=>Cp(t,s,r)}}function eh(e,t,s,n){const{modifiers:o,pluralRules:l,messageResolver:r,fallbackLocale:i,fallbackWarn:c,missingWarn:u,fallbackContext:d}=e,g={locale:t,modifiers:o,pluralRules:l,messages:(v,$)=>{let x=r(s,v);if(x==null&&(d||$)){const[,,P]=_c(d||e,v,t,i,c,u);x=r(P,v)}if(Z(x)||At(x)){let P=!1;const S=wc(e,v,t,x,v,()=>{P=!0});return P?fa:S}else return bt(x)?x:fa}};return e.processor&&(g.processor=e.processor),n.list&&(g.list=n.list),n.named&&(g.named=n.named),We(n.plural)&&(g.pluralIndex=n.plural),g}lm();const th="11.1.12";function sh(){typeof __VUE_I18N_FULL_INSTALL__!="boolean"&&(ys().__VUE_I18N_FULL_INSTALL__=!0),typeof __VUE_I18N_LEGACY_API__!="boolean"&&(ys().__VUE_I18N_LEGACY_API__=!0),typeof __INTLIFY_DROP_MESSAGE_COMPILER__!="boolean"&&(ys().__INTLIFY_DROP_MESSAGE_COMPILER__=!1),typeof __INTLIFY_PROD_DEVTOOLS__!="boolean"&&(ys().__INTLIFY_PROD_DEVTOOLS__=!1)}const dt={UNEXPECTED_RETURN_TYPE:_m,INVALID_ARGUMENT:25,MUST_BE_CALL_SETUP_TOP:26,NOT_INSTALLED:27,REQUIRED_VALUE:28,INVALID_VALUE:29,NOT_INSTALLED_WITH_PROVIDE:31,UNEXPECTED_ERROR:32};function ht(e,...t){return ho(e,null,void 0)}const ll=cs("__translateVNode"),rl=cs("__datetimeParts"),al=cs("__numberParts"),xc=cs("__setPluralRules"),kc=cs("__injectWithOption"),il=cs("__dispose");function vn(e){if(!ke(e)||At(e))return e;for(const t in e)if(xt(e,t))if(!t.includes("."))ke(e[t])&&vn(e[t]);else{const s=t.split("."),n=s.length-1;let o=e,l=!1;for(let r=0;r<n;r++){if(s[r]==="__proto__")throw new Error(`unsafe key: ${s[r]}`);if(s[r]in o||(o[s[r]]=Le()),!ke(o[s[r]])){l=!0;break}o=o[s[r]]}if(l||(At(o)?dc.includes(s[n])||delete e[t]:(o[s[n]]=e[t],delete e[t])),!At(o)){const r=o[s[n]];ke(r)&&vn(r)}}return e}function Vl(e,t){const{messages:s,__i18n:n,messageResolver:o,flatJson:l}=t,r=be(s)?s:Me(n)?Le():{[e]:Le()};if(Me(n)&&n.forEach(i=>{if("locale"in i&&"resource"in i){const{locale:c,resource:u}=i;c?(r[c]=r[c]||Le(),On(u,r[c])):On(u,r)}else Z(i)&&On(JSON.parse(i),r)}),o==null&&l)for(const i in r)xt(r,i)&&vn(r[i]);return r}function Sc(e){return e.type}function $c(e,t,s){let n=ke(t.messages)?t.messages:Le();"__i18nGlobal"in s&&(n=Vl(e.locale.value,{messages:n,__i18n:s.__i18nGlobal}));const o=Object.keys(n);o.length&&o.forEach(l=>{e.mergeLocaleMessage(l,n[l])});{if(ke(t.datetimeFormats)){const l=Object.keys(t.datetimeFormats);l.length&&l.forEach(r=>{e.mergeDateTimeFormat(r,t.datetimeFormats[r])})}if(ke(t.numberFormats)){const l=Object.keys(t.numberFormats);l.length&&l.forEach(r=>{e.mergeNumberFormat(r,t.numberFormats[r])})}}}function ma(e){return xe(kn,null,e,0)}const ha="__INTLIFY_META__",ga=()=>[],nh=()=>!1;let ba=0;function va(e){return((t,s,n,o)=>e(s,n,xs()||void 0,o))}const oh=()=>{const e=xs();let t=null;return e&&(t=Sc(e)[ha])?{[ha]:t}:null};function jl(e={}){const{__root:t,__injectWithOption:s}=e,n=t===void 0,o=e.flatJson,l=qn?G:si;let r=we(e.inheritLocale)?e.inheritLocale:!0;const i=l(t&&r?t.locale.value:Z(e.locale)?e.locale:bn),c=l(t&&r?t.fallbackLocale.value:Z(e.fallbackLocale)||Me(e.fallbackLocale)||be(e.fallbackLocale)||e.fallbackLocale===!1?e.fallbackLocale:i.value),u=l(Vl(i.value,e)),d=l(be(e.datetimeFormats)?e.datetimeFormats:{[i.value]:{}}),f=l(be(e.numberFormats)?e.numberFormats:{[i.value]:{}});let g=t?t.missingWarn:we(e.missingWarn)||Vs(e.missingWarn)?e.missingWarn:!0,v=t?t.fallbackWarn:we(e.fallbackWarn)||Vs(e.fallbackWarn)?e.fallbackWarn:!0,$=t?t.fallbackRoot:we(e.fallbackRoot)?e.fallbackRoot:!0,x=!!e.fallbackFormat,P=Re(e.missing)?e.missing:null,_=Re(e.missing)?va(e.missing):null,S=Re(e.postTranslation)?e.postTranslation:null,I=t?t.warnHtmlMessage:we(e.warnHtmlMessage)?e.warnHtmlMessage:!0,w=!!e.escapeParameter;const T=t?t.modifiers:be(e.modifiers)?e.modifiers:{};let A=e.pluralRules||t&&t.pluralRules,k;k=(()=>{n&&la(null);const L={version:th,locale:i.value,fallbackLocale:c.value,messages:u.value,modifiers:T,pluralRules:A,missing:_===null?void 0:_,missingWarn:g,fallbackWarn:v,fallbackFormat:x,unresolving:!0,postTranslation:S===null?void 0:S,warnHtmlMessage:I,escapeParameter:w,messageResolver:e.messageResolver,messageCompiler:e.messageCompiler,__meta:{framework:"vue"}};L.datetimeFormats=d.value,L.numberFormats=f.value,L.__datetimeFormatters=be(k)?k.__datetimeFormatters:void 0,L.__numberFormatters=be(k)?k.__numberFormatters:void 0;const N=Vm(L);return n&&la(N),N})(),zs(k,i.value,c.value);function H(){return[i.value,c.value,u.value,d.value,f.value]}const ne=fe({get:()=>i.value,set:L=>{k.locale=L,i.value=L}}),J=fe({get:()=>c.value,set:L=>{k.fallbackLocale=L,c.value=L,zs(k,i.value,L)}}),j=fe(()=>u.value),X=fe(()=>d.value),le=fe(()=>f.value);function ve(){return Re(S)?S:null}function ce(L){S=L,k.postTranslation=L}function oe(){return P}function ue(L){L!==null&&(_=va(L)),P=L,k.missing=_}const Ae=(L,N,se,ie,ge,qe)=>{H();let je;try{__INTLIFY_PROD_DEVTOOLS__,n||(k.fallbackContext=t?Mm():void 0),je=L(k)}finally{__INTLIFY_PROD_DEVTOOLS__,n||(k.fallbackContext=void 0)}if(se!=="translate exists"&&We(je)&&je===go||se==="translate exists"&&!je){const[gt,wt]=N();return t&&$?ie(t):ge(gt)}else{if(qe(je))return je;throw ht(dt.UNEXPECTED_RETURN_TYPE)}};function Je(...L){return Ae(N=>Reflect.apply(pa,null,[N,...L]),()=>ol(...L),"translate",N=>Reflect.apply(N.t,N,[...L]),N=>N,N=>Z(N))}function Ke(...L){const[N,se,ie]=L;if(ie&&!ke(ie))throw ht(dt.INVALID_ARGUMENT);return Je(N,se,Ye({resolvedMessage:!0},ie||{}))}function Oe(...L){return Ae(N=>Reflect.apply(aa,null,[N,...L]),()=>sl(...L),"datetime format",N=>Reflect.apply(N.d,N,[...L]),()=>na,N=>Z(N)||Me(N))}function B(...L){return Ae(N=>Reflect.apply(ca,null,[N,...L]),()=>nl(...L),"number format",N=>Reflect.apply(N.n,N,[...L]),()=>na,N=>Z(N)||Me(N))}function re(L){return L.map(N=>Z(N)||We(N)||we(N)?ma(String(N)):N)}const Se={normalize:re,interpolate:L=>L,type:"vnode"};function U(...L){return Ae(N=>{let se;const ie=N;try{ie.processor=Se,se=Reflect.apply(pa,null,[ie,...L])}finally{ie.processor=null}return se},()=>ol(...L),"translate",N=>N[ll](...L),N=>[ma(N)],N=>Me(N))}function Y(...L){return Ae(N=>Reflect.apply(ca,null,[N,...L]),()=>nl(...L),"number format",N=>N[al](...L),ga,N=>Z(N)||Me(N))}function z(...L){return Ae(N=>Reflect.apply(aa,null,[N,...L]),()=>sl(...L),"datetime format",N=>N[rl](...L),ga,N=>Z(N)||Me(N))}function ee(L){A=L,k.pluralRules=A}function F(L,N){return Ae(()=>{if(!L)return!1;const se=Z(N)?N:i.value,ie=E(se),ge=k.messageResolver(ie,L);return At(ge)||bt(ge)||Z(ge)},()=>[L],"translate exists",se=>Reflect.apply(se.te,se,[L,N]),nh,se=>we(se))}function p(L){let N=null;const se=fc(k,c.value,i.value);for(let ie=0;ie<se.length;ie++){const ge=u.value[se[ie]]||{},qe=k.messageResolver(ge,L);if(qe!=null){N=qe;break}}return N}function h(L){const N=p(L);return N??(t?t.tm(L)||{}:{})}function E(L){return u.value[L]||{}}function O(L,N){if(o){const se={[L]:N};for(const ie in se)xt(se,ie)&&vn(se[ie]);N=se[L]}u.value[L]=N,k.messages=u.value}function V(L,N){u.value[L]=u.value[L]||{};const se={[L]:N};if(o)for(const ie in se)xt(se,ie)&&vn(se[ie]);N=se[L],On(N,u.value[L]),k.messages=u.value}function M(L){return d.value[L]||{}}function b(L,N){d.value[L]=N,k.datetimeFormats=d.value,ia(k,L,N)}function y(L,N){d.value[L]=Ye(d.value[L]||{},N),k.datetimeFormats=d.value,ia(k,L,N)}function C(L){return f.value[L]||{}}function D(L,N){f.value[L]=N,k.numberFormats=f.value,ua(k,L,N)}function Q(L,N){f.value[L]=Ye(f.value[L]||{},N),k.numberFormats=f.value,ua(k,L,N)}ba++,t&&qn&&(He(t.locale,L=>{r&&(i.value=L,k.locale=L,zs(k,i.value,c.value))}),He(t.fallbackLocale,L=>{r&&(c.value=L,k.fallbackLocale=L,zs(k,i.value,c.value))}));const W={id:ba,locale:ne,fallbackLocale:J,get inheritLocale(){return r},set inheritLocale(L){r=L,L&&t&&(i.value=t.locale.value,c.value=t.fallbackLocale.value,zs(k,i.value,c.value))},get availableLocales(){return Object.keys(u.value).sort()},messages:j,get modifiers(){return T},get pluralRules(){return A||{}},get isGlobal(){return n},get missingWarn(){return g},set missingWarn(L){g=L,k.missingWarn=g},get fallbackWarn(){return v},set fallbackWarn(L){v=L,k.fallbackWarn=v},get fallbackRoot(){return $},set fallbackRoot(L){$=L},get fallbackFormat(){return x},set fallbackFormat(L){x=L,k.fallbackFormat=x},get warnHtmlMessage(){return I},set warnHtmlMessage(L){I=L,k.warnHtmlMessage=L},get escapeParameter(){return w},set escapeParameter(L){w=L,k.escapeParameter=L},t:Je,getLocaleMessage:E,setLocaleMessage:O,mergeLocaleMessage:V,getPostTranslationHandler:ve,setPostTranslationHandler:ce,getMissingHandler:oe,setMissingHandler:ue,[xc]:ee};return W.datetimeFormats=X,W.numberFormats=le,W.rt=Ke,W.te=F,W.tm=h,W.d=Oe,W.n=B,W.getDateTimeFormat=M,W.setDateTimeFormat=b,W.mergeDateTimeFormat=y,W.getNumberFormat=C,W.setNumberFormat=D,W.mergeNumberFormat=Q,W[kc]=s,W[ll]=U,W[rl]=z,W[al]=Y,W}function lh(e){const t=Z(e.locale)?e.locale:bn,s=Z(e.fallbackLocale)||Me(e.fallbackLocale)||be(e.fallbackLocale)||e.fallbackLocale===!1?e.fallbackLocale:t,n=Re(e.missing)?e.missing:void 0,o=we(e.silentTranslationWarn)||Vs(e.silentTranslationWarn)?!e.silentTranslationWarn:!0,l=we(e.silentFallbackWarn)||Vs(e.silentFallbackWarn)?!e.silentFallbackWarn:!0,r=we(e.fallbackRoot)?e.fallbackRoot:!0,i=!!e.formatFallbackMessages,c=be(e.modifiers)?e.modifiers:{},u=e.pluralizationRules,d=Re(e.postTranslation)?e.postTranslation:void 0,f=Z(e.warnHtmlInMessage)?e.warnHtmlInMessage!=="off":!0,g=!!e.escapeParameterHtml,v=we(e.sync)?e.sync:!0;let $=e.messages;if(be(e.sharedMessages)){const T=e.sharedMessages;$=Object.keys(T).reduce((k,R)=>{const H=k[R]||(k[R]={});return Ye(H,T[R]),k},$||{})}const{__i18n:x,__root:P,__injectWithOption:_}=e,S=e.datetimeFormats,I=e.numberFormats,w=e.flatJson;return{locale:t,fallbackLocale:s,messages:$,flatJson:w,datetimeFormats:S,numberFormats:I,missing:n,missingWarn:o,fallbackWarn:l,fallbackRoot:r,fallbackFormat:i,modifiers:c,pluralRules:u,postTranslation:d,warnHtmlMessage:f,escapeParameter:g,messageResolver:e.messageResolver,inheritLocale:v,__i18n:x,__root:P,__injectWithOption:_}}function cl(e={}){const t=jl(lh(e)),{__extender:s}=e,n={id:t.id,get locale(){return t.locale.value},set locale(o){t.locale.value=o},get fallbackLocale(){return t.fallbackLocale.value},set fallbackLocale(o){t.fallbackLocale.value=o},get messages(){return t.messages.value},get datetimeFormats(){return t.datetimeFormats.value},get numberFormats(){return t.numberFormats.value},get availableLocales(){return t.availableLocales},get missing(){return t.getMissingHandler()},set missing(o){t.setMissingHandler(o)},get silentTranslationWarn(){return we(t.missingWarn)?!t.missingWarn:t.missingWarn},set silentTranslationWarn(o){t.missingWarn=we(o)?!o:o},get silentFallbackWarn(){return we(t.fallbackWarn)?!t.fallbackWarn:t.fallbackWarn},set silentFallbackWarn(o){t.fallbackWarn=we(o)?!o:o},get modifiers(){return t.modifiers},get formatFallbackMessages(){return t.fallbackFormat},set formatFallbackMessages(o){t.fallbackFormat=o},get postTranslation(){return t.getPostTranslationHandler()},set postTranslation(o){t.setPostTranslationHandler(o)},get sync(){return t.inheritLocale},set sync(o){t.inheritLocale=o},get warnHtmlInMessage(){return t.warnHtmlMessage?"warn":"off"},set warnHtmlInMessage(o){t.warnHtmlMessage=o!=="off"},get escapeParameterHtml(){return t.escapeParameter},set escapeParameterHtml(o){t.escapeParameter=o},get pluralizationRules(){return t.pluralRules||{}},__composer:t,t(...o){return Reflect.apply(t.t,t,[...o])},rt(...o){return Reflect.apply(t.rt,t,[...o])},te(o,l){return t.te(o,l)},tm(o){return t.tm(o)},getLocaleMessage(o){return t.getLocaleMessage(o)},setLocaleMessage(o,l){t.setLocaleMessage(o,l)},mergeLocaleMessage(o,l){t.mergeLocaleMessage(o,l)},d(...o){return Reflect.apply(t.d,t,[...o])},getDateTimeFormat(o){return t.getDateTimeFormat(o)},setDateTimeFormat(o,l){t.setDateTimeFormat(o,l)},mergeDateTimeFormat(o,l){t.mergeDateTimeFormat(o,l)},n(...o){return Reflect.apply(t.n,t,[...o])},getNumberFormat(o){return t.getNumberFormat(o)},setNumberFormat(o,l){t.setNumberFormat(o,l)},mergeNumberFormat(o,l){t.mergeNumberFormat(o,l)}};return n.__extender=s,n}function rh(e,t,s){return{beforeCreate(){const n=xs();if(!n)throw ht(dt.UNEXPECTED_ERROR);const o=this.$options;if(o.i18n){const l=o.i18n;if(o.__i18n&&(l.__i18n=o.__i18n),l.__root=t,this===this.$root)this.$i18n=ya(e,l);else{l.__injectWithOption=!0,l.__extender=s.__vueI18nExtend,this.$i18n=cl(l);const r=this.$i18n;r.__extender&&(r.__disposer=r.__extender(this.$i18n))}}else if(o.__i18n)if(this===this.$root)this.$i18n=ya(e,o);else{this.$i18n=cl({__i18n:o.__i18n,__injectWithOption:!0,__extender:s.__vueI18nExtend,__root:t});const l=this.$i18n;l.__extender&&(l.__disposer=l.__extender(this.$i18n))}else this.$i18n=e;o.__i18nGlobal&&$c(t,o,o),this.$t=(...l)=>this.$i18n.t(...l),this.$rt=(...l)=>this.$i18n.rt(...l),this.$te=(l,r)=>this.$i18n.te(l,r),this.$d=(...l)=>this.$i18n.d(...l),this.$n=(...l)=>this.$i18n.n(...l),this.$tm=l=>this.$i18n.tm(l),s.__setInstance(n,this.$i18n)},mounted(){},unmounted(){const n=xs();if(!n)throw ht(dt.UNEXPECTED_ERROR);const o=this.$i18n;delete this.$t,delete this.$rt,delete this.$te,delete this.$d,delete this.$n,delete this.$tm,o.__disposer&&(o.__disposer(),delete o.__disposer,delete o.__extender),s.__deleteInstance(n),delete this.$i18n}}}function ya(e,t){e.locale=t.locale||e.locale,e.fallbackLocale=t.fallbackLocale||e.fallbackLocale,e.missing=t.missing||e.missing,e.silentTranslationWarn=t.silentTranslationWarn||e.silentFallbackWarn,e.silentFallbackWarn=t.silentFallbackWarn||e.silentFallbackWarn,e.formatFallbackMessages=t.formatFallbackMessages||e.formatFallbackMessages,e.postTranslation=t.postTranslation||e.postTranslation,e.warnHtmlInMessage=t.warnHtmlInMessage||e.warnHtmlInMessage,e.escapeParameterHtml=t.escapeParameterHtml||e.escapeParameterHtml,e.sync=t.sync||e.sync,e.__composer[xc](t.pluralizationRules||e.pluralizationRules);const s=Vl(e.locale,{messages:t.messages,__i18n:t.__i18n});return Object.keys(s).forEach(n=>e.mergeLocaleMessage(n,s[n])),t.datetimeFormats&&Object.keys(t.datetimeFormats).forEach(n=>e.mergeDateTimeFormat(n,t.datetimeFormats[n])),t.numberFormats&&Object.keys(t.numberFormats).forEach(n=>e.mergeNumberFormat(n,t.numberFormats[n])),e}const Wl={tag:{type:[String,Object]},locale:{type:String},scope:{type:String,validator:e=>e==="parent"||e==="global",default:"parent"},i18n:{type:Object}};function ah({slots:e},t){return t.length===1&&t[0]==="default"?(e.default?e.default():[]).reduce((n,o)=>[...n,...o.type===Qe?o.children:[o]],[]):t.reduce((s,n)=>{const o=e[n];return o&&(s[n]=o()),s},Le())}function Ec(){return Qe}const ih=Fe({name:"i18n-t",props:Ye({keypath:{type:String,required:!0},plural:{type:[Number,String],validator:e=>We(e)||!isNaN(e)}},Wl),setup(e,t){const{slots:s,attrs:n}=t,o=e.i18n||Ge({useScope:e.scope,__useComponent:!0});return()=>{const l=Object.keys(s).filter(f=>f[0]!=="_"),r=Le();e.locale&&(r.locale=e.locale),e.plural!==void 0&&(r.plural=Z(e.plural)?+e.plural:e.plural);const i=ah(t,l),c=o[ll](e.keypath,i,r),u=Ye(Le(),n),d=Z(e.tag)||ke(e.tag)?e.tag:Ec();return io(d,u,c)}}}),_a=ih;function ch(e){return Me(e)&&!Z(e[0])}function Cc(e,t,s,n){const{slots:o,attrs:l}=t;return()=>{const r={part:!0};let i=Le();e.locale&&(r.locale=e.locale),Z(e.format)?r.key=e.format:ke(e.format)&&(Z(e.format.key)&&(r.key=e.format.key),i=Object.keys(e.format).reduce((g,v)=>s.includes(v)?Ye(Le(),g,{[v]:e.format[v]}):g,Le()));const c=n(e.value,r,i);let u=[r.key];Me(c)?u=c.map((g,v)=>{const $=o[g.type],x=$?$({[g.type]:g.value,index:v,parts:c}):[g.value];return ch(x)&&(x[0].key=`${g.type}-${v}`),x}):Z(c)&&(u=[c]);const d=Ye(Le(),l),f=Z(e.tag)||ke(e.tag)?e.tag:Ec();return io(f,d,u)}}const uh=Fe({name:"i18n-n",props:Ye({value:{type:Number,required:!0},format:{type:[String,Object]}},Wl),setup(e,t){const s=e.i18n||Ge({useScope:e.scope,__useComponent:!0});return Cc(e,t,yc,(...n)=>s[al](...n))}}),wa=uh;function dh(e,t){const s=e;if(e.mode==="composition")return s.__getInstance(t)||e.global;{const n=s.__getInstance(t);return n!=null?n.__composer:e.global.__composer}}function fh(e){const t=r=>{const{instance:i,value:c}=r;if(!i||!i.$)throw ht(dt.UNEXPECTED_ERROR);const u=dh(e,i.$),d=xa(c);return[Reflect.apply(u.t,u,[...ka(d)]),u]};return{created:(r,i)=>{const[c,u]=t(i);qn&&e.global===u&&(r.__i18nWatcher=He(u.locale,()=>{i.instance&&i.instance.$forceUpdate()})),r.__composer=u,r.textContent=c},unmounted:r=>{qn&&r.__i18nWatcher&&(r.__i18nWatcher(),r.__i18nWatcher=void 0,delete r.__i18nWatcher),r.__composer&&(r.__composer=void 0,delete r.__composer)},beforeUpdate:(r,{value:i})=>{if(r.__composer){const c=r.__composer,u=xa(i);r.textContent=Reflect.apply(c.t,c,[...ka(u)])}},getSSRProps:r=>{const[i]=t(r);return{textContent:i}}}}function xa(e){if(Z(e))return{path:e};if(be(e)){if(!("path"in e))throw ht(dt.REQUIRED_VALUE,"path");return e}else throw ht(dt.INVALID_VALUE)}function ka(e){const{path:t,locale:s,args:n,choice:o,plural:l}=e,r={},i=n||{};return Z(s)&&(r.locale=s),We(o)&&(r.plural=o),We(l)&&(r.plural=l),[t,i,r]}function ph(e,t,...s){const n=be(s[0])?s[0]:{};(we(n.globalInstall)?n.globalInstall:!0)&&([_a.name,"I18nT"].forEach(l=>e.component(l,_a)),[wa.name,"I18nN"].forEach(l=>e.component(l,wa)),[$a.name,"I18nD"].forEach(l=>e.component(l,$a))),e.directive("t",fh(t))}const mh=cs("global-vue-i18n");function hh(e={}){const t=__VUE_I18N_LEGACY_API__&&we(e.legacy)?e.legacy:__VUE_I18N_LEGACY_API__,s=we(e.globalInjection)?e.globalInjection:!0,n=new Map,[o,l]=gh(e,t),r=cs("");function i(f){return n.get(f)||null}function c(f,g){n.set(f,g)}function u(f){n.delete(f)}const d={get mode(){return __VUE_I18N_LEGACY_API__&&t?"legacy":"composition"},async install(f,...g){if(f.__VUE_I18N_SYMBOL__=r,f.provide(f.__VUE_I18N_SYMBOL__,d),be(g[0])){const x=g[0];d.__composerExtend=x.__composerExtend,d.__vueI18nExtend=x.__vueI18nExtend}let v=null;!t&&s&&(v=Sh(f,d.global)),__VUE_I18N_FULL_INSTALL__&&ph(f,d,...g),__VUE_I18N_LEGACY_API__&&t&&f.mixin(rh(l,l.__composer,d));const $=f.unmount;f.unmount=()=>{v&&v(),d.dispose(),$()}},get global(){return l},dispose(){o.stop()},__instances:n,__getInstance:i,__setInstance:c,__deleteInstance:u};return d}function Ge(e={}){const t=xs();if(t==null)throw ht(dt.MUST_BE_CALL_SETUP_TOP);if(!t.isCE&&t.appContext.app!=null&&!t.appContext.app.__VUE_I18N_SYMBOL__)throw ht(dt.NOT_INSTALLED);const s=bh(t),n=yh(s),o=Sc(t),l=vh(e,o);if(l==="global")return $c(n,e,o),n;if(l==="parent"){let c=_h(s,t,e.__useComponent);return c==null&&(c=n),c}const r=s;let i=r.__getInstance(t);if(i==null){const c=Ye({},e);"__i18n"in o&&(c.__i18n=o.__i18n),n&&(c.__root=n),i=jl(c),r.__composerExtend&&(i[il]=r.__composerExtend(i)),xh(r,t,i),r.__setInstance(t,i)}return i}function gh(e,t){const s=vl(),n=__VUE_I18N_LEGACY_API__&&t?s.run(()=>cl(e)):s.run(()=>jl(e));if(n==null)throw ht(dt.UNEXPECTED_ERROR);return[s,n]}function bh(e){const t=rt(e.isCE?mh:e.appContext.app.__VUE_I18N_SYMBOL__);if(!t)throw ht(e.isCE?dt.NOT_INSTALLED_WITH_PROVIDE:dt.UNEXPECTED_ERROR);return t}function vh(e,t){return mo(e)?"__i18n"in t?"local":"global":e.useScope?e.useScope:"local"}function yh(e){return e.mode==="composition"?e.global:e.global.__composer}function _h(e,t,s=!1){let n=null;const o=t.root;let l=wh(t,s);for(;l!=null;){const r=e;if(e.mode==="composition")n=r.__getInstance(l);else if(__VUE_I18N_LEGACY_API__){const i=r.__getInstance(l);i!=null&&(n=i.__composer,s&&n&&!n[kc]&&(n=null))}if(n!=null||o===l)break;l=l.parent}return n}function wh(e,t=!1){return e==null?null:t&&e.vnode.ctx||e.parent}function xh(e,t,s){Xt(()=>{},t),ks(()=>{const n=s;e.__deleteInstance(t);const o=n[il];o&&(o(),delete n[il])},t)}const kh=["locale","fallbackLocale","availableLocales"],Sa=["t","rt","d","n","tm","te"];function Sh(e,t){const s=Object.create(null);return kh.forEach(o=>{const l=Object.getOwnPropertyDescriptor(t,o);if(!l)throw ht(dt.UNEXPECTED_ERROR);const r=Ve(l.value)?{get(){return l.value.value},set(i){l.value.value=i}}:{get(){return l.get&&l.get()}};Object.defineProperty(s,o,r)}),e.config.globalProperties.$i18n=s,Sa.forEach(o=>{const l=Object.getOwnPropertyDescriptor(t,o);if(!l||!l.value)throw ht(dt.UNEXPECTED_ERROR);Object.defineProperty(e.config.globalProperties,`$${o}`,l)}),()=>{delete e.config.globalProperties.$i18n,Sa.forEach(o=>{delete e.config.globalProperties[`$${o}`]})}}const $h=Fe({name:"i18n-d",props:Ye({value:{type:[Number,Date],required:!0},format:{type:[String,Object]}},Wl),setup(e,t){const s=e.i18n||Ge({useScope:e.scope,__useComponent:!0});return Cc(e,t,vc,(...n)=>s[rl](...n))}}),$a=$h;sh();Nm(hm);Rm(Pm);Fm(fc);if(__INTLIFY_PROD_DEVTOOLS__){const e=ys();e.__INTLIFY__=!0,gm(e.__INTLIFY_DEVTOOLS_GLOBAL_HOOK__)}const Eh={common:{save:"Save",cancel:"Cancel",confirm:"Confirm",delete:"Delete",edit:"Edit",close:"Close",ok:"OK",yes:"Yes",no:"No",loading:"Loading...",success:"Success",error:"Error",warning:"Warning",info:"Info",language:"Language",back:"Back",forward:"Forward",refresh:"Refresh"},layout:{title:"M3U8 Downloader",newDownload:"New Download",downloadManagement:"Download Management",webBrowser:"Web Browser",completed:"Completed",config:"Config Settings",about:"About",ariang:"Ariang"},download:{status:{resume:"Downloading",pending:"Pending",pause:"Paused",error:"Error",done:"Completed"},pause:"Pause",resume:"Resume",delete:"Delete",clearQueue:"Clear Queue",batchDownload:"Batch Download",selectAll:"Select All",selected:"Selected",noTasks:"No download tasks",taskDetail:"Task Detail"},newDownload:{title:"New Download",playUrl:"Enter video playback page URL to extract m3u8 download link",extract:"Extract",extracting:"Extracting...",subUrlRegex:"Playback page link pattern",subUrlRegexHint:"Used to accurately identify playback addresses from video list pages. Example: play/845-1-. Supports * wildcard (converted to .+)",videoLinks:"Video Links (one per line, supports m3u8 addresses and Douyin, Weibo, Pipixia video share links)",videoLinksPlaceholder:"Format: URL | Name(optional), Name | URL",videoName:"Video Name",videoNamePlaceholder:"Enter video name (optional)",videoNameHint:'If multiple links are entered, they will be named as "Video Name + Episode N"',saveDir:"Save Location",saveDirPlaceholder:"Enter save path",ignoreSegments:"Ignore Time Segments (for removing ad segments)",ignoreSegmentsPlaceholder:"Use - to separate start and end times, multiple separated by commas. Example: 0-10,20-100",headers:"Custom Headers",headersPlaceholder:`One per line (Weibo videos require Cookie), format: Key: Value. Example:
|
|
4
|
+
Referer: https://example.com
|
|
5
|
+
Cookie: token=123`,startDownload:"Start Download",submitting:"Submitting...",enterM3u8Link:"Please enter at least one M3U8 link",enterValidM3u8Link:"Please enter a valid M3U8 link"},webBrowser:{title:"Web Browser - Extract Download URLs",hideBrowser:"Hide Browser",showBrowser:"Show Browser",stop:"Stop",urlPlaceholder:"Enter webpage URL, will automatically extract m3u8 and mp4 video links from the page",load:"Load",loading:"Loading...",foundVideos:"Found {count} video links",clearList:"Clear List",download:"Download",noVideos:"No video links extracted yet, please wait for page to load or try another webpage",enterUrl:"Please enter webpage URL",enterValidUrl:"Please enter a valid webpage URL (starting with http:// or https://)",electronOnly:"This feature is only available in Electron client",pageLoadComplete:"Page load complete, found {count} video links",pageLoadCompleteNoVideos:"Page load complete, but no video links found",newVideoFound:"New video link found: {title}",selectAtLeastOne:"Please select at least one video link",source:"Source",unnamedVideo:"Unnamed Video"},error:{unauthorized:"Unauthorized access",downloadFailed:"Download failed",requestFailed:"Request failed",unknownError:"Unknown error",noLocalFile:"No local file found"},taskList:{title:"Download Tasks",new:"New",pauseSelected:"Pause Selected",resumeSelected:"Resume Selected",deleteSelected:"Delete Selected",pauseAll:"Pause All",resumeAll:"Resume All",clearQueue:"Clear Queue",searchPlaceholder:"Search task name or URL",searchLabel:"Search tasks",filterByStatus:"Filter by status",clearFilters:"Clear filters",all:"All",status:{resume:"Downloading",pending:"Pending",pause:"Paused",error:"Error",done:"Completed"},selectAll:"Select All/Toggle",selected:"Selected",total:"Total",pending:"Pending",downloading:"Downloading"},taskItem:{episode:"Episode {index}",play:"Play",localPlay:"Local Play",preview:"Preview",detail:"Detail",retry:"Retry",selectTask:"Select task: {name}",pause:"Pause",resume:"Resume",delete:"Delete",duration:"Duration",size:"Size",segments:"Segments",remaining:"Remaining",video:"Video"},config:{title:"Config Settings",downloadSettings:"Download Settings",threadNum:"Concurrent download threads per task",threadNumPlaceholder:"Enter thread count (1-16)",threadNumHint:"Recommended not more than 8, too many concurrent requests to a single server may result in IP ban",maxDownloads:"Maximum concurrent downloads",maxDownloadsPlaceholder:"Enter max concurrent downloads (1-10)",maxDownloadsHint:"Maximum number of concurrent download tasks, default is 3",saveDir:"Video save directory",saveDirPlaceholder:"Enter save directory path",saveDirHint:"Default is downloads folder in current directory",delCache:"Delete ts segment cache after download completes",delCacheLabel:"Delete segment files",delCacheHint:"Saving temporary files can identify cache when re-downloading",convert:"Convert format after download completes",convertLabel:"Merge and convert to MP4/TS file",convertHint:"Automatically merge and convert to MP4 format after download completes",showPreview:"Show preview button",showPreviewLabel:"Show preview button in download list",showLocalPlay:"Show local play button",showLocalPlayLabel:"Show local play button in download list",ffmpegPath:"ffmpeg executable file path",ffmpegPathPlaceholder:"Leave empty to use ffmpeg from system PATH",ffmpegPathHint:"Specify the full path to the ffmpeg executable file. If left empty, will try to use ffmpeg from system PATH environment variable",save:"Save Config",saveSuccess:"Config saved successfully",saveFailed:"Config save failed",localConfig:"Local Settings",token:"Access Password",tokenPlaceholder:"Enter access password",tokenHint:"If the server has set an access password (token), please enter it here",updateLocalConfig:"Update Local Config",localConfigUpdated:"Local config updated",enterPassword:"Please enter access password",passwordRequired:"Access Password Required",passwordRequiredHint:"Please enter the correct access password to continue",passwordError:"Password error, please re-enter",passwordProcessFailed:"Password processing failed, please try again",configUpdated:"Config updated",verifying:"Verifying..."},about:{title:"About",projectInfo:"Project Info",license:"License",author:"Author",github:"GitHub",issues:"Issues",currentVersion:"Current Version",checkVersion:"Check for Updates",newVersionFound:"New version found! [{version}]",projectDescription:"Project Description",projectDescriptionText:"is a free and open-source powerful m3u8 video batch download tool that supports multi-threaded downloads, play while downloading, WebUI management, video parsing, and other features. Supports CLI command line, browser, PC client, Docker deployment, and Node.js API calls.",features:"Features",coreFeatures:"🚀 Core Download Features",coreFeature1:"Multi-threaded download: Thread pool mode with customizable thread count for faster downloads",coreFeature2:"Play while downloading: Support online playback using downloaded ts cache files without waiting",coreFeature3:"Batch download: Support batch download of multiple m3u8 addresses and text file import",coreFeature4:"Cache resume: Failed downloads retain cache, retry only downloads failed segments to save bandwidth",coreFeature5:"AES encryption support: Automatically identify and decrypt common AES-128 encrypted video streams",coreFeature6:"Format conversion: Automatically merge and convert downloaded ts segments to mp4 format (requires ffmpeg)",coreFeature7:"Multi-format support: Support downloading video files in mp4, mkv and other formats",coreFeature8:"Segment filtering: Support ignoring video segments in specified time ranges (e.g., skip intro/outro)",webUIFeatures:"🌐 WebUI Download Management",webUIFeature1:"Modern interface: Modern Web interface built with Vue 3 + TypeScript",webUIFeature2:"Real-time progress: Real-time display of download progress and status via WebSocket",webUIFeature3:"Task management: Support pause, resume, delete download tasks, and batch operations",webUIFeature4:"Download center: Centralized management of all download tasks with search and filter support",webUIFeature5:"Config management: Visual configuration of download parameters (thread count, save directory, etc.)",webUIFeature6:"Access control: Support setting access password (token) to protect service",parserFeatures:"🎬 Video Parsing Features",parserFeature1:"Multi-platform support: Support parsing video share links from Douyin, Weibo, Pipixia and other platforms",parserFeature2:"Watermark-free download: Automatically extract watermark-free video addresses and download",parserFeature3:"Smart recognition: Automatically identify video platforms and select appropriate parser",extractFeatures:"🔍 Smart Extraction Features",extractFeature1:"Web extraction: Support automatic extraction of m3u8 addresses from video playback pages",extractFeature2:"Deep search: Support multi-level page search, automatically discover video links",extractFeature3:"Batch extraction: Extract multiple video links at once, support batch download",searchFeatures:"📺 Video Search Features",searchFeature1:"Collection site support: Support standard collection site API for command-line interactive search and download",searchFeature2:"Cache mechanism: Automatically cache search history, support continuing unfinished downloads",usageFeatures:"💻 Multiple Usage Methods",usageFeature1:"Command-line tool: Complete CLI commands with various parameter configurations",usageFeature2:"Node.js API: Programming interface for easy integration into other projects",usageFeature3:"Web service: Support starting as Web service, manage downloads through browser",usageFeature4:"Docker deployment: Provide Docker image for one-click server deployment",usageFeature5:"Electron desktop app: Support packaging as desktop app with built-in browser functionality",i18nFeatures:"🌍 Internationalization Support",i18nFeature1:"Support Chinese and English multi-language",i18nFeature2:"Both command line and WebUI support language switching",installation:"Installation",globalInstall:"Global install:",useNpx:"Use npx:",desktopApp:"Desktop Application",desktopAppText:"Download the latest version from:",desktopAppLink1:"https://m3u8-player.lzw.me/download.html",desktopAppLink2:"https://github.com/lzwme/m3u8-dl/releases",docker:"Docker Deployment",dockerCommand:"Run with Docker command:",dockerCompose:"Run with docker-compose:",dockerDeployComplete:"After deployment, visit {url} to use the WebUI interface.",captureScript:"🎬 Browser Script (m3u8-capture)",captureScriptDescription:"m3u8-capture is a browser userscript that automatically captures m3u8 and mp4 video links from web pages and quickly jumps to WebUI for download.",captureScriptInstall:"Installation Steps:",captureScriptInstallStep1:"Install browser extension: ",captureScriptInstallStep1Or:" or ",captureScriptInstallStep2:"Install script:",captureScriptInstallStep2a:"Open extension management panel",captureScriptInstallStep2b:'Click "Add new script"',captureScriptInstallStep2c:"Copy content from the following link or visit directly (choose one):",captureScriptInstallStep2cOption1:"GitHub address:",captureScriptInstallStep2cOption1Note:"Latest version",captureScriptInstallStep2cOption2:"Local service address:",captureScriptInstallStep3:"Configure WebUI address:",captureScriptInstallStep3a:"Visit any web page, click the 🎬 icon in the top right corner to open the capture panel",captureScriptInstallStep3b:"Click the settings button ⚙️",captureScriptInstallStep3c:"Enter your m3u8-dl WebUI address (e.g., http://localhost:6600) and save",captureScriptFeatures:"Feature Description:",captureScriptFeature1:"Auto Capture: The script automatically monitors network requests in web pages, when m3u8 or mp4 video links are detected, automatically adds them to the list",captureScriptFeature2:"Video Name Extraction: Prioritizes extracting video names from page h1, h2, or document.title",captureScriptFeature3:'Jump to Download: Click the "Jump to Download" button to automatically jump to m3u8-dl WebUI and fill in video link and name (format: url|name)',captureScriptFeature4:"Exclusion Rules: In settings, you can configure exclusion URL rule list, matching URLs will not show panel and will not capture video links",captureScriptFeature4a:"Supports plain string matching (contains match)",captureScriptFeature4b:"Supports regular expressions (starts and ends with /, e.g., /example\\.com/)",captureScriptUsage:"Usage Example:",captureScriptUsageStep1:"Visit video playback page",captureScriptUsageStep2:"Script automatically captures video links, displayed in the panel in the bottom right corner",captureScriptUsageStep3:'Click "Jump to Download" button',captureScriptUsageStep4:"Automatically jumps to m3u8-dl WebUI, video link and name are automatically filled",captureScriptUsageStep5:'Click "Start Download" in WebUI',captureScriptExcludeRules:"Exclusion Rule Configuration Example:",captureScriptExcludeRulesHint:"Configure exclusion rules in script settings, one per line:",captureScriptTip:"Tip: The script automatically excludes WebUI address pages to avoid capturing in WebUI pages. You can also manually add more exclusion rules.",latestVersion:"Already latest version, no update needed [{version}]",newVersionAvailable:"New version found [{version}], please visit {url} to download the latest version",versionCheckFailed:"Version check failed: {error}"},confirm:{play:"Confirm Play",playError:"Error: {error}",playConfirmMessage:`This task status is abnormal and may not play normally.
|
|
6
|
+
|
|
7
|
+
Are you sure you want to continue playing?`,delete:"Confirm Delete",deleteMessage:"Are you sure you want to delete {count} selected download tasks?",deleteCache:"Delete cache files",deleteVideo:"Delete video files"},toast:{downloadStarted:"Batch download started",downloadFailed:"Download failed",pauseSuccess:"Download paused",resumeSuccess:"Download resumed",deleteSuccess:"Selected downloads deleted",clearQueueSuccess:"Download queue cleared",clearQueueFailed:"Failed to clear queue",wsConnected:"WebSocket connected",passwordVerified:"Password verified, connection established",extractSuccess:"Extraction complete! Found {count} addresses",extractFailed:"Extraction failed, no M3U8 address found",extractError:"Extraction failed: {error}",enterValidUrl:"Please enter a valid URL address",copySuccess:"Copied to clipboard",copyFailed:"Copy failed",renameSuccess:"Renamed successfully",renameFailed:"Rename failed"},emptyState:{noTasks:"No download tasks",addTask:"Add Download Task"},taskDetail:{title:"Task Detail",name:"Name",status:"Status",progress:"Progress",avgSpeed:"Avg Speed",size:"Size",segments:"Segments",threadNum:"Threads",duration:"Duration",startTime:"Start Time",endTime:"End Time",remainingTime:"Remaining",downloadUrl:"Download URL",saveLocation:"Save Location",relatedInfo:"Related Info",copy:"Copy",close:"Close"},completedList:{title:"Completed Tasks",total:"Total {count} items",sortBy:"Sort by:",sortStartTime:"Start Time",sortEndTime:"End Time",sortName:"Name",sortSize:"Size",sortSaveDir:"Save Location",ascending:"Ascending",descending:"Descending",searchPlaceholder:"Search task name or URL",action:"Action",taskName:"Task Name",fileSize:"File Size",startTime:"Start Time",endTime:"End Time",viewDetail:"View Detail",rename:"Rename",renameTitle:"Rename File",newFilename:"New Filename",filenamePlaceholder:"Enter new filename (without extension)",invalidFilename:'Filename contains invalid characters (cannot contain < > : " / \\ | ? *)',play:"Play",delete:"Delete",noCompletedTasks:"No completed tasks",selected:"Selected {count} items",deleteSelected:"Delete Selected",favorites:"Favorites",showFavorites:"Show Favorites",addFavorite:"Add to Favorites",removeFavorite:"Remove from Favorites",pageSize:"Items per page",pageInfo:"Page {current} of {total}",itemsPerPage:"items",goToPage:"Go",previousPage:"Previous",nextPage:"Next",firstPage:"First",lastPage:"Last"},deleteConfirm:{title:"Confirm Delete",message:"Are you sure you want to delete {count} selected tasks?",deleteCache:"Also delete downloaded cache files",deleteVideo:"Also delete downloaded video files",cancel:"Cancel",confirm:"Confirm Delete"}},Ch={common:{save:"保存",cancel:"取消",confirm:"确认",delete:"删除",edit:"编辑",close:"关闭",ok:"确定",yes:"是",no:"否",loading:"加载中...",success:"成功",error:"错误",warning:"警告",info:"信息",language:"语言",back:"后退",forward:"前进",refresh:"刷新"},layout:{title:"M3U8 下载器",newDownload:"新建下载",downloadManagement:"下载管理",webBrowser:"网页浏览",completed:"已完成",config:"配置设置",about:"关于项目",ariang:"Ariang"},download:{status:{resume:"下载中",pending:"等待中",pause:"已暂停",error:"错误",done:"已完成"},pause:"暂停",resume:"恢复",delete:"删除",clearQueue:"清空队列",batchDownload:"批量下载",selectAll:"全选",selected:"已选择",noTasks:"暂无下载任务",taskDetail:"任务详情"},newDownload:{title:"新建下载",playUrl:"输入视频播放页地址,尝试提取m3u8下载链接",extract:"提取",extracting:"解析中...",subUrlRegex:"播放页链接特征规则",subUrlRegexHint:"用于从视频列表页准确识别播放地址。如:play/845-1-。支持 * 通配符(会被转换为 .+)",videoLinks:"视频链接(每行一个,支持m3u8地址及抖音、微博、皮皮虾视频分享链接)",videoLinksPlaceholder:"格式: URL | 名称(可选)、名称 | URL",videoName:"视频名称",videoNamePlaceholder:"请输入视频名称(可选)",videoNameHint:'若输入多个链接,将依次以"视频名称+第N集"命名',saveDir:"保存位置",saveDirPlaceholder:"请输入保存路径",ignoreSegments:"删除时间片段(适用于移除广告片段的情况)",ignoreSegmentsPlaceholder:"以-分割起止时间,多个以逗号分隔。示例:0-10,20-100",headers:"自定义请求头",headersPlaceholder:`每行一个(微博视频须设置 Cookie),格式:Key: Value。例如:
|
|
8
|
+
Referer: https://example.com
|
|
9
|
+
Cookie: token=123`,startDownload:"开始下载",submitting:"提交中...",enterM3u8Link:"请输入至少一个 M3U8 链接",enterValidM3u8Link:"请输入正确的 M3U8 链接"},webBrowser:{title:"网页浏览提取下载地址",hideBrowser:"隐藏浏览器",showBrowser:"显示浏览器",stop:"停止",urlPlaceholder:"输入网页地址,将自动提取页面中的 m3u8 和 mp4 视频链接",load:"加载",loading:"加载中...",foundVideos:"找到 {count} 个视频链接",clearList:"清空列表",download:"下载",noVideos:"暂无提取到的视频链接,请等待页面加载完成或尝试其他网页",enterUrl:"请输入网页地址",enterValidUrl:"请输入正确的网页地址(以 http:// 或 https:// 开头)",electronOnly:"此功能仅在 Electron 客户端中可用",pageLoadComplete:"页面加载完成,共发现 {count} 个视频链接",pageLoadCompleteNoVideos:"页面加载完成,但未发现视频链接",newVideoFound:"发现新的视频链接: {title}",selectAtLeastOne:"请至少选择一个视频链接",source:"来源",unnamedVideo:"未命名视频"},error:{unauthorized:"未授权,禁止访问",downloadFailed:"下载失败",requestFailed:"请求失败",unknownError:"未知错误",noLocalFile:"未找到本地文件"},taskList:{title:"下载任务",new:"新建",pauseSelected:"暂停选中",resumeSelected:"开始选中",deleteSelected:"删除选中",pauseAll:"全部暂停",resumeAll:"全部开始",clearQueue:"清空队列",searchPlaceholder:"搜索任务名称或URL",searchLabel:"搜索任务",filterByStatus:"按状态筛选",clearFilters:"清除筛选条件",all:"全部",status:{resume:"下载中",pending:"等待中",pause:"已暂停",error:"异常",done:"已完成"},selectAll:"全选/反选",selected:"已选",total:"总数",pending:"等待中",downloading:"下载中"},taskItem:{episode:"第{index}集",play:"播放",localPlay:"边下边播",preview:"预览",detail:"详情",retry:"重试",selectTask:"选择任务:{name}",pause:"暂停",resume:"继续",delete:"删除",duration:"时长",size:"大小",segments:"分片",remaining:"剩余",video:"视频"},config:{title:"配置设置",downloadSettings:"下载设置",threadNum:"单任务并发下载线程数",threadNumPlaceholder:"请输入线程数(1-16)",threadNumHint:"建议不超过 8 个,对单个服务器的并发请求数过多可能会导致被封 IP",maxDownloads:"最多同时下载视频数",maxDownloadsPlaceholder:"请输入最大并发下载数(1-10)",maxDownloadsHint:"最多同时下载任务数量,默认为 3",saveDir:"视频保存目录",saveDirPlaceholder:"请输入保存目录路径",saveDirHint:"默认为当前目录下 downloads 文件夹",delCache:"下载完成后删除ts分片缓存",delCacheLabel:"删除分片文件",delCacheHint:"保存临时文件可以在重复下载时识别缓存",convert:"下载完成后转换格式",convertLabel:"合并转换为 MP4/TS 文件",convertHint:"下载完成后自动合并转换为 MP4 格式",showPreview:"显示预览按钮",showPreviewLabel:"在下载列表中显示预览按钮",showLocalPlay:"显示边下边播按钮",showLocalPlayLabel:"在下载列表中显示边下边播按钮",ffmpegPath:"ffmpeg 可执行文件路径",ffmpegPathPlaceholder:"留空则使用系统 PATH 中的 ffmpeg",ffmpegPathHint:"指定 ffmpeg 可执行文件的完整路径。如果留空,则尝试使用系统 PATH 环境变量中的 ffmpeg",save:"保存配置",saveSuccess:"配置保存成功",saveFailed:"配置保存失败",localConfig:"本地设置",token:"访问密码",tokenPlaceholder:"请输入访问密码",tokenHint:"若服务端设置了访问密码(token),请在此输入",updateLocalConfig:"更新本地配置",localConfigUpdated:"本地配置已更新",enterPassword:"请输入访问密码",passwordRequired:"需要访问密码",passwordRequiredHint:"请输入正确的访问密码以继续",passwordError:"密码错误,请重新输入",passwordProcessFailed:"密码处理失败,请重试",configUpdated:"配置已更新",verifying:"验证中..."},about:{title:"关于项目",projectInfo:"项目信息",license:"许可证",author:"作者",github:"GitHub",issues:"问题反馈",currentVersion:"当前版本",checkVersion:"检测新版本",newVersionFound:"发现新版本![{version}]",projectDescription:"项目简介",projectDescriptionText:"是一个免费开源功能强大的 m3u8 视频批量下载工具,支持多线程下载、边下边播、WebUI 管理、视频解析等多种功能。支持 CLI命令行、浏览器、PC客户端、Docker 部署以及 Node.js API 调用等多种使用方式。",features:"功能特性",coreFeatures:"🚀 核心下载功能",coreFeature1:"多线程下载:采用线程池模式,支持自定义线程数,大幅提升下载速度",coreFeature2:"边下边播模式:支持使用已下载的 ts 缓存文件在线播放,无需等待完整下载",coreFeature3:"批量下载:支持指定多个 m3u8 地址批量下载,支持文本文件批量导入",coreFeature4:"缓存续传:下载失败会保留缓存,重试时只下载失败的片段,节省带宽和时间",coreFeature5:"AES 加密支持:自动识别并解密常见的 AES-128 加密视频流",coreFeature6:"格式转换:自动将下载的 ts 片段合并转换为 mp4 格式(需安装 ffmpeg)",coreFeature7:"多格式支持:支持下载 mp4、mkv 等格式的视频文件",coreFeature8:"片段过滤:支持忽略指定时间段的视频片段(如跳过片头片尾)",webUIFeatures:"🌐 WebUI 下载管理",webUIFeature1:"现代化界面:基于 Vue 3 + TypeScript 构建的现代化 Web 界面",webUIFeature2:"实时进度:通过 WebSocket 实时显示下载进度和状态",webUIFeature3:"任务管理:支持暂停、恢复、删除下载任务,支持批量操作",webUIFeature4:"下载中心:集中管理所有下载任务,支持搜索和筛选",webUIFeature5:"配置管理:可视化配置下载参数(线程数、保存目录等)",webUIFeature6:"访问控制:支持设置访问密码(token)保护服务",parserFeatures:"🎬 视频解析功能",parserFeature1:"多平台支持:支持抖音、微博、皮皮虾等平台的视频分享链接解析",parserFeature2:"无水印下载:自动提取无水印视频地址并下载",parserFeature3:"智能识别:自动识别视频平台并选择合适的解析器",extractFeatures:"🔍 智能提取功能",extractFeature1:"网页提取:支持从视频播放页面自动提取 m3u8 地址",extractFeature2:"深度搜索:支持多层级页面搜索,自动发现视频链接",extractFeature3:"批量提取:一次提取多个视频链接,支持批量下载",searchFeatures:"📺 视频搜索功能",searchFeature1:"采集站支持:支持标准采集站 API,通过命令行交互搜索和下载",searchFeature2:"缓存机制:自动缓存搜索历史,支持继续未完成的下载",usageFeatures:"💻 多种使用方式",usageFeature1:"命令行工具:提供完整的 CLI 命令,支持各种参数配置",usageFeature2:"Node.js API:提供编程接口,方便集成到其他项目",usageFeature3:"Web 服务:支持启动为 Web 服务,通过浏览器管理下载",usageFeature4:"Docker 部署:提供 Docker 镜像,一键部署到服务器",usageFeature5:"Electron 桌面应用:支持打包为桌面应用,包含内置浏览器功能",i18nFeatures:"🌍 国际化支持",i18nFeature1:"支持中文和英文多语言",i18nFeature2:"命令行和 WebUI 均支持语言切换",installation:"安装使用",globalInstall:"全局安装:",useNpx:"使用 npx:",desktopApp:"桌面应用",desktopAppText:"可访问如下地址下载最新版本:",desktopAppLink1:"https://m3u8-player.lzw.me/download.html",desktopAppLink2:"https://github.com/lzwme/m3u8-dl/releases",docker:"Docker 部署",dockerCommand:"使用 Docker 命令运行:",dockerCompose:"使用 docker-compose 运行:",dockerDeployComplete:"部署完成后,访问 {url} 即可使用 WebUI 界面。",captureScript:"🎬 浏览器脚本 (m3u8-capture)",captureScriptDescription:"m3u8-capture 是一个浏览器用户脚本,可以自动抓取网页中的 m3u8 和 mp4 视频链接,并快速跳转到 WebUI 进行下载。",captureScriptInstall:"安装步骤:",captureScriptInstallStep1:"安装浏览器扩展:",captureScriptInstallStep1Or:" 或 ",captureScriptInstallStep2:"安装脚本:",captureScriptInstallStep2a:"打开扩展管理面板",captureScriptInstallStep2b:'点击"添加新脚本"',captureScriptInstallStep2c:"复制以下链接内容或直接访问(任选其一):",captureScriptInstallStep2cOption1:"GitHub 地址:",captureScriptInstallStep2cOption1Note:"最新版本",captureScriptInstallStep2cOption2:"本地服务地址:",captureScriptInstallStep3:"配置 WebUI 地址:",captureScriptInstallStep3a:"访问任意网页,点击页面右上角的 🎬 图标打开抓取面板",captureScriptInstallStep3b:"点击设置按钮 ⚙️",captureScriptInstallStep3c:"输入您的 m3u8-dl WebUI 地址(如 http://localhost:6600)并保存",captureScriptFeatures:"功能说明:",captureScriptFeature1:"自动抓取:脚本会自动监控网页中的网络请求,当检测到 m3u8 或 mp4 视频链接时,自动添加到列表中",captureScriptFeature2:"视频名称提取:优先从页面的 h1、h2 或 document.title 提取视频名称",captureScriptFeature3:'跳转下载:点击"跳转下载"按钮,会自动跳转到 m3u8-dl WebUI 并填充视频链接和名称(格式:url|name)',captureScriptFeature4:"排除规则:在设置中可以配置排除网址规则列表,匹配的网址将不展示面板且不抓取视频链接",captureScriptFeature4a:"支持普通字符串匹配(包含匹配)",captureScriptFeature4b:"支持正则表达式(以 / 开头和结尾,如 /example\\.com/)",captureScriptUsage:"使用示例:",captureScriptUsageStep1:"访问视频播放页面",captureScriptUsageStep2:"脚本自动抓取视频链接,显示在右下角的面板中",captureScriptUsageStep3:'点击"跳转下载"按钮',captureScriptUsageStep4:"自动跳转到 m3u8-dl 的 WebUI,视频链接和名称已自动填充",captureScriptUsageStep5:'在 WebUI 中点击"开始下载"即可',captureScriptExcludeRules:"排除规则配置示例:",captureScriptExcludeRulesHint:"在脚本设置中配置排除规则,每行一个:",captureScriptTip:"提示:脚本会自动排除 WebUI 地址页面,避免在 WebUI 页面中抓取。您也可以手动添加更多排除规则。",latestVersion:"已是最新版本,无需更新[{version}]",newVersionAvailable:"发现新版本[{version}],请前往 {url} 下载最新版本",versionCheckFailed:"版本检查失败:{error}"},confirm:{play:"确认播放",playError:"错误信息:{error}",playConfirmMessage:`该任务状态为异常,可能无法正常播放。
|
|
10
|
+
|
|
11
|
+
确定要继续播放吗?`,delete:"确认删除",deleteMessage:"确定要删除选中的 {count} 个下载任务吗?",deleteCache:"删除缓存文件",deleteVideo:"删除视频文件"},toast:{downloadStarted:"批量下载已开始",downloadFailed:"下载失败",pauseSuccess:"已暂停下载",resumeSuccess:"已恢复下载",deleteSuccess:"已删除选中的下载",clearQueueSuccess:"已清空下载队列",clearQueueFailed:"清空队列失败",wsConnected:"ws连接成功",passwordVerified:"密码验证成功,连接已建立",extractSuccess:"解析完成!获取到 {count} 个地址",extractFailed:"解析失败,未找到 M3U8 地址",extractError:"解析失败: {error}",enterValidUrl:"请输入正确的 URL 地址",copySuccess:"已复制到剪贴板",copyFailed:"复制失败",renameSuccess:"重命名成功",renameFailed:"重命名失败"},emptyState:{noTasks:"暂无下载任务",addTask:"添加下载任务"},taskDetail:{title:"任务详情",name:"名称",status:"状态",progress:"进度",avgSpeed:"平均速度",size:"大小",segments:"分片",threadNum:"并发线程",duration:"时长",startTime:"开始时间",endTime:"结束时间",remainingTime:"预估还需",downloadUrl:"下载地址",saveLocation:"保存位置",relatedInfo:"相关信息",copy:"复制",close:"关闭"},completedList:{title:"已完成任务",total:"共 {count} 项",sortBy:"排序方式:",sortStartTime:"开始时间",sortEndTime:"结束时间",sortName:"名称",sortSize:"大小",sortSaveDir:"保存位置",ascending:"升序",descending:"降序",searchPlaceholder:"搜索任务名称或URL地址",action:"操作",taskName:"任务名称",fileSize:"文件大小",startTime:"开始时间",endTime:"结束时间",viewDetail:"查看详情",rename:"重命名",renameTitle:"重命名文件",newFilename:"新文件名",filenamePlaceholder:"请输入新文件名(不含扩展名)",invalidFilename:'文件名包含非法字符(不能包含 < > : " / \\ | ? *)',play:"播放",delete:"删除",noCompletedTasks:"暂无已完成的任务",selected:"已选择 {count} 项",deleteSelected:"删除选中",favorites:"收藏",showFavorites:"显示收藏",addFavorite:"添加收藏",removeFavorite:"取消收藏",pageSize:"每页显示",pageInfo:"第 {current} 页,共 {total} 页",itemsPerPage:"条",goToPage:"跳转",previousPage:"上一页",nextPage:"下一页",firstPage:"首页",lastPage:"末页"},deleteConfirm:{title:"确认删除",message:"确定要删除选中的 {count} 个任务吗?",deleteCache:"同时删除已下载的缓存文件",deleteVideo:"同时删除已下载的视频文件",cancel:"取消",confirm:"确认删除"}},ul={"zh-CN":Ch,en:Eh};function Lc(){if(typeof window>"u")return"en";const e=localStorage.getItem("language");if(e){if(e==="zh")return localStorage.setItem("language","zh-CN"),"zh-CN";if(e in ul)return e}const s=(navigator.language||navigator.userLanguage||"en").toLowerCase();if(s.startsWith("zh"))return"zh-CN";const n=s.split("-")[0];return n in ul?n:"en"}const Tc=hh({legacy:!1,locale:Lc(),fallbackLocale:"en",messages:ul}),Lh="";function Th(){if(typeof window>"u")return"en";try{return Tc.global.locale.value}catch{return Lc()}}function Ih(e){const t={"content-type":"application/json"};return e&&(t.authorization=e),t}function Ph(e){const t=e.includes("?")?"&":"?";return`${e}${t}lang=${Th()}`}async function Ic(e,t={}){const{method:s="GET",headers:n={},body:o}=t,l=localStorage.getItem("token")||"";try{const i=await(await fetch(Ph(`${Lh}${e}`),{method:s,headers:{...Ih(l),...n},body:typeof o=="string"?o:o?JSON.stringify(o):void 0})).json();return i.code&&console.error(`[${e}] 请求失败:`,i.message),i}catch(r){return console.error(`请求失败: ${e}`,r),{code:-1,message:r instanceof Error?r.message:"请求失败"}}}function Pc(e){return Ic(e,{method:"GET"})}function fs(e,t){return Ic(e,{method:"POST",body:t})}async function Dh(){const e=await Pc("/api/config");return e.code===0&&e.data?e.data:{}}async function Ah(e){return fs("/api/config",e)}async function Dc(){const e=await Pc("/api/tasks");return e.code===0&&e.data?e.data:{}}async function Nh(e){return fs("/api/download",{list:e})}async function Rh(e,t=!1){return fs("/api/pause",{urls:e,all:t})}async function Fh(e,t=!1){return fs("/api/resume",{urls:e,all:t})}async function Ac(e,t=!0,s=!0){return fs("/api/delete",{urls:e,deleteCache:t,deleteVideo:s})}async function Oh(e,t){return fs("/api/rename",{url:e,newFilename:t})}async function Uh(e,t,s){return fs("/api/getM3u8Urls",{url:e,headers:t,subUrlRegex:s})}async function Mh(){return fs("/api/queue/clear",{})}const $n=uo("config",()=>{const e=G({threadNum:0,saveDir:"",delCache:!0,convert:!0,showPreview:!0,showLocalPlay:!0,maxDownloads:3,ffmpegPath:""}),t=G("");async function s(){try{const o=await Dh();return o&&typeof o=="object"&&"saveDir"in o?(Object.assign(e.value,o),!0):!1}catch(o){return console.error("加载配置失败:",o),!1}}async function n(){return await Ah(e.value)}return{config:e,token:t,loadConfig:s,updateConfig:n}}),bo=uo("server",()=>{const e=G({version:"{{version}}",ariang:!1,newVersion:"",appUpdateMessage:""});function t(s){Object.assign(e.value,s)}return{serverInfo:e,updateServerInfo:t}}),ps=uo("tasks",()=>{const e=G({}),t=G([]),s=G({queueLength:0,activeDownloads:[],maxConcurrent:5}),n=G(""),o=G(""),l=fe(()=>{let x=Object.values(e.value);if(x=x.filter(S=>!(S.status==="done"||S.progress!==void 0&&S.progress>=100)),n.value){const S=n.value.toLowerCase();x=x.filter(I=>(I.localVideo||I.filename||I.dlOptions?.filename||I.url).toLowerCase().includes(S)||I.url.toLowerCase().includes(S))}o.value&&(x=x.filter(S=>S.status===o.value));const P={resume:0,pending:1,pause:2,error:3,done:4};x.sort((S,I)=>{const w=P[S.status]-P[I.status];return w!==0?w:S.status==="done"?(I.filename||"").localeCompare(S.filename||""):(S.startTime||0)-(I.startTime||0)});const _={queueLength:0,activeDownloads:[],maxConcurrent:s.value.maxConcurrent};return x.forEach(S=>{S.showName=S.filename||S.dlOptions?.filename||S.localVideo||S.url,S.status==="pending"?_.queueLength++:S.status==="resume"&&_.activeDownloads.push(S.url)}),(_.queueLength!==s.value.queueLength||_.activeDownloads.length!==s.value.activeDownloads.length)&&(s.value=_),x});function r($){console.log("[TasksStore] setTasks 被调用,任务数量:",Object.keys($||{}).length),$&&typeof $=="object"?(e.value=$,console.log("[TasksStore] 任务已更新,当前任务数量:",Object.keys(e.value).length)):console.warn("[TasksStore] setTasks 收到无效数据:",$)}function i($,x){e.value[$]&&(e.value[$]={...e.value[$],...x})}function c($){$.forEach(({url:x,data:P})=>{e.value[x]&&(e.value[x]={...e.value[x],...P})})}function u($){$.forEach(x=>{delete e.value[x]})}function d($){const x=t.value.indexOf($);x===-1?t.value.push($):t.value.splice(x,1)}function f(){const $=t.value.length===l.value.length;t.value=$?[]:l.value.map(x=>x.url)}function g(){t.value=[]}function v(){n.value="",o.value=""}return{tasks:e,selectedTasks:t,queueStatus:s,searchQuery:n,statusFilter:o,filteredTasks:l,setTasks:r,updateTask:i,updateTasks:c,deleteTasks:u,toggleTaskSelection:d,toggleSelectAll:f,clearSelection:g,clearFilters:v}}),Vh={success:"fa-check-circle text-green-600",error:"fa-times-circle text-red-600",warning:"fa-exclamation-triangle text-yellow-600",info:"fa-info-circle text-blue-500"};function me(e){const t=typeof e=="string"?{text:e}:e,s=t.type||"success",n=t.duration??3e3,o=document.createElement("div");o.className=`custom-toast custom-toast-${s}`,o.innerHTML=[`<i class="custom-toast-icon mr-2 fa ${Vh[s]}"></i>`,`<span class="break-all">${t.text||""}</span>`,'<i class="custom-toast-close fa fa-close fixed right-2 cursor-pointer text-lg" onclick="this.parentElement.remove()"></i>'].join(""),document.body.appendChild(o),setTimeout(()=>o.classList.add("show"),10);const l=()=>{o.classList.remove("show"),o.classList.add("hide"),setTimeout(()=>o.remove(),300)};return n>0&&setTimeout(()=>l(),n),{element:o,close:l}}let nt=null,An=3e3,Gt=null,dl=null,bs=null,zn="",Ts=!1;function jh(e,t=!1,s){if(zn=e,Ts=t,s&&(bs=s),nt){try{nt.close()}catch{}nt=null}Gt&&(clearTimeout(Gt),Gt=null),Hl(zn)}function Hl(e){if(nt&&nt.readyState===WebSocket.OPEN)return;if(nt&&nt.readyState!==WebSocket.OPEN){try{nt.close()}catch{}nt=null}const s=`${location.protocol==="https:"?"wss":"ws"}://${location.host}/ws?token=${e}`,n=new WebSocket(s);nt=n,n.onmessage=o=>{try{const{type:l,data:r}=JSON.parse(o.data),i=ps(),c=bo();switch(l){case"serverInfo":c.updateServerInfo(r),Ts&&(me({text:"密码验证成功,连接已建立",type:"success"}),Ts=!1,bs&&(bs(!0),bs=null));break;case"tasks":console.log("[WebSocket] 收到任务数据:",r),r&&typeof r=="object"&&(i.setTasks(r),console.log("[WebSocket] 任务数据已更新,任务数量:",Object.keys(r).length));break;case"progress":{(Array.isArray(r)?r:[r]).forEach(d=>{d.url&&i.updateTask(d.url,d)});break}case"delete":Array.isArray(r)&&i.deleteTasks(r);break;case"queueStatus":r&&(i.queueStatus=r);break}}catch(l){console.error("WebSocket 消息解析失败:",l)}},n.onopen=()=>{Ts||me({text:"WebSocket connected",type:"success"}),An=3e3},n.onclose=o=>{if(console.error("ws连接关闭:",o.code,o.reason),nt=null,o.code===1008){Ts?(Ts=!1,bs&&(bs(!1),bs=null)):dl&&dl();return}me({text:`Connection lost, will retry in ${An/1e3}s...`,type:"error"}),Gt&&clearTimeout(Gt),Gt=window.setTimeout(()=>{An+=1e3,Hl(zn)},An)},n.onerror=o=>{console.error("WebSocket 错误:",o)}}function Bl(e,t){const s=G(null);t&&(dl=t),zn=e;function n(){Hl(e),nt&&(s.value=nt)}function o(){Gt&&(clearTimeout(Gt),Gt=null),nt&&(nt.close(),nt=null),s.value=null}return{ws:s,connect:n,disconnect:o}}const fl="m3u8-dl-version-check-cache",Wh=360*60*1e3;function Hh(){try{const e=localStorage.getItem(fl);if(!e)return null;const t=JSON.parse(e);return Date.now()-t.timestamp>Wh?(localStorage.removeItem(fl),null):t}catch(e){return console.error("读取版本缓存失败:",e),null}}function Bh(e){try{const t={version:e,timestamp:Date.now()};localStorage.setItem(fl,JSON.stringify(t))}catch(t){console.error("保存版本缓存失败:",t)}}function Nc(){const{t:e,locale:t}=Ge(),s=bo();async function n(o=!0,l=!1){try{let r;if(l||(r=Hh()?.version),!r){if(window.electron){const c=await(await fetch("https://api.github.com/repos/lzwme/m3u8-dl/releases/latest")).json();c.tag_name&&(r=c.tag_name.replace(/^v/,""))}else{const c=await(await fetch(`https://registry.${t.value==="zh-CN"?"npmmirror":"npmjs"}.com/@lzwme/m3u8-dl/latest`)).json();c.version&&(r=c.version)}r&&Bh(r)}if(r){if(!(r!==s.serverInfo.version))return o&&me({text:e("about.latestVersion",{version:r}),type:"success"}),!1;if(s.updateServerInfo({newVersion:r}),window.electron)window.electron.ipc.send("checkForUpdate");else if(o){const c=t.value==="zh-CN"?"https://m3u8-player.lzw.me/download.html":"https://github.com/lzwme/m3u8-dl/releases";me({text:e("about.newVersionAvailable",{version:r,url:c}),type:"success",duration:1e4})}return!0}return!1}catch(r){return console.error("检查新版本失败:",r),o&&me({text:e("about.versionCheckFailed",{error:r instanceof Error?r.message:e("error.unknownError")}),type:"error"}),!1}}return{checkNewVersion:n}}const Gh={key:0,class:"fixed inset-0 modal-overlay flex items-center justify-center z-[9999] p-4"},Kh={class:"bg-white rounded-lg shadow-xl max-w-md w-full"},qh={class:"p-6"},zh={class:"flex items-center mb-4"},Yh={class:"text-xl font-semibold text-gray-900"},Xh={class:"text-sm text-gray-500 mt-1"},Qh={class:"mb-6"},Jh={class:"block text-sm font-medium text-gray-700 mb-2"},Zh=["placeholder"],eg={key:0,class:"mt-2 text-sm text-red-600"},tg={class:"flex justify-end"},sg=["disabled"],ng=Fe({__name:"PasswordDialog",props:{visible:{type:Boolean}},emits:["confirm"],setup(e,{expose:t,emit:s}){const{t:n}=Ge(),o=e,l=s,r=G(""),i=G(""),c=G(!1),u=G(null);He(()=>o.visible,f=>{f&&(r.value="",i.value="",c.value=!1,is(()=>{u.value?.focus()}))});function d(){c.value||!r.value.trim()||(c.value=!0,i.value="",l("confirm",r.value.trim()))}return t({setError:f=>{i.value=f,c.value=!1},reset:()=>{r.value="",i.value="",c.value=!1}}),(f,g)=>e.visible?(K(),q("div",Gh,[a("div",Kh,[a("div",qh,[a("div",zh,[g[1]||(g[1]=a("div",{class:"flex-shrink-0 w-10 h-10 bg-red-100 rounded-full flex items-center justify-center mr-3"},[a("i",{class:"fas fa-lock text-red-600"})],-1)),a("div",null,[a("h2",Yh,m(f.$t("config.passwordRequired")),1),a("p",Xh,m(f.$t("config.passwordRequiredHint")),1)])]),a("div",Qh,[a("label",Jh,m(f.$t("config.token")),1),De(a("input",{ref_key:"passwordInput",ref:u,"onUpdate:modelValue":g[0]||(g[0]=v=>r.value=v),type:"password",maxlength:"256",class:"w-full p-3 border border-gray-300 rounded-lg focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-transparent",placeholder:f.$t("config.tokenPlaceholder"),onKeyup:Os(d,["enter"])},null,40,Zh),[[Xe,r.value]]),i.value?(K(),q("p",eg,m(i.value),1)):te("",!0)]),a("div",tg,[a("button",{onClick:d,disabled:c.value||!r.value.trim(),class:"px-6 py-2 bg-blue-500 hover:bg-blue-600 text-white rounded-lg transition-colors disabled:opacity-50 disabled:cursor-not-allowed"},m(c.value?f.$t("config.verifying"):f.$t("common.confirm")),9,sg)])])])])):te("",!0)}});function og(e){if(!e)return"";let t=e.trim();const s=t.match(/《([^》]+)》/);return s&&(t=s[1]),t.includes(" - ")&&(t=t.split(" - ")[0].trim()),t=t.replace(/\s*-\s*(在线观看|免费观看|高清|HD|1080P|720P|4K)/gi,""),t=t.replace(/\s*\[.*?\]/g,""),t=t.replace(/\s*\(.*?\)/g,""),t=t.replace(/\s*(完整版|未删减版|国语版|粤语版|中字|无字幕|高清版|标清版)$/gi,""),t=t.replace(/\s+/g," ").trim(),t||e.trim()}function Ea(e){const t=String(e||"").split(`
|
|
12
|
+
`).map(o=>{const l=o.split(/[|$]+/).map(c=>c.trim());let r=l[0],i=l[1]||"";return i.startsWith("http")&&([i,r]=[r,i]),{url:r,name:i}}).filter(o=>o.url.startsWith("http")),s=new Map;t.forEach(o=>{s.set(o.name,(s.get(o.name)||0)+1)});const n=new Map;return t.map(o=>{if((s.get(o.name)||0)>1){const r=(n.get(o.name)||0)+1;if(n.set(o.name,r),r>1)return{...o,name:`${o.name} (${r})`}}return o})}const lg={class:"bg-white rounded-lg p-6 max-w-4xl w-full max-h-[98vh] overflow-y-auto"},rg={class:"flex justify-between items-center mb-4"},ag={class:"text-xl text-center w-full font-semibold"},ig={class:"text-left"},cg={class:"flex flex-row gap-4"},ug=["placeholder"],dg={class:"flex flex-row gap-1"},fg=["disabled"],pg={class:"mt-4"},mg=["placeholder"],hg={class:"mt-1 text-sm text-gray-500"},gg={class:"mt-4"},bg={class:"block text-sm font-bold text-gray-700 mb-1"},vg={key:0,class:"text-gray-300 font-normal"},yg=["placeholder"],_g={class:"mt-4"},wg={class:"flex flex-row gap-2 items-center"},xg={class:"block text-sm font-bold text-gray-700 mb-1"},kg=["placeholder"],Sg={class:"ml-2 mt-1 text-sm text-gray-500"},$g={class:"mt-4 flex flex-row gap-2 items-center"},Eg={class:"block text-sm font-bold text-gray-700 mb-1"},Cg=["placeholder"],Lg={class:"mt-4"},Tg={class:"block text-sm font-bold text-gray-700 mb-1"},Ig=["placeholder"],Pg={class:"mt-4"},Dg={class:"block text-sm font-bold text-gray-700 mb-1"},Ag=["placeholder"],Ng={class:"flex justify-end space-x-4 mt-6"},Rg=["disabled"],Fg=Fe({__name:"NewDownloadDialog",props:{visible:{type:Boolean},initialData:{}},emits:["close"],setup(e,{expose:t,emit:s}){const{t:n}=Ge(),o=e,l=s,r=$n(),i=ps(),c=G(""),u=G(""),d=G(""),f=G(r.config.saveDir||""),g=G(""),v=G(""),$=G(""),x=G(!1),P=G(!1),_=fe(()=>{const T=u.value.split(`
|
|
13
|
+
`).map(k=>k.trim()).filter(k=>k.length>0);return new Set(T).size});He(()=>o.visible,T=>{if(T){if(f.value=r.config.saveDir||"",o.initialData&&o.initialData.url){const A=o.initialData.url;if(A.includes("|")){const k=Ea(A).map(({url:R,name:H})=>H?`${R} | ${og(H)}`:R);u.value=k.join(`
|
|
14
|
+
`)}else u.value=A}}else c.value="",u.value="",d.value="",g.value="",v.value="",$.value=""});async function S(){const T=c.value.trim();if(!/^https?:/.test(T)){me({text:n("toast.enterValidUrl"),type:"error"});return}x.value=!0;try{const A=await Uh(T,v.value.trim(),$.value.trim()||void 0);A.code===0&&Array.isArray(A.data)&&A.data.length>0?(u.value=A.data.map(k=>k.join(" | ")).join(`
|
|
15
|
+
`),me({text:A.message||n("toast.extractSuccess",{count:A.data.length}),type:"success"})):me({text:A.message||n("toast.extractFailed"),type:"error"})}catch(A){me({text:n("toast.extractError",{error:A instanceof Error?A.message:n("error.unknownError")}),type:"error"})}finally{x.value=!1}}function I(){l("close")}async function w(){const T=u.value.trim();if(!T){me({text:n("newDownload.enterM3u8Link"),type:"error"});return}const A=Ea(T);if(!A.length){me({text:n("newDownload.enterValidM3u8Link"),type:"error"});return}let k=f.value;A.length>1&&d.value&&!k.includes(d.value)&&(k||(k=r.config.saveDir),k=k.replace(/\/?$/,"")+"/"+d.value);const R=A.map((H,ne)=>({url:H.url,filename:H.name||(d.value?`${d.value}${A.length>1?n("taskItem.episode",{index:ne+1}):""}`:""),saveDir:k,headers:v.value.trim()||void 0,ignoreSegments:g.value.trim()||void 0}));P.value=!0;try{R.forEach(ne=>{/\.html?$/.test(ne.url)||i.updateTask(ne.url,{status:"resume",progress:0,speed:0,remainingTime:0,size:0})});const H=await Nh(R);H.code?me({text:H.message||n("toast.downloadFailed"),type:"error"}):(me({text:H.message||n("toast.downloadStarted"),type:"success"}),I())}catch(H){console.error("批量下载失败:",H),me({text:`${n("toast.downloadFailed")}: ${H instanceof Error?H.message:n("error.unknownError")}`,type:"error"})}finally{P.value=!1}}return t({handleSubmit:w}),(T,A)=>e.visible?(K(),q("div",{key:0,class:"fixed inset-0 modal-overlay flex items-center justify-center z-50",onClick:yt(I,["self"])},[a("div",lg,[a("div",rg,[a("h2",ag,m(T.$t("newDownload.title")),1),a("button",{onClick:I,class:"text-gray-500 hover:text-gray-700"},[...A[7]||(A[7]=[a("i",{class:"fas fa-times"},null,-1)])])]),a("div",ig,[a("div",cg,[De(a("input",{"onUpdate:modelValue":A[0]||(A[0]=k=>c.value=k),type:"text",placeholder:T.$t("newDownload.playUrl"),autocomplete:"off",class:"flex-1 border border-gray-300 rounded px-3 py-2 focus:outline-none focus:ring-2 focus:ring-blue-400"},null,8,ug),[[Xe,c.value]]),a("div",dg,[a("button",{onClick:S,disabled:x.value,class:"px-2 py-1 bg-blue-600 text-white rounded hover:bg-blue-700 focus:outline-none disabled:opacity-50"},m(x.value?T.$t("newDownload.extracting"):T.$t("newDownload.extract")),9,fg)])]),a("div",pg,[De(a("input",{"onUpdate:modelValue":A[1]||(A[1]=k=>$.value=k),class:"w-full p-2 border rounded-lg focus:ring-blue-500",placeholder:T.$t("newDownload.subUrlRegex")},null,8,mg),[[Xe,$.value]]),a("p",hg,m(T.$t("newDownload.subUrlRegexHint")),1)]),a("div",gg,[a("label",bg,[de(m(T.$t("newDownload.videoLinks"))+" ",1),_.value>2?(K(),q("span",vg,"("+m(_.value)+")",1)):te("",!0)]),De(a("textarea",{"onUpdate:modelValue":A[2]||(A[2]=k=>u.value=k),class:"w-full p-2 border rounded-lg focus:ring-blue-500",rows:"3",placeholder:T.$t("newDownload.videoLinksPlaceholder")},null,8,yg),[[Xe,u.value]])]),a("div",_g,[a("div",wg,[a("label",xg,m(T.$t("newDownload.videoName")),1),De(a("input",{"onUpdate:modelValue":A[3]||(A[3]=k=>d.value=k),class:"flex-1 p-2 border rounded-lg focus:border-blue-500",placeholder:T.$t("newDownload.videoNamePlaceholder")},null,8,kg),[[Xe,d.value]])]),a("p",Sg,m(T.$t("newDownload.videoNameHint")),1)]),a("div",$g,[a("label",Eg,m(T.$t("newDownload.saveDir")),1),De(a("input",{"onUpdate:modelValue":A[4]||(A[4]=k=>f.value=k),class:"flex-1 p-2 border rounded-lg focus:ring-blue-500",placeholder:T.$t("newDownload.saveDirPlaceholder")},null,8,Cg),[[Xe,f.value]])]),a("div",Lg,[a("label",Tg,m(T.$t("newDownload.ignoreSegments")),1),De(a("input",{"onUpdate:modelValue":A[5]||(A[5]=k=>g.value=k),class:"w-full p-2 border rounded-lg focus:ring-blue-500",placeholder:T.$t("newDownload.ignoreSegmentsPlaceholder")},null,8,Ig),[[Xe,g.value]])]),a("div",Pg,[a("label",Dg,m(T.$t("newDownload.headers")),1),De(a("textarea",{"onUpdate:modelValue":A[6]||(A[6]=k=>v.value=k),class:"w-full p-2 border rounded-lg focus:ring-blue-500",rows:"3",placeholder:T.$t("newDownload.headersPlaceholder")},null,8,Ag),[[Xe,v.value]])])]),a("div",Ng,[a("button",{onClick:I,class:"px-6 py-2 text-gray-600 hover:bg-gray-100 rounded-lg border"},m(T.$t("common.cancel")),1),a("button",{onClick:w,disabled:P.value,class:"px-6 py-2 bg-blue-500 hover:bg-blue-600 text-white rounded-lg disabled:opacity-50 disabled:cursor-not-allowed"},m(P.value?T.$t("newDownload.submitting"):T.$t("newDownload.startDownload")),9,Rg)])])])):te("",!0)}}),Og={id:"app"},Ug=Fe({__name:"App",setup(e){const t=tc(),s=ec(),n=$n(),{checkNewVersion:o}=Nc();let l=null;const r=G(!1),i=G(null),c=G(!1),u=G(void 0),d=G(null),f=G(!1),g=G(!1);function v(I){u.value=I,c.value=!0}sn("showGlobalNewDownload",v);function $(){c.value=!1,u.value=void 0,f.value=!1,g.value=!1,(t.query.action==="new"||t.query.url||t.query.autoStart||t.query.autoClose)&&s.replace({query:{}})}He(c,async I=>{I&&f.value&&(await is(),setTimeout(()=>{const w=g.value;d.value?.handleSubmit().then(()=>{w&&setTimeout(()=>{try{window.close()}catch{console.log("[App] 无法自动关闭页面,请手动关闭"),me("下载已开始,无法自动关闭页面,请手动关闭")}},1e3)}),f.value=!1},500))});function x(){if(t.query.action==="new"&&t.query.url){const I=t.query.url;f.value=t.query.autoStart==="1",g.value=t.query.autoClose==="1",v({url:decodeURIComponent(I),title:t.query.title||""})}}He(()=>t.query,()=>{x()},{immediate:!0});function P(){r.value=!0}Xt(async()=>{const I=localStorage.getItem("token")||"";I&&(n.token=I);try{await n.loadConfig()}catch(k){console.log("[App] 配置加载失败,使用本地 token:",k)}const w=n.token||localStorage.getItem("token")||"";w&&!n.token&&(n.token=w);const{connect:T,disconnect:A}=Bl(w,P);l=A,T(),setTimeout(()=>o(!1),5e3)}),ks(()=>{l&&l()});function _(){}async function S(I){if(!I.trim()){i.value?.setError("请输入访问密码");return}try{let w=I.trim();typeof window<"u"&&window.md5?w=window.md5(w).slice(0,8):w=btoa(w).replace(/[^a-zA-Z0-9]/g,"").slice(0,8),n.token=w,localStorage.setItem("token",w),jh(w,!0,T=>{T?(r.value=!1,i.value?.reset()):i.value?.setError("密码错误,请重新输入")}),i.value?.reset()}catch(w){i.value?.setError("密码处理失败,请重试"),console.error("密码处理失败:",w)}}return(I,w)=>{const T=Ku("router-view");return K(),q("div",Og,[xe(T),xe(ng,{visible:r.value,onClose:_,onConfirm:S,ref_key:"passwordDialogRef",ref:i},null,8,["visible"]),xe(Fg,{visible:c.value,"initial-data":u.value,onClose:$,ref_key:"newDownloadDialogRef",ref:d},null,8,["visible","initial-data"])])}}}),Mg="/logo.png",Vg={class:"language-switcher"},jg=["value","title"],Wg=Fe({__name:"LanguageSwitcher",setup(e){const{locale:t}=Ge(),s=fe({get:()=>t.value,set:o=>{t.value=o,localStorage.setItem("language",o)}});function n(o){const l=o.target;s.value=l.value}return(o,l)=>(K(),q("div",Vg,[a("select",{value:s.value,onChange:n,class:"px-3 py-2 border rounded-lg focus:ring-blue-500 focus:border-blue-500 bg-white",title:o.$t("common.language")},[...l[0]||(l[0]=[a("option",{value:"zh-CN"},"中文",-1),a("option",{value:"en"},"English",-1)])],40,jg)]))}}),Gl={isElectron:typeof window<"u"&&!!window.electron},Hg={class:"app-layout"},Bg={class:"mb-8"},Gg={class:"flex items-center mb-4"},Kg=["alt"],qg={class:"text-xl font-bold text-gray-800"},zg={class:"space-y-2"},Yg={class:"mt-4 pt-4 border-t"},Xg=Fe({__name:"Layout",emits:["new-download"],setup(e,{emit:t}){const s=ec(),n=tc(),o=bo(),l=G(window.innerWidth<=768),r=G("download"),i=fe(()=>Gl.isElectron),c=t,u=rt("showGlobalNewDownload");function d(){l.value=!l.value}function f(x){if(console.log("[Layout] switchSection 被调用,section:",x,"当前路径:",n.path),x==="ariang"){g();return}const P=`/page/${x}`;if(console.log("[Layout] 准备导航到:",P),n.path===P){console.log("[Layout] 已在目标路径,跳过导航"),r.value=x;return}r.value=x,s.push(P).then(()=>{console.log("[Layout] 导航成功,当前路径:",n.path,"当前名称:",n.name),n.name&&(r.value=n.name)}).catch(_=>{_.name!=="NavigationDuplicated"?console.error("[Layout] 路由导航失败:",_):console.log("[Layout] 导航重复,已忽略")}),window.innerWidth<=768&&(l.value=!0)}function g(){const P=o.serverInfo.ariang?"./ariang/":"http://lzw.me/x/ariang/";window.open(P)}function v(){u?u():c("new-download")}function $(){window.innerWidth>768?l.value=!1:l.value=!0}return He(()=>n.name,x=>{x&&(r.value=x)},{immediate:!0}),He(()=>n.path,x=>{x.startsWith("/page/download")?r.value="download":x.startsWith("/page/web-browser")?r.value="web-browser":x.startsWith("/page/completed")?r.value="completed":x.startsWith("/page/config")?r.value="config":x.startsWith("/page/about")&&(r.value="about")},{immediate:!0}),Xt(()=>{window.addEventListener("resize",$),$()}),ks(()=>{window.removeEventListener("resize",$)}),(x,P)=>(K(),q("div",Hg,[a("button",{class:"menu-toggle",onClick:d},[a("i",{class:Ne(["fas",l.value?"fa-bars":"fa-times"])},null,2)]),a("div",{class:Ne(["sidebar p-4",{show:!l.value}])},[a("div",Bg,[a("div",Gg,[a("img",{src:Mg,alt:x.$t("layout.title"),class:"w-8 h-8 mr-2"},null,8,Kg),a("h1",qg,m(x.$t("layout.title")),1)]),a("button",{onClick:v,class:"w-full bg-blue-500 hover:bg-blue-600 text-white p-2 rounded-lg flex items-center justify-center transition-colors"},[P[5]||(P[5]=a("i",{class:"fas fa-plus mr-2"},null,-1)),de(m(x.$t("layout.newDownload")),1)])]),a("nav",zg,[a("button",{onClick:P[0]||(P[0]=_=>f("download")),class:Ne(["nav-item w-full p-3 rounded-lg flex items-center",{active:r.value==="download"}])},[P[6]||(P[6]=a("i",{class:"fas fa-download mr-3"},null,-1)),de(m(x.$t("layout.downloadManagement")),1)],2),i.value?(K(),q("button",{key:0,onClick:P[1]||(P[1]=_=>f("web-browser")),class:Ne(["nav-item w-full p-3 rounded-lg flex items-center",{active:r.value==="web-browser"}])},[P[7]||(P[7]=a("i",{class:"fas fa-globe mr-3"},null,-1)),de(m(x.$t("layout.webBrowser")),1)],2)):te("",!0),a("button",{onClick:P[2]||(P[2]=_=>f("completed")),class:Ne(["nav-item w-full p-3 rounded-lg flex items-center",{active:r.value==="completed"}])},[P[8]||(P[8]=a("i",{class:"fas fa-check-circle mr-3"},null,-1)),de(m(x.$t("layout.completed")),1)],2),a("button",{onClick:P[3]||(P[3]=_=>f("config")),class:Ne(["nav-item w-full p-3 rounded-lg flex items-center",{active:r.value==="config"}])},[P[9]||(P[9]=a("i",{class:"fas fa-cog mr-3"},null,-1)),de(m(x.$t("layout.config")),1)],2),a("button",{onClick:P[4]||(P[4]=_=>f("about")),class:Ne(["nav-item w-full p-3 rounded-lg flex items-center",{active:r.value==="about"}])},[P[10]||(P[10]=a("i",{class:"fas fa-info-circle mr-3"},null,-1)),de(m(x.$t("layout.about")),1)],2),a("button",{onClick:g,class:"nav-item w-full p-3 rounded-lg flex items-center"},[P[11]||(P[11]=a("i",{class:"fas fa-link mr-3"},null,-1)),de(m(x.$t("layout.ariang")),1)])]),a("div",Yg,[xe(Wg)])],2),a("div",{class:Ne(["main-content",{"sidebar-collapsed":l.value}])},[pi(x.$slots,"default",{},void 0,!0)],2)]))}}),vo=(e,t)=>{const s=e.__vccOpts||e;for(const[n,o]of t)s[n]=o;return s},En=vo(Xg,[["__scopeId","data-v-c730956f"]]);function Ws(e){return e<1024?`${e} B`:e<1024*1024?`${(e/1024).toFixed(2)} KB`:e<1024*1024*1024?`${(e/(1024*1024)).toFixed(2)} MB`:`${(e/(1024*1024*1024)).toFixed(2)} GB`}function Qg(e){return e<1024?`${e} B/s`:e<1024*1024?`${(e/1024).toFixed(2)} KB/s`:e<1024*1024*1024?`${(e/(1024*1024)).toFixed(2)} MB/s`:`${(e/(1024*1024*1024)).toFixed(2)} GB/s`}function Yn(e){return e/=1e3,e<60?`${e}秒`:e<3600?`${(e/60).toFixed(2)}分钟`:e<3600*24?`${(e/3600).toFixed(2)}小时`:`${(e/(3600*24)).toFixed(2)}天`}const Jg={class:"p-1 md:p-2"},Zg={class:"bg-white rounded-lg shadow p-6"},eb={class:"text-xl font-semibold mb-6 text-center"},tb={class:"space-y-6"},sb={class:"text-lg font-medium text-green-700 mb-2"},nb={class:"bg-gray-50 p-4 rounded-lg"},ob={class:"text-gray-600 mb-2"},lb={class:"text-gray-600 mb-2"},rb={class:"text-gray-600 mb-2"},ab={class:"text-gray-600"},ib={class:"text-gray-600"},cb={href:"https://github.com/lzwme/m3u8-dl/release",target:"_blank",rel:"noopener",class:"text-blue-500 hover:text-blue-600"},ub={class:"text-gray-600"},db={key:1,class:"text-red-600 ml-2"},fb={key:2,class:"text-green-600"},pb={class:"text-lg font-medium text-green-700 mb-2"},mb={class:"text-gray-600"},hb={class:"text-lg font-medium text-green-700 mb-4"},gb={class:"space-y-4"},bb={class:"bg-gray-50 p-4 rounded-lg"},vb={class:"text-base font-semibold text-gray-800 mb-3"},yb={class:"list-disc list-inside text-gray-600 space-y-1.5 text-sm"},_b={class:"bg-gray-50 p-4 rounded-lg"},wb={class:"text-base font-semibold text-gray-800 mb-3"},xb={class:"list-disc list-inside text-gray-600 space-y-1.5 text-sm"},kb={class:"bg-gray-50 p-4 rounded-lg"},Sb={class:"text-base font-semibold text-gray-800 mb-3"},$b={class:"list-disc list-inside text-gray-600 space-y-1.5 text-sm"},Eb={class:"bg-gray-50 p-4 rounded-lg"},Cb={class:"text-base font-semibold text-gray-800 mb-3"},Lb={class:"list-disc list-inside text-gray-600 space-y-1.5 text-sm"},Tb={class:"bg-gray-50 p-4 rounded-lg"},Ib={class:"text-base font-semibold text-gray-800 mb-3"},Pb={class:"list-disc list-inside text-gray-600 space-y-1.5 text-sm"},Db={class:"bg-gray-50 p-4 rounded-lg"},Ab={class:"text-base font-semibold text-gray-800 mb-3"},Nb={class:"list-disc list-inside text-gray-600 space-y-1.5 text-sm"},Rb={class:"bg-gray-50 p-4 rounded-lg"},Fb={class:"text-base font-semibold text-gray-800 mb-3"},Ob={class:"list-disc list-inside text-gray-600 space-y-1.5 text-sm"},Ub={class:"text-lg font-medium text-green-700 mb-2"},Mb={class:"bg-gray-50 p-4 rounded-lg space-y-4"},Vb={class:"text-gray-600 mb-2"},jb={class:"text-gray-600 mb-2"},Wb={class:"text-gray-600 mb-2"},Hb={class:"text-gray-600 mb-2 text-sm"},Bb={class:"list-disc list-inside text-gray-600 space-y-1 text-sm ml-2"},Gb=["href"],Kb=["href"],qb={class:"text-lg font-medium text-green-700 mb-2"},zb={class:"bg-gray-50 p-4 rounded-lg space-y-4"},Yb={class:"text-gray-600 mb-2"},Xb={class:"text-gray-600 mb-2"},Qb={class:"text-gray-600 text-sm"},Jb={class:"text-lg font-medium text-green-700 mb-2"},Zb={class:"bg-gray-50 p-4 rounded-lg space-y-4"},ev={class:"text-gray-600 mb-2"},tv={class:"text-gray-600 mb-2 font-semibold"},sv={class:"list-decimal list-inside text-gray-600 space-y-2 text-sm ml-2"},nv={class:"list-disc list-inside ml-4 mt-1 space-y-1"},ov={class:"list-disc list-inside ml-4 mt-1 space-y-1"},lv={class:"text-gray-500 text-xs ml-1"},rv=["href"],av={class:"list-disc list-inside ml-4 mt-1 space-y-1"},iv={class:"text-gray-600 mb-2 font-semibold"},cv={class:"list-disc list-inside text-gray-600 space-y-1.5 text-sm ml-2"},uv={class:"list-disc list-inside ml-4 mt-1 space-y-1"},dv={class:"text-gray-600 mb-2 font-semibold"},fv={class:"list-decimal list-inside text-gray-600 space-y-1.5 text-sm ml-2"},pv={class:"text-gray-600 mb-2 font-semibold"},mv={class:"text-gray-600 mb-2 text-sm"},hv={class:"text-gray-600 text-sm"},gv=Fe({__name:"About",setup(e){const t=bo(),s=fe(()=>t.serverInfo),{checkNewVersion:n}=Nc(),o=fe(()=>window.location.origin);async function l(){await n(!0)}return Xt(()=>{window.electron&&window.electron.ipc.on("downloadProgress",i=>{console.log("downloadProgress",i),t.updateServerInfo({appUpdateMessage:`下载中:${Number(i.percent).toFixed(2)}% [${Qg(i.bytesPerSecond)}] [${Ws(i.transferred)}/${Ws(i.total)}]`})})}),(r,i)=>(K(),Rt(En,{onNewDownload:()=>{}},{default:rs(()=>[a("div",Jg,[a("div",Zg,[a("h2",eb,m(r.$t("about.title")),1),a("div",tb,[a("div",null,[a("h3",sb,m(r.$t("about.projectInfo")),1),a("div",nb,[a("p",ob,[a("strong",null,m(r.$t("about.license"))+":",1),i[0]||(i[0]=de("MIT",-1))]),a("p",lb,[a("strong",null,m(r.$t("about.author"))+":",1),i[1]||(i[1]=a("a",{href:"https://lzw.me",target:"_blank",rel:"noopener",class:"text-blue-500 hover:text-blue-600"},"renxia",-1))]),a("p",rb,[a("strong",null,m(r.$t("about.github"))+":",1),i[2]||(i[2]=a("a",{href:"https://github.com/lzwme/m3u8-dl.git",target:"_blank",rel:"noopener",class:"text-blue-500 hover:text-blue-600"},"https://github.com/lzwme/m3u8-dl.git",-1))]),a("p",ab,[a("strong",null,m(r.$t("about.issues"))+":",1),i[3]||(i[3]=a("a",{href:"https://github.com/lzwme/m3u8-dl/issues",target:"_blank",rel:"noopener",class:"text-blue-500 hover:text-blue-600"}," https://github.com/lzwme/m3u8-dl/issues",-1))]),a("p",ib,[a("strong",null,m(r.$t("about.currentVersion"))+":",1),a("a",cb,m(s.value.version),1)]),a("p",ub,[a("strong",null,m(r.$t("about.checkVersion"))+":",1),s.value.appUpdateMessage?te("",!0):(K(),q("button",{key:0,onClick:l,class:"px-2 py-1 text-sm bg-green-600 hover:bg-green-700 text-white rounded"},[i[4]||(i[4]=a("i",{class:"fas fa-check mr-1"},null,-1)),de(m(r.$t("about.checkVersion")),1)])),s.value.newVersion?(K(),q("span",db,m(r.$t("about.newVersionFound",{version:s.value.newVersion})),1)):te("",!0),s.value.appUpdateMessage?(K(),q("span",fb,m(s.value.appUpdateMessage),1)):te("",!0)])])]),a("div",null,[a("h3",pb,m(r.$t("about.projectDescription")),1),a("p",mb,[i[5]||(i[5]=a("a",{href:"https://github.com/lzwme/m3u8-dl",target:"_blank",rel:"noopener",class:"text-blue-500 hover:text-blue-600"},"@lzwme/m3u8-dl",-1)),de(" "+m(r.$t("about.projectDescriptionText")),1)])]),a("div",null,[a("h3",hb,m(r.$t("about.features")),1),a("div",gb,[a("div",bb,[a("h4",vb,m(r.$t("about.coreFeatures")),1),a("ul",yb,[a("li",null,m(r.$t("about.coreFeature1")),1),a("li",null,m(r.$t("about.coreFeature2")),1),a("li",null,m(r.$t("about.coreFeature3")),1),a("li",null,m(r.$t("about.coreFeature4")),1),a("li",null,m(r.$t("about.coreFeature5")),1),a("li",null,m(r.$t("about.coreFeature6")),1),a("li",null,m(r.$t("about.coreFeature7")),1),a("li",null,m(r.$t("about.coreFeature8")),1)])]),a("div",_b,[a("h4",wb,m(r.$t("about.webUIFeatures")),1),a("ul",xb,[a("li",null,m(r.$t("about.webUIFeature1")),1),a("li",null,m(r.$t("about.webUIFeature2")),1),a("li",null,m(r.$t("about.webUIFeature3")),1),a("li",null,m(r.$t("about.webUIFeature4")),1),a("li",null,m(r.$t("about.webUIFeature5")),1),a("li",null,m(r.$t("about.webUIFeature6")),1)])]),a("div",kb,[a("h4",Sb,m(r.$t("about.parserFeatures")),1),a("ul",$b,[a("li",null,m(r.$t("about.parserFeature1")),1),a("li",null,m(r.$t("about.parserFeature2")),1),a("li",null,m(r.$t("about.parserFeature3")),1)])]),a("div",Eb,[a("h4",Cb,m(r.$t("about.extractFeatures")),1),a("ul",Lb,[a("li",null,m(r.$t("about.extractFeature1")),1),a("li",null,m(r.$t("about.extractFeature2")),1),a("li",null,m(r.$t("about.extractFeature3")),1)])]),a("div",Tb,[a("h4",Ib,m(r.$t("about.searchFeatures")),1),a("ul",Pb,[a("li",null,m(r.$t("about.searchFeature1")),1),a("li",null,m(r.$t("about.searchFeature2")),1)])]),a("div",Db,[a("h4",Ab,m(r.$t("about.usageFeatures")),1),a("ul",Nb,[a("li",null,m(r.$t("about.usageFeature1")),1),a("li",null,m(r.$t("about.usageFeature2")),1),a("li",null,m(r.$t("about.usageFeature3")),1),a("li",null,m(r.$t("about.usageFeature4")),1),a("li",null,m(r.$t("about.usageFeature5")),1)])]),a("div",Rb,[a("h4",Fb,m(r.$t("about.i18nFeatures")),1),a("ul",Ob,[a("li",null,m(r.$t("about.i18nFeature1")),1),a("li",null,m(r.$t("about.i18nFeature2")),1)])])])]),a("div",null,[a("h3",Ub,m(r.$t("about.installation")),1),a("div",Mb,[a("div",null,[a("p",Vb,m(r.$t("about.globalInstall")),1),i[6]||(i[6]=a("pre",{class:"bg-gray-800 text-gray-100 p-3 rounded-lg overflow-x-auto text-sm"},[de("npm i -g @lzwme/m3u8-dl"),a("br"),de("m3u8dl -h")],-1))]),a("div",null,[a("p",jb,m(r.$t("about.useNpx")),1),i[7]||(i[7]=a("pre",{class:"bg-gray-800 text-gray-100 p-3 rounded-lg overflow-x-auto text-sm"},"npx @lzwme/m3u8-dl -h",-1))]),a("div",null,[a("p",Wb,m(r.$t("about.desktopApp")),1),a("p",Hb,m(r.$t("about.desktopAppText")),1),a("ul",Bb,[a("li",null,[a("a",{href:r.$t("about.desktopAppLink1"),target:"_blank",rel:"noopener",class:"text-blue-500 hover:text-blue-600"},m(r.$t("about.desktopAppLink1")),9,Gb)]),a("li",null,[a("a",{href:r.$t("about.desktopAppLink2"),target:"_blank",rel:"noopener",class:"text-blue-500 hover:text-blue-600"},m(r.$t("about.desktopAppLink2")),9,Kb)])])])])]),a("div",null,[a("h3",qb,m(r.$t("about.docker")),1),a("div",zb,[a("div",null,[a("p",Yb,m(r.$t("about.dockerCommand")),1),i[8]||(i[8]=a("pre",{class:"bg-gray-800 text-gray-100 p-3 rounded-lg overflow-x-auto text-sm"},"docker run -d --name m3u8-dl -p 6600:6600 -v ./downloads:/app/downloads -v ./cache:/app/cache lzwme/m3u8-dl",-1))]),a("div",null,[a("p",Xb,m(r.$t("about.dockerCompose")),1),i[9]||(i[9]=a("pre",{class:"bg-gray-800 text-gray-100 p-3 rounded-lg overflow-x-auto text-sm"},`version: '3'
|
|
16
|
+
services:
|
|
17
|
+
m3u8-dl:
|
|
18
|
+
image: lzwme/m3u8-dl
|
|
19
|
+
container_name: m3u8-dl
|
|
20
|
+
ports:
|
|
21
|
+
- "6600:6600"
|
|
22
|
+
volumes:
|
|
23
|
+
- ./downloads:/app/downloads
|
|
24
|
+
- ./cache:/app/cache
|
|
25
|
+
restart: unless-stopped`,-1))]),a("p",Qb,m(r.$t("about.dockerDeployComplete",{url:"http://localhost:6600"})),1)])]),a("div",null,[a("h3",Jb,m(r.$t("about.captureScript")),1),a("div",Zb,[a("div",null,[a("p",ev,m(r.$t("about.captureScriptDescription")),1)]),a("div",null,[a("p",tv,m(r.$t("about.captureScriptInstall")),1),a("ol",sv,[a("li",null,[de(m(r.$t("about.captureScriptInstallStep1"))+" ",1),i[10]||(i[10]=a("a",{href:"https://violentmonkey.github.io/",target:"_blank",rel:"noopener",class:"text-blue-500 hover:text-blue-600"},"Violentmonkey",-1)),de(" "+m(r.$t("about.captureScriptInstallStep1Or"))+" ",1),i[11]||(i[11]=a("a",{href:"https://www.tampermonkey.net/",target:"_blank",rel:"noopener",class:"text-blue-500 hover:text-blue-600"},"Tampermonkey",-1))]),a("li",null,[de(m(r.$t("about.captureScriptInstallStep2"))+" ",1),a("ul",nv,[a("li",null,m(r.$t("about.captureScriptInstallStep2a")),1),a("li",null,m(r.$t("about.captureScriptInstallStep2b")),1),a("li",null,[de(m(r.$t("about.captureScriptInstallStep2c"))+" ",1),a("ul",ov,[a("li",null,[de(m(r.$t("about.captureScriptInstallStep2cOption1"))+" ",1),i[12]||(i[12]=a("a",{href:"https://raw.githubusercontent.com/lzwme/m3u8-dl/refs/heads/main/client/m3u8-capture.user.js",target:"_blank",rel:"noopener",class:"text-blue-500 hover:text-blue-600"},"https://raw.githubusercontent.com/lzwme/m3u8-dl/refs/heads/main/client/m3u8-capture.user.js",-1)),a("span",lv,"("+m(r.$t("about.captureScriptInstallStep2cOption1Note"))+")",1)]),a("li",null,[de(m(r.$t("about.captureScriptInstallStep2cOption2"))+" ",1),a("a",{href:`${o.value}/m3u8-capture.user.js`,target:"_blank",rel:"noopener",class:"text-blue-500 hover:text-blue-600"},m(o.value)+"/m3u8-capture.user.js",9,rv)])])])])]),a("li",null,[de(m(r.$t("about.captureScriptInstallStep3"))+" ",1),a("ul",av,[a("li",null,m(r.$t("about.captureScriptInstallStep3a")),1),a("li",null,m(r.$t("about.captureScriptInstallStep3b")),1),a("li",null,m(r.$t("about.captureScriptInstallStep3c")),1)])])])]),a("div",null,[a("p",iv,m(r.$t("about.captureScriptFeatures")),1),a("ul",cv,[a("li",null,m(r.$t("about.captureScriptFeature1")),1),a("li",null,m(r.$t("about.captureScriptFeature2")),1),a("li",null,m(r.$t("about.captureScriptFeature3")),1),a("li",null,[de(m(r.$t("about.captureScriptFeature4"))+" ",1),a("ul",uv,[a("li",null,m(r.$t("about.captureScriptFeature4a")),1),a("li",null,m(r.$t("about.captureScriptFeature4b")),1)])])])]),a("div",null,[a("p",dv,m(r.$t("about.captureScriptUsage")),1),a("ol",fv,[a("li",null,m(r.$t("about.captureScriptUsageStep1")),1),a("li",null,m(r.$t("about.captureScriptUsageStep2")),1),a("li",null,m(r.$t("about.captureScriptUsageStep3")),1),a("li",null,m(r.$t("about.captureScriptUsageStep4")),1),a("li",null,m(r.$t("about.captureScriptUsageStep5")),1)])]),a("div",null,[a("p",pv,m(r.$t("about.captureScriptExcludeRules")),1),a("p",mv,m(r.$t("about.captureScriptExcludeRulesHint")),1),i[13]||(i[13]=a("pre",{class:"bg-gray-800 text-gray-100 p-3 rounded-lg overflow-x-auto text-sm"},`localhost:6600
|
|
26
|
+
127.0.0.1
|
|
27
|
+
/example\\.com/
|
|
28
|
+
admin`,-1))]),a("p",hv,m(r.$t("about.captureScriptTip")),1)])])])])])]),_:1}))}}),Ca="m3u8-dl-favorites",bv=60*1e3;let Ys=null;const Rc=uo("favorites",()=>{const e=G(new Set);function t(){try{const f=localStorage.getItem(Ca);return f?JSON.parse(f):[]}catch(f){return console.error("读取收藏列表失败:",f),[]}}function s(f){Ys={data:f,timestamp:Date.now()}}function n(){Ys=null}function o(){const f=Date.now();if(Ys&&f-Ys.timestamp<bv){e.value=Ys.data;return}const g=t(),v=new Set(g);e.value=v,s(v)}function l(){try{localStorage.setItem(Ca,JSON.stringify(Array.from(e.value))),s(e.value)}catch(f){console.error("保存收藏列表失败:",f),n()}}function r(f){return e.value.has(f)}function i(f){e.value.has(f)||(e.value.add(f),e.value=new Set(e.value),l())}function c(f){e.value.has(f)&&(e.value.delete(f),e.value=new Set(e.value),l())}function u(f){return e.value.has(f)?(c(f),!1):(i(f),!0)}const d=fe(()=>Array.from(e.value));return o(),{favorites:d,isFavorite:r,addFavorite:i,removeFavorite:c,toggleFavorite:u,loadFavorites:o}}),vv={class:"bg-white rounded-lg shadow-xl max-w-md w-full"},yv={class:"p-6"},_v={class:"flex items-center mb-4"},wv={class:"text-xl font-semibold text-gray-900"},xv={class:"mb-6"},kv={class:"block text-sm font-medium text-gray-700 mb-2"},Sv=["placeholder"],$v={key:0,class:"mt-2 text-sm text-red-600"},Ev={class:"flex justify-end gap-3"},Cv=["disabled"],Fc=Fe({__name:"RenameDialog",props:{visible:{type:Boolean},task:{}},emits:["close","success","error"],setup(e,{emit:t}){const{t:s}=Ge(),n=ps(),o=e,l=t,r=G(""),i=G(""),c=G(!1),u=G(null);He(()=>o.visible,g=>{if(g&&o.task){const $=(o.task.filename||o.task.dlOptions?.filename||o.task.showName||"").replace(/\.[^.]+$/,"");r.value=$,i.value="",c.value=!1,is(()=>{u.value?.focus(),u.value?.select()})}else g||(r.value="",i.value="",c.value=!1)},{immediate:!0});function d(){c.value||l("close")}async function f(){if(!o.task||!r.value.trim()||c.value)return;if(/[<>:"/\\|?*]/.test(r.value)){i.value=s("completedList.invalidFilename");return}c.value=!0,i.value="";try{const v=await Oh(o.task.url,r.value.trim());if(v.code){const $=v.message||s("toast.renameFailed");me({text:$,type:"error"}),i.value=$,c.value=!1,l("error",$)}else{me({text:v.message||s("toast.renameSuccess"),type:"success"});const $=await Dc();n.setTasks($),c.value=!1,l("success"),l("close")}}catch(v){const $=v instanceof Error?v.message:s("toast.renameFailed");me({text:$,type:"error"}),i.value=$,c.value=!1,l("error",$)}}return(g,v)=>e.visible?(K(),q("div",{key:0,class:"fixed inset-0 modal-overlay flex items-center justify-center z-50 p-4",onClick:yt(d,["self"])},[a("div",vv,[a("div",yv,[a("div",_v,[v[1]||(v[1]=a("div",{class:"flex-shrink-0 w-10 h-10 bg-purple-100 rounded-full flex items-center justify-center mr-3"},[a("i",{class:"fas fa-edit text-purple-600"})],-1)),a("div",null,[a("h2",wv,m(g.$t("completedList.renameTitle")),1)])]),a("div",xv,[a("label",kv,m(g.$t("completedList.newFilename")),1),De(a("input",{ref_key:"renameInput",ref:u,"onUpdate:modelValue":v[0]||(v[0]=$=>r.value=$),type:"text",class:"w-full p-3 border border-gray-300 rounded-lg focus:outline-none focus:ring-2 focus:ring-purple-500 focus:border-transparent",placeholder:g.$t("completedList.filenamePlaceholder"),onKeyup:[Os(f,["enter"]),Os(d,["esc"])]},null,40,Sv),[[Xe,r.value]]),i.value?(K(),q("p",$v,m(i.value),1)):te("",!0)]),a("div",Ev,[a("button",{onClick:d,class:"px-4 py-2 text-gray-600 hover:bg-gray-100 rounded-lg transition-colors"},m(g.$t("common.cancel")),1),a("button",{onClick:f,disabled:!r.value.trim()||c.value,class:"px-4 py-2 bg-purple-500 hover:bg-purple-600 text-white rounded-lg transition-colors disabled:opacity-50 disabled:cursor-not-allowed"},m(c.value?g.$t("common.loading"):g.$t("common.confirm")),9,Cv)])])])])):te("",!0)}}),Lv={class:"bg-white rounded-lg shadow"},Tv={class:"p-4"},Iv={class:"flex justify-between items-center"},Pv={class:"text-xl font-semibold"},Dv={class:"flex items-center space-x-2"},Av={class:"text-sm text-gray-600"},Nv={class:"px-2 sm:px-4 pb-2 border-b"},Rv={class:"flex flex-wrap items-center gap-2 sm:gap-4"},Fv={class:"flex items-center space-x-2 flex-shrink-0"},Ov={class:"text-sm text-gray-600 hidden sm:inline"},Uv={value:"startTime"},Mv={value:"endTime"},Vv={value:"name"},jv={value:"size"},Wv={value:"saveDir"},Hv={class:"flex items-center space-x-2 flex-shrink-0"},Bv=["title"],Gv={class:"ml-1 hidden sm:inline"},Kv={class:"flex items-center space-x-2 flex-shrink-0"},qv=["title"],zv={class:"ml-1 hidden sm:inline"},Yv={class:"flex items-center space-x-2 flex-1 min-w-0 sm:flex-initial sm:min-w-[200px]"},Xv=["placeholder"],Qv={key:0,class:"px-4 py-3 bg-blue-50 border-t flex items-center justify-between"},Jv={class:"flex items-center space-x-2"},Zv={class:"text-sm text-gray-700"},e0={class:"overflow-x-auto"},t0={class:"w-full"},s0={class:"bg-gray-50 border-b"},n0={class:"px-4 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider w-12"},o0=["checked","indeterminate"],l0={class:"px-4 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider"},r0={class:"px-4 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider"},a0={class:"px-4 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider"},i0={class:"px-4 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider"},c0={class:"px-4 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider"},u0={class:"bg-white divide-y divide-gray-200"},d0={class:"px-4 py-3 whitespace-nowrap"},f0=["checked","onChange"],p0={class:"px-4 py-3 whitespace-nowrap text-sm"},m0={class:"flex items-center space-x-2"},h0=["onClick","title"],g0=["onClick","title"],b0=["onClick","title"],v0=["onClick","title"],y0=["onClick","title"],_0={class:"px-4 py-3"},w0={class:"flex items-center"},x0={class:"flex-1 min-w-0"},k0=["title"],S0=["title"],$0={class:"px-4 py-3 whitespace-nowrap text-sm text-gray-600"},E0={class:"px-4 py-3 whitespace-nowrap text-sm text-gray-600"},C0={class:"px-4 py-3 whitespace-nowrap text-sm text-gray-600"},L0={key:0},T0={colspan:"6",class:"px-4 py-8 text-center text-gray-500"},I0={class:"flex flex-col items-center"},P0={key:1,class:"px-4 py-3 border-t bg-gray-50 flex items-center justify-between flex-wrap gap-2"},D0={class:"flex items-center space-x-2"},A0={class:"text-sm text-gray-600"},N0={class:"text-sm text-gray-600"},R0={class:"flex items-center space-x-2"},F0={class:"text-sm text-gray-600"},O0={class:"flex items-center space-x-1"},U0=["disabled","title"],M0=["disabled","title"],V0={class:"flex items-center space-x-1"},j0=["max","placeholder"],W0=["disabled","title"],H0=["disabled","title"],B0=Fe({__name:"CompletedList",emits:["show-detail","local-play","delete"],setup(e,{expose:t,emit:s}){const n=ps(),o=Rc(),l=G("endTime"),r=G("desc"),i=G(""),c=G(!1),u=G(1),d=G(20),f=G(""),g=fe(()=>{const p=Object.values(n.tasks).filter(h=>h.status==="done"||h.progress!==void 0&&h.progress>=100);return p.forEach(h=>{h.showName=h.filename||h.dlOptions?.filename||h.localVideo||h.url}),p}),v=fe(()=>{let F=g.value;if(c.value&&(F=F.filter(p=>o.isFavorite(p.url))),i.value.trim()){const p=i.value.toLowerCase();F=F.filter(h=>{const E=(h.showName||h.filename||h.url||"").toLowerCase(),O=(h.url||"").toLowerCase();return E.includes(p)||O.includes(p)})}return F}),$=fe(()=>{const F=[...v.value];return F.sort((p,h)=>{let E,O;switch(l.value){case"startTime":E=p.startTime||0,O=h.startTime||0;break;case"endTime":E=p.endTime||0,O=h.endTime||0;break;case"name":E=(p.showName||p.filename||p.url||"").toLowerCase(),O=(h.showName||h.filename||h.url||"").toLowerCase();break;case"size":E=p.downloadedSize||p.size||0,O=h.downloadedSize||h.size||0;break;case"saveDir":E=(p.dlOptions?.saveDir||p.options?.saveDir||"").toLowerCase(),O=(h.dlOptions?.saveDir||h.options?.saveDir||"").toLowerCase();break;default:return 0}return E<O?r.value==="asc"?-1:1:E>O?r.value==="asc"?1:-1:0}),F}),x=fe(()=>Math.max(1,Math.ceil($.value.length/d.value))),P=fe(()=>{const F=(u.value-1)*d.value,p=F+d.value;return $.value.slice(F,p)}),_=G([]),S=fe(()=>P.value.length>0&&_.value.length===P.value.length&&P.value.every(F=>_.value.includes(F.url))),I=fe(()=>{const F=P.value.filter(p=>_.value.includes(p.url)).length;return F>0&&F<P.value.length});function w(){u.value=1}function T(){r.value=r.value==="asc"?"desc":"asc",u.value=1}function A(){u.value=1}function k(){c.value=!c.value,u.value=1}function R(F){return o.isFavorite(F)}function H(F){o.toggleFavorite(F)}function ne(){const F=P.value.map(h=>h.url);F.every(h=>_.value.includes(h))?_.value=_.value.filter(h=>!F.includes(h)):F.forEach(h=>{_.value.includes(h)||_.value.push(h)})}function J(F){const p=_.value.indexOf(F);p===-1?_.value.push(F):_.value.splice(p,1)}function j(F){if(!F)return"-";const p=new Date(F),{locale:h}=Ge(),E=h.value==="zh-CN"?"zh-CN":"en-US";return p.toLocaleString(E,{year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit"})}const X=s,le=G(!1),ve=G(null),ce=G(null);function oe(F){ve.value=F,le.value=!0}function ue(){le.value=!1,ve.value=null}function Ae(){ue()}function Je(F){X("show-detail",F)}function Ke(F){const p=location.origin+`/localplay/${encodeURIComponent(F.localVideo||"")||F.localM3u8}`;X("local-play",{task:F,url:p})}function Oe(F){X("delete",[F])}function B(){_.value.length>0&&(X("delete",_.value),_.value=[])}function re(F){const p=Math.max(1,Math.min(F,x.value));u.value=p,f.value=""}function he(){u.value=1}function Se(){u.value=x.value}function U(){u.value>1&&u.value--}function Y(){u.value<x.value&&u.value++}function z(){const F=x.value;u.value>F&&(u.value=F)}function ee(){const F=parseInt(f.value);!isNaN(F)&&F>0&&re(F)}return He([i,l,r,c],()=>{u.value=1}),t({closeRenameDialog:ue}),(F,p)=>(K(),q("div",Lv,[a("div",Tv,[a("div",Iv,[a("h2",Pv,m(F.$t("completedList.title")),1),a("div",Dv,[a("span",Av,m(F.$t("completedList.total",{count:g.value.length})),1)])])]),a("div",Nv,[a("div",Rv,[a("div",Fv,[a("label",Ov,m(F.$t("completedList.sortBy")),1),De(a("select",{"onUpdate:modelValue":p[0]||(p[0]=h=>l.value=h),onChange:w,class:"px-2 sm:px-3 py-1 text-sm border rounded-lg focus:ring-blue-500 focus:border-blue-500"},[a("option",Uv,m(F.$t("completedList.sortStartTime")),1),a("option",Mv,m(F.$t("completedList.sortEndTime")),1),a("option",Vv,m(F.$t("completedList.sortName")),1),a("option",jv,m(F.$t("completedList.sortSize")),1),a("option",Wv,m(F.$t("completedList.sortSaveDir")),1)],544),[[Er,l.value]])]),a("div",Hv,[a("button",{onClick:T,class:"px-2 sm:px-3 py-1 text-sm bg-gray-100 hover:bg-gray-200 rounded-lg flex items-center",title:r.value==="asc"?F.$t("completedList.ascending"):F.$t("completedList.descending")},[a("i",{class:Ne(["fas",r.value==="asc"?"fa-sort-up":"fa-sort-down"])},null,2),a("span",Gv,m(r.value==="asc"?F.$t("completedList.ascending"):F.$t("completedList.descending")),1)],8,Bv)]),p[5]||(p[5]=a("div",{class:"flex-1 hidden sm:block"},null,-1)),a("div",Kv,[a("button",{onClick:k,class:Ne(["px-2 sm:px-3 py-1 text-sm rounded-lg flex items-center transition-colors",c.value?"bg-yellow-100 text-yellow-700 hover:bg-yellow-200":"bg-gray-100 hover:bg-gray-200"]),title:F.$t("completedList.showFavorites")},[a("i",{class:Ne(c.value?"fas fa-star":"far fa-star")},null,2),a("span",zv,m(F.$t("completedList.favorites")),1)],10,qv)]),a("div",Yv,[De(a("input",{type:"text","onUpdate:modelValue":p[1]||(p[1]=h=>i.value=h),class:"flex-1 px-2 sm:px-3 py-1 text-sm border rounded-lg focus:ring-blue-500 focus:border-blue-500 min-w-0",placeholder:F.$t("completedList.searchPlaceholder"),onInput:A},null,40,Xv),[[Xe,i.value]]),p[4]||(p[4]=a("i",{class:"fas fa-search text-gray-400 flex-shrink-0"},null,-1))])])]),_.value.length>0?(K(),q("div",Qv,[a("div",Jv,[a("button",{onClick:B,class:"px-3 py-1 text-sm bg-red-500 hover:bg-red-600 text-white rounded"},[p[6]||(p[6]=a("i",{class:"fas fa-trash mr-1"},null,-1)),de(m(F.$t("completedList.deleteSelected")),1)])]),a("span",Zv,m(F.$t("completedList.selected",{count:_.value.length})),1)])):te("",!0),a("div",e0,[a("table",t0,[a("thead",s0,[a("tr",null,[a("th",n0,[a("input",{type:"checkbox",checked:S.value,indeterminate:I.value,onChange:ne,class:"form-checkbox h-4 w-4 text-blue-500 rounded focus:ring-blue-500"},null,40,o0)]),a("th",l0,m(F.$t("completedList.action")),1),a("th",r0,m(F.$t("completedList.taskName")),1),a("th",a0,m(F.$t("completedList.fileSize")),1),a("th",i0,m(F.$t("completedList.startTime")),1),a("th",c0,m(F.$t("completedList.endTime")),1)])]),a("tbody",u0,[(K(!0),q(Qe,null,lo(P.value,h=>(K(),q("tr",{key:h.url,class:"hover:bg-gray-50 transition-colors"},[a("td",d0,[a("input",{type:"checkbox",checked:_.value.includes(h.url),onChange:E=>J(h.url),class:"form-checkbox h-4 w-4 text-blue-500 rounded focus:ring-blue-500"},null,40,f0)]),a("td",p0,[a("div",m0,[h.localVideo?(K(),q("button",{key:0,onClick:E=>Ke(h),class:"text-green-600 hover:text-green-800",title:F.$t("completedList.play")},[...p[7]||(p[7]=[a("i",{class:"fas fa-play-circle"},null,-1)])],8,h0)):te("",!0),a("button",{onClick:E=>H(h.url),class:Ne(["transition-colors",R(h.url)?"text-yellow-500 hover:text-yellow-600":"text-gray-400 hover:text-yellow-500"]),title:R(h.url)?F.$t("completedList.removeFavorite"):F.$t("completedList.addFavorite")},[a("i",{class:Ne(R(h.url)?"fas fa-star":"far fa-star")},null,2)],10,g0),a("button",{onClick:E=>Je(h),class:"text-blue-600 hover:text-blue-800",title:F.$t("completedList.viewDetail")},[...p[8]||(p[8]=[a("i",{class:"fas fa-info-circle"},null,-1)])],8,b0),h.status==="done"&&!h.errmsg?(K(),q("button",{key:1,onClick:E=>oe(h),class:"text-purple-600 hover:text-purple-800",title:F.$t("completedList.rename")},[...p[9]||(p[9]=[a("i",{class:"fas fa-edit"},null,-1)])],8,v0)):te("",!0),a("button",{onClick:E=>Oe(h.url),class:"text-red-600 hover:text-red-800",title:F.$t("completedList.delete")},[...p[10]||(p[10]=[a("i",{class:"fas fa-trash"},null,-1)])],8,y0)])]),a("td",_0,[a("div",w0,[a("div",x0,[a("p",{class:"text-sm font-medium text-gray-900 truncate max-w-[calc(35vw)]",title:h.showName},m(h.showName),9,k0),a("p",{class:"text-xs text-gray-500 truncate max-w-[calc(35vw)]",title:h.url},m(h.url),9,S0)])])]),a("td",$0,m(ye(Ws)(h.downloadedSize||h.size||0)),1),a("td",E0,m(j(h.startTime)),1),a("td",C0,m(j(h.endTime)),1)]))),128)),P.value.length===0?(K(),q("tr",L0,[a("td",T0,[a("div",I0,[p[11]||(p[11]=a("i",{class:"fas fa-inbox text-4xl mb-2 text-gray-300"},null,-1)),a("p",null,m(F.$t("completedList.noCompletedTasks")),1)])])])):te("",!0)])])]),$.value.length>0?(K(),q("div",P0,[a("div",D0,[a("label",A0,m(F.$t("completedList.pageSize")),1),De(a("select",{"onUpdate:modelValue":p[2]||(p[2]=h=>d.value=h),onChange:z,class:"px-2 py-1 text-sm border rounded-lg focus:ring-blue-500 focus:border-blue-500"},[...p[12]||(p[12]=[a("option",{value:10},"10",-1),a("option",{value:20},"20",-1),a("option",{value:50},"50",-1),a("option",{value:100},"100",-1)])],544),[[Er,d.value,void 0,{number:!0}]]),a("span",N0,m(F.$t("completedList.itemsPerPage")),1)]),a("div",R0,[a("span",F0,m(F.$t("completedList.pageInfo",{current:u.value,total:x.value})),1),a("div",O0,[a("button",{onClick:he,disabled:u.value===1,class:"px-2 py-1 text-sm bg-white border rounded hover:bg-gray-100 disabled:opacity-50 disabled:cursor-not-allowed",title:F.$t("completedList.firstPage")},[...p[13]||(p[13]=[a("i",{class:"fas fa-angle-double-left"},null,-1)])],8,U0),a("button",{onClick:U,disabled:u.value===1,class:"px-2 py-1 text-sm bg-white border rounded hover:bg-gray-100 disabled:opacity-50 disabled:cursor-not-allowed",title:F.$t("completedList.previousPage")},[...p[14]||(p[14]=[a("i",{class:"fas fa-angle-left"},null,-1)])],8,M0),a("div",V0,[De(a("input",{type:"number","onUpdate:modelValue":p[3]||(p[3]=h=>f.value=h),onKeyup:Os(ee,["enter"]),min:1,max:x.value,class:"w-16 px-2 py-1 text-sm border rounded-lg focus:ring-blue-500 focus:border-blue-500 text-center",placeholder:String(u.value)},null,40,j0),[[Xe,f.value]]),a("button",{onClick:ee,class:"px-2 py-1 text-sm bg-blue-500 hover:bg-blue-600 text-white rounded"},m(F.$t("completedList.goToPage")),1)]),a("button",{onClick:Y,disabled:u.value===x.value,class:"px-2 py-1 text-sm bg-white border rounded hover:bg-gray-100 disabled:opacity-50 disabled:cursor-not-allowed",title:F.$t("completedList.nextPage")},[...p[15]||(p[15]=[a("i",{class:"fas fa-angle-right"},null,-1)])],8,W0),a("button",{onClick:Se,disabled:u.value===x.value,class:"px-2 py-1 text-sm bg-white border rounded hover:bg-gray-100 disabled:opacity-50 disabled:cursor-not-allowed",title:F.$t("completedList.lastPage")},[...p[16]||(p[16]=[a("i",{class:"fas fa-angle-double-right"},null,-1)])],8,H0)])])])):te("",!0),xe(Fc,{ref_key:"renameDialogRef",ref:ce,visible:le.value,task:ve.value,onClose:ue,onSuccess:Ae},null,8,["visible","task"])]))}});function G0(e){return new Promise((t,s)=>{navigator.clipboard?.writeText?navigator.clipboard.writeText(e).then(()=>t(!0)).catch(()=>{La(e)?t(!0):s(new Error("复制失败"))}):La(e)?t(!0):s(new Error("复制失败"))})}function La(e){try{const t=document.createElement("textarea");t.value=e,t.style.position="fixed",t.style.opacity="0",t.style.left="-9999px",document.body.appendChild(t),t.select(),t.setSelectionRange(0,e.length);const s=document.execCommand("copy");return document.body.removeChild(t),s}catch(t){return console.error("[M3U8 Capture] fallbackCopy failed:",t),!1}}const K0={class:"bg-white rounded-lg shadow-xl max-w-3xl w-full max-h-[98vh] overflow-hidden flex flex-col"},q0={class:"flex justify-between items-center p-2 md:p-4 border-b"},z0={class:"text-lg md:text-xl font-semibold"},Y0={class:"overflow-y-auto p-2 md:p-4 flex-1"},X0={key:0,class:"flex flex-col w-full text-left space-y-2 md:space-y-3"},Q0={class:"flex items-start"},J0={class:"font-bold text-right inline-block text-sm md:text-base",style:{"min-width":"80px","max-width":"80px"}},Z0={class:"ml-1 md:ml-2 text-gray-800 break-words flex-1 text-sm md:text-base"},ey={class:"flex items-center"},ty={class:"font-bold text-right inline-block text-sm md:text-base",style:{"min-width":"80px","max-width":"80px"}},sy={class:"flex items-center"},ny={class:"font-bold text-right inline-block text-sm md:text-base",style:{"min-width":"80px","max-width":"80px"}},oy={class:"ml-1 md:ml-2 text-gray-800 text-sm md:text-base"},ly={key:0,class:"flex items-center"},ry={class:"font-bold text-right inline-block text-sm md:text-base",style:{"min-width":"80px","max-width":"80px"}},ay={class:"ml-1 md:ml-2 text-gray-800 text-sm md:text-base"},iy={class:"flex items-center"},cy={class:"font-bold text-right inline-block text-sm md:text-base",style:{"min-width":"80px","max-width":"80px"}},uy={class:"ml-1 md:ml-2 text-gray-800 text-sm md:text-base"},dy={key:1,class:"flex items-center"},fy={class:"font-bold text-right inline-block text-sm md:text-base",style:{"min-width":"80px","max-width":"80px"}},py={class:"ml-1 md:ml-2 text-gray-800 text-sm md:text-base"},my={class:"text-green-600"},hy={class:"text-red-500"},gy={class:"flex items-center"},by={class:"font-bold text-right inline-block text-sm md:text-base",style:{"min-width":"80px","max-width":"80px"}},vy={class:"ml-1 md:ml-2 text-gray-800 text-sm md:text-base"},yy={key:2,class:"flex items-center"},_y={class:"font-bold text-right inline-block text-sm md:text-base",style:{"min-width":"80px","max-width":"80px"}},wy={class:"ml-1 md:ml-2 text-gray-800 text-sm md:text-base"},xy={key:3,class:"flex items-center"},ky={class:"font-bold text-right inline-block text-sm md:text-base",style:{"min-width":"80px","max-width":"80px"}},Sy={class:"ml-1 md:ml-2 text-gray-800 text-sm md:text-base"},$y={key:4,class:"flex items-center"},Ey={class:"font-bold text-right inline-block text-sm md:text-base",style:{"min-width":"80px","max-width":"80px"}},Cy={class:"ml-1 md:ml-2 text-gray-800 text-sm md:text-base"},Ly={key:5,class:"flex items-center"},Ty={class:"font-bold text-right inline-block text-sm md:text-base",style:{"min-width":"80px","max-width":"80px"}},Iy={class:"ml-1 md:ml-2 text-gray-800 text-sm md:text-base"},Py={class:"flex items-start"},Dy={class:"font-bold text-right inline-block text-sm md:text-base",style:{"min-width":"80px","max-width":"80px"}},Ay={class:"ml-1 md:ml-2 flex-1 flex items-center gap-1 md:gap-2"},Ny={class:"flex-1 p-1.5 md:p-2 bg-gray-50 rounded border text-xs md:text-sm text-gray-700 break-all"},Ry=["title"],Fy={key:6,class:"flex items-start"},Oy={class:"font-bold text-right inline-block text-sm md:text-base",style:{"min-width":"80px","max-width":"80px"}},Uy={class:"ml-1 md:ml-2 flex-1 flex items-center gap-1 md:gap-2"},My={class:"flex-1 p-1.5 md:p-2 bg-gray-50 rounded border text-xs md:text-sm text-gray-700 break-all"},Vy=["title"],jy={key:7,class:"flex items-start"},Wy={class:"font-bold text-right inline-block text-sm md:text-base",style:{"min-width":"80px","max-width":"80px"}},Hy={class:"ml-1 md:ml-2 text-red-600 break-words flex-1 text-sm md:text-base"},By={class:"flex justify-end gap-2 p-2 md:p-4 border-t"},Oc=Fe({__name:"TaskDetailModal",props:{visible:{type:Boolean},task:{}},emits:["close"],setup(e,{emit:t}){const{t:s}=Ge(),n=t;function o(){n("close")}function l(c){return{resume:s("download.status.resume"),pending:s("download.status.pending"),pause:s("download.status.pause"),error:s("download.status.error"),done:s("download.status.done")}[c]||c}function r(c){return{resume:"px-2 py-1 bg-green-100 text-green-800 rounded text-sm inline-block",pending:"px-2 py-1 bg-yellow-100 text-yellow-800 rounded text-sm inline-block",pause:"px-2 py-1 bg-gray-100 text-gray-800 rounded text-sm inline-block",error:"px-2 py-1 bg-red-100 text-red-600 rounded text-sm inline-block",done:"px-2 py-1 bg-blue-100 text-blue-800 rounded text-sm inline-block"}[c]||"px-2 py-1 bg-gray-100 text-gray-800 rounded text-sm inline-block"}function i(c){return G0(c).then(()=>me({text:s("toast.copySuccess"),type:"success"})).catch(u=>{console.error("复制失败:",u),me({text:s("toast.copyFailed"),type:"error"})})}return(c,u)=>e.visible?(K(),q("div",{key:0,class:"fixed inset-0 modal-overlay flex items-center justify-center z-50 p-2 md:p-4",onClick:yt(o,["self"])},[a("div",K0,[a("div",q0,[a("h2",z0,m(c.$t("taskDetail.title")),1),a("button",{onClick:o,class:"text-gray-500 hover:text-gray-700 transition-colors p-1.5 md:p-2 rounded-lg hover:bg-gray-100"},[...u[2]||(u[2]=[a("i",{class:"fas fa-times"},null,-1)])])]),a("div",Y0,[e.task?(K(),q("div",X0,[a("div",Q0,[a("label",J0,m(c.$t("taskDetail.name"))+":",1),a("span",Z0,m(e.task.filename||e.task.localVideo||"-"),1)]),a("div",ey,[a("label",ty,m(c.$t("taskDetail.status"))+":",1),a("span",{class:Ne([r(e.task.status),"ml-1 md:ml-2 text-xs md:text-sm"])},m(l(e.task.status)),3)]),a("div",sy,[a("label",ny,m(c.$t("taskDetail.progress"))+":",1),a("span",oy,m(e.task.progress||0)+"%",1)]),e.task.threadNum?(K(),q("div",ly,[a("label",ry,m(c.$t("taskDetail.threadNum"))+":",1),a("span",ay,m(e.task.threadNum),1)])):te("",!0),a("div",iy,[a("label",cy,m(c.$t("taskDetail.avgSpeed"))+":",1),a("span",uy,m(e.task.avgSpeedDesc||"-")+"/s",1)]),e.task.tsCount?(K(),q("div",dy,[a("label",fy,m(c.$t("taskDetail.segments"))+":",1),a("span",py,[a("span",my,m(e.task.tsSuccess||0),1),u[3]||(u[3]=de(" / ",-1)),a("span",hy,m(e.task.tsFailed||0),1),de(" / "+m(e.task.tsCount),1)])])):te("",!0),a("div",gy,[a("label",by,m(c.$t("taskDetail.size"))+":",1),a("span",vy,m(ye(Ws)(e.task.downloadedSize||0)),1)]),e.task.duration?(K(),q("div",yy,[a("label",_y,m(c.$t("taskDetail.duration"))+":",1),a("span",wy,m(ye(Yn)(e.task.duration*1e3)),1)])):te("",!0),e.task.startTime?(K(),q("div",xy,[a("label",ky,m(c.$t("taskDetail.startTime"))+":",1),a("span",Sy,m(new Date(e.task.startTime).toLocaleString()),1)])):te("",!0),e.task.endTime&&e.task.status!=="resume"?(K(),q("div",$y,[a("label",Ey,m(c.$t("taskDetail.endTime"))+":",1),a("span",Cy,m(new Date(e.task.endTime).toLocaleString()),1)])):te("",!0),e.task.status==="resume"&&e.task.remainingTime?(K(),q("div",Ly,[a("label",Ty,m(c.$t("taskDetail.remainingTime"))+":",1),a("span",Iy,m(ye(Yn)(e.task.remainingTime)),1)])):te("",!0),a("div",Py,[a("label",Dy,m(c.$t("taskDetail.downloadUrl"))+":",1),a("div",Ay,[a("div",Ny,m(e.task.url),1),a("button",{onClick:u[0]||(u[0]=d=>i(e.task.url)),class:"px-2 py-1.5 md:px-3 md:py-2 bg-blue-500 hover:bg-blue-600 text-white rounded transition-colors flex-shrink-0 text-sm",title:c.$t("taskDetail.copy")},[...u[4]||(u[4]=[a("i",{class:"fas fa-copy"},null,-1)])],8,Ry)])]),e.task.localVideo||e.task.options?.saveDir?(K(),q("div",Fy,[a("label",Oy,m(c.$t("taskDetail.saveLocation"))+":",1),a("div",Uy,[a("div",My,m(e.task.localVideo||e.task.options?.saveDir||"-"),1),e.task.localVideo||e.task.options?.saveDir?(K(),q("button",{key:0,onClick:u[1]||(u[1]=d=>i(e.task.localVideo||e.task.options?.saveDir||"")),class:"px-2 py-1.5 md:px-3 md:py-2 bg-blue-500 hover:bg-blue-600 text-white rounded transition-colors flex-shrink-0 text-sm",title:c.$t("taskDetail.copy")},[...u[5]||(u[5]=[a("i",{class:"fas fa-copy"},null,-1)])],8,Vy)):te("",!0)])])):te("",!0),e.task.errmsg?(K(),q("div",jy,[a("label",Wy,m(c.$t("taskDetail.relatedInfo"))+":",1),a("span",Hy,m(e.task.errmsg),1)])):te("",!0)])):te("",!0)]),a("div",By,[a("button",{onClick:o,class:"px-3 py-1.5 md:px-4 md:py-2 text-gray-600 hover:bg-gray-100 rounded-lg transition-colors text-sm md:text-base"},m(c.$t("taskDetail.close")),1)])])])):te("",!0)}}),Gy={class:"bg-white rounded-lg shadow-xl max-w-md w-full"},Ky={class:"p-6"},qy={class:"text-xl font-semibold mb-4"},zy={class:"text-gray-600 mb-6"},Yy={class:"space-y-3 mb-6"},Xy={class:"flex items-center cursor-pointer"},Qy={class:"text-gray-700"},Jy={class:"flex items-center cursor-pointer"},Zy={class:"text-red-700 font-medium"},e_={class:"flex justify-end gap-3"},Uc=Fe({__name:"DeleteConfirmDialog",props:{visible:{type:Boolean},count:{}},emits:["close","confirm"],setup(e,{emit:t}){const{t:s}=Ge(),n=e,o=t,l=G(!0),r=G(!0);He(()=>n.visible,u=>{u&&(l.value=!0,r.value=!0)});function i(){o("close")}function c(){o("confirm",{deleteCache:l.value,deleteVideo:r.value}),i()}return(u,d)=>e.visible?(K(),q("div",{key:0,class:"fixed inset-0 modal-overlay flex items-center justify-center z-50 p-4",onClick:yt(i,["self"])},[a("div",Gy,[a("div",Ky,[a("h2",qy,m(u.$t("deleteConfirm.title")),1),a("p",zy,m(u.$t("deleteConfirm.message",{count:e.count})),1),a("div",Yy,[a("label",Xy,[De(a("input",{"onUpdate:modelValue":d[0]||(d[0]=f=>l.value=f),type:"checkbox",class:"form-checkbox h-5 w-5 text-blue-500 rounded focus:ring-blue-500 mr-3"},null,512),[[Is,l.value]]),a("span",Qy,m(u.$t("deleteConfirm.deleteCache")),1)]),a("label",Jy,[De(a("input",{"onUpdate:modelValue":d[1]||(d[1]=f=>r.value=f),type:"checkbox",class:"form-checkbox h-5 w-5 text-blue-500 rounded focus:ring-blue-500 mr-3"},null,512),[[Is,r.value]]),a("span",Zy,m(u.$t("deleteConfirm.deleteVideo")),1)])]),a("div",e_,[a("button",{onClick:i,class:"px-4 py-2 text-gray-600 hover:bg-gray-100 rounded-lg transition-colors"},m(u.$t("deleteConfirm.cancel")),1),a("button",{onClick:c,class:"px-4 py-2 bg-red-500 hover:bg-red-600 text-white rounded-lg transition-colors"},m(u.$t("deleteConfirm.confirm")),1)])])])])):te("",!0)}}),t_={class:"bg-white rounded-lg shadow-xl max-w-md w-full"},s_={class:"p-6"},n_={class:"flex items-center mb-4"},o_={class:"text-xl font-semibold text-gray-900"},l_={class:"mb-6"},r_={class:"text-gray-600 whitespace-pre-line"},a_={class:"flex justify-end gap-3"},Mc=Fe({__name:"ConfirmDialog",props:{visible:{type:Boolean},title:{},message:{}},emits:["close","confirm"],setup(e,{emit:t}){const{t:s}=Ge(),n=t;function o(){n("close")}function l(){n("confirm"),o()}return(r,i)=>e.visible?(K(),q("div",{key:0,class:"fixed inset-0 modal-overlay flex items-center justify-center z-50 p-4",onClick:yt(o,["self"])},[a("div",t_,[a("div",s_,[a("div",n_,[i[0]||(i[0]=a("div",{class:"flex-shrink-0 w-10 h-10 bg-yellow-100 rounded-full flex items-center justify-center mr-3"},[a("i",{class:"fas fa-exclamation-triangle text-yellow-600"})],-1)),a("div",null,[a("h2",o_,m(e.title),1)])]),a("div",l_,[pi(r.$slots,"default",{},()=>[a("p",r_,m(e.message),1)])]),a("div",a_,[a("button",{onClick:o,class:"px-4 py-2 text-gray-600 hover:bg-gray-100 rounded-lg transition-colors"},m(r.$t("common.cancel")),1),a("button",{onClick:l,class:"px-4 py-2 bg-blue-500 hover:bg-blue-600 text-white rounded-lg transition-colors"},m(r.$t("common.confirm")),1)])])])])):te("",!0)}}),i_={class:"flex items-center justify-between bg-gray-900 text-white px-4 py-2 flex-shrink-0"},c_={class:"flex items-center gap-4 flex-1 min-w-0"},u_=["title"],d_={class:"text-sm md:text-base font-semibold truncate flex-1"},f_={class:"flex items-center gap-2"},p_=["title"],m_={class:"flex-1 flex overflow-hidden relative"},h_={class:"flex-1 relative"},g_=["src"],b_={class:"p-4"},v_={class:"flex items-center justify-between mb-3"},y_={class:"text-sm font-semibold text-gray-300"},__=["title"],w_={class:"space-y-2"},x_=["data-task-url"],k_=["onClick"],S_={class:"flex-1 min-w-0 flex flex-col gap-1"},$_={class:"flex items-center"},E_={class:"font-medium text-sm truncate flex-1"},C_=["onClick","title"],L_=["onClick","title"],T_={class:"text-xs text-gray-400 flex items-center gap-2 flex-wrap"},I_={key:1,class:"text-gray-400"},P_={key:0,class:"fas fa-play text-blue-300 flex-shrink-0 absolute right-2 bottom-2"},D_=Fe({__name:"VideoPlayer",props:{visible:{type:Boolean},initialUrl:{},initialTask:{}},emits:["close"],setup(e,{emit:t}){const{t:s}=Ge(),n=ps(),o=Rc(),l=e,r=t,i=G(null),c=G(null),u=G(!0),d=G(null),f=G(""),g=G(!1),v=G(null),$=fe(()=>f.value?`/play.html?url=${encodeURIComponent(f.value)}`:""),x=fe(()=>{if(!d.value)return[];const j=d.value.dlOptions?.saveDir||d.value.options?.saveDir;if(!j)return[d.value];const le=Object.values(n.tasks).filter(ce=>!ce.localVideo&&!ce.localM3u8||(ce.progress||0)<20?!1:(ce.dlOptions?.saveDir||ce.options?.saveDir)===j);return!le.some(ce=>ce.url===d.value?.url)&&d.value&&le.push(d.value),le.sort((ce,oe)=>{const ue=(ce.filename||ce.showName||"").toLowerCase(),Ae=(oe.filename||oe.showName||"").toLowerCase();return ue.localeCompare(Ae)})});He(()=>[l.visible,l.initialUrl,l.initialTask],([j,X,le])=>{if(j){if(f.value=X,d.value=le||null,!d.value&&X){const ve=Object.values(n.tasks);d.value=ve.find(ce=>{const oe=ce.localVideo||ce.localM3u8;return oe?`${location.origin}/localplay/${oe}`===X:!1})||null}P(350)}},{immediate:!0}),He(u,j=>{j&&P(350)});async function P(j=0){j>0&&await new Promise(X=>setTimeout(X,j)),!(!d.value||!c.value||x.value.length<5)&&is(()=>{const X=c.value?.querySelector(`[data-task-url="${d.value?.url}"]`);X&&X.scrollIntoView({behavior:"smooth",block:"center",inline:"nearest"})})}function _(j){if(j.url===d.value?.url)return;const X=j.localVideo||j.localM3u8;if(!X){console.error("[VideoPlayer] switchVideo: task 缺少本地文件路径",j);return}const le=`${location.origin}/localplay/${X}`;d.value=j,i.value?.contentWindow?i.value.contentWindow.postMessage({url:le,playType:le.includes("dplayer")?"dplayer":"artplayer"},"*"):f.value=le,P()}function S(j){const X=j.data;if(!(!X||typeof X!="object")&&(X.action==="next"||X.action==="previous")){const le=x.value.findIndex(ve=>ve.url===d.value?.url);if(le===-1)return;if(X.action==="next"){const ve=le+1;ve<x.value.length&&_(x.value[ve])}else if(X.action==="previous"){const ve=le-1;ve>=0&&_(x.value[ve])}}}function I(){u.value=!u.value}function w(){r("close")}function T(j){j.status==="done"&&!j.errmsg&&(v.value=j,g.value=!0)}function A(){g.value=!1,v.value=null}function k(){A()}function R(j){return o.isFavorite(j)}function H(j){o.toggleFavorite(j)}function ne(j){return{resume:s("download.status.resume"),pending:s("download.status.pending"),pause:s("download.status.pause"),error:s("download.status.error"),done:s("download.status.done")}[j]||j}function J(j){return{resume:"bg-green-500/20 text-green-300",pending:"bg-yellow-500/20 text-yellow-300",pause:"bg-gray-500/20 text-gray-300",error:"bg-red-500/20 text-red-300",done:"bg-blue-500/20 text-blue-300"}[j]||"bg-gray-500/20 text-gray-300"}return Xt(()=>{window.addEventListener("message",S)}),ks(()=>{window.removeEventListener("message",S)}),(j,X)=>e.visible?(K(),q("div",{key:0,class:"fixed inset-0 bg-black z-100 flex flex-col",onKeydown:Os(w,["esc"]),tabindex:"0"},[a("div",i_,[a("div",c_,[a("button",{onClick:w,class:"text-gray-300 hover:text-white transition-colors p-2 rounded-lg hover:bg-gray-800",title:j.$t("common.close")},[...X[0]||(X[0]=[a("i",{class:"fas fa-times"},null,-1)])],8,u_),a("h2",d_,m(d.value?.filename||d.value?.showName||"视频播放"),1)]),a("div",f_,[x.value.length>1?(K(),q("button",{key:0,onClick:I,class:"text-gray-300 hover:text-white transition-colors p-2 rounded-lg hover:bg-gray-800",title:u.value?"隐藏列表":"显示列表"},[a("i",{class:Ne(["fas",u.value?"fa-list-ul":"fa-list"])},null,2)],8,p_)):te("",!0)])]),a("div",m_,[a("div",h_,[a("iframe",{ref_key:"playerIframe",ref:i,src:$.value,class:"w-full h-full border-0",allowfullscreen:""},null,8,g_)]),x.value.length>1?(K(),q("div",{key:0,class:Ne([{"playlist-overlay-visible":u.value},"playlist-overlay md:hidden fixed inset-0 bg-black/50 backdrop-blur-sm z-40"]),onClick:I},null,2)):te("",!0),x.value.length>1?(K(),q("div",{key:1,class:Ne([{"playlist-sidebar-visible":u.value},"playlist-sidebar w-80 bg-gray-900 text-white overflow-y-auto flex-shrink-0 border-l border-gray-700"]),ref_key:"playlistSidebar",ref:c},[a("div",b_,[a("div",v_,[a("h3",y_,"播放列表 ("+m(x.value.length)+")",1),a("button",{onClick:I,class:"md:hidden text-gray-300 hover:text-white transition-colors p-2 rounded-lg hover:bg-gray-800",title:j.$t("common.close")},[...X[1]||(X[1]=[a("i",{class:"fas fa-times"},null,-1)])],8,__)]),a("div",w_,[(K(!0),q(Qe,null,lo(x.value,le=>(K(),q("div",{key:le.url,"data-task-url":le.url,class:Ne(["p-3 rounded-lg transition-colors relative",d.value?.url===le.url?"bg-blue-600 text-white":"bg-gray-800 hover:bg-gray-700 text-gray-200"])},[a("div",{class:"flex items-start justify-between cursor-pointer gap-2",onClick:ve=>_(le)},[a("div",S_,[a("div",$_,[a("div",E_,m(le.filename||le.showName||le.url),1),a("button",{onClick:yt(ve=>H(le.url),["stop"]),class:Ne(["flex transition-colors p-1 flex-shrink-0 rounded-lg hover:bg-yellow-500/20",R(le.url)?"text-yellow-400 hover:text-yellow-300":"text-gray-400 hover:text-yellow-400"]),title:R(le.url)?j.$t("completedList.removeFavorite"):j.$t("completedList.addFavorite")},[a("i",{class:Ne(["text-xs",R(le.url)?"fas fa-star":"far fa-star"])},null,2)],10,C_),le.status==="done"&&!le.errmsg?(K(),q("button",{key:0,onClick:yt(ve=>T(le),["stop"]),class:"flex text-purple-400 hover:text-purple-300 hover:bg-purple-500/20 rounded-lg transition-colors p-1 flex-shrink-0",title:j.$t("completedList.rename")},[...X[2]||(X[2]=[a("i",{class:"fas fa-edit text-xs"},null,-1)])],8,L_)):te("",!0)]),a("div",T_,[le.status?(K(),q("span",{key:0,class:Ne(["px-1.5 py-0.5 rounded text-xs",J(le.status)])},m(ne(le.status)),3)):te("",!0),a("span",null,m(le.progress||0)+"%",1),le.downloadedSize||le.size?(K(),q("span",I_,m(ye(Ws)(le.downloadedSize||le.size||0)),1)):te("",!0)])]),d.value?.url===le.url?(K(),q("i",P_)):te("",!0)],8,k_)],10,x_))),128))])])],2)):te("",!0)]),xe(Fc,{visible:g.value,task:v.value,onClose:A,onSuccess:k},null,8,["visible","task"])],32)):te("",!0)}}),Vc=vo(D_,[["__scopeId","data-v-80015324"]]),A_={class:"p-1 md:p-2"},N_={key:0,class:"text-red-600 font-medium mb-2 whitespace-pre-line"},R_={class:"text-gray-600 whitespace-pre-line"},F_=Fe({__name:"Completed",setup(e){const{t}=Ge(),s=ps(),n=G(!1),o=G(!1),l=G(!1),r=G(!1),i=G(null),c=G([]),u=G(null),d=G(""),f=G(""),g=G(""),v=G(null);function $(w){i.value=w,n.value=!0}function x(w){w.length&&(c.value=w,o.value=!0)}async function P(w){const T=await Ac(c.value,w.deleteCache,w.deleteVideo);T.code||(me({text:T.message||t("toast.deleteSuccess"),type:"success"}),s.deleteTasks(c.value)),c.value=[]}function _(w){const{task:T,url:A}=w;if(T.status==="error"){f.value=T.errmsg?t("confirm.playError",{error:T.errmsg}):"",d.value=t("confirm.playConfirmMessage"),u.value={task:T,url:A},l.value=!0;return}I(A,T)}function S(){u.value&&(I(u.value.url,u.value.task),u.value=null)}function I(w,T){g.value=w,v.value=T||null,r.value=!0}return(w,T)=>(K(),Rt(En,null,{default:rs(()=>[a("div",A_,[xe(B0,{onShowDetail:$,onLocalPlay:_,onDelete:x}),xe(Oc,{visible:n.value,task:i.value,onClose:T[0]||(T[0]=A=>n.value=!1)},null,8,["visible","task"]),xe(Uc,{visible:o.value,count:c.value.length,onClose:T[1]||(T[1]=A=>o.value=!1),onConfirm:P},null,8,["visible","count"]),xe(Mc,{visible:l.value,title:w.$t("confirm.play"),onClose:T[2]||(T[2]=A=>l.value=!1),onConfirm:S},{default:rs(()=>[f.value?(K(),q("p",N_,m(f.value),1)):te("",!0),a("p",R_,m(d.value),1)]),_:1},8,["visible","title"]),xe(Vc,{visible:r.value,"initial-url":g.value,"initial-task":v.value,onClose:T[3]||(T[3]=A=>r.value=!1)},null,8,["visible","initial-url","initial-task"])])]),_:1}))}}),O_={class:"p-1 md:p-2"},U_={class:"space-y-6"},M_={class:"bg-white rounded-lg shadow p-6 mb-6"},V_={class:"text-xl font-semibold mb-6"},j_={class:"grid grid-cols-1 md:grid-cols-2 gap-6"},W_={class:"block text-sm font-bold text-gray-700 mb-1"},H_=["placeholder"],B_={class:"mt-1 text-sm text-gray-500"},G_={class:"block text-sm font-bold text-gray-700 mb-1"},K_=["placeholder"],q_={class:"mt-1 text-sm text-gray-500"},z_={class:"block text-sm font-bold text-gray-700 mb-1"},Y_={class:"flex"},X_=["placeholder"],Q_={class:"mt-1 text-sm text-gray-500"},J_={class:"block text-sm font-bold text-gray-700 mb-1"},Z_=["placeholder"],ew={class:"mt-1 text-sm text-gray-500"},tw={class:"block text-sm font-bold text-gray-700 mb-1"},sw={class:"flex items-center mt-2"},nw={class:"inline-flex items-center"},ow={class:"ml-2 text-gray-700"},lw={class:"mt-1 text-sm text-gray-500"},rw={class:"block text-sm font-bold text-gray-700 mb-1"},aw={class:"flex items-center mt-2"},iw={class:"inline-flex items-center"},cw={class:"ml-2 text-gray-700"},uw={class:"block text-sm font-bold text-gray-700 mb-1"},dw={class:"flex items-center mt-2"},fw={class:"inline-flex items-center"},pw={class:"ml-2 text-gray-700"},mw={class:"block text-sm font-bold text-gray-700 mb-1"},hw={class:"flex items-center mt-2"},gw={class:"inline-flex items-center"},bw={class:"ml-2 text-gray-700"},vw={class:"flex justify-end space-x-4"},yw={type:"submit",class:"px-6 py-2 bg-blue-500 hover:bg-blue-600 text-white rounded-lg"},_w={class:"bg-white rounded-lg shadow p-6"},ww={class:"text-xl font-semibold mb-6"},xw={class:"grid grid-cols-1 md:grid-cols-2 gap-6"},kw={class:"block text-sm font-bold text-gray-700 mb-1"},Sw={class:"flex"},$w=["placeholder"],Ew={class:"mt-1 text-sm text-gray-500"},Cw={class:"flex justify-end space-x-4"},Lw={type:"submit",class:"px-6 py-2 bg-blue-500 hover:bg-blue-600 text-white rounded-lg"},Tw=Fe({__name:"Config",setup(e){const{t}=Ge(),s=$n(),n=G(s.token||""),{connect:o}=Bl("");Xt(async()=>{await s.loadConfig(),n.value=s.token||localStorage.getItem("token")||""});async function l(){const i=await s.updateConfig();me({text:i.message||t("config.configUpdated"),type:i.code?"error":"success"})}async function r(){if(!(n.value!==s.token))return;let c=n.value;c&&(typeof window<"u"&&window.md5?c=window.md5(c).slice(0,8):c=btoa(c).replace(/[^a-zA-Z0-9]/g,"").slice(0,8)),s.token=c,c?(localStorage.setItem("token",c),await s.loadConfig()&&o()):localStorage.removeItem("token"),me({text:t("config.localConfigUpdated"),type:"success"})}return(i,c)=>(K(),Rt(En,{onNewDownload:()=>{}},{default:rs(()=>[a("div",O_,[a("div",U_,[a("div",M_,[a("h2",V_,m(i.$t("config.downloadSettings")),1),a("form",{onSubmit:yt(l,["prevent"]),class:"space-y-6"},[a("div",j_,[a("div",null,[a("label",W_,m(i.$t("config.threadNum")),1),De(a("input",{"onUpdate:modelValue":c[0]||(c[0]=u=>ye(s).config.threadNum=u),type:"number",min:"0",max:"16",class:"w-full p-2 border rounded-lg focus:ring-blue-500",placeholder:i.$t("config.threadNumPlaceholder")},null,8,H_),[[Xe,ye(s).config.threadNum,void 0,{number:!0}]]),a("p",B_,m(i.$t("config.threadNumHint")),1)]),a("div",null,[a("label",G_,m(i.$t("config.maxDownloads")),1),De(a("input",{"onUpdate:modelValue":c[1]||(c[1]=u=>ye(s).config.maxDownloads=u),type:"number",min:"1",max:"10",class:"w-full p-2 border rounded-lg focus:ring-blue-500",placeholder:i.$t("config.maxDownloadsPlaceholder")},null,8,K_),[[Xe,ye(s).config.maxDownloads,void 0,{number:!0}]]),a("p",q_,m(i.$t("config.maxDownloadsHint")),1)]),a("div",null,[a("label",z_,m(i.$t("config.saveDir")),1),a("div",Y_,[De(a("input",{"onUpdate:modelValue":c[2]||(c[2]=u=>ye(s).config.saveDir=u),type:"text",class:"w-full p-2 border rounded-lg focus:ring-blue-500",placeholder:i.$t("config.saveDirPlaceholder")},null,8,X_),[[Xe,ye(s).config.saveDir]])]),a("p",Q_,m(i.$t("config.saveDirHint")),1)]),a("div",null,[a("label",J_,m(i.$t("config.ffmpegPath")),1),De(a("input",{"onUpdate:modelValue":c[3]||(c[3]=u=>ye(s).config.ffmpegPath=u),type:"text",class:"w-full p-2 border rounded-lg focus:ring-blue-500",placeholder:i.$t("config.ffmpegPathPlaceholder")},null,8,Z_),[[Xe,ye(s).config.ffmpegPath]]),a("p",ew,m(i.$t("config.ffmpegPathHint")),1)]),a("div",null,[a("label",tw,m(i.$t("config.delCache")),1),a("div",sw,[a("label",nw,[De(a("input",{"onUpdate:modelValue":c[4]||(c[4]=u=>ye(s).config.delCache=u),type:"checkbox",class:"form-checkbox h-5 w-5 text-blue-500 rounded focus:ring-blue-500"},null,512),[[Is,ye(s).config.delCache]]),a("span",ow,m(i.$t("config.delCacheLabel")),1)])]),a("p",lw,m(i.$t("config.delCacheHint")),1)]),a("div",null,[a("label",rw,m(i.$t("config.convert")),1),a("div",aw,[a("label",iw,[De(a("input",{"onUpdate:modelValue":c[5]||(c[5]=u=>ye(s).config.convert=u),type:"checkbox",class:"form-checkbox h-5 w-5 text-blue-500 rounded focus:ring-blue-500"},null,512),[[Is,ye(s).config.convert]]),a("span",cw,m(i.$t("config.convertLabel")),1)])])]),a("div",null,[a("label",uw,m(i.$t("config.showPreview")),1),a("div",dw,[a("label",fw,[De(a("input",{"onUpdate:modelValue":c[6]||(c[6]=u=>ye(s).config.showPreview=u),type:"checkbox",class:"form-checkbox h-5 w-5 text-blue-500 rounded focus:ring-blue-500"},null,512),[[Is,ye(s).config.showPreview]]),a("span",pw,m(i.$t("config.showPreviewLabel")),1)])])]),a("div",null,[a("label",mw,m(i.$t("config.showLocalPlay")),1),a("div",hw,[a("label",gw,[De(a("input",{"onUpdate:modelValue":c[7]||(c[7]=u=>ye(s).config.showLocalPlay=u),type:"checkbox",class:"form-checkbox h-5 w-5 text-blue-500 rounded focus:ring-blue-500"},null,512),[[Is,ye(s).config.showLocalPlay]]),a("span",bw,m(i.$t("config.showLocalPlayLabel")),1)])])])]),a("div",vw,[a("button",yw,m(i.$t("config.save")),1)])],32)]),a("div",_w,[a("h2",ww,m(i.$t("config.localConfig")),1),a("form",{onSubmit:yt(r,["prevent"]),class:"space-y-6"},[a("div",xw,[a("div",null,[a("label",kw,m(i.$t("config.token")),1),a("div",Sw,[De(a("input",{"onUpdate:modelValue":c[8]||(c[8]=u=>n.value=u),type:"password",maxlength:"256",class:"w-full p-2 border rounded-lg focus:ring-blue-500",placeholder:i.$t("config.tokenPlaceholder")},null,8,$w),[[Xe,n.value]])]),a("p",Ew,m(i.$t("config.tokenHint")),1)])]),a("div",Cw,[a("button",Lw,m(i.$t("config.save")),1)])],32)])])])]),_:1}))}}),Iw=vo(Tw,[["__scopeId","data-v-51fd32c8"]]),Pw={class:"download-item p-4 hover:bg-gray-50 relative"},Dw={class:"flex items-center justify-between mb-2"},Aw={class:"flex-1"},Nw={class:"flex items-center"},Rw=["checked","title"],Fw=["title"],Ow={class:"absolute right-1 top-1 text-xs rounded overflow-hidden"},Uw={key:0,class:"px-2 py-0.5 bg-yellow-100 text-yellow-800"},Mw={key:1,class:"px-2 py-0.5 bg-green-100 text-green-800"},Vw={key:2,class:"px-2 py-0.5 bg-gray-100 text-gray-800"},jw={key:3,class:"px-2 py-0.5 bg-blue-100 text-blue-800"},Ww=["title"],Hw={class:"flex items-center text-sm text-gray-500 mt-1 flex-wrap gap-2"},Bw={key:2,class:"flex items-center"},Gw={class:"flex items-center"},Kw={key:3,class:"flex items-center"},qw={key:4,class:"flex items-center"},zw={class:"flex space-x-2"},Yw=["title"],Xw=["title"],Qw=["title"],Jw={class:"relative pt-1"},Zw={class:"flex mb-2 items-center justify-between"},e1={class:"flex items-center"},t1={class:"text-xs font-semibold inline-block text-blue-600"},s1={class:"text-xs font-semibold inline-block py-1 px-2 rounded text-green-600"},n1={class:"overflow-hidden h-2 text-xs flex rounded bg-blue-200"},o1=Fe({__name:"TaskItem",props:{task:{},isSelected:{type:Boolean}},emits:["toggle-select","show-detail","preview","local-play","pause","resume","delete"],setup(e){const{t}=Ge(),s=$n(),n=fe(()=>s.config);return(o,l)=>(K(),q("div",Pw,[a("div",Dw,[a("div",Aw,[a("div",Nw,[a("input",{type:"checkbox",checked:e.isSelected,onChange:l[0]||(l[0]=r=>o.$emit("toggle-select")),class:"form-checkbox h-5 w-5 text-blue-500 rounded focus:ring-blue-500 mr-2",title:o.$t("taskItem.selectTask",{name:e.task.showName})},null,40,Rw),a("h3",{class:"font-bold text-green-600 truncate max-w-[calc(100vw-100px)]",title:e.task.url},m(e.task.showName),9,Fw),a("div",Ow,[e.task.status==="pending"?(K(),q("span",Uw,m(o.$t("download.status.pending")),1)):e.task.status==="resume"?(K(),q("span",Mw,m(o.$t("download.status.resume")),1)):e.task.status==="pause"?(K(),q("span",Vw,m(o.$t("download.status.pause")),1)):e.task.status==="done"?(K(),q("span",jw,m(o.$t("download.status.done")),1)):e.task.status==="error"?(K(),q("span",{key:4,class:"px-2 py-0.5 bg-red-100 text-red-600",title:e.task.errmsg},[de(m(e.task.errmsg||o.$t("download.status.error"))+" ",1),l[7]||(l[7]=a("i",{class:"fas fa-info-circle"},null,-1))],8,Ww)):te("",!0)])]),a("div",Hw,[a("span",{class:"cursor-pointer text-blue-600 hover:text-blue-800",onClick:l[1]||(l[1]=r=>o.$emit("show-detail"))},[l[8]||(l[8]=a("i",{class:"fas fa-info-circle mr-1"},null,-1)),a("span",null,m(o.$t("taskItem.detail")),1)]),n.value?.showPreview?(K(),q("span",{key:0,class:"text-blue-500 hover:text-blue-600 cursor-pointer",onClick:l[2]||(l[2]=r=>o.$emit("preview"))},[l[9]||(l[9]=a("i",{class:"fas fa-eye mr-1"},null,-1)),de(m(o.$t("taskItem.preview")),1)])):te("",!0),n.value?.showLocalPlay?(K(),q("span",{key:1,class:"text-green-500 hover:text-green-600 cursor-pointer",onClick:l[3]||(l[3]=r=>o.$emit("local-play"))},[l[10]||(l[10]=a("i",{class:"fas fa-play-circle mr-1"},null,-1)),de(m(e.task.localVideo?o.$t("taskItem.play"):o.$t("taskItem.localPlay")),1)])):te("",!0),e.task.duration?(K(),q("span",Bw,[l[11]||(l[11]=a("i",{class:"fas fa-clock mr-1"},null,-1)),a("span",null,m(o.$t("taskItem.duration"))+": "+m(ye(Yn)(e.task.duration*1e3)),1)])):te("",!0),a("span",Gw,[l[12]||(l[12]=a("i",{class:"fas fa-file-video mr-1"},null,-1)),a("span",null,m(o.$t("taskItem.size"))+": "+m(ye(Ws)(e.task.downloadedSize||0)),1)]),e.task.tsCount?(K(),q("span",Kw,[l[13]||(l[13]=a("i",{class:"fas fa-file-alt mr-1"},null,-1)),a("span",null,m(o.$t("taskItem.segments"))+": "+m((e.task.tsSuccess||0)+(e.task.tsFailed||0))+"/"+m(e.task.tsCount),1)])):te("",!0),e.task.status==="resume"?(K(),q("span",qw,[l[14]||(l[14]=a("i",{class:"fas fa-hourglass-half mr-1"},null,-1)),a("span",null,m(o.$t("taskItem.remaining"))+": "+m(ye(Yn)(e.task.remainingTime||0)),1)])):te("",!0)])]),a("div",zw,[e.task.status==="resume"||e.task.status==="pending"?(K(),q("button",{key:0,onClick:l[4]||(l[4]=r=>o.$emit("pause")),class:"p-2 text-yellow-500 hover:bg-yellow-50 rounded",title:o.$t("taskItem.pause")},[...l[15]||(l[15]=[a("i",{class:"fas fa-pause"},null,-1)])],8,Yw)):te("",!0),e.task.status==="pause"||e.task.status==="error"?(K(),q("button",{key:1,onClick:l[5]||(l[5]=r=>o.$emit("resume")),class:"p-2 text-green-500 hover:bg-green-50 rounded",title:o.$t("taskItem.resume")},[...l[16]||(l[16]=[a("i",{class:"fas fa-play"},null,-1)])],8,Xw)):te("",!0),a("button",{onClick:l[6]||(l[6]=r=>o.$emit("delete")),class:"p-2 text-red-500 hover:bg-red-50 rounded",title:o.$t("taskItem.delete")},[...l[17]||(l[17]=[a("i",{class:"fas fa-trash"},null,-1)])],8,Qw)])]),a("div",Jw,[a("div",Zw,[a("div",e1,[a("span",t1,m(e.task.progress||0)+"% ",1)]),a("div",null,[a("span",s1,m(e.task.speedDesc),1)])]),a("div",n1,[a("div",{style:to({width:(e.task.progress||0)+"%"}),class:"progress-bar shadow-none flex flex-col text-center whitespace-nowrap text-white justify-center bg-blue-500"},null,4)])])]))}}),l1={class:"p-8 text-center text-gray-500"},r1=Fe({__name:"EmptyState",emits:["new-download"],setup(e){const{t}=Ge();return(s,n)=>(K(),q("div",l1,[n[2]||(n[2]=a("i",{class:"fas fa-download text-4xl mb-4"},null,-1)),a("p",null,m(s.$t("emptyState.noTasks")),1),a("button",{onClick:n[0]||(n[0]=o=>s.$emit("new-download")),class:"mt-4 px-4 py-2 bg-blue-500 text-white rounded hover:bg-blue-600"},[n[1]||(n[1]=a("i",{class:"fas fa-plus mr-1"},null,-1)),de(m(s.$t("emptyState.addTask")),1)])]))}}),a1={class:"bg-white rounded-lg shadow"},i1={class:"p-4"},c1={class:"flex justify-between items-center"},u1={class:"text-xl font-semibold"},d1={class:"flex space-x-2"},f1={class:"mt-4 flex items-center space-x-4"},p1={class:"flex-1"},m1={class:"relative"},h1=["placeholder","aria-label"],g1={class:"flex items-center space-x-2"},b1=["value","title","aria-label"],v1={value:""},y1={value:"resume"},_1={value:"pending"},w1={value:"pause"},x1={value:"error"},k1=["title","aria-label"],S1={class:"text-sm text-gray-600 border-b bg-gray-50"},$1={class:"flex items-center space-x-4 px-4 py-2"},E1={class:"flex items-center"},C1=["checked","indeterminate","title"],L1={class:"text-gray-700 text-sm"},T1={class:"ml-4 text-gray-400 text-xs"},I1={class:"flex items-center"},P1={class:"flex items-center"},D1={class:"flex items-center"},A1={class:"divide-y overflow-auto max-h-[calc(100vh-200px)]"},N1=Fe({__name:"TaskList",emits:["new-download","pause","resume","delete","clear-queue","show-detail","local-play"],setup(e,{emit:t}){const{t:s}=Ge(),n=ps(),o=fe(()=>n.filteredTasks),l=fe(()=>n.selectedTasks),r=fe(()=>n.queueStatus),i=fe(()=>n.statusFilter),c=G(n.searchQuery);let u=null;He(c,k=>{u&&clearTimeout(u),u=window.setTimeout(()=>{n.searchQuery=k},300)});const d=fe(()=>o.value.length>0&&l.value.length===o.value.length),f=fe(()=>l.value.length>0&&l.value.length<o.value.length);function g(k){const R=k.target;n.statusFilter=R.value}function v(){n.clearFilters()}function $(){n.toggleSelectAll()}function x(k){n.toggleTaskSelection(k)}const P=t;function _(k){P("pause",[k])}function S(k){P("resume",[k])}function I(k){P("delete",[k])}function w(k){P("show-detail",k)}function T(k){window.open(`https://m3u8-player.lzw.me?from=${Gl.isElectron?"app":"webui"}&url=${encodeURIComponent(k)}`)}function A(k){const R=k.localVideo||k.localM3u8;if(!R){console.error("[TaskList] localPlay: task 缺少本地文件路径",k),me({text:s("error.noLocalFile"),type:"error"});return}const H=location.origin+`/localplay/${R}`;P("local-play",{task:k,url:H})}return(k,R)=>(K(),q("div",a1,[a("div",i1,[a("div",c1,[a("h2",u1,m(k.$t("taskList.title")),1),a("div",d1,[a("button",{onClick:R[0]||(R[0]=H=>k.$emit("new-download")),class:"px-3 py-1 text-sm bg-blue-500 hover:bg-blue-600 text-white rounded"},[R[9]||(R[9]=a("i",{class:"fas fa-plus mr-1"},null,-1)),de(m(k.$t("taskList.new")),1)]),l.value.length>0?(K(),q("button",{key:0,onClick:R[1]||(R[1]=H=>k.$emit("pause",l.value)),class:"px-3 py-1 text-sm bg-yellow-500 text-white rounded hover:bg-yellow-600"},[R[10]||(R[10]=a("i",{class:"fas fa-pause mr-1"},null,-1)),de(m(k.$t("taskList.pauseSelected")),1)])):te("",!0),l.value.length>0?(K(),q("button",{key:1,onClick:R[2]||(R[2]=H=>k.$emit("resume",l.value)),class:"px-3 py-1 text-sm bg-green-500 text-white rounded hover:bg-green-600"},[R[11]||(R[11]=a("i",{class:"fas fa-play mr-1"},null,-1)),de(m(k.$t("taskList.resumeSelected")),1)])):te("",!0),l.value.length>0?(K(),q("button",{key:2,onClick:R[3]||(R[3]=H=>k.$emit("delete",l.value)),class:"px-3 py-1 text-sm bg-red-500 text-white rounded hover:bg-red-600"},[R[12]||(R[12]=a("i",{class:"fas fa-trash mr-1"},null,-1)),de(m(k.$t("taskList.deleteSelected")),1)])):te("",!0),l.value.length===0?(K(),q("button",{key:3,onClick:R[4]||(R[4]=H=>k.$emit("pause","all")),class:"px-3 py-1 text-sm bg-yellow-500 text-white rounded hover:bg-yellow-600"},[R[13]||(R[13]=a("i",{class:"fas fa-pause mr-1"},null,-1)),de(m(k.$t("taskList.pauseAll")),1)])):te("",!0),l.value.length===0?(K(),q("button",{key:4,onClick:R[5]||(R[5]=H=>k.$emit("resume","all")),class:"px-3 py-1 text-sm bg-green-500 text-white rounded hover:bg-green-600"},[R[14]||(R[14]=a("i",{class:"fas fa-play mr-1"},null,-1)),de(m(k.$t("taskList.resumeAll")),1)])):te("",!0),l.value.length===0?(K(),q("button",{key:5,onClick:R[6]||(R[6]=H=>k.$emit("clear-queue")),class:"px-3 py-1 text-sm bg-red-500 text-white rounded hover:bg-red-600"},[R[15]||(R[15]=a("i",{class:"fas fa-trash mr-1"},null,-1)),de(m(k.$t("taskList.clearQueue")),1)])):te("",!0)])]),a("div",f1,[a("div",p1,[a("div",m1,[De(a("input",{type:"text","onUpdate:modelValue":R[7]||(R[7]=H=>c.value=H),class:"w-full pl-10 pr-4 py-2 border rounded-lg focus:ring-blue-500 focus:border-blue-500",placeholder:k.$t("taskList.searchPlaceholder"),"aria-label":k.$t("taskList.searchLabel")},null,8,h1),[[Xe,c.value]]),R[16]||(R[16]=a("i",{class:"fas fa-search absolute left-3 top-3 text-gray-400"},null,-1))])]),a("div",g1,[a("select",{value:i.value,onChange:g,class:"px-3 py-2 border rounded-lg focus:ring-blue-500 focus:border-blue-500",title:k.$t("taskList.filterByStatus"),"aria-label":k.$t("taskList.filterByStatus")},[a("option",v1,m(k.$t("taskList.all")),1),a("option",y1,m(k.$t("taskList.status.resume")),1),a("option",_1,m(k.$t("taskList.status.pending")),1),a("option",w1,m(k.$t("taskList.status.pause")),1),a("option",x1,m(k.$t("taskList.status.error")),1)],40,b1),a("button",{onClick:v,class:"px-3 py-2 text-gray-600 hover:text-gray-800",title:k.$t("taskList.clearFilters"),"aria-label":k.$t("taskList.clearFilters")},[...R[17]||(R[17]=[a("i",{class:"fas fa-times"},null,-1)])],8,k1)])])]),a("div",S1,[a("div",$1,[a("div",E1,[a("input",{type:"checkbox",checked:d.value,indeterminate:f.value,onChange:$,class:"form-checkbox h-5 w-5 text-blue-500 rounded focus:ring-blue-500 mr-2",title:k.$t("taskList.selectAll")},null,40,C1),a("span",L1,m(k.$t("taskList.selectAll")),1),a("span",T1,m(k.$t("taskList.selected"))+" "+m(l.value.length)+" / "+m(o.value.length),1)]),a("div",I1,[R[18]||(R[18]=a("i",{class:"fas fa-tasks text-blue-600 mr-1"},null,-1)),a("span",null,m(k.$t("taskList.total"))+": "+m(o.value.length),1)]),a("div",P1,[R[19]||(R[19]=a("i",{class:"fas fa-clock text-yellow-500 mr-1"},null,-1)),a("span",null,m(k.$t("taskList.pending"))+": "+m(r.value.queueLength),1)]),a("div",D1,[R[20]||(R[20]=a("i",{class:"fas fa-download text-green-500 mr-1"},null,-1)),a("span",null,m(k.$t("taskList.downloading"))+": "+m(r.value.activeDownloads.length),1)])])]),a("div",A1,[te("",!0),(K(!0),q(Qe,null,lo(o.value,H=>(K(),Rt(o1,{key:H.url,task:H,"is-selected":l.value.includes(H.url),onToggleSelect:ne=>x(H.url),onShowDetail:ne=>w(H),onPreview:ne=>T(H.url),onLocalPlay:ne=>A(H),onPause:ne=>_(H.url),onResume:ne=>S(H.url),onDelete:ne=>I(H.url)},null,8,["task","is-selected","onToggleSelect","onShowDetail","onPreview","onLocalPlay","onPause","onResume","onDelete"]))),128)),o.value.length===0?(K(),Rt(r1,{key:1,onNewDownload:R[8]||(R[8]=H=>k.$emit("new-download"))})):te("",!0)])]))}}),R1={class:"p-1 md:p-2"},F1={key:0,class:"text-red-600 font-medium mb-2 whitespace-pre-line"},O1={class:"text-gray-600 whitespace-pre-line"},U1=Fe({__name:"Download",setup(e){const{t}=Ge(),s=ps(),n=$n(),o=rt("showGlobalNewDownload"),l=G(!1),r=G(!1),i=G(!1),c=G(!1),u=G(null),d=G([]),f=G(null),g=G(""),v=G(""),$=G(""),x=G(null);Xt(async()=>{const{connect:J}=Bl(n.token||"");J();const j=Object.keys(s.tasks).length;if(j===0)try{console.log("[Download] store 中没有任务,开始获取任务列表...");const X=await Dc();console.log("[Download] 获取到的任务数据:",X),X&&typeof X=="object"&&Object.keys(X).length>0?(s.setTasks(X),console.log("[Download] 任务数据已设置到 store,任务数量:",Object.keys(X).length)):console.log("[Download] 获取到的任务数据为空,保留现有数据")}catch(X){console.error("[Download] 获取任务列表失败:",X)}else console.log(`[Download] store 中已有 ${j} 个任务,跳过获取`);ne()});function P(){o&&o()}async function _(J){const X=await Rh(J==="all"?["all"]:J,J==="all");X.code||(me({text:X.message||t("toast.pauseSuccess"),type:"success"}),Array.isArray(J)&&J===s.selectedTasks&&s.clearSelection())}async function S(J){const X=await Fh(J==="all"?["all"]:J,J==="all");X.code||(me({text:X.message||t("toast.resumeSuccess"),type:"success"}),Array.isArray(J)&&J===s.selectedTasks&&s.clearSelection())}function I(J){J.length&&(d.value=J,r.value=!0)}async function w(J){const j=await Ac(d.value,J.deleteCache,J.deleteVideo);j.code||(me({text:j.message||t("toast.deleteSuccess"),type:"success"}),s.deleteTasks(d.value),d.value===s.selectedTasks&&s.clearSelection()),d.value=[]}async function T(){const J=await Mh();J.code?me({text:J.message||t("toast.clearQueueFailed"),type:"error"}):me({text:J.message||t("toast.clearQueueSuccess"),type:"success"})}function A(J){u.value=J,l.value=!0}function k(J){const{task:j,url:X}=J;if(j.status==="error"){v.value=j.errmsg?t("confirm.playError",{error:j.errmsg}):"",g.value=t("confirm.playConfirmMessage"),f.value={task:j,url:X},i.value=!0;return}H(X,j)}function R(){f.value&&(H(f.value.url,f.value.task),f.value=null)}function H(J,j){$.value=J,x.value=j||null,c.value=!0}function ne(){if(window.electron){const J=window.electron.ipc;J.on("message",j=>{typeof j.data=="string"?me({text:j.data,type:"info"}):console.log(j.data)}),J.on("downloadProgress",j=>{console.log("downloadProgress",j)})}}return(J,j)=>(K(),Rt(En,{onNewDownload:P},{default:rs(()=>[a("div",R1,[xe(N1,{onNewDownload:P,onPause:_,onResume:S,onDelete:I,onClearQueue:T,onShowDetail:A,onLocalPlay:k}),xe(Oc,{visible:l.value,task:u.value,onClose:j[0]||(j[0]=X=>l.value=!1)},null,8,["visible","task"]),xe(Uc,{visible:r.value,count:d.value.length,onClose:j[1]||(j[1]=X=>r.value=!1),onConfirm:w},null,8,["visible","count"]),xe(Mc,{visible:i.value,title:J.$t("confirm.play"),onClose:j[2]||(j[2]=X=>i.value=!1),onConfirm:R},{default:rs(()=>[v.value?(K(),q("p",F1,m(v.value),1)):te("",!0),a("p",O1,m(g.value),1)]),_:1},8,["visible","title"]),xe(Vc,{visible:c.value,"initial-url":$.value,"initial-task":x.value,onClose:j[3]||(j[3]=X=>c.value=!1)},null,8,["visible","initial-url","initial-task"])])]),_:1}))}}),M1=["m3u8","mp4","mkv","avi","mov","wmv","flv","webm","m4v","m3u","m4a","aac","flac","ape","mp3","wav","ogg","wma"];function jc(){return M1}function V1(){const e=jc();return new RegExp(`\\.(${e.join("|")})(\\?|$|#)`,"i")}function Ta(e){try{const t=new URL(e);return`${t.protocol}//${t.host}${t.pathname}`}catch{return e}}function j1(e){if(!e||typeof e!="string"||!e.startsWith("http"))return!1;const t=e.toLowerCase();return!!(V1().test(t)||t.includes(".m3u8"))}function Ia(e){if(!e||typeof e!="string")return"media";const t=e.toLowerCase(),s=jc();for(const n of s)if(new RegExp(`\\.${n}(\\?|$|#)`,"i").test(t))return n;return/m3u8/i.test(t)?"m3u8":"media"}function W1(e){if(!e||typeof e!="string")return null;try{const t=new URL(e);for(const[s,n]of t.searchParams.entries()){if(!n)continue;const o=decodeURIComponent(n);if(j1(o))return o}}catch{}return null}const H1={key:0,class:"web-browser-container border border-gray-300 rounded-lg p-4 bg-white"},B1={class:"flex items-center justify-between mb-3"},G1={class:"text-lg font-semibold text-gray-800"},K1={class:"flex gap-2"},q1={class:"flex gap-2 mb-3"},z1=["placeholder","disabled"],Y1=["disabled"],X1={key:0,class:"mb-3 p-2 bg-gray-50 rounded border border-gray-200"},Q1={class:"flex items-center gap-2 mb-2"},J1=["disabled","title"],Z1=["disabled","title"],ex=["title"],tx=["title"],sx={key:0,class:"text-xs text-gray-500"},nx={key:1,class:"mb-3 p-3 bg-red-50 border border-red-200 rounded text-red-700 text-sm"},ox={key:2,class:"mt-4"},lx={class:"flex items-center justify-between mb-2"},rx={class:"flex items-center gap-3"},ax={class:"text-sm font-semibold text-gray-700"},ix={class:"flex items-center gap-1 text-sm text-gray-600 cursor-pointer"},cx=["checked"],ux={key:0,class:"text-sm text-blue-600 font-medium"},dx={class:"flex gap-2"},fx={class:"m3u8-list-container border border-gray-200 rounded-lg overflow-hidden overflow-y-auto"},px={class:"flex items-start gap-3"},mx=["checked","onChange"],hx=["onClick"],gx={class:"flex items-center gap-2 mb-1"},bx=["title"],vx=["title"],yx=["title"],_x=["title"],wx={class:"flex flex-col gap-2 ml-2"},xx=["onClick"],kx=["onClick","title"],Sx={key:3,class:"text-sm text-gray-500 text-center py-4"},$x=Fe({__name:"WebBrowser",props:{visible:{type:Boolean}},emits:["batch-download"],setup(e,{emit:t}){const{t:s}=Ge(),n=t,o=fe(()=>Gl.isElectron),l=G(""),r=G(!1),i=G(""),c=G(""),u=G(""),d=G(!1),f=G(!1),g=G(!1),v=G([]),$=G(new Set);function x(){const B=l.value.trim();if(!B){me({text:s("webBrowser.enterUrl"),type:"error"});return}if(!/^https?:\/\//.test(B)){me({text:s("webBrowser.enterValidUrl"),type:"error"});return}if(!o.value){me({text:s("webBrowser.electronOnly"),type:"error"});return}r.value=!0,i.value="",c.value="",u.value=B,d.value=!0,window.electron?.ipc.send("web-browser:load",B)}function P(){o.value&&window.electron?.ipc.send("web-browser:stop"),r.value=!1}function _(){v.value=[],$.value.clear()}function S(B){if(B<0||B>=v.value.length)return;v.value.splice(B,1);const re=new Set;$.value.forEach(he=>{he<B?re.add(he):he>B&&re.add(he-1)}),$.value=re}function I(B){n("batch-download",[B])}function w(B){return $.value.has(B)}function T(B){$.value.has(B)?$.value.delete(B):$.value.add(B)}function A(B){B.target.checked?$.value=new Set(v.value.map((he,Se)=>Se)):$.value.clear()}const k=fe(()=>v.value.length>0&&$.value.size===v.value.length),R=fe(()=>$.value.size);function H(){if($.value.size===0){me({text:s("webBrowser.selectAtLeastOne"),type:"error"});return}const B=Array.from($.value).map(re=>v.value[re]).map(re=>({url:re.url,title:re.title}));n("batch-download",B),$.value.clear()}function ne(B){B.url=W1(B.url)||B.url;const re=Ta(B.url),he=v.value.find(Y=>Ta(Y.url)===re);if(he)if(!he.title)he.title=B.title||c.value||"";else return;const Se={url:B.url,title:B.title||c.value||"",pageUrl:B.pageUrl||u.value};let U=!1;for(let Y=0;Y<v.value.length;Y++){const z=v.value[Y];if(z.url.toLowerCase().endsWith(".m3u8")){const ee=z.url.lastIndexOf("/");if(ee!==-1){const F=z.url.substring(0,ee+1);if(B.url.includes(F)){v.value[Y].url=Se.url,v.value[Y].title||(v.value[Y].title=Se.title),U=!0;break}}}}U||v.value.push(Se),me({text:s("webBrowser.newVideoFound",{title:B.title||s("webBrowser.unnamedVideo")}),type:"success"})}function J(B){c.value=B,v.value.forEach(re=>{re.title||(re.title=B)})}function j(B){u.value=B}function X(B){u.value=B.url}function le(){d.value=!1,u.value="",c.value="",f.value=!1,g.value=!1}function ve(B){f.value=B.canGoBack,g.value=B.canGoForward}function ce(){o.value&&(window.electron?.ipc.send("web-browser:show"),d.value=!0)}function oe(){o.value&&(window.electron?.ipc.send("web-browser:hide"),d.value=!1)}function ue(){o.value&&window.electron?.ipc.send("web-browser:go-back")}function Ae(){o.value&&window.electron?.ipc.send("web-browser:go-forward")}function Je(){o.value&&window.electron?.ipc.send("web-browser:reload")}function Ke(B){r.value=B.loading,B.loading||(v.value.length===0?me({text:s("webBrowser.pageLoadCompleteNoVideos"),type:"info"}):me({text:s("webBrowser.pageLoadComplete",{count:v.value.length}),type:"success"}))}function Oe(B){i.value=`${s("error.requestFailed")}: ${B.description||`${s("error.unknownError")} ${B.code}`}`,r.value=!1,me({text:i.value,type:"error"})}return Xt(()=>{if(o.value&&window.electron){const B=window.electron.ipc;B.on("web-browser:m3u8-found",ne),B.on("web-browser:page-title",J),B.on("web-browser:loading",Ke),B.on("web-browser:error",Oe),B.on("web-browser:url-changed",j),B.on("web-browser:navigation",X),B.on("web-browser:closed",le),B.on("web-browser:navigation-state",ve)}}),ks(()=>{if(o.value&&window.electron){const B=window.electron.ipc;B.removeAllListeners("web-browser:m3u8-found"),B.removeAllListeners("web-browser:page-title"),B.removeAllListeners("web-browser:loading"),B.removeAllListeners("web-browser:error"),B.removeAllListeners("web-browser:url-changed"),B.removeAllListeners("web-browser:navigation"),B.removeAllListeners("web-browser:closed"),B.removeAllListeners("web-browser:navigation-state")}}),(B,re)=>o.value?(K(),q("div",H1,[a("div",B1,[a("h3",G1,[re[2]||(re[2]=a("i",{class:"fas fa-globe mr-2"},null,-1)),de(m(B.$t("webBrowser.title")),1)]),a("div",K1,[d.value?(K(),q("button",{key:0,onClick:oe,class:"px-3 py-1 bg-gray-500 text-white rounded hover:bg-gray-600 text-sm"},[re[3]||(re[3]=a("i",{class:"fas fa-eye-slash mr-1"},null,-1)),de(m(B.$t("webBrowser.hideBrowser")),1)])):u.value?(K(),q("button",{key:1,onClick:ce,class:"px-3 py-1 bg-green-500 text-white rounded hover:bg-green-600 text-sm"},[re[4]||(re[4]=a("i",{class:"fas fa-eye mr-1"},null,-1)),de(m(B.$t("webBrowser.showBrowser")),1)])):te("",!0),r.value?(K(),q("button",{key:2,onClick:P,class:"px-3 py-1 bg-red-500 text-white rounded hover:bg-red-600 text-sm"},[re[5]||(re[5]=a("i",{class:"fas fa-stop mr-1"},null,-1)),de(m(B.$t("webBrowser.stop")),1)])):te("",!0)])]),a("div",q1,[De(a("input",{"onUpdate:modelValue":re[0]||(re[0]=he=>l.value=he),type:"text",placeholder:B.$t("webBrowser.urlPlaceholder"),class:"flex-1 border border-gray-300 rounded px-3 py-2 focus:outline-none focus:ring-2 focus:ring-blue-400",disabled:r.value,onKeyup:Os(x,["enter"])},null,40,z1),[[Xe,l.value]]),a("button",{onClick:x,disabled:r.value||!l.value.trim(),class:"px-4 py-2 bg-blue-600 text-white rounded hover:bg-blue-700 focus:outline-none disabled:opacity-50 disabled:cursor-not-allowed"},m(r.value?B.$t("webBrowser.loading"):B.$t("webBrowser.load")),9,Y1)]),u.value?(K(),q("div",X1,[a("div",Q1,[a("button",{onClick:ue,disabled:!f.value,class:"px-2 py-1 bg-white border border-gray-300 rounded hover:bg-gray-50 disabled:opacity-50 disabled:cursor-not-allowed",title:B.$t("common.back")},[...re[6]||(re[6]=[a("i",{class:"fas fa-arrow-left"},null,-1)])],8,J1),a("button",{onClick:Ae,disabled:!g.value,class:"px-2 py-1 bg-white border border-gray-300 rounded hover:bg-gray-50 disabled:opacity-50 disabled:cursor-not-allowed",title:B.$t("common.forward")},[...re[7]||(re[7]=[a("i",{class:"fas fa-arrow-right"},null,-1)])],8,Z1),a("button",{onClick:Je,class:"px-2 py-1 bg-white border border-gray-300 rounded hover:bg-gray-50",title:B.$t("common.refresh")},[...re[8]||(re[8]=[a("i",{class:"fas fa-sync-alt"},null,-1)])],8,ex),a("div",{class:"flex-1 text-xs text-gray-600 truncate ml-2",title:u.value},[re[9]||(re[9]=a("i",{class:"fas fa-link mr-1"},null,-1)),de(m(u.value),1)],8,tx)]),c.value?(K(),q("div",sx,[re[10]||(re[10]=a("i",{class:"fas fa-file-alt mr-1"},null,-1)),de(m(c.value),1)])):te("",!0)])):te("",!0),i.value?(K(),q("div",nx,[re[11]||(re[11]=a("i",{class:"fas fa-exclamation-circle mr-2"},null,-1)),de(m(i.value),1)])):te("",!0),v.value.length>0?(K(),q("div",ox,[a("div",lx,[a("div",rx,[a("h4",ax,m(B.$t("webBrowser.foundVideos",{count:v.value.length})),1),a("label",ix,[a("input",{type:"checkbox",checked:k.value,onChange:A,class:"rounded border-gray-300 text-blue-600 focus:ring-blue-500"},null,40,cx),a("span",null,m(B.$t("download.selectAll")),1)]),R.value>0?(K(),q("span",ux,m(B.$t("download.selected"))+" "+m(R.value),1)):te("",!0)]),a("div",dx,[R.value>0?(K(),q("button",{key:0,onClick:H,class:"px-3 py-1 bg-green-500 text-white rounded hover:bg-green-600 text-sm"},m(B.$t("download.batchDownload"))+" ("+m(R.value)+") ",1)):te("",!0),a("button",{onClick:_,class:"text-sm text-gray-500 hover:text-gray-700"},m(B.$t("webBrowser.clearList")),1)])]),a("div",fx,[(K(!0),q(Qe,null,lo(v.value,(he,Se)=>(K(),q("div",{key:Se,class:Ne(["p-3 border-b border-gray-100 hover:bg-gray-50 transition-colors",{"bg-blue-50":w(Se)}])},[a("div",px,[a("input",{type:"checkbox",checked:w(Se),onChange:U=>T(Se),onClick:re[1]||(re[1]=yt(()=>{},["stop"])),class:"mt-1 rounded border-gray-300 text-blue-600 focus:ring-blue-500"},null,40,mx),a("div",{class:"flex-1 min-w-0 cursor-pointer",onClick:U=>I(he)},[a("div",gx,[a("div",{class:"text-sm font-medium text-gray-800 truncate",title:he.title},m(he.title||B.$t("webBrowser.unnamedVideo")),9,bx),a("span",{class:"text-xs px-2 py-0.5 bg-blue-100 text-blue-700 rounded",title:ye(Ia)(he.url)},m(ye(Ia)(he.url).toUpperCase()),9,vx)]),a("div",{class:"text-xs text-gray-500 truncate",title:he.url},m(he.url),9,yx),he.pageUrl&&he.pageUrl!==u.value?(K(),q("div",{key:0,class:"text-xs text-gray-400 mt-1 truncate",title:he.pageUrl},m(B.$t("webBrowser.source"))+": "+m(he.pageUrl),9,_x)):te("",!0)],8,hx),a("div",wx,[a("button",{onClick:yt(U=>I(he),["stop"]),class:"px-3 py-1 bg-blue-500 text-white rounded hover:bg-blue-600 text-sm whitespace-nowrap"},m(B.$t("webBrowser.download")),9,xx),a("button",{onClick:yt(U=>S(Se),["stop"]),class:"px-3 py-1 bg-red-500 text-white rounded hover:bg-red-600 text-sm whitespace-nowrap",title:B.$t("common.delete")},[...re[12]||(re[12]=[a("i",{class:"fas fa-trash"},null,-1)])],8,kx)])])],2))),128))])])):!r.value&&l.value?(K(),q("div",Sx,m(B.$t("webBrowser.noVideos")),1)):te("",!0)])):te("",!0)}}),Ex=vo($x,[["__scopeId","data-v-64486f5d"]]),Cx={class:"p-1 md:p-2"},Lx=Fe({__name:"WebBrowser",setup(e){const t=rt("showGlobalNewDownload");function s(n){const o=n.map(l=>l.title?`${l.url} | ${l.title}`:l.url).join(`
|
|
29
|
+
`);t&&t({url:o})}return(n,o)=>(K(),Rt(En,null,{default:rs(()=>[a("div",Cx,[xe(Ex,{onBatchDownload:s})])]),_:1}))}}),Tx=$p({history:np(),routes:[{path:"/",redirect:"/page/download"},{path:"/page/download",name:"download",component:U1},{path:"/page/web-browser",name:"web-browser",component:Lx},{path:"/page/completed",name:"completed",component:F_},{path:"/page/config",name:"config",component:Iw},{path:"/page/about",name:"about",component:gv}],scrollBehavior(e,t,s){return{top:0,left:0}}});function Ix(e=""){const t=window;if(Array.isArray(t._hmt)&&t._hmt.length>0)return;t._hmt=[];const s=document.createElement("script");s.src=`https://hm.baidu.com/hm.js?${e||"0b21eda331ac9677a4c546dea88616d0"}`;const n=document.getElementsByTagName("script")[0];n.parentNode?.insertBefore(s,n)}const yo=df(Ug),Px=mf();yo.use(Px);yo.use(Tx);yo.use(Tc);yo.mount("#app");Ix();
|