@lzwme/m3u8-dl 1.6.0-0 → 1.6.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 +293 -212
- package/README.zh-CN.md +580 -0
- package/cjs/i18n/locales/en.js +1 -1
- package/cjs/i18n/locales/{zh.js → zh-CN.js} +1 -1
- package/cjs/lib/file-download.js +1 -1
- package/cjs/lib/format-options.js +27 -4
- package/cjs/lib/i18n.d.ts +1 -1
- package/cjs/lib/i18n.js +29 -10
- package/cjs/lib/m3u8-download.js +1 -1
- package/cjs/server/download-server.js +3 -2
- package/cjs/types/m3u8.d.ts +2 -2
- package/client/assets/main-ChJ1yjNN.css +1 -0
- package/client/assets/main-DZTEqg-V.js +29 -0
- package/client/index.html +3 -3
- package/client/m3u8-capture.user.js +94 -0
- package/client/play.html +2 -2
- package/package.json +20 -10
- package/client/assets/main-DYJAIw1q.css +0 -1
- package/client/assets/main-XL0wiaDU.js +0 -25
- /package/cjs/i18n/locales/{zh.d.ts → zh-CN.d.ts} +0 -0
|
@@ -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"]'))s(o);new MutationObserver(o=>{for(const r of o)if(r.type==="childList")for(const l of r.addedNodes)l.tagName==="LINK"&&l.rel==="modulepreload"&&s(l)}).observe(document,{childList:!0,subtree:!0});function n(o){const r={};return o.integrity&&(r.integrity=o.integrity),o.referrerPolicy&&(r.referrerPolicy=o.referrerPolicy),o.crossOrigin==="use-credentials"?r.credentials="include":o.crossOrigin==="anonymous"?r.credentials="omit":r.credentials="same-origin",r}function s(o){if(o.ep)return;o.ep=!0;const r=n(o);fetch(o.href,r)}})();function Sr(e){const t=Object.create(null);for(const n of e.split(","))t[n]=1;return n=>n in t}const Le={},Un=[],Nt=()=>{},za=()=>!1,ro=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&(e.charCodeAt(2)>122||e.charCodeAt(2)<97),$r=e=>e.startsWith("onUpdate:"),ze=Object.assign,Er=(e,t)=>{const n=e.indexOf(t);n>-1&&e.splice(n,1)},iu=Object.prototype.hasOwnProperty,Se=(e,t)=>iu.call(e,t),se=Array.isArray,Vn=e=>$s(e)==="[object Map]",Yn=e=>$s(e)==="[object Set]",ll=e=>$s(e)==="[object Date]",ie=e=>typeof e=="function",Ve=e=>typeof e=="string",$t=e=>typeof e=="symbol",Ce=e=>e!==null&&typeof e=="object",Ya=e=>(Ce(e)||ie(e))&&ie(e.then)&&ie(e.catch),Xa=Object.prototype.toString,$s=e=>Xa.call(e),cu=e=>$s(e).slice(8,-1),Qa=e=>$s(e)==="[object Object]",Cr=e=>Ve(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,ns=Sr(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),lo=e=>{const t=Object.create(null);return(n=>t[n]||(t[n]=e(n)))},uu=/-\w/g,wt=lo(e=>e.replace(uu,t=>t.slice(1).toUpperCase())),fu=/\B([A-Z])/g,mn=lo(e=>e.replace(fu,"-$1").toLowerCase()),ao=lo(e=>e.charAt(0).toUpperCase()+e.slice(1)),Lo=lo(e=>e?`on${ao(e)}`:""),cn=(e,t)=>!Object.is(e,t),Hs=(e,...t)=>{for(let n=0;n<e.length;n++)e[n](...t)},Ja=(e,t,n,s=!1)=>{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,writable:s,value:n})},io=e=>{const t=parseFloat(e);return isNaN(t)?e:t},du=e=>{const t=Ve(e)?Number(e):NaN;return isNaN(t)?e:t};let al;const co=()=>al||(al=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});function uo(e){if(se(e)){const t={};for(let n=0;n<e.length;n++){const s=e[n],o=Ve(s)?gu(s):uo(s);if(o)for(const r in o)t[r]=o[r]}return t}else if(Ve(e)||Ce(e))return e}const pu=/;(?![^(]*\))/g,mu=/:([^]+)/,hu=/\/\*[^]*?\*\//g;function gu(e){const t={};return e.replace(hu,"").split(pu).forEach(n=>{if(n){const s=n.split(mu);s.length>1&&(t[s[0].trim()]=s[1].trim())}}),t}function Xe(e){let t="";if(Ve(e))t=e;else if(se(e))for(let n=0;n<e.length;n++){const s=Xe(e[n]);s&&(t+=s+" ")}else if(Ce(e))for(const n in e)e[n]&&(t+=n+" ");return t.trim()}const bu="itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly",vu=Sr(bu);function Za(e){return!!e||e===""}function yu(e,t){if(e.length!==t.length)return!1;let n=!0;for(let s=0;n&&s<e.length;s++)n=Es(e[s],t[s]);return n}function Es(e,t){if(e===t)return!0;let n=ll(e),s=ll(t);if(n||s)return n&&s?e.getTime()===t.getTime():!1;if(n=$t(e),s=$t(t),n||s)return e===t;if(n=se(e),s=se(t),n||s)return n&&s?yu(e,t):!1;if(n=Ce(e),s=Ce(t),n||s){if(!n||!s)return!1;const o=Object.keys(e).length,r=Object.keys(t).length;if(o!==r)return!1;for(const l in e){const a=e.hasOwnProperty(l),i=t.hasOwnProperty(l);if(a&&!i||!a&&i||!Es(e[l],t[l]))return!1}}return String(e)===String(t)}function Lr(e,t){return e.findIndex(n=>Es(n,t))}const ei=e=>!!(e&&e.__v_isRef===!0),m=e=>Ve(e)?e:e==null?"":se(e)||Ce(e)&&(e.toString===Xa||!ie(e.toString))?ei(e)?m(e.value):JSON.stringify(e,ti,2):String(e),ti=(e,t)=>ei(t)?ti(e,t.value):Vn(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((n,[s,o],r)=>(n[To(s,r)+" =>"]=o,n),{})}:Yn(t)?{[`Set(${t.size})`]:[...t.values()].map(n=>To(n))}:$t(t)?To(t):Ce(t)&&!se(t)&&!Qa(t)?String(t):t,To=(e,t="")=>{var n;return $t(e)?`Symbol(${(n=e.description)!=null?n:t})`:e};let et;class ni{constructor(t=!1){this.detached=t,this._active=!0,this._on=0,this.effects=[],this.cleanups=[],this._isPaused=!1,this.parent=et,!t&&et&&(this.index=(et.scopes||(et.scopes=[])).push(this)-1)}get active(){return this._active}pause(){if(this._active){this._isPaused=!0;let t,n;if(this.scopes)for(t=0,n=this.scopes.length;t<n;t++)this.scopes[t].pause();for(t=0,n=this.effects.length;t<n;t++)this.effects[t].pause()}}resume(){if(this._active&&this._isPaused){this._isPaused=!1;let t,n;if(this.scopes)for(t=0,n=this.scopes.length;t<n;t++)this.scopes[t].resume();for(t=0,n=this.effects.length;t<n;t++)this.effects[t].resume()}}run(t){if(this._active){const n=et;try{return et=this,t()}finally{et=n}}}on(){++this._on===1&&(this.prevScope=et,et=this)}off(){this._on>0&&--this._on===0&&(et=this.prevScope,this.prevScope=void 0)}stop(t){if(this._active){this._active=!1;let n,s;for(n=0,s=this.effects.length;n<s;n++)this.effects[n].stop();for(this.effects.length=0,n=0,s=this.cleanups.length;n<s;n++)this.cleanups[n]();if(this.cleanups.length=0,this.scopes){for(n=0,s=this.scopes.length;n<s;n++)this.scopes[n].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 Tr(e){return new ni(e)}function si(){return et}function _u(e,t=!1){et&&et.cleanups.push(e)}let Ie;const Io=new WeakSet;class oi{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,et&&et.active&&et.effects.push(this)}pause(){this.flags|=64}resume(){this.flags&64&&(this.flags&=-65,Io.has(this)&&(Io.delete(this),this.trigger()))}notify(){this.flags&2&&!(this.flags&32)||this.flags&8||li(this)}run(){if(!(this.flags&1))return this.fn();this.flags|=2,il(this),ai(this);const t=Ie,n=St;Ie=this,St=!0;try{return this.fn()}finally{ii(this),Ie=t,St=n,this.flags&=-3}}stop(){if(this.flags&1){for(let t=this.deps;t;t=t.nextDep)Ar(t);this.deps=this.depsTail=void 0,il(this),this.onStop&&this.onStop(),this.flags&=-2}}trigger(){this.flags&64?Io.add(this):this.scheduler?this.scheduler():this.runIfDirty()}runIfDirty(){zo(this)&&this.run()}get dirty(){return zo(this)}}let ri=0,ss,os;function li(e,t=!1){if(e.flags|=8,t){e.next=os,os=e;return}e.next=ss,ss=e}function Ir(){ri++}function Pr(){if(--ri>0)return;if(os){let t=os;for(os=void 0;t;){const n=t.next;t.next=void 0,t.flags&=-9,t=n}}let e;for(;ss;){let t=ss;for(ss=void 0;t;){const n=t.next;if(t.next=void 0,t.flags&=-9,t.flags&1)try{t.trigger()}catch(s){e||(e=s)}t=n}}if(e)throw e}function ai(e){for(let t=e.deps;t;t=t.nextDep)t.version=-1,t.prevActiveLink=t.dep.activeLink,t.dep.activeLink=t}function ii(e){let t,n=e.depsTail,s=n;for(;s;){const o=s.prevDep;s.version===-1?(s===n&&(n=o),Ar(s),wu(s)):t=s,s.dep.activeLink=s.prevActiveLink,s.prevActiveLink=void 0,s=o}e.deps=t,e.depsTail=n}function zo(e){for(let t=e.deps;t;t=t.nextDep)if(t.dep.version!==t.version||t.dep.computed&&(ci(t.dep.computed)||t.dep.version!==t.version))return!0;return!!e._dirty}function ci(e){if(e.flags&4&&!(e.flags&16)||(e.flags&=-17,e.globalVersion===fs)||(e.globalVersion=fs,!e.isSSR&&e.flags&128&&(!e.deps&&!e._dirty||!zo(e))))return;e.flags|=2;const t=e.dep,n=Ie,s=St;Ie=e,St=!0;try{ai(e);const o=e.fn(e._value);(t.version===0||cn(o,e._value))&&(e.flags|=128,e._value=o,t.version++)}catch(o){throw t.version++,o}finally{Ie=n,St=s,ii(e),e.flags&=-3}}function Ar(e,t=!1){const{dep:n,prevSub:s,nextSub:o}=e;if(s&&(s.nextSub=o,e.prevSub=void 0),o&&(o.prevSub=s,e.nextSub=void 0),n.subs===e&&(n.subs=s,!s&&n.computed)){n.computed.flags&=-5;for(let r=n.computed.deps;r;r=r.nextDep)Ar(r,!0)}!t&&!--n.sc&&n.map&&n.map.delete(n.key)}function wu(e){const{prevDep:t,nextDep:n}=e;t&&(t.nextDep=n,e.prevDep=void 0),n&&(n.prevDep=t,e.nextDep=void 0)}let St=!0;const ui=[];function Jt(){ui.push(St),St=!1}function Zt(){const e=ui.pop();St=e===void 0?!0:e}function il(e){const{cleanup:t}=e;if(e.cleanup=void 0,t){const n=Ie;Ie=void 0;try{t()}finally{Ie=n}}}let fs=0;class xu{constructor(t,n){this.sub=t,this.dep=n,this.version=n.version,this.nextDep=this.prevDep=this.nextSub=this.prevSub=this.prevActiveLink=void 0}}class Dr{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(!Ie||!St||Ie===this.computed)return;let n=this.activeLink;if(n===void 0||n.sub!==Ie)n=this.activeLink=new xu(Ie,this),Ie.deps?(n.prevDep=Ie.depsTail,Ie.depsTail.nextDep=n,Ie.depsTail=n):Ie.deps=Ie.depsTail=n,fi(n);else if(n.version===-1&&(n.version=this.version,n.nextDep)){const s=n.nextDep;s.prevDep=n.prevDep,n.prevDep&&(n.prevDep.nextDep=s),n.prevDep=Ie.depsTail,n.nextDep=void 0,Ie.depsTail.nextDep=n,Ie.depsTail=n,Ie.deps===n&&(Ie.deps=s)}return n}trigger(t){this.version++,fs++,this.notify(t)}notify(t){Ir();try{for(let n=this.subs;n;n=n.prevSub)n.sub.notify()&&n.sub.dep.notify()}finally{Pr()}}}function fi(e){if(e.dep.sc++,e.sub.flags&4){const t=e.dep.computed;if(t&&!e.dep.subs){t.flags|=20;for(let s=t.deps;s;s=s.nextDep)fi(s)}const n=e.dep.subs;n!==e&&(e.prevSub=n,n&&(n.nextSub=e)),e.dep.subs=e}}const qs=new WeakMap,Cn=Symbol(""),Yo=Symbol(""),ds=Symbol("");function st(e,t,n){if(St&&Ie){let s=qs.get(e);s||qs.set(e,s=new Map);let o=s.get(n);o||(s.set(n,o=new Dr),o.map=s,o.key=n),o.track()}}function Gt(e,t,n,s,o,r){const l=qs.get(e);if(!l){fs++;return}const a=i=>{i&&i.trigger()};if(Ir(),t==="clear")l.forEach(a);else{const i=se(e),u=i&&Cr(n);if(i&&n==="length"){const f=Number(s);l.forEach((d,p)=>{(p==="length"||p===ds||!$t(p)&&p>=f)&&a(d)})}else switch((n!==void 0||l.has(void 0))&&a(l.get(n)),u&&a(l.get(ds)),t){case"add":i?u&&a(l.get("length")):(a(l.get(Cn)),Vn(e)&&a(l.get(Yo)));break;case"delete":i||(a(l.get(Cn)),Vn(e)&&a(l.get(Yo)));break;case"set":Vn(e)&&a(l.get(Cn));break}}Pr()}function ku(e,t){const n=qs.get(e);return n&&n.get(t)}function An(e){const t=be(e);return t===e?t:(st(t,"iterate",ds),_t(e)?t:t.map(Qe))}function fo(e){return st(e=be(e),"iterate",ds),e}const Su={__proto__:null,[Symbol.iterator](){return Po(this,Symbol.iterator,Qe)},concat(...e){return An(this).concat(...e.map(t=>se(t)?An(t):t))},entries(){return Po(this,"entries",e=>(e[1]=Qe(e[1]),e))},every(e,t){return Ut(this,"every",e,t,void 0,arguments)},filter(e,t){return Ut(this,"filter",e,t,n=>n.map(Qe),arguments)},find(e,t){return Ut(this,"find",e,t,Qe,arguments)},findIndex(e,t){return Ut(this,"findIndex",e,t,void 0,arguments)},findLast(e,t){return Ut(this,"findLast",e,t,Qe,arguments)},findLastIndex(e,t){return Ut(this,"findLastIndex",e,t,void 0,arguments)},forEach(e,t){return Ut(this,"forEach",e,t,void 0,arguments)},includes(...e){return Ao(this,"includes",e)},indexOf(...e){return Ao(this,"indexOf",e)},join(e){return An(this).join(e)},lastIndexOf(...e){return Ao(this,"lastIndexOf",e)},map(e,t){return Ut(this,"map",e,t,void 0,arguments)},pop(){return Qn(this,"pop")},push(...e){return Qn(this,"push",e)},reduce(e,...t){return cl(this,"reduce",e,t)},reduceRight(e,...t){return cl(this,"reduceRight",e,t)},shift(){return Qn(this,"shift")},some(e,t){return Ut(this,"some",e,t,void 0,arguments)},splice(...e){return Qn(this,"splice",e)},toReversed(){return An(this).toReversed()},toSorted(e){return An(this).toSorted(e)},toSpliced(...e){return An(this).toSpliced(...e)},unshift(...e){return Qn(this,"unshift",e)},values(){return Po(this,"values",Qe)}};function Po(e,t,n){const s=fo(e),o=s[t]();return s!==e&&!_t(e)&&(o._next=o.next,o.next=()=>{const r=o._next();return r.done||(r.value=n(r.value)),r}),o}const $u=Array.prototype;function Ut(e,t,n,s,o,r){const l=fo(e),a=l!==e&&!_t(e),i=l[t];if(i!==$u[t]){const d=i.apply(e,r);return a?Qe(d):d}let u=n;l!==e&&(a?u=function(d,p){return n.call(this,Qe(d),p,e)}:n.length>2&&(u=function(d,p){return n.call(this,d,p,e)}));const f=i.call(l,u,s);return a&&o?o(f):f}function cl(e,t,n,s){const o=fo(e);let r=n;return o!==e&&(_t(e)?n.length>3&&(r=function(l,a,i){return n.call(this,l,a,i,e)}):r=function(l,a,i){return n.call(this,l,Qe(a),i,e)}),o[t](r,...s)}function Ao(e,t,n){const s=be(e);st(s,"iterate",ds);const o=s[t](...n);return(o===-1||o===!1)&&Or(n[0])?(n[0]=be(n[0]),s[t](...n)):o}function Qn(e,t,n=[]){Jt(),Ir();const s=be(e)[t].apply(e,n);return Pr(),Zt(),s}const Eu=Sr("__proto__,__v_isRef,__isVue"),di=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!=="arguments"&&e!=="caller").map(e=>Symbol[e]).filter($t));function Cu(e){$t(e)||(e=String(e));const t=be(this);return st(t,"has",e),t.hasOwnProperty(e)}class pi{constructor(t=!1,n=!1){this._isReadonly=t,this._isShallow=n}get(t,n,s){if(n==="__v_skip")return t.__v_skip;const o=this._isReadonly,r=this._isShallow;if(n==="__v_isReactive")return!o;if(n==="__v_isReadonly")return o;if(n==="__v_isShallow")return r;if(n==="__v_raw")return s===(o?r?Fu:bi:r?gi:hi).get(t)||Object.getPrototypeOf(t)===Object.getPrototypeOf(s)?t:void 0;const l=se(t);if(!o){let i;if(l&&(i=Su[n]))return i;if(n==="hasOwnProperty")return Cu}const a=Reflect.get(t,n,Oe(t)?t:s);if(($t(n)?di.has(n):Eu(n))||(o||st(t,"get",n),r))return a;if(Oe(a)){const i=l&&Cr(n)?a:a.value;return o&&Ce(i)?Qo(i):i}return Ce(a)?o?Qo(a):Cs(a):a}}class mi extends pi{constructor(t=!1){super(!1,t)}set(t,n,s,o){let r=t[n];if(!this._isShallow){const i=fn(r);if(!_t(s)&&!fn(s)&&(r=be(r),s=be(s)),!se(t)&&Oe(r)&&!Oe(s))return i||(r.value=s),!0}const l=se(t)&&Cr(n)?Number(n)<t.length:Se(t,n),a=Reflect.set(t,n,s,Oe(t)?t:o);return t===be(o)&&(l?cn(s,r)&&Gt(t,"set",n,s):Gt(t,"add",n,s)),a}deleteProperty(t,n){const s=Se(t,n);t[n];const o=Reflect.deleteProperty(t,n);return o&&s&&Gt(t,"delete",n,void 0),o}has(t,n){const s=Reflect.has(t,n);return(!$t(n)||!di.has(n))&&st(t,"has",n),s}ownKeys(t){return st(t,"iterate",se(t)?"length":Cn),Reflect.ownKeys(t)}}class Lu extends pi{constructor(t=!1){super(!0,t)}set(t,n){return!0}deleteProperty(t,n){return!0}}const Tu=new mi,Iu=new Lu,Pu=new mi(!0);const Xo=e=>e,Rs=e=>Reflect.getPrototypeOf(e);function Au(e,t,n){return function(...s){const o=this.__v_raw,r=be(o),l=Vn(r),a=e==="entries"||e===Symbol.iterator&&l,i=e==="keys"&&l,u=o[e](...s),f=n?Xo:t?zs:Qe;return!t&&st(r,"iterate",i?Yo:Cn),{next(){const{value:d,done:p}=u.next();return p?{value:d,done:p}:{value:a?[f(d[0]),f(d[1])]:f(d),done:p}},[Symbol.iterator](){return this}}}}function Os(e){return function(...t){return e==="delete"?!1:e==="clear"?void 0:this}}function Du(e,t){const n={get(o){const r=this.__v_raw,l=be(r),a=be(o);e||(cn(o,a)&&st(l,"get",o),st(l,"get",a));const{has:i}=Rs(l),u=t?Xo:e?zs:Qe;if(i.call(l,o))return u(r.get(o));if(i.call(l,a))return u(r.get(a));r!==l&&r.get(o)},get size(){const o=this.__v_raw;return!e&&st(be(o),"iterate",Cn),o.size},has(o){const r=this.__v_raw,l=be(r),a=be(o);return e||(cn(o,a)&&st(l,"has",o),st(l,"has",a)),o===a?r.has(o):r.has(o)||r.has(a)},forEach(o,r){const l=this,a=l.__v_raw,i=be(a),u=t?Xo:e?zs:Qe;return!e&&st(i,"iterate",Cn),a.forEach((f,d)=>o.call(r,u(f),u(d),l))}};return ze(n,e?{add:Os("add"),set:Os("set"),delete:Os("delete"),clear:Os("clear")}:{add(o){!t&&!_t(o)&&!fn(o)&&(o=be(o));const r=be(this);return Rs(r).has.call(r,o)||(r.add(o),Gt(r,"add",o,o)),this},set(o,r){!t&&!_t(r)&&!fn(r)&&(r=be(r));const l=be(this),{has:a,get:i}=Rs(l);let u=a.call(l,o);u||(o=be(o),u=a.call(l,o));const f=i.call(l,o);return l.set(o,r),u?cn(r,f)&&Gt(l,"set",o,r):Gt(l,"add",o,r),this},delete(o){const r=be(this),{has:l,get:a}=Rs(r);let i=l.call(r,o);i||(o=be(o),i=l.call(r,o)),a&&a.call(r,o);const u=r.delete(o);return i&&Gt(r,"delete",o,void 0),u},clear(){const o=be(this),r=o.size!==0,l=o.clear();return r&&Gt(o,"clear",void 0,void 0),l}}),["keys","values","entries",Symbol.iterator].forEach(o=>{n[o]=Au(o,e,t)}),n}function Nr(e,t){const n=Du(e,t);return(s,o,r)=>o==="__v_isReactive"?!e:o==="__v_isReadonly"?e:o==="__v_raw"?s:Reflect.get(Se(n,o)&&o in s?n:s,o,r)}const Nu={get:Nr(!1,!1)},Ru={get:Nr(!1,!0)},Ou={get:Nr(!0,!1)};const hi=new WeakMap,gi=new WeakMap,bi=new WeakMap,Fu=new WeakMap;function Mu(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function Uu(e){return e.__v_skip||!Object.isExtensible(e)?0:Mu(cu(e))}function Cs(e){return fn(e)?e:Rr(e,!1,Tu,Nu,hi)}function vi(e){return Rr(e,!1,Pu,Ru,gi)}function Qo(e){return Rr(e,!0,Iu,Ou,bi)}function Rr(e,t,n,s,o){if(!Ce(e)||e.__v_raw&&!(t&&e.__v_isReactive))return e;const r=Uu(e);if(r===0)return e;const l=o.get(e);if(l)return l;const a=new Proxy(e,r===2?s:n);return o.set(e,a),a}function un(e){return fn(e)?un(e.__v_raw):!!(e&&e.__v_isReactive)}function fn(e){return!!(e&&e.__v_isReadonly)}function _t(e){return!!(e&&e.__v_isShallow)}function Or(e){return e?!!e.__v_raw:!1}function be(e){const t=e&&e.__v_raw;return t?be(t):e}function Fr(e){return!Se(e,"__v_skip")&&Object.isExtensible(e)&&Ja(e,"__v_skip",!0),e}const Qe=e=>Ce(e)?Cs(e):e,zs=e=>Ce(e)?Qo(e):e;function Oe(e){return e?e.__v_isRef===!0:!1}function X(e){return _i(e,!1)}function yi(e){return _i(e,!0)}function _i(e,t){return Oe(e)?e:new Vu(e,t)}class Vu{constructor(t,n){this.dep=new Dr,this.__v_isRef=!0,this.__v_isShallow=!1,this._rawValue=n?t:be(t),this._value=n?t:Qe(t),this.__v_isShallow=n}get value(){return this.dep.track(),this._value}set value(t){const n=this._rawValue,s=this.__v_isShallow||_t(t)||fn(t);t=s?t:be(t),cn(t,n)&&(this._rawValue=t,this._value=s?t:Qe(t),this.dep.trigger())}}function ve(e){return Oe(e)?e.value:e}const ju={get:(e,t,n)=>t==="__v_raw"?e:ve(Reflect.get(e,t,n)),set:(e,t,n,s)=>{const o=e[t];return Oe(o)&&!Oe(n)?(o.value=n,!0):Reflect.set(e,t,n,s)}};function wi(e){return un(e)?e:new Proxy(e,ju)}function Wu(e){const t=se(e)?new Array(e.length):{};for(const n in e)t[n]=Bu(e,n);return t}class Hu{constructor(t,n,s){this._object=t,this._key=n,this._defaultValue=s,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 ku(be(this._object),this._key)}}function Bu(e,t,n){const s=e[t];return Oe(s)?s:new Hu(e,t,n)}class Gu{constructor(t,n,s){this.fn=t,this.setter=n,this._value=void 0,this.dep=new Dr(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=fs-1,this.next=void 0,this.effect=this,this.__v_isReadonly=!n,this.isSSR=s}notify(){if(this.flags|=16,!(this.flags&8)&&Ie!==this)return li(this,!0),!0}get value(){const t=this.dep.track();return ci(this),t&&(t.version=this.dep.version),this._value}set value(t){this.setter&&this.setter(t)}}function Ku(e,t,n=!1){let s,o;return ie(e)?s=e:(s=e.get,o=e.set),new Gu(s,o,n)}const Fs={},Ys=new WeakMap;let xn;function qu(e,t=!1,n=xn){if(n){let s=Ys.get(n);s||Ys.set(n,s=[]),s.push(e)}}function zu(e,t,n=Le){const{immediate:s,deep:o,once:r,scheduler:l,augmentJob:a,call:i}=n,u=v=>o?v:_t(v)||o===!1||o===0?Kt(v,1):Kt(v);let f,d,p,b,$=!1,S=!1;if(Oe(e)?(d=()=>e.value,$=_t(e)):un(e)?(d=()=>u(e),$=!0):se(e)?(S=!0,$=e.some(v=>un(v)||_t(v)),d=()=>e.map(v=>{if(Oe(v))return v.value;if(un(v))return u(v);if(ie(v))return i?i(v,2):v()})):ie(e)?t?d=i?()=>i(e,2):e:d=()=>{if(p){Jt();try{p()}finally{Zt()}}const v=xn;xn=f;try{return i?i(e,3,[b]):e(b)}finally{xn=v}}:d=Nt,t&&o){const v=d,E=o===!0?1/0:o;d=()=>Kt(v(),E)}const D=si(),_=()=>{f.stop(),D&&D.active&&Er(D.effects,f)};if(r&&t){const v=t;t=(...E)=>{v(...E),_()}}let x=S?new Array(e.length).fill(Fs):Fs;const L=v=>{if(!(!(f.flags&1)||!f.dirty&&!v))if(t){const E=f.run();if(o||$||(S?E.some((R,w)=>cn(R,x[w])):cn(E,x))){p&&p();const R=xn;xn=f;try{const w=[E,x===Fs?void 0:S&&x[0]===Fs?[]:x,b];x=E,i?i(t,3,w):t(...w)}finally{xn=R}}}else f.run()};return a&&a(L),f=new oi(d),f.scheduler=l?()=>l(L,!1):L,b=v=>qu(v,!1,f),p=f.onStop=()=>{const v=Ys.get(f);if(v){if(i)i(v,4);else for(const E of v)E();Ys.delete(f)}},t?s?L(!0):x=f.run():l?l(L.bind(null,!0),!0):f.run(),_.pause=f.pause.bind(f),_.resume=f.resume.bind(f),_.stop=_,_}function Kt(e,t=1/0,n){if(t<=0||!Ce(e)||e.__v_skip||(n=n||new Map,(n.get(e)||0)>=t))return e;if(n.set(e,t),t--,Oe(e))Kt(e.value,t,n);else if(se(e))for(let s=0;s<e.length;s++)Kt(e[s],t,n);else if(Yn(e)||Vn(e))e.forEach(s=>{Kt(s,t,n)});else if(Qa(e)){for(const s in e)Kt(e[s],t,n);for(const s of Object.getOwnPropertySymbols(e))Object.prototype.propertyIsEnumerable.call(e,s)&&Kt(e[s],t,n)}return e}function Ls(e,t,n,s){try{return s?e(...s):e()}catch(o){po(o,t,n)}}function Et(e,t,n,s){if(ie(e)){const o=Ls(e,t,n,s);return o&&Ya(o)&&o.catch(r=>{po(r,t,n)}),o}if(se(e)){const o=[];for(let r=0;r<e.length;r++)o.push(Et(e[r],t,n,s));return o}}function po(e,t,n,s=!0){const o=t?t.vnode:null,{errorHandler:r,throwUnhandledErrorInProduction:l}=t&&t.appContext.config||Le;if(t){let a=t.parent;const i=t.proxy,u=`https://vuejs.org/error-reference/#runtime-${n}`;for(;a;){const f=a.ec;if(f){for(let d=0;d<f.length;d++)if(f[d](e,i,u)===!1)return}a=a.parent}if(r){Jt(),Ls(r,null,10,[e,i,u]),Zt();return}}Yu(e,n,o,s,l)}function Yu(e,t,n,s=!0,o=!1){if(o)throw e;console.error(e)}const ft=[];let At=-1;const jn=[];let on=null,Nn=0;const xi=Promise.resolve();let Xs=null;function Ts(e){const t=Xs||xi;return e?t.then(this?e.bind(this):e):t}function Xu(e){let t=At+1,n=ft.length;for(;t<n;){const s=t+n>>>1,o=ft[s],r=ps(o);r<e||r===e&&o.flags&2?t=s+1:n=s}return t}function Mr(e){if(!(e.flags&1)){const t=ps(e),n=ft[ft.length-1];!n||!(e.flags&2)&&t>=ps(n)?ft.push(e):ft.splice(Xu(t),0,e),e.flags|=1,ki()}}function ki(){Xs||(Xs=xi.then($i))}function Qu(e){se(e)?jn.push(...e):on&&e.id===-1?on.splice(Nn+1,0,e):e.flags&1||(jn.push(e),e.flags|=1),ki()}function ul(e,t,n=At+1){for(;n<ft.length;n++){const s=ft[n];if(s&&s.flags&2){if(e&&s.id!==e.uid)continue;ft.splice(n,1),n--,s.flags&4&&(s.flags&=-2),s(),s.flags&4||(s.flags&=-2)}}}function Si(e){if(jn.length){const t=[...new Set(jn)].sort((n,s)=>ps(n)-ps(s));if(jn.length=0,on){on.push(...t);return}for(on=t,Nn=0;Nn<on.length;Nn++){const n=on[Nn];n.flags&4&&(n.flags&=-2),n.flags&8||n(),n.flags&=-2}on=null,Nn=0}}const ps=e=>e.id==null?e.flags&2?-1:1/0:e.id;function $i(e){try{for(At=0;At<ft.length;At++){const t=ft[At];t&&!(t.flags&8)&&(t.flags&4&&(t.flags&=-2),Ls(t,t.i,t.i?15:14),t.flags&4||(t.flags&=-2))}}finally{for(;At<ft.length;At++){const t=ft[At];t&&(t.flags&=-2)}At=-1,ft.length=0,Si(),Xs=null,(ft.length||jn.length)&&$i()}}let Je=null,Ei=null;function Qs(e){const t=Je;return Je=e,Ei=e&&e.type.__scopeId||null,t}function Ot(e,t=Je,n){if(!t||e._n)return e;const s=(...o)=>{s._d&&eo(-1);const r=Qs(t);let l;try{l=e(...o)}finally{Qs(r),s._d&&eo(1)}return l};return s._n=!0,s._c=!0,s._d=!0,s}function De(e,t){if(Je===null)return e;const n=vo(Je),s=e.dirs||(e.dirs=[]);for(let o=0;o<t.length;o++){let[r,l,a,i=Le]=t[o];r&&(ie(r)&&(r={mounted:r,updated:r}),r.deep&&Kt(l),s.push({dir:r,instance:n,value:l,oldValue:void 0,arg:a,modifiers:i}))}return e}function vn(e,t,n,s){const o=e.dirs,r=t&&t.dirs;for(let l=0;l<o.length;l++){const a=o[l];r&&(a.oldValue=r[l].value);let i=a.dir[s];i&&(Jt(),Et(i,n,8,[e.el,a,e,t]),Zt())}}const Ju=Symbol("_vte"),Ci=e=>e.__isTeleport,Bt=Symbol("_leaveCb"),Ms=Symbol("_enterCb");function Zu(){const e={isMounted:!1,isLeaving:!1,isUnmounting:!1,leavingVNodes:new Map};return Mt(()=>{e.isMounted=!0}),Ri(()=>{e.isUnmounting=!0}),e}const vt=[Function,Array],Li={mode:String,appear:Boolean,persisted:Boolean,onBeforeEnter:vt,onEnter:vt,onAfterEnter:vt,onEnterCancelled:vt,onBeforeLeave:vt,onLeave:vt,onAfterLeave:vt,onLeaveCancelled:vt,onBeforeAppear:vt,onAppear:vt,onAfterAppear:vt,onAppearCancelled:vt},Ti=e=>{const t=e.subTree;return t.component?Ti(t.component):t},ef={name:"BaseTransition",props:Li,setup(e,{slots:t}){const n=pn(),s=Zu();return()=>{const o=t.default&&Ai(t.default(),!0);if(!o||!o.length)return;const r=Ii(o),l=be(e),{mode:a}=l;if(s.isLeaving)return Do(r);const i=fl(r);if(!i)return Do(r);let u=Jo(i,l,s,n,d=>u=d);i.type!==ot&&ms(i,u);let f=n.subTree&&fl(n.subTree);if(f&&f.type!==ot&&!Sn(f,i)&&Ti(n).type!==ot){let d=Jo(f,l,s,n);if(ms(f,d),a==="out-in"&&i.type!==ot)return s.isLeaving=!0,d.afterLeave=()=>{s.isLeaving=!1,n.job.flags&8||n.update(),delete d.afterLeave,f=void 0},Do(r);a==="in-out"&&i.type!==ot?d.delayLeave=(p,b,$)=>{const S=Pi(s,f);S[String(f.key)]=f,p[Bt]=()=>{b(),p[Bt]=void 0,delete u.delayedLeave,f=void 0},u.delayedLeave=()=>{$(),delete u.delayedLeave,f=void 0}}:f=void 0}else f&&(f=void 0);return r}}};function Ii(e){let t=e[0];if(e.length>1){for(const n of e)if(n.type!==ot){t=n;break}}return t}const tf=ef;function Pi(e,t){const{leavingVNodes:n}=e;let s=n.get(t.type);return s||(s=Object.create(null),n.set(t.type,s)),s}function Jo(e,t,n,s,o){const{appear:r,mode:l,persisted:a=!1,onBeforeEnter:i,onEnter:u,onAfterEnter:f,onEnterCancelled:d,onBeforeLeave:p,onLeave:b,onAfterLeave:$,onLeaveCancelled:S,onBeforeAppear:D,onAppear:_,onAfterAppear:x,onAppearCancelled:L}=t,v=String(e.key),E=Pi(n,e),R=(P,K)=>{P&&Et(P,s,9,K)},w=(P,K)=>{const B=K[1];R(P,K),se(P)?P.every(F=>F.length<=1)&&B():P.length<=1&&B()},C={mode:l,persisted:a,beforeEnter(P){let K=i;if(!n.isMounted)if(r)K=D||i;else return;P[Bt]&&P[Bt](!0);const B=E[v];B&&Sn(e,B)&&B.el[Bt]&&B.el[Bt](),R(K,[P])},enter(P){let K=u,B=f,F=d;if(!n.isMounted)if(r)K=_||u,B=x||f,F=L||d;else return;let Z=!1;const Te=P[Ms]=Fe=>{Z||(Z=!0,Fe?R(F,[P]):R(B,[P]),C.delayedLeave&&C.delayedLeave(),P[Ms]=void 0)};K?w(K,[P,Te]):Te()},leave(P,K){const B=String(e.key);if(P[Ms]&&P[Ms](!0),n.isUnmounting)return K();R(p,[P]);let F=!1;const Z=P[Bt]=Te=>{F||(F=!0,K(),Te?R(S,[P]):R($,[P]),P[Bt]=void 0,E[B]===e&&delete E[B])};E[B]=e,b?w(b,[P,Z]):Z()},clone(P){const K=Jo(P,t,n,s,o);return o&&o(K),K}};return C}function Do(e){if(mo(e))return e=dn(e),e.children=null,e}function fl(e){if(!mo(e))return Ci(e.type)&&e.children?Ii(e.children):e;if(e.component)return e.component.subTree;const{shapeFlag:t,children:n}=e;if(n){if(t&16)return n[0];if(t&32&&ie(n.default))return n.default()}}function ms(e,t){e.shapeFlag&6&&e.component?(e.transition=t,ms(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 Ai(e,t=!1,n){let s=[],o=0;for(let r=0;r<e.length;r++){let l=e[r];const a=n==null?l.key:String(n)+String(l.key!=null?l.key:r);l.type===Ge?(l.patchFlag&128&&o++,s=s.concat(Ai(l.children,t,a))):(t||l.type!==ot)&&s.push(a!=null?dn(l,{key:a}):l)}if(o>1)for(let r=0;r<s.length;r++)s[r].patchFlag=-2;return s}function Ae(e,t){return ie(e)?ze({name:e.name},t,{setup:e}):e}function Di(e){e.ids=[e.ids[0]+e.ids[2]+++"-",0,0]}const Js=new WeakMap;function rs(e,t,n,s,o=!1){if(se(e)){e.forEach(($,S)=>rs($,t&&(se(t)?t[S]:t),n,s,o));return}if(Wn(s)&&!o){s.shapeFlag&512&&s.type.__asyncResolved&&s.component.subTree.component&&rs(e,t,n,s.component.subTree);return}const r=s.shapeFlag&4?vo(s.component):s.el,l=o?null:r,{i:a,r:i}=e,u=t&&t.r,f=a.refs===Le?a.refs={}:a.refs,d=a.setupState,p=be(d),b=d===Le?za:$=>Se(p,$);if(u!=null&&u!==i){if(dl(t),Ve(u))f[u]=null,b(u)&&(d[u]=null);else if(Oe(u)){u.value=null;const $=t;$.k&&(f[$.k]=null)}}if(ie(i))Ls(i,a,12,[l,f]);else{const $=Ve(i),S=Oe(i);if($||S){const D=()=>{if(e.f){const _=$?b(i)?d[i]:f[i]:i.value;if(o)se(_)&&Er(_,r);else if(se(_))_.includes(r)||_.push(r);else if($)f[i]=[r],b(i)&&(d[i]=f[i]);else{const x=[r];i.value=x,e.k&&(f[e.k]=x)}}else $?(f[i]=l,b(i)&&(d[i]=l)):S&&(i.value=l,e.k&&(f[e.k]=l))};if(l){const _=()=>{D(),Js.delete(e)};_.id=-1,Js.set(e,_),mt(_,n)}else dl(e),D()}}}function dl(e){const t=Js.get(e);t&&(t.flags|=8,Js.delete(e))}co().requestIdleCallback;co().cancelIdleCallback;const Wn=e=>!!e.type.__asyncLoader,mo=e=>e.type.__isKeepAlive;function nf(e,t){Ni(e,"a",t)}function sf(e,t){Ni(e,"da",t)}function Ni(e,t,n=rt){const s=e.__wdc||(e.__wdc=()=>{let o=n;for(;o;){if(o.isDeactivated)return;o=o.parent}return e()});if(ho(t,s,n),n){let o=n.parent;for(;o&&o.parent;)mo(o.parent.vnode)&&of(s,t,n,o),o=o.parent}}function of(e,t,n,s){const o=ho(t,e,s,!0);Tn(()=>{Er(s[t],o)},n)}function ho(e,t,n=rt,s=!1){if(n){const o=n[e]||(n[e]=[]),r=t.__weh||(t.__weh=(...l)=>{Jt();const a=Ps(n),i=Et(t,n,e,l);return a(),Zt(),i});return s?o.unshift(r):o.push(r),r}}const en=e=>(t,n=rt)=>{(!bs||e==="sp")&&ho(e,(...s)=>t(...s),n)},rf=en("bm"),Mt=en("m"),lf=en("bu"),af=en("u"),Ri=en("bum"),Tn=en("um"),cf=en("sp"),uf=en("rtg"),ff=en("rtc");function df(e,t=rt){ho("ec",e,t)}const pf="components";function mf(e,t){return gf(pf,e,!0,t)||e}const hf=Symbol.for("v-ndc");function gf(e,t,n=!0,s=!1){const o=Je||rt;if(o){const r=o.type;{const a=od(r,!1);if(a&&(a===t||a===wt(t)||a===ao(wt(t))))return r}const l=pl(o[e]||r[e],t)||pl(o.appContext[e],t);return!l&&s?r:l}}function pl(e,t){return e&&(e[t]||e[wt(t)]||e[ao(wt(t))])}function go(e,t,n,s){let o;const r=n,l=se(e);if(l||Ve(e)){const a=l&&un(e);let i=!1,u=!1;a&&(i=!_t(e),u=fn(e),e=fo(e)),o=new Array(e.length);for(let f=0,d=e.length;f<d;f++)o[f]=t(i?u?zs(Qe(e[f])):Qe(e[f]):e[f],f,void 0,r)}else if(typeof e=="number"){o=new Array(e);for(let a=0;a<e;a++)o[a]=t(a+1,a,void 0,r)}else if(Ce(e))if(e[Symbol.iterator])o=Array.from(e,(a,i)=>t(a,i,void 0,r));else{const a=Object.keys(e);o=new Array(a.length);for(let i=0,u=a.length;i<u;i++){const f=a[i];o[i]=t(e[f],f,i,r)}}else o=[];return o}function Oi(e,t,n={},s,o){if(Je.ce||Je.parent&&Wn(Je.parent)&&Je.parent.ce){const u=Object.keys(n).length>0;return G(),Ft(Ge,null,[_e("slot",n,s&&s())],u?-2:64)}let r=e[t];r&&r._c&&(r._d=!1),G();const l=r&&Fi(r(n)),a=n.key||l&&l.key,i=Ft(Ge,{key:(a&&!$t(a)?a:`_${t}`)+(!l&&s?"_fb":"")},l||(s?s():[]),l&&e._===1?64:-2);return!o&&i.scopeId&&(i.slotScopeIds=[i.scopeId+"-s"]),r&&r._c&&(r._d=!0),i}function Fi(e){return e.some(t=>gs(t)?!(t.type===ot||t.type===Ge&&!Fi(t.children)):!0)?e:null}const Zo=e=>e?sc(e)?vo(e):Zo(e.parent):null,ls=ze(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=>Zo(e.parent),$root:e=>Zo(e.root),$host:e=>e.ce,$emit:e=>e.emit,$options:e=>Ui(e),$forceUpdate:e=>e.f||(e.f=()=>{Mr(e.update)}),$nextTick:e=>e.n||(e.n=Ts.bind(e.proxy)),$watch:e=>Mf.bind(e)}),No=(e,t)=>e!==Le&&!e.__isScriptSetup&&Se(e,t),bf={get({_:e},t){if(t==="__v_skip")return!0;const{ctx:n,setupState:s,data:o,props:r,accessCache:l,type:a,appContext:i}=e;let u;if(t[0]!=="$"){const b=l[t];if(b!==void 0)switch(b){case 1:return s[t];case 2:return o[t];case 4:return n[t];case 3:return r[t]}else{if(No(s,t))return l[t]=1,s[t];if(o!==Le&&Se(o,t))return l[t]=2,o[t];if((u=e.propsOptions[0])&&Se(u,t))return l[t]=3,r[t];if(n!==Le&&Se(n,t))return l[t]=4,n[t];er&&(l[t]=0)}}const f=ls[t];let d,p;if(f)return t==="$attrs"&&st(e.attrs,"get",""),f(e);if((d=a.__cssModules)&&(d=d[t]))return d;if(n!==Le&&Se(n,t))return l[t]=4,n[t];if(p=i.config.globalProperties,Se(p,t))return p[t]},set({_:e},t,n){const{data:s,setupState:o,ctx:r}=e;return No(o,t)?(o[t]=n,!0):s!==Le&&Se(s,t)?(s[t]=n,!0):Se(e.props,t)||t[0]==="$"&&t.slice(1)in e?!1:(r[t]=n,!0)},has({_:{data:e,setupState:t,accessCache:n,ctx:s,appContext:o,propsOptions:r,type:l}},a){let i,u;return!!(n[a]||e!==Le&&a[0]!=="$"&&Se(e,a)||No(t,a)||(i=r[0])&&Se(i,a)||Se(s,a)||Se(ls,a)||Se(o.config.globalProperties,a)||(u=l.__cssModules)&&u[a])},defineProperty(e,t,n){return n.get!=null?e._.accessCache[t]=0:Se(n,"value")&&this.set(e,t,n.value,null),Reflect.defineProperty(e,t,n)}};function ml(e){return se(e)?e.reduce((t,n)=>(t[n]=null,t),{}):e}let er=!0;function vf(e){const t=Ui(e),n=e.proxy,s=e.ctx;er=!1,t.beforeCreate&&hl(t.beforeCreate,e,"bc");const{data:o,computed:r,methods:l,watch:a,provide:i,inject:u,created:f,beforeMount:d,mounted:p,beforeUpdate:b,updated:$,activated:S,deactivated:D,beforeDestroy:_,beforeUnmount:x,destroyed:L,unmounted:v,render:E,renderTracked:R,renderTriggered:w,errorCaptured:C,serverPrefetch:P,expose:K,inheritAttrs:B,components:F,directives:Z,filters:Te}=t;if(u&&yf(u,s,null),l)for(const le in l){const pe=l[le];ie(pe)&&(s[le]=pe.bind(n))}if(o){const le=o.call(n,n);Ce(le)&&(e.data=Cs(le))}if(er=!0,r)for(const le in r){const pe=r[le],Me=ie(pe)?pe.bind(n,n):ie(pe.get)?pe.get.bind(n,n):Nt,it=!ie(pe)&&ie(pe.set)?pe.set.bind(n):Nt,Ye=ue({get:Me,set:it});Object.defineProperty(s,le,{enumerable:!0,configurable:!0,get:()=>Ye.value,set:je=>Ye.value=je})}if(a)for(const le in a)Mi(a[le],s,n,le);if(i){const le=ie(i)?i.call(n):i;Reflect.ownKeys(le).forEach(pe=>{as(pe,le[pe])})}f&&hl(f,e,"c");function ge(le,pe){se(pe)?pe.forEach(Me=>le(Me.bind(n))):pe&&le(pe.bind(n))}if(ge(rf,d),ge(Mt,p),ge(lf,b),ge(af,$),ge(nf,S),ge(sf,D),ge(df,C),ge(ff,R),ge(uf,w),ge(Ri,x),ge(Tn,v),ge(cf,P),se(K))if(K.length){const le=e.exposed||(e.exposed={});K.forEach(pe=>{Object.defineProperty(le,pe,{get:()=>n[pe],set:Me=>n[pe]=Me,enumerable:!0})})}else e.exposed||(e.exposed={});E&&e.render===Nt&&(e.render=E),B!=null&&(e.inheritAttrs=B),F&&(e.components=F),Z&&(e.directives=Z),P&&Di(e)}function yf(e,t,n=Nt){se(e)&&(e=tr(e));for(const s in e){const o=e[s];let r;Ce(o)?"default"in o?r=lt(o.from||s,o.default,!0):r=lt(o.from||s):r=lt(o),Oe(r)?Object.defineProperty(t,s,{enumerable:!0,configurable:!0,get:()=>r.value,set:l=>r.value=l}):t[s]=r}}function hl(e,t,n){Et(se(e)?e.map(s=>s.bind(t.proxy)):e.bind(t.proxy),t,n)}function Mi(e,t,n,s){let o=s.includes(".")?Ji(n,s):()=>n[s];if(Ve(e)){const r=t[e];ie(r)&&at(o,r)}else if(ie(e))at(o,e.bind(n));else if(Ce(e))if(se(e))e.forEach(r=>Mi(r,t,n,s));else{const r=ie(e.handler)?e.handler.bind(n):t[e.handler];ie(r)&&at(o,r,e)}}function Ui(e){const t=e.type,{mixins:n,extends:s}=t,{mixins:o,optionsCache:r,config:{optionMergeStrategies:l}}=e.appContext,a=r.get(t);let i;return a?i=a:!o.length&&!n&&!s?i=t:(i={},o.length&&o.forEach(u=>Zs(i,u,l,!0)),Zs(i,t,l)),Ce(t)&&r.set(t,i),i}function Zs(e,t,n,s=!1){const{mixins:o,extends:r}=t;r&&Zs(e,r,n,!0),o&&o.forEach(l=>Zs(e,l,n,!0));for(const l in t)if(!(s&&l==="expose")){const a=_f[l]||n&&n[l];e[l]=a?a(e[l],t[l]):t[l]}return e}const _f={data:gl,props:bl,emits:bl,methods:ts,computed:ts,beforeCreate:ct,created:ct,beforeMount:ct,mounted:ct,beforeUpdate:ct,updated:ct,beforeDestroy:ct,beforeUnmount:ct,destroyed:ct,unmounted:ct,activated:ct,deactivated:ct,errorCaptured:ct,serverPrefetch:ct,components:ts,directives:ts,watch:xf,provide:gl,inject:wf};function gl(e,t){return t?e?function(){return ze(ie(e)?e.call(this,this):e,ie(t)?t.call(this,this):t)}:t:e}function wf(e,t){return ts(tr(e),tr(t))}function tr(e){if(se(e)){const t={};for(let n=0;n<e.length;n++)t[e[n]]=e[n];return t}return e}function ct(e,t){return e?[...new Set([].concat(e,t))]:t}function ts(e,t){return e?ze(Object.create(null),e,t):t}function bl(e,t){return e?se(e)&&se(t)?[...new Set([...e,...t])]:ze(Object.create(null),ml(e),ml(t??{})):t}function xf(e,t){if(!e)return t;if(!t)return e;const n=ze(Object.create(null),e);for(const s in t)n[s]=ct(e[s],t[s]);return n}function Vi(){return{app:null,config:{isNativeTag:za,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 kf=0;function Sf(e,t){return function(s,o=null){ie(s)||(s=ze({},s)),o!=null&&!Ce(o)&&(o=null);const r=Vi(),l=new WeakSet,a=[];let i=!1;const u=r.app={_uid:kf++,_component:s,_props:o,_container:null,_context:r,_instance:null,version:ld,get config(){return r.config},set config(f){},use(f,...d){return l.has(f)||(f&&ie(f.install)?(l.add(f),f.install(u,...d)):ie(f)&&(l.add(f),f(u,...d))),u},mixin(f){return r.mixins.includes(f)||r.mixins.push(f),u},component(f,d){return d?(r.components[f]=d,u):r.components[f]},directive(f,d){return d?(r.directives[f]=d,u):r.directives[f]},mount(f,d,p){if(!i){const b=u._ceVNode||_e(s,o);return b.appContext=r,p===!0?p="svg":p===!1&&(p=void 0),e(b,f,p),i=!0,u._container=f,f.__vue_app__=u,vo(b.component)}},onUnmount(f){a.push(f)},unmount(){i&&(Et(a,u._instance,16),e(null,u._container),delete u._container.__vue_app__)},provide(f,d){return r.provides[f]=d,u},runWithContext(f){const d=Ln;Ln=u;try{return f()}finally{Ln=d}}};return u}}let Ln=null;function as(e,t){if(rt){let n=rt.provides;const s=rt.parent&&rt.parent.provides;s===n&&(n=rt.provides=Object.create(s)),n[e]=t}}function lt(e,t,n=!1){const s=pn();if(s||Ln){let o=Ln?Ln._context.provides:s?s.parent==null||s.ce?s.vnode.appContext&&s.vnode.appContext.provides:s.parent.provides:void 0;if(o&&e in o)return o[e];if(arguments.length>1)return n&&ie(t)?t.call(s&&s.proxy):t}}function $f(){return!!(pn()||Ln)}const ji={},Wi=()=>Object.create(ji),Hi=e=>Object.getPrototypeOf(e)===ji;function Ef(e,t,n,s=!1){const o={},r=Wi();e.propsDefaults=Object.create(null),Bi(e,t,o,r);for(const l in e.propsOptions[0])l in o||(o[l]=void 0);n?e.props=s?o:vi(o):e.type.props?e.props=o:e.props=r,e.attrs=r}function Cf(e,t,n,s){const{props:o,attrs:r,vnode:{patchFlag:l}}=e,a=be(o),[i]=e.propsOptions;let u=!1;if((s||l>0)&&!(l&16)){if(l&8){const f=e.vnode.dynamicProps;for(let d=0;d<f.length;d++){let p=f[d];if(bo(e.emitsOptions,p))continue;const b=t[p];if(i)if(Se(r,p))b!==r[p]&&(r[p]=b,u=!0);else{const $=wt(p);o[$]=nr(i,a,$,b,e,!1)}else b!==r[p]&&(r[p]=b,u=!0)}}}else{Bi(e,t,o,r)&&(u=!0);let f;for(const d in a)(!t||!Se(t,d)&&((f=mn(d))===d||!Se(t,f)))&&(i?n&&(n[d]!==void 0||n[f]!==void 0)&&(o[d]=nr(i,a,d,void 0,e,!0)):delete o[d]);if(r!==a)for(const d in r)(!t||!Se(t,d))&&(delete r[d],u=!0)}u&&Gt(e.attrs,"set","")}function Bi(e,t,n,s){const[o,r]=e.propsOptions;let l=!1,a;if(t)for(let i in t){if(ns(i))continue;const u=t[i];let f;o&&Se(o,f=wt(i))?!r||!r.includes(f)?n[f]=u:(a||(a={}))[f]=u:bo(e.emitsOptions,i)||(!(i in s)||u!==s[i])&&(s[i]=u,l=!0)}if(r){const i=be(n),u=a||Le;for(let f=0;f<r.length;f++){const d=r[f];n[d]=nr(o,i,d,u[d],e,!Se(u,d))}}return l}function nr(e,t,n,s,o,r){const l=e[n];if(l!=null){const a=Se(l,"default");if(a&&s===void 0){const i=l.default;if(l.type!==Function&&!l.skipFactory&&ie(i)){const{propsDefaults:u}=o;if(n in u)s=u[n];else{const f=Ps(o);s=u[n]=i.call(null,t),f()}}else s=i;o.ce&&o.ce._setProp(n,s)}l[0]&&(r&&!a?s=!1:l[1]&&(s===""||s===mn(n))&&(s=!0))}return s}const Lf=new WeakMap;function Gi(e,t,n=!1){const s=n?Lf:t.propsCache,o=s.get(e);if(o)return o;const r=e.props,l={},a=[];let i=!1;if(!ie(e)){const f=d=>{i=!0;const[p,b]=Gi(d,t,!0);ze(l,p),b&&a.push(...b)};!n&&t.mixins.length&&t.mixins.forEach(f),e.extends&&f(e.extends),e.mixins&&e.mixins.forEach(f)}if(!r&&!i)return Ce(e)&&s.set(e,Un),Un;if(se(r))for(let f=0;f<r.length;f++){const d=wt(r[f]);vl(d)&&(l[d]=Le)}else if(r)for(const f in r){const d=wt(f);if(vl(d)){const p=r[f],b=l[d]=se(p)||ie(p)?{type:p}:ze({},p),$=b.type;let S=!1,D=!0;if(se($))for(let _=0;_<$.length;++_){const x=$[_],L=ie(x)&&x.name;if(L==="Boolean"){S=!0;break}else L==="String"&&(D=!1)}else S=ie($)&&$.name==="Boolean";b[0]=S,b[1]=D,(S||Se(b,"default"))&&a.push(d)}}const u=[l,a];return Ce(e)&&s.set(e,u),u}function vl(e){return e[0]!=="$"&&!ns(e)}const Ur=e=>e==="_"||e==="_ctx"||e==="$stable",Vr=e=>se(e)?e.map(Dt):[Dt(e)],Tf=(e,t,n)=>{if(t._n)return t;const s=Ot((...o)=>Vr(t(...o)),n);return s._c=!1,s},Ki=(e,t,n)=>{const s=e._ctx;for(const o in e){if(Ur(o))continue;const r=e[o];if(ie(r))t[o]=Tf(o,r,s);else if(r!=null){const l=Vr(r);t[o]=()=>l}}},qi=(e,t)=>{const n=Vr(t);e.slots.default=()=>n},zi=(e,t,n)=>{for(const s in t)(n||!Ur(s))&&(e[s]=t[s])},If=(e,t,n)=>{const s=e.slots=Wi();if(e.vnode.shapeFlag&32){const o=t._;o?(zi(s,t,n),n&&Ja(s,"_",o,!0)):Ki(t,s)}else t&&qi(e,t)},Pf=(e,t,n)=>{const{vnode:s,slots:o}=e;let r=!0,l=Le;if(s.shapeFlag&32){const a=t._;a?n&&a===1?r=!1:zi(o,t,n):(r=!t.$stable,Ki(t,o)),l=t}else t&&(qi(e,t),l={default:1});if(r)for(const a in o)!Ur(a)&&l[a]==null&&delete o[a]},mt=Kf;function Af(e){return Df(e)}function Df(e,t){const n=co();n.__VUE__=!0;const{insert:s,remove:o,patchProp:r,createElement:l,createText:a,createComment:i,setText:u,setElementText:f,parentNode:d,nextSibling:p,setScopeId:b=Nt,insertStaticContent:$}=e,S=(y,k,A,U=null,j=null,V=null,h=void 0,g=null,T=!!k.dynamicChildren)=>{if(y===k)return;y&&!Sn(y,k)&&(U=M(y),je(y,j,V,!0),y=null),k.patchFlag===-2&&(T=!1,k.dynamicChildren=null);const{type:N,ref:Q,shapeFlag:W}=k;switch(N){case Is:D(y,k,A,U);break;case ot:_(y,k,A,U);break;case Oo:y==null&&x(k,A,U,h);break;case Ge:F(y,k,A,U,j,V,h,g,T);break;default:W&1?E(y,k,A,U,j,V,h,g,T):W&6?Z(y,k,A,U,j,V,h,g,T):(W&64||W&128)&&N.process(y,k,A,U,j,V,h,g,T,te)}Q!=null&&j?rs(Q,y&&y.ref,V,k||y,!k):Q==null&&y&&y.ref!=null&&rs(y.ref,null,V,y,!0)},D=(y,k,A,U)=>{if(y==null)s(k.el=a(k.children),A,U);else{const j=k.el=y.el;k.children!==y.children&&u(j,k.children)}},_=(y,k,A,U)=>{y==null?s(k.el=i(k.children||""),A,U):k.el=y.el},x=(y,k,A,U)=>{[y.el,y.anchor]=$(y.children,k,A,U,y.el,y.anchor)},L=({el:y,anchor:k},A,U)=>{let j;for(;y&&y!==k;)j=p(y),s(y,A,U),y=j;s(k,A,U)},v=({el:y,anchor:k})=>{let A;for(;y&&y!==k;)A=p(y),o(y),y=A;o(k)},E=(y,k,A,U,j,V,h,g,T)=>{if(k.type==="svg"?h="svg":k.type==="math"&&(h="mathml"),y==null)R(k,A,U,j,V,h,g,T);else{const N=y.el&&y.el._isVueCE?y.el:null;try{N&&N._beginPatch(),P(y,k,j,V,h,g,T)}finally{N&&N._endPatch()}}},R=(y,k,A,U,j,V,h,g)=>{let T,N;const{props:Q,shapeFlag:W,transition:I,dirs:O}=y;if(T=y.el=l(y.type,V,Q&&Q.is,Q),W&8?f(T,y.children):W&16&&C(y.children,T,null,U,j,Ro(y,V),h,g),O&&vn(y,null,U,"created"),w(T,y,y.scopeId,h,U),Q){for(const re in Q)re!=="value"&&!ns(re)&&r(T,re,null,Q[re],V,U);"value"in Q&&r(T,"value",null,Q.value,V),(N=Q.onVnodeBeforeMount)&&Tt(N,U,y)}O&&vn(y,null,U,"beforeMount");const ee=Nf(j,I);ee&&I.beforeEnter(T),s(T,k,A),((N=Q&&Q.onVnodeMounted)||ee||O)&&mt(()=>{N&&Tt(N,U,y),ee&&I.enter(T),O&&vn(y,null,U,"mounted")},j)},w=(y,k,A,U,j)=>{if(A&&b(y,A),U)for(let V=0;V<U.length;V++)b(y,U[V]);if(j){let V=j.subTree;if(k===V||ec(V.type)&&(V.ssContent===k||V.ssFallback===k)){const h=j.vnode;w(y,h,h.scopeId,h.slotScopeIds,j.parent)}}},C=(y,k,A,U,j,V,h,g,T=0)=>{for(let N=T;N<y.length;N++){const Q=y[N]=g?rn(y[N]):Dt(y[N]);S(null,Q,k,A,U,j,V,h,g)}},P=(y,k,A,U,j,V,h)=>{const g=k.el=y.el;let{patchFlag:T,dynamicChildren:N,dirs:Q}=k;T|=y.patchFlag&16;const W=y.props||Le,I=k.props||Le;let O;if(A&&yn(A,!1),(O=I.onVnodeBeforeUpdate)&&Tt(O,A,k,y),Q&&vn(k,y,A,"beforeUpdate"),A&&yn(A,!0),(W.innerHTML&&I.innerHTML==null||W.textContent&&I.textContent==null)&&f(g,""),N?K(y.dynamicChildren,N,g,A,U,Ro(k,j),V):h||pe(y,k,g,null,A,U,Ro(k,j),V,!1),T>0){if(T&16)B(g,W,I,A,j);else if(T&2&&W.class!==I.class&&r(g,"class",null,I.class,j),T&4&&r(g,"style",W.style,I.style,j),T&8){const ee=k.dynamicProps;for(let re=0;re<ee.length;re++){const fe=ee[re],He=W[fe],Ue=I[fe];(Ue!==He||fe==="value")&&r(g,fe,He,Ue,j,A)}}T&1&&y.children!==k.children&&f(g,k.children)}else!h&&N==null&&B(g,W,I,A,j);((O=I.onVnodeUpdated)||Q)&&mt(()=>{O&&Tt(O,A,k,y),Q&&vn(k,y,A,"updated")},U)},K=(y,k,A,U,j,V,h)=>{for(let g=0;g<k.length;g++){const T=y[g],N=k[g],Q=T.el&&(T.type===Ge||!Sn(T,N)||T.shapeFlag&198)?d(T.el):A;S(T,N,Q,null,U,j,V,h,!0)}},B=(y,k,A,U,j)=>{if(k!==A){if(k!==Le)for(const V in k)!ns(V)&&!(V in A)&&r(y,V,k[V],null,j,U);for(const V in A){if(ns(V))continue;const h=A[V],g=k[V];h!==g&&V!=="value"&&r(y,V,g,h,j,U)}"value"in A&&r(y,"value",k.value,A.value,j)}},F=(y,k,A,U,j,V,h,g,T)=>{const N=k.el=y?y.el:a(""),Q=k.anchor=y?y.anchor:a("");let{patchFlag:W,dynamicChildren:I,slotScopeIds:O}=k;O&&(g=g?g.concat(O):O),y==null?(s(N,A,U),s(Q,A,U),C(k.children||[],A,Q,j,V,h,g,T)):W>0&&W&64&&I&&y.dynamicChildren?(K(y.dynamicChildren,I,A,j,V,h,g),(k.key!=null||j&&k===j.subTree)&&Yi(y,k,!0)):pe(y,k,A,Q,j,V,h,g,T)},Z=(y,k,A,U,j,V,h,g,T)=>{k.slotScopeIds=g,y==null?k.shapeFlag&512?j.ctx.activate(k,A,U,h,T):Te(k,A,U,j,V,h,T):Fe(y,k,T)},Te=(y,k,A,U,j,V,h)=>{const g=y.component=Zf(y,U,j);if(mo(y)&&(g.ctx.renderer=te),ed(g,!1,h),g.asyncDep){if(j&&j.registerDep(g,ge,h),!y.el){const T=g.subTree=_e(ot);_(null,T,k,A),y.placeholder=T.el}}else ge(g,y,k,A,j,V,h)},Fe=(y,k,A)=>{const U=k.component=y.component;if(Bf(y,k,A))if(U.asyncDep&&!U.asyncResolved){le(U,k,A);return}else U.next=k,U.update();else k.el=y.el,U.vnode=k},ge=(y,k,A,U,j,V,h)=>{const g=()=>{if(y.isMounted){let{next:W,bu:I,u:O,parent:ee,vnode:re}=y;{const xt=Xi(y);if(xt){W&&(W.el=re.el,le(y,W,h)),xt.asyncDep.then(()=>{y.isUnmounted||g()});return}}let fe=W,He;yn(y,!1),W?(W.el=re.el,le(y,W,h)):W=re,I&&Hs(I),(He=W.props&&W.props.onVnodeBeforeUpdate)&&Tt(He,ee,W,re),yn(y,!0);const Ue=_l(y),bt=y.subTree;y.subTree=Ue,S(bt,Ue,d(bt.el),M(bt),y,j,V),W.el=Ue.el,fe===null&&Gf(y,Ue.el),O&&mt(O,j),(He=W.props&&W.props.onVnodeUpdated)&&mt(()=>Tt(He,ee,W,re),j)}else{let W;const{el:I,props:O}=k,{bm:ee,m:re,parent:fe,root:He,type:Ue}=y,bt=Wn(k);yn(y,!1),ee&&Hs(ee),!bt&&(W=O&&O.onVnodeBeforeMount)&&Tt(W,fe,k),yn(y,!0);{He.ce&&He.ce._def.shadowRoot!==!1&&He.ce._injectChildStyle(Ue);const xt=y.subTree=_l(y);S(null,xt,A,U,y,j,V),k.el=xt.el}if(re&&mt(re,j),!bt&&(W=O&&O.onVnodeMounted)){const xt=k;mt(()=>Tt(W,fe,xt),j)}(k.shapeFlag&256||fe&&Wn(fe.vnode)&&fe.vnode.shapeFlag&256)&&y.a&&mt(y.a,j),y.isMounted=!0,k=A=U=null}};y.scope.on();const T=y.effect=new oi(g);y.scope.off();const N=y.update=T.run.bind(T),Q=y.job=T.runIfDirty.bind(T);Q.i=y,Q.id=y.uid,T.scheduler=()=>Mr(Q),yn(y,!0),N()},le=(y,k,A)=>{k.component=y;const U=y.vnode.props;y.vnode=k,y.next=null,Cf(y,k.props,U,A),Pf(y,k.children,A),Jt(),ul(y),Zt()},pe=(y,k,A,U,j,V,h,g,T=!1)=>{const N=y&&y.children,Q=y?y.shapeFlag:0,W=k.children,{patchFlag:I,shapeFlag:O}=k;if(I>0){if(I&128){it(N,W,A,U,j,V,h,g,T);return}else if(I&256){Me(N,W,A,U,j,V,h,g,T);return}}O&8?(Q&16&&$e(N,j,V),W!==N&&f(A,W)):Q&16?O&16?it(N,W,A,U,j,V,h,g,T):$e(N,j,V,!0):(Q&8&&f(A,""),O&16&&C(W,A,U,j,V,h,g,T))},Me=(y,k,A,U,j,V,h,g,T)=>{y=y||Un,k=k||Un;const N=y.length,Q=k.length,W=Math.min(N,Q);let I;for(I=0;I<W;I++){const O=k[I]=T?rn(k[I]):Dt(k[I]);S(y[I],O,A,null,j,V,h,g,T)}N>Q?$e(y,j,V,!0,!1,W):C(k,A,U,j,V,h,g,T,W)},it=(y,k,A,U,j,V,h,g,T)=>{let N=0;const Q=k.length;let W=y.length-1,I=Q-1;for(;N<=W&&N<=I;){const O=y[N],ee=k[N]=T?rn(k[N]):Dt(k[N]);if(Sn(O,ee))S(O,ee,A,null,j,V,h,g,T);else break;N++}for(;N<=W&&N<=I;){const O=y[W],ee=k[I]=T?rn(k[I]):Dt(k[I]);if(Sn(O,ee))S(O,ee,A,null,j,V,h,g,T);else break;W--,I--}if(N>W){if(N<=I){const O=I+1,ee=O<Q?k[O].el:U;for(;N<=I;)S(null,k[N]=T?rn(k[N]):Dt(k[N]),A,ee,j,V,h,g,T),N++}}else if(N>I)for(;N<=W;)je(y[N],j,V,!0),N++;else{const O=N,ee=N,re=new Map;for(N=ee;N<=I;N++){const pt=k[N]=T?rn(k[N]):Dt(k[N]);pt.key!=null&&re.set(pt.key,N)}let fe,He=0;const Ue=I-ee+1;let bt=!1,xt=0;const Xn=new Array(Ue);for(N=0;N<Ue;N++)Xn[N]=0;for(N=O;N<=W;N++){const pt=y[N];if(He>=Ue){je(pt,j,V,!0);continue}let Lt;if(pt.key!=null)Lt=re.get(pt.key);else for(fe=ee;fe<=I;fe++)if(Xn[fe-ee]===0&&Sn(pt,k[fe])){Lt=fe;break}Lt===void 0?je(pt,j,V,!0):(Xn[Lt-ee]=N+1,Lt>=xt?xt=Lt:bt=!0,S(pt,k[Lt],A,null,j,V,h,g,T),He++)}const sl=bt?Rf(Xn):Un;for(fe=sl.length-1,N=Ue-1;N>=0;N--){const pt=ee+N,Lt=k[pt],ol=k[pt+1],rl=pt+1<Q?ol.el||ol.placeholder:U;Xn[N]===0?S(null,Lt,A,rl,j,V,h,g,T):bt&&(fe<0||N!==sl[fe]?Ye(Lt,A,rl,2):fe--)}}},Ye=(y,k,A,U,j=null)=>{const{el:V,type:h,transition:g,children:T,shapeFlag:N}=y;if(N&6){Ye(y.component.subTree,k,A,U);return}if(N&128){y.suspense.move(k,A,U);return}if(N&64){h.move(y,k,A,te);return}if(h===Ge){s(V,k,A);for(let W=0;W<T.length;W++)Ye(T[W],k,A,U);s(y.anchor,k,A);return}if(h===Oo){L(y,k,A);return}if(U!==2&&N&1&&g)if(U===0)g.beforeEnter(V),s(V,k,A),mt(()=>g.enter(V),j);else{const{leave:W,delayLeave:I,afterLeave:O}=g,ee=()=>{y.ctx.isUnmounted?o(V):s(V,k,A)},re=()=>{V._isLeaving&&V[Bt](!0),W(V,()=>{ee(),O&&O()})};I?I(V,ee,re):re()}else s(V,k,A)},je=(y,k,A,U=!1,j=!1)=>{const{type:V,props:h,ref:g,children:T,dynamicChildren:N,shapeFlag:Q,patchFlag:W,dirs:I,cacheIndex:O}=y;if(W===-2&&(j=!1),g!=null&&(Jt(),rs(g,null,A,y,!0),Zt()),O!=null&&(k.renderCache[O]=void 0),Q&256){k.ctx.deactivate(y);return}const ee=Q&1&&I,re=!Wn(y);let fe;if(re&&(fe=h&&h.onVnodeBeforeUnmount)&&Tt(fe,k,y),Q&6)me(y.component,A,U);else{if(Q&128){y.suspense.unmount(A,U);return}ee&&vn(y,null,k,"beforeUnmount"),Q&64?y.type.remove(y,k,A,te,U):N&&!N.hasOnce&&(V!==Ge||W>0&&W&64)?$e(N,k,A,!1,!0):(V===Ge&&W&384||!j&&Q&16)&&$e(T,k,A),U&&H(y)}(re&&(fe=h&&h.onVnodeUnmounted)||ee)&&mt(()=>{fe&&Tt(fe,k,y),ee&&vn(y,null,k,"unmounted")},A)},H=y=>{const{type:k,el:A,anchor:U,transition:j}=y;if(k===Ge){oe(A,U);return}if(k===Oo){v(y);return}const V=()=>{o(A),j&&!j.persisted&&j.afterLeave&&j.afterLeave()};if(y.shapeFlag&1&&j&&!j.persisted){const{leave:h,delayLeave:g}=j,T=()=>h(A,V);g?g(y.el,V,T):T()}else V()},oe=(y,k)=>{let A;for(;y!==k;)A=p(y),o(y),y=A;o(k)},me=(y,k,A)=>{const{bum:U,scope:j,job:V,subTree:h,um:g,m:T,a:N}=y;yl(T),yl(N),U&&Hs(U),j.stop(),V&&(V.flags|=8,je(h,y,k,A)),g&&mt(g,k),mt(()=>{y.isUnmounted=!0},k)},$e=(y,k,A,U=!1,j=!1,V=0)=>{for(let h=V;h<y.length;h++)je(y[h],k,A,U,j)},M=y=>{if(y.shapeFlag&6)return M(y.component.subTree);if(y.shapeFlag&128)return y.suspense.next();const k=p(y.anchor||y.el),A=k&&k[Ju];return A?p(A):k};let z=!1;const q=(y,k,A)=>{y==null?k._vnode&&je(k._vnode,null,null,!0):S(k._vnode||null,y,k,null,null,null,A),k._vnode=y,z||(z=!0,ul(),Si(),z=!1)},te={p:S,um:je,m:Ye,r:H,mt:Te,mc:C,pc:pe,pbc:K,n:M,o:e};return{render:q,hydrate:void 0,createApp:Sf(q)}}function Ro({type:e,props:t},n){return n==="svg"&&e==="foreignObject"||n==="mathml"&&e==="annotation-xml"&&t&&t.encoding&&t.encoding.includes("html")?void 0:n}function yn({effect:e,job:t},n){n?(e.flags|=32,t.flags|=4):(e.flags&=-33,t.flags&=-5)}function Nf(e,t){return(!e||e&&!e.pendingBranch)&&t&&!t.persisted}function Yi(e,t,n=!1){const s=e.children,o=t.children;if(se(s)&&se(o))for(let r=0;r<s.length;r++){const l=s[r];let a=o[r];a.shapeFlag&1&&!a.dynamicChildren&&((a.patchFlag<=0||a.patchFlag===32)&&(a=o[r]=rn(o[r]),a.el=l.el),!n&&a.patchFlag!==-2&&Yi(l,a)),a.type===Is&&a.patchFlag!==-1&&(a.el=l.el),a.type===ot&&!a.el&&(a.el=l.el)}}function Rf(e){const t=e.slice(),n=[0];let s,o,r,l,a;const i=e.length;for(s=0;s<i;s++){const u=e[s];if(u!==0){if(o=n[n.length-1],e[o]<u){t[s]=o,n.push(s);continue}for(r=0,l=n.length-1;r<l;)a=r+l>>1,e[n[a]]<u?r=a+1:l=a;u<e[n[r]]&&(r>0&&(t[s]=n[r-1]),n[r]=s)}}for(r=n.length,l=n[r-1];r-- >0;)n[r]=l,l=t[l];return n}function Xi(e){const t=e.subTree.component;if(t)return t.asyncDep&&!t.asyncResolved?t:Xi(t)}function yl(e){if(e)for(let t=0;t<e.length;t++)e[t].flags|=8}const Of=Symbol.for("v-scx"),Ff=()=>lt(Of);function at(e,t,n){return Qi(e,t,n)}function Qi(e,t,n=Le){const{immediate:s,deep:o,flush:r,once:l}=n,a=ze({},n),i=t&&s||!t&&r!=="post";let u;if(bs){if(r==="sync"){const b=Ff();u=b.__watcherHandles||(b.__watcherHandles=[])}else if(!i){const b=()=>{};return b.stop=Nt,b.resume=Nt,b.pause=Nt,b}}const f=rt;a.call=(b,$,S)=>Et(b,f,$,S);let d=!1;r==="post"?a.scheduler=b=>{mt(b,f&&f.suspense)}:r!=="sync"&&(d=!0,a.scheduler=(b,$)=>{$?b():Mr(b)}),a.augmentJob=b=>{t&&(b.flags|=4),d&&(b.flags|=2,f&&(b.id=f.uid,b.i=f))};const p=zu(e,t,a);return bs&&(u?u.push(p):i&&p()),p}function Mf(e,t,n){const s=this.proxy,o=Ve(e)?e.includes(".")?Ji(s,e):()=>s[e]:e.bind(s,s);let r;ie(t)?r=t:(r=t.handler,n=t);const l=Ps(this),a=Qi(o,r.bind(s),n);return l(),a}function Ji(e,t){const n=t.split(".");return()=>{let s=e;for(let o=0;o<n.length&&s;o++)s=s[n[o]];return s}}const Uf=(e,t)=>t==="modelValue"||t==="model-value"?e.modelModifiers:e[`${t}Modifiers`]||e[`${wt(t)}Modifiers`]||e[`${mn(t)}Modifiers`];function Vf(e,t,...n){if(e.isUnmounted)return;const s=e.vnode.props||Le;let o=n;const r=t.startsWith("update:"),l=r&&Uf(s,t.slice(7));l&&(l.trim&&(o=n.map(f=>Ve(f)?f.trim():f)),l.number&&(o=n.map(io)));let a,i=s[a=Lo(t)]||s[a=Lo(wt(t))];!i&&r&&(i=s[a=Lo(mn(t))]),i&&Et(i,e,6,o);const u=s[a+"Once"];if(u){if(!e.emitted)e.emitted={};else if(e.emitted[a])return;e.emitted[a]=!0,Et(u,e,6,o)}}const jf=new WeakMap;function Zi(e,t,n=!1){const s=n?jf:t.emitsCache,o=s.get(e);if(o!==void 0)return o;const r=e.emits;let l={},a=!1;if(!ie(e)){const i=u=>{const f=Zi(u,t,!0);f&&(a=!0,ze(l,f))};!n&&t.mixins.length&&t.mixins.forEach(i),e.extends&&i(e.extends),e.mixins&&e.mixins.forEach(i)}return!r&&!a?(Ce(e)&&s.set(e,null),null):(se(r)?r.forEach(i=>l[i]=null):ze(l,r),Ce(e)&&s.set(e,l),l)}function bo(e,t){return!e||!ro(t)?!1:(t=t.slice(2).replace(/Once$/,""),Se(e,t[0].toLowerCase()+t.slice(1))||Se(e,mn(t))||Se(e,t))}function _l(e){const{type:t,vnode:n,proxy:s,withProxy:o,propsOptions:[r],slots:l,attrs:a,emit:i,render:u,renderCache:f,props:d,data:p,setupState:b,ctx:$,inheritAttrs:S}=e,D=Qs(e);let _,x;try{if(n.shapeFlag&4){const v=o||s,E=v;_=Dt(u.call(E,v,f,d,b,p,$)),x=a}else{const v=t;_=Dt(v.length>1?v(d,{attrs:a,slots:l,emit:i}):v(d,null)),x=t.props?a:Wf(a)}}catch(v){is.length=0,po(v,e,1),_=_e(ot)}let L=_;if(x&&S!==!1){const v=Object.keys(x),{shapeFlag:E}=L;v.length&&E&7&&(r&&v.some($r)&&(x=Hf(x,r)),L=dn(L,x,!1,!0))}return n.dirs&&(L=dn(L,null,!1,!0),L.dirs=L.dirs?L.dirs.concat(n.dirs):n.dirs),n.transition&&ms(L,n.transition),_=L,Qs(D),_}const Wf=e=>{let t;for(const n in e)(n==="class"||n==="style"||ro(n))&&((t||(t={}))[n]=e[n]);return t},Hf=(e,t)=>{const n={};for(const s in e)(!$r(s)||!(s.slice(9)in t))&&(n[s]=e[s]);return n};function Bf(e,t,n){const{props:s,children:o,component:r}=e,{props:l,children:a,patchFlag:i}=t,u=r.emitsOptions;if(t.dirs||t.transition)return!0;if(n&&i>=0){if(i&1024)return!0;if(i&16)return s?wl(s,l,u):!!l;if(i&8){const f=t.dynamicProps;for(let d=0;d<f.length;d++){const p=f[d];if(l[p]!==s[p]&&!bo(u,p))return!0}}}else return(o||a)&&(!a||!a.$stable)?!0:s===l?!1:s?l?wl(s,l,u):!0:!!l;return!1}function wl(e,t,n){const s=Object.keys(t);if(s.length!==Object.keys(e).length)return!0;for(let o=0;o<s.length;o++){const r=s[o];if(t[r]!==e[r]&&!bo(n,r))return!0}return!1}function Gf({vnode:e,parent:t},n){for(;t;){const s=t.subTree;if(s.suspense&&s.suspense.activeBranch===e&&(s.el=e.el),s===e)(e=t.vnode).el=n,t=t.parent;else break}}const ec=e=>e.__isSuspense;function Kf(e,t){t&&t.pendingBranch?se(e)?t.effects.push(...e):t.effects.push(e):Qu(e)}const Ge=Symbol.for("v-fgt"),Is=Symbol.for("v-txt"),ot=Symbol.for("v-cmt"),Oo=Symbol.for("v-stc"),is=[];let ht=null;function G(e=!1){is.push(ht=e?null:[])}function qf(){is.pop(),ht=is[is.length-1]||null}let hs=1;function eo(e,t=!1){hs+=e,e<0&&ht&&t&&(ht.hasOnce=!0)}function tc(e){return e.dynamicChildren=hs>0?ht||Un:null,qf(),hs>0&&ht&&ht.push(e),e}function Y(e,t,n,s,o,r){return tc(c(e,t,n,s,o,r,!0))}function Ft(e,t,n,s,o){return tc(_e(e,t,n,s,o,!0))}function gs(e){return e?e.__v_isVNode===!0:!1}function Sn(e,t){return e.type===t.type&&e.key===t.key}const nc=({key:e})=>e??null,Bs=({ref:e,ref_key:t,ref_for:n})=>(typeof e=="number"&&(e=""+e),e!=null?Ve(e)||Oe(e)||ie(e)?{i:Je,r:e,k:t,f:!!n}:e:null);function c(e,t=null,n=null,s=0,o=null,r=e===Ge?0:1,l=!1,a=!1){const i={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&nc(t),ref:t&&Bs(t),scopeId:Ei,slotScopeIds:null,children:n,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:r,patchFlag:s,dynamicProps:o,dynamicChildren:null,appContext:null,ctx:Je};return a?(jr(i,n),r&128&&e.normalize(i)):n&&(i.shapeFlag|=Ve(n)?8:16),hs>0&&!l&&ht&&(i.patchFlag>0||r&6)&&i.patchFlag!==32&&ht.push(i),i}const _e=zf;function zf(e,t=null,n=null,s=0,o=null,r=!1){if((!e||e===hf)&&(e=ot),gs(e)){const a=dn(e,t,!0);return n&&jr(a,n),hs>0&&!r&&ht&&(a.shapeFlag&6?ht[ht.indexOf(e)]=a:ht.push(a)),a.patchFlag=-2,a}if(rd(e)&&(e=e.__vccOpts),t){t=Yf(t);let{class:a,style:i}=t;a&&!Ve(a)&&(t.class=Xe(a)),Ce(i)&&(Or(i)&&!se(i)&&(i=ze({},i)),t.style=uo(i))}const l=Ve(e)?1:ec(e)?128:Ci(e)?64:Ce(e)?4:ie(e)?2:0;return c(e,t,n,s,o,l,r,!0)}function Yf(e){return e?Or(e)||Hi(e)?ze({},e):e:null}function dn(e,t,n=!1,s=!1){const{props:o,ref:r,patchFlag:l,children:a,transition:i}=e,u=t?Xf(o||{},t):o,f={__v_isVNode:!0,__v_skip:!0,type:e.type,props:u,key:u&&nc(u),ref:t&&t.ref?n&&r?se(r)?r.concat(Bs(t)):[r,Bs(t)]:Bs(t):r,scopeId:e.scopeId,slotScopeIds:e.slotScopeIds,children:a,target:e.target,targetStart:e.targetStart,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:t&&e.type!==Ge?l===-1?16:l|16:l,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:i,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&dn(e.ssContent),ssFallback:e.ssFallback&&dn(e.ssFallback),placeholder:e.placeholder,el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce};return i&&s&&ms(f,i.clone(f)),f}function ae(e=" ",t=0){return _e(Is,null,e,t)}function ne(e="",t=!1){return t?(G(),Ft(ot,null,e)):_e(ot,null,e)}function Dt(e){return e==null||typeof e=="boolean"?_e(ot):se(e)?_e(Ge,null,e.slice()):gs(e)?rn(e):_e(Is,null,String(e))}function rn(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:dn(e)}function jr(e,t){let n=0;const{shapeFlag:s}=e;if(t==null)t=null;else if(se(t))n=16;else if(typeof t=="object")if(s&65){const o=t.default;o&&(o._c&&(o._d=!1),jr(e,o()),o._c&&(o._d=!0));return}else{n=32;const o=t._;!o&&!Hi(t)?t._ctx=Je:o===3&&Je&&(Je.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else ie(t)?(t={default:t,_ctx:Je},n=32):(t=String(t),s&64?(n=16,t=[ae(t)]):n=8);e.children=t,e.shapeFlag|=n}function Xf(...e){const t={};for(let n=0;n<e.length;n++){const s=e[n];for(const o in s)if(o==="class")t.class!==s.class&&(t.class=Xe([t.class,s.class]));else if(o==="style")t.style=uo([t.style,s.style]);else if(ro(o)){const r=t[o],l=s[o];l&&r!==l&&!(se(r)&&r.includes(l))&&(t[o]=r?[].concat(r,l):l)}else o!==""&&(t[o]=s[o])}return t}function Tt(e,t,n,s=null){Et(e,t,7,[n,s])}const Qf=Vi();let Jf=0;function Zf(e,t,n){const s=e.type,o=(t?t.appContext:e.appContext)||Qf,r={uid:Jf++,vnode:e,type:s,parent:t,appContext:o,root:null,next:null,subTree:null,effect:null,update:null,job:null,scope:new ni(!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:Gi(s,o),emitsOptions:Zi(s,o),emit:null,emitted:null,propsDefaults:Le,inheritAttrs:s.inheritAttrs,ctx:Le,data:Le,props:Le,attrs:Le,slots:Le,refs:Le,setupState:Le,setupContext:null,suspense:n,suspenseId:n?n.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 r.ctx={_:r},r.root=t?t.root:r,r.emit=Vf.bind(null,r),e.ce&&e.ce(r),r}let rt=null;const pn=()=>rt||Je;let to,sr;{const e=co(),t=(n,s)=>{let o;return(o=e[n])||(o=e[n]=[]),o.push(s),r=>{o.length>1?o.forEach(l=>l(r)):o[0](r)}};to=t("__VUE_INSTANCE_SETTERS__",n=>rt=n),sr=t("__VUE_SSR_SETTERS__",n=>bs=n)}const Ps=e=>{const t=rt;return to(e),e.scope.on(),()=>{e.scope.off(),to(t)}},xl=()=>{rt&&rt.scope.off(),to(null)};function sc(e){return e.vnode.shapeFlag&4}let bs=!1;function ed(e,t=!1,n=!1){t&&sr(t);const{props:s,children:o}=e.vnode,r=sc(e);Ef(e,s,r,t),If(e,o,n||t);const l=r?td(e,t):void 0;return t&&sr(!1),l}function td(e,t){const n=e.type;e.accessCache=Object.create(null),e.proxy=new Proxy(e.ctx,bf);const{setup:s}=n;if(s){Jt();const o=e.setupContext=s.length>1?sd(e):null,r=Ps(e),l=Ls(s,e,0,[e.props,o]),a=Ya(l);if(Zt(),r(),(a||e.sp)&&!Wn(e)&&Di(e),a){if(l.then(xl,xl),t)return l.then(i=>{kl(e,i)}).catch(i=>{po(i,e,0)});e.asyncDep=l}else kl(e,l)}else oc(e)}function kl(e,t,n){ie(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:Ce(t)&&(e.setupState=wi(t)),oc(e)}function oc(e,t,n){const s=e.type;e.render||(e.render=s.render||Nt);{const o=Ps(e);Jt();try{vf(e)}finally{Zt(),o()}}}const nd={get(e,t){return st(e,"get",""),e[t]}};function sd(e){const t=n=>{e.exposed=n||{}};return{attrs:new Proxy(e.attrs,nd),slots:e.slots,emit:e.emit,expose:t}}function vo(e){return e.exposed?e.exposeProxy||(e.exposeProxy=new Proxy(wi(Fr(e.exposed)),{get(t,n){if(n in t)return t[n];if(n in ls)return ls[n](e)},has(t,n){return n in t||n in ls}})):e.proxy}function od(e,t=!0){return ie(e)?e.displayName||e.name:e.name||t&&e.__name}function rd(e){return ie(e)&&"__vccOpts"in e}const ue=(e,t)=>Ku(e,t,bs);function As(e,t,n){try{eo(-1);const s=arguments.length;return s===2?Ce(t)&&!se(t)?gs(t)?_e(e,null,[t]):_e(e,t):_e(e,null,t):(s>3?n=Array.prototype.slice.call(arguments,2):s===3&&gs(n)&&(n=[n]),_e(e,t,n))}finally{eo(1)}}const ld="3.5.24";let or;const Sl=typeof window<"u"&&window.trustedTypes;if(Sl)try{or=Sl.createPolicy("vue",{createHTML:e=>e})}catch{}const rc=or?e=>or.createHTML(e):e=>e,ad="http://www.w3.org/2000/svg",id="http://www.w3.org/1998/Math/MathML",Ht=typeof document<"u"?document:null,$l=Ht&&Ht.createElement("template"),cd={insert:(e,t,n)=>{t.insertBefore(e,n||null)},remove:e=>{const t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,n,s)=>{const o=t==="svg"?Ht.createElementNS(ad,e):t==="mathml"?Ht.createElementNS(id,e):n?Ht.createElement(e,{is:n}):Ht.createElement(e);return e==="select"&&s&&s.multiple!=null&&o.setAttribute("multiple",s.multiple),o},createText:e=>Ht.createTextNode(e),createComment:e=>Ht.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>Ht.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,n,s,o,r){const l=n?n.previousSibling:t.lastChild;if(o&&(o===r||o.nextSibling))for(;t.insertBefore(o.cloneNode(!0),n),!(o===r||!(o=o.nextSibling)););else{$l.innerHTML=rc(s==="svg"?`<svg>${e}</svg>`:s==="mathml"?`<math>${e}</math>`:e);const a=$l.content;if(s==="svg"||s==="mathml"){const i=a.firstChild;for(;i.firstChild;)a.appendChild(i.firstChild);a.removeChild(i)}t.insertBefore(a,n)}return[l?l.nextSibling:t.firstChild,n?n.previousSibling:t.lastChild]}},tn="transition",Jn="animation",vs=Symbol("_vtc"),lc={name:String,type:String,css:{type:Boolean,default:!0},duration:[String,Number,Object],enterFromClass:String,enterActiveClass:String,enterToClass:String,appearFromClass:String,appearActiveClass:String,appearToClass:String,leaveFromClass:String,leaveActiveClass:String,leaveToClass:String},ud=ze({},Li,lc),fd=e=>(e.displayName="Transition",e.props=ud,e),El=fd((e,{slots:t})=>As(tf,dd(e),t)),_n=(e,t=[])=>{se(e)?e.forEach(n=>n(...t)):e&&e(...t)},Cl=e=>e?se(e)?e.some(t=>t.length>1):e.length>1:!1;function dd(e){const t={};for(const F in e)F in lc||(t[F]=e[F]);if(e.css===!1)return t;const{name:n="v",type:s,duration:o,enterFromClass:r=`${n}-enter-from`,enterActiveClass:l=`${n}-enter-active`,enterToClass:a=`${n}-enter-to`,appearFromClass:i=r,appearActiveClass:u=l,appearToClass:f=a,leaveFromClass:d=`${n}-leave-from`,leaveActiveClass:p=`${n}-leave-active`,leaveToClass:b=`${n}-leave-to`}=e,$=pd(o),S=$&&$[0],D=$&&$[1],{onBeforeEnter:_,onEnter:x,onEnterCancelled:L,onLeave:v,onLeaveCancelled:E,onBeforeAppear:R=_,onAppear:w=x,onAppearCancelled:C=L}=t,P=(F,Z,Te,Fe)=>{F._enterCancelled=Fe,wn(F,Z?f:a),wn(F,Z?u:l),Te&&Te()},K=(F,Z)=>{F._isLeaving=!1,wn(F,d),wn(F,b),wn(F,p),Z&&Z()},B=F=>(Z,Te)=>{const Fe=F?w:x,ge=()=>P(Z,F,Te);_n(Fe,[Z,ge]),Ll(()=>{wn(Z,F?i:r),Vt(Z,F?f:a),Cl(Fe)||Tl(Z,s,S,ge)})};return ze(t,{onBeforeEnter(F){_n(_,[F]),Vt(F,r),Vt(F,l)},onBeforeAppear(F){_n(R,[F]),Vt(F,i),Vt(F,u)},onEnter:B(!1),onAppear:B(!0),onLeave(F,Z){F._isLeaving=!0;const Te=()=>K(F,Z);Vt(F,d),F._enterCancelled?(Vt(F,p),Al(F)):(Al(F),Vt(F,p)),Ll(()=>{F._isLeaving&&(wn(F,d),Vt(F,b),Cl(v)||Tl(F,s,D,Te))}),_n(v,[F,Te])},onEnterCancelled(F){P(F,!1,void 0,!0),_n(L,[F])},onAppearCancelled(F){P(F,!0,void 0,!0),_n(C,[F])},onLeaveCancelled(F){K(F),_n(E,[F])}})}function pd(e){if(e==null)return null;if(Ce(e))return[Fo(e.enter),Fo(e.leave)];{const t=Fo(e);return[t,t]}}function Fo(e){return du(e)}function Vt(e,t){t.split(/\s+/).forEach(n=>n&&e.classList.add(n)),(e[vs]||(e[vs]=new Set)).add(t)}function wn(e,t){t.split(/\s+/).forEach(s=>s&&e.classList.remove(s));const n=e[vs];n&&(n.delete(t),n.size||(e[vs]=void 0))}function Ll(e){requestAnimationFrame(()=>{requestAnimationFrame(e)})}let md=0;function Tl(e,t,n,s){const o=e._endId=++md,r=()=>{o===e._endId&&s()};if(n!=null)return setTimeout(r,n);const{type:l,timeout:a,propCount:i}=hd(e,t);if(!l)return s();const u=l+"end";let f=0;const d=()=>{e.removeEventListener(u,p),r()},p=b=>{b.target===e&&++f>=i&&d()};setTimeout(()=>{f<i&&d()},a+1),e.addEventListener(u,p)}function hd(e,t){const n=window.getComputedStyle(e),s=$=>(n[$]||"").split(", "),o=s(`${tn}Delay`),r=s(`${tn}Duration`),l=Il(o,r),a=s(`${Jn}Delay`),i=s(`${Jn}Duration`),u=Il(a,i);let f=null,d=0,p=0;t===tn?l>0&&(f=tn,d=l,p=r.length):t===Jn?u>0&&(f=Jn,d=u,p=i.length):(d=Math.max(l,u),f=d>0?l>u?tn:Jn:null,p=f?f===tn?r.length:i.length:0);const b=f===tn&&/\b(?:transform|all)(?:,|$)/.test(s(`${tn}Property`).toString());return{type:f,timeout:d,propCount:p,hasTransform:b}}function Il(e,t){for(;e.length<t.length;)e=e.concat(e);return Math.max(...t.map((n,s)=>Pl(n)+Pl(e[s])))}function Pl(e){return e==="auto"?0:Number(e.slice(0,-1).replace(",","."))*1e3}function Al(e){return(e?e.ownerDocument:document).body.offsetHeight}function gd(e,t,n){const s=e[vs];s&&(t=(t?[t,...s]:[...s]).join(" ")),t==null?e.removeAttribute("class"):n?e.setAttribute("class",t):e.className=t}const Dl=Symbol("_vod"),bd=Symbol("_vsh"),vd=Symbol(""),yd=/(?:^|;)\s*display\s*:/;function _d(e,t,n){const s=e.style,o=Ve(n);let r=!1;if(n&&!o){if(t)if(Ve(t))for(const l of t.split(";")){const a=l.slice(0,l.indexOf(":")).trim();n[a]==null&&Gs(s,a,"")}else for(const l in t)n[l]==null&&Gs(s,l,"");for(const l in n)l==="display"&&(r=!0),Gs(s,l,n[l])}else if(o){if(t!==n){const l=s[vd];l&&(n+=";"+l),s.cssText=n,r=yd.test(n)}}else t&&e.removeAttribute("style");Dl in e&&(e[Dl]=r?s.display:"",e[bd]&&(s.display="none"))}const Nl=/\s*!important$/;function Gs(e,t,n){if(se(n))n.forEach(s=>Gs(e,t,s));else if(n==null&&(n=""),t.startsWith("--"))e.setProperty(t,n);else{const s=wd(e,t);Nl.test(n)?e.setProperty(mn(s),n.replace(Nl,""),"important"):e[s]=n}}const Rl=["Webkit","Moz","ms"],Mo={};function wd(e,t){const n=Mo[t];if(n)return n;let s=wt(t);if(s!=="filter"&&s in e)return Mo[t]=s;s=ao(s);for(let o=0;o<Rl.length;o++){const r=Rl[o]+s;if(r in e)return Mo[t]=r}return t}const Ol="http://www.w3.org/1999/xlink";function Fl(e,t,n,s,o,r=vu(t)){s&&t.startsWith("xlink:")?n==null?e.removeAttributeNS(Ol,t.slice(6,t.length)):e.setAttributeNS(Ol,t,n):n==null||r&&!Za(n)?e.removeAttribute(t):e.setAttribute(t,r?"":$t(n)?String(n):n)}function Ml(e,t,n,s,o){if(t==="innerHTML"||t==="textContent"){n!=null&&(e[t]=t==="innerHTML"?rc(n):n);return}const r=e.tagName;if(t==="value"&&r!=="PROGRESS"&&!r.includes("-")){const a=r==="OPTION"?e.getAttribute("value")||"":e.value,i=n==null?e.type==="checkbox"?"on":"":String(n);(a!==i||!("_value"in e))&&(e.value=i),n==null&&e.removeAttribute(t),e._value=n;return}let l=!1;if(n===""||n==null){const a=typeof e[t];a==="boolean"?n=Za(n):n==null&&a==="string"?(n="",l=!0):a==="number"&&(n=0,l=!0)}try{e[t]=n}catch{}l&&e.removeAttribute(o||t)}function an(e,t,n,s){e.addEventListener(t,n,s)}function xd(e,t,n,s){e.removeEventListener(t,n,s)}const Ul=Symbol("_vei");function kd(e,t,n,s,o=null){const r=e[Ul]||(e[Ul]={}),l=r[t];if(s&&l)l.value=s;else{const[a,i]=Sd(t);if(s){const u=r[t]=Cd(s,o);an(e,a,u,i)}else l&&(xd(e,a,l,i),r[t]=void 0)}}const Vl=/(?:Once|Passive|Capture)$/;function Sd(e){let t;if(Vl.test(e)){t={};let s;for(;s=e.match(Vl);)e=e.slice(0,e.length-s[0].length),t[s[0].toLowerCase()]=!0}return[e[2]===":"?e.slice(3):mn(e.slice(2)),t]}let Uo=0;const $d=Promise.resolve(),Ed=()=>Uo||($d.then(()=>Uo=0),Uo=Date.now());function Cd(e,t){const n=s=>{if(!s._vts)s._vts=Date.now();else if(s._vts<=n.attached)return;Et(Ld(s,n.value),t,5,[s])};return n.value=e,n.attached=Ed(),n}function Ld(e,t){if(se(t)){const n=e.stopImmediatePropagation;return e.stopImmediatePropagation=()=>{n.call(e),e._stopped=!0},t.map(s=>o=>!o._stopped&&s&&s(o))}else return t}const jl=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&e.charCodeAt(2)>96&&e.charCodeAt(2)<123,Td=(e,t,n,s,o,r)=>{const l=o==="svg";t==="class"?gd(e,s,l):t==="style"?_d(e,n,s):ro(t)?$r(t)||kd(e,t,n,s,r):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):Id(e,t,s,l))?(Ml(e,t,s),!e.tagName.includes("-")&&(t==="value"||t==="checked"||t==="selected")&&Fl(e,t,s,l,r,t!=="value")):e._isVueCE&&(/[A-Z]/.test(t)||!Ve(s))?Ml(e,wt(t),s,r,t):(t==="true-value"?e._trueValue=s:t==="false-value"&&(e._falseValue=s),Fl(e,t,s,l))};function Id(e,t,n,s){if(s)return!!(t==="innerHTML"||t==="textContent"||t in e&&jl(t)&&ie(n));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 jl(t)&&Ve(n)?!1:t in e}const Hn=e=>{const t=e.props["onUpdate:modelValue"]||!1;return se(t)?n=>Hs(t,n):t};function Pd(e){e.target.composing=!0}function Wl(e){const t=e.target;t.composing&&(t.composing=!1,t.dispatchEvent(new Event("input")))}const Yt=Symbol("_assign");function Hl(e,t,n){return t&&(e=e.trim()),n&&(e=io(e)),e}const nt={created(e,{modifiers:{lazy:t,trim:n,number:s}},o){e[Yt]=Hn(o);const r=s||o.props&&o.props.type==="number";an(e,t?"change":"input",l=>{l.target.composing||e[Yt](Hl(e.value,n,r))}),(n||r)&&an(e,"change",()=>{e.value=Hl(e.value,n,r)}),t||(an(e,"compositionstart",Pd),an(e,"compositionend",Wl),an(e,"change",Wl))},mounted(e,{value:t}){e.value=t??""},beforeUpdate(e,{value:t,oldValue:n,modifiers:{lazy:s,trim:o,number:r}},l){if(e[Yt]=Hn(l),e.composing)return;const a=(r||e.type==="number")&&!/^0\d/.test(e.value)?io(e.value):e.value,i=t??"";a!==i&&(document.activeElement===e&&e.type!=="range"&&(s&&t===n||o&&e.value.trim()===i)||(e.value=i))}},Mn={deep:!0,created(e,t,n){e[Yt]=Hn(n),an(e,"change",()=>{const s=e._modelValue,o=ys(e),r=e.checked,l=e[Yt];if(se(s)){const a=Lr(s,o),i=a!==-1;if(r&&!i)l(s.concat(o));else if(!r&&i){const u=[...s];u.splice(a,1),l(u)}}else if(Yn(s)){const a=new Set(s);r?a.add(o):a.delete(o),l(a)}else l(ac(e,r))})},mounted:Bl,beforeUpdate(e,t,n){e[Yt]=Hn(n),Bl(e,t,n)}};function Bl(e,{value:t,oldValue:n},s){e._modelValue=t;let o;if(se(t))o=Lr(t,s.props.value)>-1;else if(Yn(t))o=t.has(s.props.value);else{if(t===n)return;o=Es(t,ac(e,!0))}e.checked!==o&&(e.checked=o)}const Ad={deep:!0,created(e,{value:t,modifiers:{number:n}},s){const o=Yn(t);an(e,"change",()=>{const r=Array.prototype.filter.call(e.options,l=>l.selected).map(l=>n?io(ys(l)):ys(l));e[Yt](e.multiple?o?new Set(r):r:r[0]),e._assigning=!0,Ts(()=>{e._assigning=!1})}),e[Yt]=Hn(s)},mounted(e,{value:t}){Gl(e,t)},beforeUpdate(e,t,n){e[Yt]=Hn(n)},updated(e,{value:t}){e._assigning||Gl(e,t)}};function Gl(e,t){const n=e.multiple,s=se(t);if(!(n&&!s&&!Yn(t))){for(let o=0,r=e.options.length;o<r;o++){const l=e.options[o],a=ys(l);if(n)if(s){const i=typeof a;i==="string"||i==="number"?l.selected=t.some(u=>String(u)===String(a)):l.selected=Lr(t,a)>-1}else l.selected=t.has(a);else if(Es(ys(l),t)){e.selectedIndex!==o&&(e.selectedIndex=o);return}}!n&&e.selectedIndex!==-1&&(e.selectedIndex=-1)}}function ys(e){return"_value"in e?e._value:e.value}function ac(e,t){const n=t?"_trueValue":"_falseValue";return n in e?e[n]:t}const Dd=["ctrl","shift","alt","meta"],Nd={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)=>Dd.some(n=>e[`${n}Key`]&&!t.includes(n))},Xt=(e,t)=>{const n=e._withMods||(e._withMods={}),s=t.join(".");return n[s]||(n[s]=((o,...r)=>{for(let l=0;l<t.length;l++){const a=Nd[t[l]];if(a&&a(o,t))return}return e(o,...r)}))},Rd={esc:"escape",space:" ",up:"arrow-up",left:"arrow-left",right:"arrow-right",down:"arrow-down",delete:"backspace"},Wr=(e,t)=>{const n=e._withKeys||(e._withKeys={}),s=t.join(".");return n[s]||(n[s]=(o=>{if(!("key"in o))return;const r=mn(o.key);if(t.some(l=>l===r||Rd[l]===r))return e(o)}))},Od=ze({patchProp:Td},cd);let Kl;function Fd(){return Kl||(Kl=Af(Od))}const Md=((...e)=>{const t=Fd().createApp(...e),{mount:n}=t;return t.mount=s=>{const o=Vd(s);if(!o)return;const r=t._component;!ie(r)&&!r.render&&!r.template&&(r.template=o.innerHTML),o.nodeType===1&&(o.textContent="");const l=n(o,!1,Ud(o));return o instanceof Element&&(o.removeAttribute("v-cloak"),o.setAttribute("data-v-app","")),l},t});function Ud(e){if(e instanceof SVGElement)return"svg";if(typeof MathMLElement=="function"&&e instanceof MathMLElement)return"mathml"}function Vd(e){return Ve(e)?document.querySelector(e):e}let ic;const yo=e=>ic=e,cc=Symbol();function rr(e){return e&&typeof e=="object"&&Object.prototype.toString.call(e)==="[object Object]"&&typeof e.toJSON!="function"}var cs;(function(e){e.direct="direct",e.patchObject="patch object",e.patchFunction="patch function"})(cs||(cs={}));function jd(){const e=Tr(!0),t=e.run(()=>X({}));let n=[],s=[];const o=Fr({install(r){yo(o),o._a=r,r.provide(cc,o),r.config.globalProperties.$pinia=o,s.forEach(l=>n.push(l)),s=[]},use(r){return this._a?n.push(r):s.push(r),this},_p:n,_a:null,_e:e,_s:new Map,state:t});return o}const uc=()=>{};function ql(e,t,n,s=uc){e.add(t);const o=()=>{e.delete(t)&&s()};return!n&&si()&&_u(o),o}function Dn(e,...t){e.forEach(n=>{n(...t)})}const Wd=e=>e(),zl=Symbol(),Vo=Symbol();function lr(e,t){e instanceof Map&&t instanceof Map?t.forEach((n,s)=>e.set(s,n)):e instanceof Set&&t instanceof Set&&t.forEach(e.add,e);for(const n in t){if(!t.hasOwnProperty(n))continue;const s=t[n],o=e[n];rr(o)&&rr(s)&&e.hasOwnProperty(n)&&!Oe(s)&&!un(s)?e[n]=lr(o,s):e[n]=s}return e}const Hd=Symbol();function Bd(e){return!rr(e)||!Object.prototype.hasOwnProperty.call(e,Hd)}const{assign:sn}=Object;function Gd(e){return!!(Oe(e)&&e.effect)}function Kd(e,t,n,s){const{state:o,actions:r,getters:l}=t,a=n.state.value[e];let i;function u(){a||(n.state.value[e]=o?o():{});const f=Wu(n.state.value[e]);return sn(f,r,Object.keys(l||{}).reduce((d,p)=>(d[p]=Fr(ue(()=>{yo(n);const b=n._s.get(e);return l[p].call(b,b)})),d),{}))}return i=fc(e,u,t,n,s,!0),i}function fc(e,t,n={},s,o,r){let l;const a=sn({actions:{}},n),i={deep:!0};let u,f,d=new Set,p=new Set,b;const $=s.state.value[e];!r&&!$&&(s.state.value[e]={}),X({});let S;function D(C){let P;u=f=!1,typeof C=="function"?(C(s.state.value[e]),P={type:cs.patchFunction,storeId:e,events:b}):(lr(s.state.value[e],C),P={type:cs.patchObject,payload:C,storeId:e,events:b});const K=S=Symbol();Ts().then(()=>{S===K&&(u=!0)}),f=!0,Dn(d,P,s.state.value[e])}const _=r?function(){const{state:P}=n,K=P?P():{};this.$patch(B=>{sn(B,K)})}:uc;function x(){l.stop(),d.clear(),p.clear(),s._s.delete(e)}const L=(C,P="")=>{if(zl in C)return C[Vo]=P,C;const K=function(){yo(s);const B=Array.from(arguments),F=new Set,Z=new Set;function Te(le){F.add(le)}function Fe(le){Z.add(le)}Dn(p,{args:B,name:K[Vo],store:E,after:Te,onError:Fe});let ge;try{ge=C.apply(this&&this.$id===e?this:E,B)}catch(le){throw Dn(Z,le),le}return ge instanceof Promise?ge.then(le=>(Dn(F,le),le)).catch(le=>(Dn(Z,le),Promise.reject(le))):(Dn(F,ge),ge)};return K[zl]=!0,K[Vo]=P,K},v={_p:s,$id:e,$onAction:ql.bind(null,p),$patch:D,$reset:_,$subscribe(C,P={}){const K=ql(d,C,P.detached,()=>B()),B=l.run(()=>at(()=>s.state.value[e],F=>{(P.flush==="sync"?f:u)&&C({storeId:e,type:cs.direct,events:b},F)},sn({},i,P)));return K},$dispose:x},E=Cs(v);s._s.set(e,E);const w=(s._a&&s._a.runWithContext||Wd)(()=>s._e.run(()=>(l=Tr()).run(()=>t({action:L}))));for(const C in w){const P=w[C];if(Oe(P)&&!Gd(P)||un(P))r||($&&Bd(P)&&(Oe(P)?P.value=$[C]:lr(P,$[C])),s.state.value[e][C]=P);else if(typeof P=="function"){const K=L(P,C);w[C]=K,a.actions[C]=P}}return sn(E,w),sn(be(E),w),Object.defineProperty(E,"$state",{get:()=>s.state.value[e],set:C=>{D(P=>{sn(P,C)})}}),s._p.forEach(C=>{sn(E,l.run(()=>C({store:E,app:s._a,pinia:s,options:a})))}),$&&r&&n.hydrate&&n.hydrate(E.$state,$),u=!0,f=!0,E}function Hr(e,t,n){let s;const o=typeof t=="function";s=o?n:t;function r(l,a){const i=$f();return l=l||(i?lt(cc,null):null),l&&yo(l),l=ic,l._s.has(e)||(o?fc(e,t,s,l):Kd(e,s,l)),l._s.get(e)}return r.$id=e,r}const Rn=typeof document<"u";function dc(e){return typeof e=="object"||"displayName"in e||"props"in e||"__vccOpts"in e}function qd(e){return e.__esModule||e[Symbol.toStringTag]==="Module"||e.default&&dc(e.default)}const xe=Object.assign;function jo(e,t){const n={};for(const s in t){const o=t[s];n[s]=Ct(o)?o.map(e):e(o)}return n}const us=()=>{},Ct=Array.isArray;function Yl(e,t){const n={};for(const s in e)n[s]=s in t?t[s]:e[s];return n}const pc=/#/g,zd=/&/g,Yd=/\//g,Xd=/=/g,Qd=/\?/g,mc=/\+/g,Jd=/%5B/g,Zd=/%5D/g,hc=/%5E/g,ep=/%60/g,gc=/%7B/g,tp=/%7C/g,bc=/%7D/g,np=/%20/g;function Br(e){return e==null?"":encodeURI(""+e).replace(tp,"|").replace(Jd,"[").replace(Zd,"]")}function sp(e){return Br(e).replace(gc,"{").replace(bc,"}").replace(hc,"^")}function ar(e){return Br(e).replace(mc,"%2B").replace(np,"+").replace(pc,"%23").replace(zd,"%26").replace(ep,"`").replace(gc,"{").replace(bc,"}").replace(hc,"^")}function op(e){return ar(e).replace(Xd,"%3D")}function rp(e){return Br(e).replace(pc,"%23").replace(Qd,"%3F")}function lp(e){return rp(e).replace(Yd,"%2F")}function _s(e){if(e==null)return null;try{return decodeURIComponent(""+e)}catch{}return""+e}const ap=/\/$/,ip=e=>e.replace(ap,"");function Wo(e,t,n="/"){let s,o={},r="",l="";const a=t.indexOf("#");let i=t.indexOf("?");return i=a>=0&&i>a?-1:i,i>=0&&(s=t.slice(0,i),r=t.slice(i,a>0?a:t.length),o=e(r.slice(1))),a>=0&&(s=s||t.slice(0,a),l=t.slice(a,t.length)),s=dp(s??t,n),{fullPath:s+r+l,path:s,query:o,hash:_s(l)}}function cp(e,t){const n=t.query?e(t.query):"";return t.path+(n&&"?")+n+(t.hash||"")}function Xl(e,t){return!t||!e.toLowerCase().startsWith(t.toLowerCase())?e:e.slice(t.length)||"/"}function up(e,t,n){const s=t.matched.length-1,o=n.matched.length-1;return s>-1&&s===o&&Bn(t.matched[s],n.matched[o])&&vc(t.params,n.params)&&e(t.query)===e(n.query)&&t.hash===n.hash}function Bn(e,t){return(e.aliasOf||e)===(t.aliasOf||t)}function vc(e,t){if(Object.keys(e).length!==Object.keys(t).length)return!1;for(const n in e)if(!fp(e[n],t[n]))return!1;return!0}function fp(e,t){return Ct(e)?Ql(e,t):Ct(t)?Ql(t,e):e===t}function Ql(e,t){return Ct(t)?e.length===t.length&&e.every((n,s)=>n===t[s]):e.length===1&&e[0]===t}function dp(e,t){if(e.startsWith("/"))return e;if(!e)return t;const n=t.split("/"),s=e.split("/"),o=s[s.length-1];(o===".."||o===".")&&s.push("");let r=n.length-1,l,a;for(l=0;l<s.length;l++)if(a=s[l],a!==".")if(a==="..")r>1&&r--;else break;return n.slice(0,r).join("/")+"/"+s.slice(l).join("/")}const nn={path:"/",name:void 0,params:{},query:{},hash:"",fullPath:"/",matched:[],meta:{},redirectedFrom:void 0};let ir=(function(e){return e.pop="pop",e.push="push",e})({}),Ho=(function(e){return e.back="back",e.forward="forward",e.unknown="",e})({});function pp(e){if(!e)if(Rn){const t=document.querySelector("base");e=t&&t.getAttribute("href")||"/",e=e.replace(/^\w+:\/\/[^\/]+/,"")}else e="/";return e[0]!=="/"&&e[0]!=="#"&&(e="/"+e),ip(e)}const mp=/^[^#]+#/;function hp(e,t){return e.replace(mp,"#")+t}function gp(e,t){const n=document.documentElement.getBoundingClientRect(),s=e.getBoundingClientRect();return{behavior:t.behavior,left:s.left-n.left-(t.left||0),top:s.top-n.top-(t.top||0)}}const _o=()=>({left:window.scrollX,top:window.scrollY});function bp(e){let t;if("el"in e){const n=e.el,s=typeof n=="string"&&n.startsWith("#"),o=typeof n=="string"?s?document.getElementById(n.slice(1)):document.querySelector(n):n;if(!o)return;t=gp(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 Jl(e,t){return(history.state?history.state.position-t:-1)+e}const cr=new Map;function vp(e,t){cr.set(e,t)}function yp(e){const t=cr.get(e);return cr.delete(e),t}function _p(e){return typeof e=="string"||e&&typeof e=="object"}function yc(e){return typeof e=="string"||typeof e=="symbol"}let Ne=(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 _c=Symbol("");Ne.MATCHER_NOT_FOUND+"",Ne.NAVIGATION_GUARD_REDIRECT+"",Ne.NAVIGATION_ABORTED+"",Ne.NAVIGATION_CANCELLED+"",Ne.NAVIGATION_DUPLICATED+"";function Gn(e,t){return xe(new Error,{type:e,[_c]:!0},t)}function jt(e,t){return e instanceof Error&&_c in e&&(t==null||!!(e.type&t))}const wp=["params","query","hash"];function xp(e){if(typeof e=="string")return e;if(e.path!=null)return e.path;const t={};for(const n of wp)n in e&&(t[n]=e[n]);return JSON.stringify(t,null,2)}function kp(e){const t={};if(e===""||e==="?")return t;const n=(e[0]==="?"?e.slice(1):e).split("&");for(let s=0;s<n.length;++s){const o=n[s].replace(mc," "),r=o.indexOf("="),l=_s(r<0?o:o.slice(0,r)),a=r<0?null:_s(o.slice(r+1));if(l in t){let i=t[l];Ct(i)||(i=t[l]=[i]),i.push(a)}else t[l]=a}return t}function Zl(e){let t="";for(let n in e){const s=e[n];if(n=op(n),s==null){s!==void 0&&(t+=(t.length?"&":"")+n);continue}(Ct(s)?s.map(o=>o&&ar(o)):[s&&ar(s)]).forEach(o=>{o!==void 0&&(t+=(t.length?"&":"")+n,o!=null&&(t+="="+o))})}return t}function Sp(e){const t={};for(const n in e){const s=e[n];s!==void 0&&(t[n]=Ct(s)?s.map(o=>o==null?null:""+o):s==null?s:""+s)}return t}const $p=Symbol(""),ea=Symbol(""),wo=Symbol(""),Gr=Symbol(""),ur=Symbol("");function Zn(){let e=[];function t(s){return e.push(s),()=>{const o=e.indexOf(s);o>-1&&e.splice(o,1)}}function n(){e=[]}return{add:t,list:()=>e.slice(),reset:n}}function ln(e,t,n,s,o,r=l=>l()){const l=s&&(s.enterCallbacks[o]=s.enterCallbacks[o]||[]);return()=>new Promise((a,i)=>{const u=p=>{p===!1?i(Gn(Ne.NAVIGATION_ABORTED,{from:n,to:t})):p instanceof Error?i(p):_p(p)?i(Gn(Ne.NAVIGATION_GUARD_REDIRECT,{from:t,to:p})):(l&&s.enterCallbacks[o]===l&&typeof p=="function"&&l.push(p),a())},f=r(()=>e.call(s&&s.instances[o],t,n,u));let d=Promise.resolve(f);e.length<3&&(d=d.then(u)),d.catch(p=>i(p))})}function Bo(e,t,n,s,o=r=>r()){const r=[];for(const l of e)for(const a in l.components){let i=l.components[a];if(!(t!=="beforeRouteEnter"&&!l.instances[a]))if(dc(i)){const u=(i.__vccOpts||i)[t];u&&r.push(ln(u,n,s,l,a,o))}else{let u=i();r.push(()=>u.then(f=>{if(!f)throw new Error(`Couldn't resolve component "${a}" at "${l.path}"`);const d=qd(f)?f.default:f;l.mods[a]=f,l.components[a]=d;const p=(d.__vccOpts||d)[t];return p&&ln(p,n,s,l,a,o)()}))}}return r}function Ep(e,t){const n=[],s=[],o=[],r=Math.max(t.matched.length,e.matched.length);for(let l=0;l<r;l++){const a=t.matched[l];a&&(e.matched.find(u=>Bn(u,a))?s.push(a):n.push(a));const i=e.matched[l];i&&(t.matched.find(u=>Bn(u,i))||o.push(i))}return[n,s,o]}let Cp=()=>location.protocol+"//"+location.host;function wc(e,t){const{pathname:n,search:s,hash:o}=t,r=e.indexOf("#");if(r>-1){let l=o.includes(e.slice(r))?e.slice(r).length:1,a=o.slice(l);return a[0]!=="/"&&(a="/"+a),Xl(a,"")}return Xl(n,e)+s+o}function Lp(e,t,n,s){let o=[],r=[],l=null;const a=({state:p})=>{const b=wc(e,location),$=n.value,S=t.value;let D=0;if(p){if(n.value=b,t.value=p,l&&l===$){l=null;return}D=S?p.position-S.position:0}else s(b);o.forEach(_=>{_(n.value,$,{delta:D,type:ir.pop,direction:D?D>0?Ho.forward:Ho.back:Ho.unknown})})};function i(){l=n.value}function u(p){o.push(p);const b=()=>{const $=o.indexOf(p);$>-1&&o.splice($,1)};return r.push(b),b}function f(){if(document.visibilityState==="hidden"){const{history:p}=window;if(!p.state)return;p.replaceState(xe({},p.state,{scroll:_o()}),"")}}function d(){for(const p of r)p();r=[],window.removeEventListener("popstate",a),window.removeEventListener("pagehide",f),document.removeEventListener("visibilitychange",f)}return window.addEventListener("popstate",a),window.addEventListener("pagehide",f),document.addEventListener("visibilitychange",f),{pauseListeners:i,listen:u,destroy:d}}function ta(e,t,n,s=!1,o=!1){return{back:e,current:t,forward:n,replaced:s,position:window.history.length,scroll:o?_o():null}}function Tp(e){const{history:t,location:n}=window,s={value:wc(e,n)},o={value:t.state};o.value||r(s.value,{back:null,current:s.value,forward:null,position:t.length-1,replaced:!0,scroll:null},!0);function r(i,u,f){const d=e.indexOf("#"),p=d>-1?(n.host&&document.querySelector("base")?e:e.slice(d))+i:Cp()+e+i;try{t[f?"replaceState":"pushState"](u,"",p),o.value=u}catch(b){console.error(b),n[f?"replace":"assign"](p)}}function l(i,u){r(i,xe({},t.state,ta(o.value.back,i,o.value.forward,!0),u,{position:o.value.position}),!0),s.value=i}function a(i,u){const f=xe({},o.value,t.state,{forward:i,scroll:_o()});r(f.current,f,!0),r(i,xe({},ta(s.value,i,null),{position:f.position+1},u),!1),s.value=i}return{location:s,state:o,push:a,replace:l}}function Ip(e){e=pp(e);const t=Tp(e),n=Lp(e,t.state,t.location,t.replace);function s(r,l=!0){l||n.pauseListeners(),history.go(r)}const o=xe({location:"",base:e,go:s,createHref:hp.bind(null,e)},t,n);return Object.defineProperty(o,"location",{enumerable:!0,get:()=>t.location.value}),Object.defineProperty(o,"state",{enumerable:!0,get:()=>t.state.value}),o}let $n=(function(e){return e[e.Static=0]="Static",e[e.Param=1]="Param",e[e.Group=2]="Group",e})({});var Be=(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})(Be||{});const Pp={type:$n.Static,value:""},Ap=/[a-zA-Z0-9_]/;function Dp(e){if(!e)return[[]];if(e==="/")return[[Pp]];if(!e.startsWith("/"))throw new Error(`Invalid path "${e}"`);function t(b){throw new Error(`ERR (${n})/"${u}": ${b}`)}let n=Be.Static,s=n;const o=[];let r;function l(){r&&o.push(r),r=[]}let a=0,i,u="",f="";function d(){u&&(n===Be.Static?r.push({type:$n.Static,value:u}):n===Be.Param||n===Be.ParamRegExp||n===Be.ParamRegExpEnd?(r.length>1&&(i==="*"||i==="+")&&t(`A repeatable param (${u}) must be alone in its segment. eg: '/:ids+.`),r.push({type:$n.Param,value:u,regexp:f,repeatable:i==="*"||i==="+",optional:i==="*"||i==="?"})):t("Invalid state to consume buffer"),u="")}function p(){u+=i}for(;a<e.length;){if(i=e[a++],i==="\\"&&n!==Be.ParamRegExp){s=n,n=Be.EscapeNext;continue}switch(n){case Be.Static:i==="/"?(u&&d(),l()):i===":"?(d(),n=Be.Param):p();break;case Be.EscapeNext:p(),n=s;break;case Be.Param:i==="("?n=Be.ParamRegExp:Ap.test(i)?p():(d(),n=Be.Static,i!=="*"&&i!=="?"&&i!=="+"&&a--);break;case Be.ParamRegExp:i===")"?f[f.length-1]=="\\"?f=f.slice(0,-1)+i:n=Be.ParamRegExpEnd:f+=i;break;case Be.ParamRegExpEnd:d(),n=Be.Static,i!=="*"&&i!=="?"&&i!=="+"&&a--,f="";break;default:t("Unknown state");break}}return n===Be.ParamRegExp&&t(`Unfinished custom RegExp for param "${u}"`),d(),l(),o}const na="[^/]+?",Np={sensitive:!1,strict:!1,start:!0,end:!0};var ut=(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})(ut||{});const Rp=/[.+*?^${}()[\]/\\]/g;function Op(e,t){const n=xe({},Np,t),s=[];let o=n.start?"^":"";const r=[];for(const u of e){const f=u.length?[]:[ut.Root];n.strict&&!u.length&&(o+="/");for(let d=0;d<u.length;d++){const p=u[d];let b=ut.Segment+(n.sensitive?ut.BonusCaseSensitive:0);if(p.type===$n.Static)d||(o+="/"),o+=p.value.replace(Rp,"\\$&"),b+=ut.Static;else if(p.type===$n.Param){const{value:$,repeatable:S,optional:D,regexp:_}=p;r.push({name:$,repeatable:S,optional:D});const x=_||na;if(x!==na){b+=ut.BonusCustomRegExp;try{`${x}`}catch(v){throw new Error(`Invalid custom RegExp for param "${$}" (${x}): `+v.message)}}let L=S?`((?:${x})(?:/(?:${x}))*)`:`(${x})`;d||(L=D&&u.length<2?`(?:/${L})`:"/"+L),D&&(L+="?"),o+=L,b+=ut.Dynamic,D&&(b+=ut.BonusOptional),S&&(b+=ut.BonusRepeatable),x===".*"&&(b+=ut.BonusWildcard)}f.push(b)}s.push(f)}if(n.strict&&n.end){const u=s.length-1;s[u][s[u].length-1]+=ut.BonusStrict}n.strict||(o+="/?"),n.end?o+="$":n.strict&&!o.endsWith("/")&&(o+="(?:/|$)");const l=new RegExp(o,n.sensitive?"":"i");function a(u){const f=u.match(l),d={};if(!f)return null;for(let p=1;p<f.length;p++){const b=f[p]||"",$=r[p-1];d[$.name]=b&&$.repeatable?b.split("/"):b}return d}function i(u){let f="",d=!1;for(const p of e){(!d||!f.endsWith("/"))&&(f+="/"),d=!1;for(const b of p)if(b.type===$n.Static)f+=b.value;else if(b.type===$n.Param){const{value:$,repeatable:S,optional:D}=b,_=$ in u?u[$]:"";if(Ct(_)&&!S)throw new Error(`Provided param "${$}" is an array but it is not repeatable (* or + modifiers)`);const x=Ct(_)?_.join("/"):_;if(!x)if(D)p.length<2&&(f.endsWith("/")?f=f.slice(0,-1):d=!0);else throw new Error(`Missing required param "${$}"`);f+=x}}return f||"/"}return{re:l,score:s,keys:r,parse:a,stringify:i}}function Fp(e,t){let n=0;for(;n<e.length&&n<t.length;){const s=t[n]-e[n];if(s)return s;n++}return e.length<t.length?e.length===1&&e[0]===ut.Static+ut.Segment?-1:1:e.length>t.length?t.length===1&&t[0]===ut.Static+ut.Segment?1:-1:0}function xc(e,t){let n=0;const s=e.score,o=t.score;for(;n<s.length&&n<o.length;){const r=Fp(s[n],o[n]);if(r)return r;n++}if(Math.abs(o.length-s.length)===1){if(sa(s))return 1;if(sa(o))return-1}return o.length-s.length}function sa(e){const t=e[e.length-1];return e.length>0&&t[t.length-1]<0}const Mp={strict:!1,end:!0,sensitive:!1};function Up(e,t,n){const s=Op(Dp(e.path),n),o=xe(s,{record:e,parent:t,children:[],alias:[]});return t&&!o.record.aliasOf==!t.record.aliasOf&&t.children.push(o),o}function Vp(e,t){const n=[],s=new Map;t=Yl(Mp,t);function o(d){return s.get(d)}function r(d,p,b){const $=!b,S=ra(d);S.aliasOf=b&&b.record;const D=Yl(t,d),_=[S];if("alias"in d){const v=typeof d.alias=="string"?[d.alias]:d.alias;for(const E of v)_.push(ra(xe({},S,{components:b?b.record.components:S.components,path:E,aliasOf:b?b.record:S})))}let x,L;for(const v of _){const{path:E}=v;if(p&&E[0]!=="/"){const R=p.record.path,w=R[R.length-1]==="/"?"":"/";v.path=p.record.path+(E&&w+E)}if(x=Up(v,p,D),b?b.alias.push(x):(L=L||x,L!==x&&L.alias.push(x),$&&d.name&&!la(x)&&l(d.name)),kc(x)&&i(x),S.children){const R=S.children;for(let w=0;w<R.length;w++)r(R[w],x,b&&b.children[w])}b=b||x}return L?()=>{l(L)}:us}function l(d){if(yc(d)){const p=s.get(d);p&&(s.delete(d),n.splice(n.indexOf(p),1),p.children.forEach(l),p.alias.forEach(l))}else{const p=n.indexOf(d);p>-1&&(n.splice(p,1),d.record.name&&s.delete(d.record.name),d.children.forEach(l),d.alias.forEach(l))}}function a(){return n}function i(d){const p=Hp(d,n);n.splice(p,0,d),d.record.name&&!la(d)&&s.set(d.record.name,d)}function u(d,p){let b,$={},S,D;if("name"in d&&d.name){if(b=s.get(d.name),!b)throw Gn(Ne.MATCHER_NOT_FOUND,{location:d});D=b.record.name,$=xe(oa(p.params,b.keys.filter(L=>!L.optional).concat(b.parent?b.parent.keys.filter(L=>L.optional):[]).map(L=>L.name)),d.params&&oa(d.params,b.keys.map(L=>L.name))),S=b.stringify($)}else if(d.path!=null)S=d.path,b=n.find(L=>L.re.test(S)),b&&($=b.parse(S),D=b.record.name);else{if(b=p.name?s.get(p.name):n.find(L=>L.re.test(p.path)),!b)throw Gn(Ne.MATCHER_NOT_FOUND,{location:d,currentLocation:p});D=b.record.name,$=xe({},p.params,d.params),S=b.stringify($)}const _=[];let x=b;for(;x;)_.unshift(x.record),x=x.parent;return{name:D,path:S,params:$,matched:_,meta:Wp(_)}}e.forEach(d=>r(d));function f(){n.length=0,s.clear()}return{addRoute:r,resolve:u,removeRoute:l,clearRoutes:f,getRoutes:a,getRecordMatcher:o}}function oa(e,t){const n={};for(const s of t)s in e&&(n[s]=e[s]);return n}function ra(e){const t={path:e.path,redirect:e.redirect,name:e.name,meta:e.meta||{},aliasOf:e.aliasOf,beforeEnter:e.beforeEnter,props:jp(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 jp(e){const t={},n=e.props||!1;if("component"in e)t.default=n;else for(const s in e.components)t[s]=typeof n=="object"?n[s]:n;return t}function la(e){for(;e;){if(e.record.aliasOf)return!0;e=e.parent}return!1}function Wp(e){return e.reduce((t,n)=>xe(t,n.meta),{})}function Hp(e,t){let n=0,s=t.length;for(;n!==s;){const r=n+s>>1;xc(e,t[r])<0?s=r:n=r+1}const o=Bp(e);return o&&(s=t.lastIndexOf(o,s-1)),s}function Bp(e){let t=e;for(;t=t.parent;)if(kc(t)&&xc(e,t)===0)return t}function kc({record:e}){return!!(e.name||e.components&&Object.keys(e.components).length||e.redirect)}function aa(e){const t=lt(wo),n=lt(Gr),s=ue(()=>{const i=ve(e.to);return t.resolve(i)}),o=ue(()=>{const{matched:i}=s.value,{length:u}=i,f=i[u-1],d=n.matched;if(!f||!d.length)return-1;const p=d.findIndex(Bn.bind(null,f));if(p>-1)return p;const b=ia(i[u-2]);return u>1&&ia(f)===b&&d[d.length-1].path!==b?d.findIndex(Bn.bind(null,i[u-2])):p}),r=ue(()=>o.value>-1&&Yp(n.params,s.value.params)),l=ue(()=>o.value>-1&&o.value===n.matched.length-1&&vc(n.params,s.value.params));function a(i={}){if(zp(i)){const u=t[ve(e.replace)?"replace":"push"](ve(e.to)).catch(us);return e.viewTransition&&typeof document<"u"&&"startViewTransition"in document&&document.startViewTransition(()=>u),u}return Promise.resolve()}return{route:s,href:ue(()=>s.value.href),isActive:r,isExactActive:l,navigate:a}}function Gp(e){return e.length===1?e[0]:e}const Kp=Ae({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:aa,setup(e,{slots:t}){const n=Cs(aa(e)),{options:s}=lt(wo),o=ue(()=>({[ca(e.activeClass,s.linkActiveClass,"router-link-active")]:n.isActive,[ca(e.exactActiveClass,s.linkExactActiveClass,"router-link-exact-active")]:n.isExactActive}));return()=>{const r=t.default&&Gp(t.default(n));return e.custom?r:As("a",{"aria-current":n.isExactActive?e.ariaCurrentValue:null,href:n.href,onClick:n.navigate,class:o.value},r)}}}),qp=Kp;function zp(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 Yp(e,t){for(const n in t){const s=t[n],o=e[n];if(typeof s=="string"){if(s!==o)return!1}else if(!Ct(o)||o.length!==s.length||s.some((r,l)=>r!==o[l]))return!1}return!0}function ia(e){return e?e.aliasOf?e.aliasOf.path:e.path:""}const ca=(e,t,n)=>e??t??n,Xp=Ae({name:"RouterView",inheritAttrs:!1,props:{name:{type:String,default:"default"},route:Object},compatConfig:{MODE:3},setup(e,{attrs:t,slots:n}){const s=lt(ur),o=ue(()=>e.route||s.value),r=lt(ea,0),l=ue(()=>{let u=ve(r);const{matched:f}=o.value;let d;for(;(d=f[u])&&!d.components;)u++;return u}),a=ue(()=>o.value.matched[l.value]);as(ea,ue(()=>l.value+1)),as($p,a),as(ur,o);const i=X();return at(()=>[i.value,a.value,e.name],([u,f,d],[p,b,$])=>{f&&(f.instances[d]=u,b&&b!==f&&u&&u===p&&(f.leaveGuards.size||(f.leaveGuards=b.leaveGuards),f.updateGuards.size||(f.updateGuards=b.updateGuards))),u&&f&&(!b||!Bn(f,b)||!p)&&(f.enterCallbacks[d]||[]).forEach(S=>S(u))},{flush:"post"}),()=>{const u=o.value,f=e.name,d=a.value,p=d&&d.components[f];if(!p)return ua(n.default,{Component:p,route:u});const b=d.props[f],$=b?b===!0?u.params:typeof b=="function"?b(u):b:null,D=As(p,xe({},$,t,{onVnodeUnmounted:_=>{_.component.isUnmounted&&(d.instances[f]=null)},ref:i}));return ua(n.default,{Component:D,route:u})||D}}});function ua(e,t){if(!e)return null;const n=e(t);return n.length===1?n[0]:n}const Qp=Xp;function Jp(e){const t=Vp(e.routes,e),n=e.parseQuery||kp,s=e.stringifyQuery||Zl,o=e.history,r=Zn(),l=Zn(),a=Zn(),i=yi(nn);let u=nn;Rn&&e.scrollBehavior&&"scrollRestoration"in history&&(history.scrollRestoration="manual");const f=jo.bind(null,M=>""+M),d=jo.bind(null,lp),p=jo.bind(null,_s);function b(M,z){let q,te;return yc(M)?(q=t.getRecordMatcher(M),te=z):te=M,t.addRoute(te,q)}function $(M){const z=t.getRecordMatcher(M);z&&t.removeRoute(z)}function S(){return t.getRoutes().map(M=>M.record)}function D(M){return!!t.getRecordMatcher(M)}function _(M,z){if(z=xe({},z||i.value),typeof M=="string"){const A=Wo(n,M,z.path),U=t.resolve({path:A.path},z),j=o.createHref(A.fullPath);return xe(A,U,{params:p(U.params),hash:_s(A.hash),redirectedFrom:void 0,href:j})}let q;if(M.path!=null)q=xe({},M,{path:Wo(n,M.path,z.path).path});else{const A=xe({},M.params);for(const U in A)A[U]==null&&delete A[U];q=xe({},M,{params:d(A)}),z.params=d(z.params)}const te=t.resolve(q,z),ce=M.hash||"";te.params=f(p(te.params));const y=cp(s,xe({},M,{hash:sp(ce),path:te.path})),k=o.createHref(y);return xe({fullPath:y,hash:ce,query:s===Zl?Sp(M.query):M.query||{}},te,{redirectedFrom:void 0,href:k})}function x(M){return typeof M=="string"?Wo(n,M,i.value.path):xe({},M)}function L(M,z){if(u!==M)return Gn(Ne.NAVIGATION_CANCELLED,{from:z,to:M})}function v(M){return w(M)}function E(M){return v(xe(x(M),{replace:!0}))}function R(M,z){const q=M.matched[M.matched.length-1];if(q&&q.redirect){const{redirect:te}=q;let ce=typeof te=="function"?te(M,z):te;return typeof ce=="string"&&(ce=ce.includes("?")||ce.includes("#")?ce=x(ce):{path:ce},ce.params={}),xe({query:M.query,hash:M.hash,params:ce.path!=null?{}:M.params},ce)}}function w(M,z){const q=u=_(M),te=i.value,ce=M.state,y=M.force,k=M.replace===!0,A=R(q,te);if(A)return w(xe(x(A),{state:typeof A=="object"?xe({},ce,A.state):ce,force:y,replace:k}),z||q);const U=q;U.redirectedFrom=z;let j;return!y&&up(s,te,q)&&(j=Gn(Ne.NAVIGATION_DUPLICATED,{to:U,from:te}),Ye(te,te,!0,!1)),(j?Promise.resolve(j):K(U,te)).catch(V=>jt(V)?jt(V,Ne.NAVIGATION_GUARD_REDIRECT)?V:it(V):pe(V,U,te)).then(V=>{if(V){if(jt(V,Ne.NAVIGATION_GUARD_REDIRECT))return w(xe({replace:k},x(V.to),{state:typeof V.to=="object"?xe({},ce,V.to.state):ce,force:y}),z||U)}else V=F(U,te,!0,k,ce);return B(U,te,V),V})}function C(M,z){const q=L(M,z);return q?Promise.reject(q):Promise.resolve()}function P(M){const z=oe.values().next().value;return z&&typeof z.runWithContext=="function"?z.runWithContext(M):M()}function K(M,z){let q;const[te,ce,y]=Ep(M,z);q=Bo(te.reverse(),"beforeRouteLeave",M,z);for(const A of te)A.leaveGuards.forEach(U=>{q.push(ln(U,M,z))});const k=C.bind(null,M,z);return q.push(k),$e(q).then(()=>{q=[];for(const A of r.list())q.push(ln(A,M,z));return q.push(k),$e(q)}).then(()=>{q=Bo(ce,"beforeRouteUpdate",M,z);for(const A of ce)A.updateGuards.forEach(U=>{q.push(ln(U,M,z))});return q.push(k),$e(q)}).then(()=>{q=[];for(const A of y)if(A.beforeEnter)if(Ct(A.beforeEnter))for(const U of A.beforeEnter)q.push(ln(U,M,z));else q.push(ln(A.beforeEnter,M,z));return q.push(k),$e(q)}).then(()=>(M.matched.forEach(A=>A.enterCallbacks={}),q=Bo(y,"beforeRouteEnter",M,z,P),q.push(k),$e(q))).then(()=>{q=[];for(const A of l.list())q.push(ln(A,M,z));return q.push(k),$e(q)}).catch(A=>jt(A,Ne.NAVIGATION_CANCELLED)?A:Promise.reject(A))}function B(M,z,q){a.list().forEach(te=>P(()=>te(M,z,q)))}function F(M,z,q,te,ce){const y=L(M,z);if(y)return y;const k=z===nn,A=Rn?history.state:{};q&&(te||k?o.replace(M.fullPath,xe({scroll:k&&A&&A.scroll},ce)):o.push(M.fullPath,ce)),i.value=M,Ye(M,z,q,k),it()}let Z;function Te(){Z||(Z=o.listen((M,z,q)=>{if(!me.listening)return;const te=_(M),ce=R(te,me.currentRoute.value);if(ce){w(xe(ce,{replace:!0,force:!0}),te).catch(us);return}u=te;const y=i.value;Rn&&vp(Jl(y.fullPath,q.delta),_o()),K(te,y).catch(k=>jt(k,Ne.NAVIGATION_ABORTED|Ne.NAVIGATION_CANCELLED)?k:jt(k,Ne.NAVIGATION_GUARD_REDIRECT)?(w(xe(x(k.to),{force:!0}),te).then(A=>{jt(A,Ne.NAVIGATION_ABORTED|Ne.NAVIGATION_DUPLICATED)&&!q.delta&&q.type===ir.pop&&o.go(-1,!1)}).catch(us),Promise.reject()):(q.delta&&o.go(-q.delta,!1),pe(k,te,y))).then(k=>{k=k||F(te,y,!1),k&&(q.delta&&!jt(k,Ne.NAVIGATION_CANCELLED)?o.go(-q.delta,!1):q.type===ir.pop&&jt(k,Ne.NAVIGATION_ABORTED|Ne.NAVIGATION_DUPLICATED)&&o.go(-1,!1)),B(te,y,k)}).catch(us)}))}let Fe=Zn(),ge=Zn(),le;function pe(M,z,q){it(M);const te=ge.list();return te.length?te.forEach(ce=>ce(M,z,q)):console.error(M),Promise.reject(M)}function Me(){return le&&i.value!==nn?Promise.resolve():new Promise((M,z)=>{Fe.add([M,z])})}function it(M){return le||(le=!M,Te(),Fe.list().forEach(([z,q])=>M?q(M):z()),Fe.reset()),M}function Ye(M,z,q,te){const{scrollBehavior:ce}=e;if(!Rn||!ce)return Promise.resolve();const y=!q&&yp(Jl(M.fullPath,0))||(te||!q)&&history.state&&history.state.scroll||null;return Ts().then(()=>ce(M,z,y)).then(k=>k&&bp(k)).catch(k=>pe(k,M,z))}const je=M=>o.go(M);let H;const oe=new Set,me={currentRoute:i,listening:!0,addRoute:b,removeRoute:$,clearRoutes:t.clearRoutes,hasRoute:D,getRoutes:S,resolve:_,options:e,push:v,replace:E,go:je,back:()=>je(-1),forward:()=>je(1),beforeEach:r.add,beforeResolve:l.add,afterEach:a.add,onError:ge.add,isReady:Me,install(M){M.component("RouterLink",qp),M.component("RouterView",Qp),M.config.globalProperties.$router=me,Object.defineProperty(M.config.globalProperties,"$route",{enumerable:!0,get:()=>ve(i)}),Rn&&!H&&i.value===nn&&(H=!0,v(o.location).catch(te=>{}));const z={};for(const te in nn)Object.defineProperty(z,te,{get:()=>i.value[te],enumerable:!0});M.provide(wo,me),M.provide(Gr,vi(z)),M.provide(ur,i);const q=M.unmount;oe.add(M),M.unmount=function(){oe.delete(M),oe.size<1&&(u=nn,Z&&Z(),Z=null,i.value=nn,H=!1,le=!1),q()}}};function $e(M){return M.reduce((z,q)=>z.then(()=>P(q)),Promise.resolve())}return me}function Sc(){return lt(wo)}function $c(e){return lt(Gr)}const Zp="";function em(e){const t={"content-type":"application/json"};return e&&(t.authorization=e),t}async function Ec(e,t={}){const{method:n="GET",headers:s={},body:o}=t,r=localStorage.getItem("token")||"";try{const a=await(await fetch(`${Zp}${e}`,{method:n,headers:{...em(r),...s},body:typeof o=="string"?o:o?JSON.stringify(o):void 0})).json();return a.code&&console.error(`[${e}] 请求失败:`,a.message),a}catch(l){return console.error(`请求失败: ${e}`,l),{code:-1,message:l instanceof Error?l.message:"请求失败"}}}function Cc(e){return Ec(e,{method:"GET"})}function In(e,t){return Ec(e,{method:"POST",body:t})}async function tm(){const e=await Cc("/api/config");return e.code===0&&e.data?e.data:{}}async function nm(e){return In("/api/config",e)}async function sm(){const e=await Cc("/api/tasks");return e.code===0&&e.data?e.data:{}}async function om(e){return In("/api/download",{list:e})}async function rm(e,t=!1){return In("/api/pause",{urls:e,all:t})}async function lm(e,t=!1){return In("/api/resume",{urls:e,all:t})}async function Lc(e,t=!0,n=!0){return In("/api/delete",{urls:e,deleteCache:t,deleteVideo:n})}async function am(e,t,n){return In("/api/getM3u8Urls",{url:e,headers:t,subUrlRegex:n})}async function im(){return In("/api/queue/clear",{})}const Ds=Hr("config",()=>{const e=X({threadNum:0,saveDir:"",delCache:!0,convert:!0,showPreview:!0,showLocalPlay:!0,maxDownloads:3,ffmpegPath:""}),t=X("");async function n(){try{const o=await tm();return o&&typeof o=="object"&&"saveDir"in o?(Object.assign(e.value,o),!0):!1}catch(o){return console.error("加载配置失败:",o),!1}}async function s(){return await nm(e.value)}return{config:e,token:t,loadConfig:n,updateConfig:s}}),xo=Hr("server",()=>{const e=X({version:"{{version}}",ariang:!1,newVersion:"",appUpdateMessage:""});function t(n){Object.assign(e.value,n)}return{serverInfo:e,updateServerInfo:t}}),Pn=Hr("tasks",()=>{const e=X({}),t=X([]),n=X({queueLength:0,activeDownloads:[],maxConcurrent:5}),s=X(""),o=X(""),r=ue(()=>{const $=Object.values(e.value);console.log("[TasksStore] filteredTasks computed, tasks.value keys:",Object.keys(e.value).length,"taskValues length:",$.length);let S=$;if(S=S.filter(x=>!(x.status==="done"||x.progress!==void 0&&x.progress>=100)),s.value){const x=s.value.toLowerCase();S=S.filter(L=>(L.localVideo||L.filename||L.dlOptions?.filename||L.url).toLowerCase().includes(x)||L.url.toLowerCase().includes(x))}o.value&&(S=S.filter(x=>x.status===o.value));const D={resume:0,pending:1,pause:2,error:3,done:4};S.sort((x,L)=>{const v=D[x.status]-D[L.status];return v!==0?v:x.status==="done"?(L.filename||"").localeCompare(x.filename||""):(x.startTime||0)-(L.startTime||0)});const _={queueLength:0,activeDownloads:[],maxConcurrent:n.value.maxConcurrent};return S.forEach(x=>{x.showName=x.filename||x.dlOptions?.filename||x.localVideo||x.url,x.status==="pending"?_.queueLength++:x.status==="resume"&&_.activeDownloads.push(x.url)}),(_.queueLength!==n.value.queueLength||_.activeDownloads.length!==n.value.activeDownloads.length)&&(n.value=_),S});function l($){console.log("[TasksStore] setTasks 被调用,任务数量:",Object.keys($||{}).length),$&&typeof $=="object"?(e.value=$,console.log("[TasksStore] 任务已更新,当前任务数量:",Object.keys(e.value).length)):console.warn("[TasksStore] setTasks 收到无效数据:",$)}function a($,S){e.value[$]&&(e.value[$]={...e.value[$],...S})}function i($){$.forEach(({url:S,data:D})=>{e.value[S]&&(e.value[S]={...e.value[S],...D})})}function u($){$.forEach(S=>{delete e.value[S]})}function f($){const S=t.value.indexOf($);S===-1?t.value.push($):t.value.splice(S,1)}function d(){const $=t.value.length===r.value.length;t.value=$?[]:r.value.map(S=>S.url)}function p(){t.value=[]}function b(){s.value="",o.value=""}return{tasks:e,selectedTasks:t,queueStatus:n,searchQuery:s,statusFilter:o,filteredTasks:r,setTasks:l,updateTask:a,updateTasks:i,deleteTasks:u,toggleTaskSelection:f,toggleSelectAll:d,clearSelection:p,clearFilters:b}}),cm={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 he(e){const t=typeof e=="string"?{text:e}:e,n=t.type||"success",s=t.duration??3e3,o=document.createElement("div");o.className=`custom-toast custom-toast-${n}`,o.innerHTML=[`<i class="custom-toast-icon mr-2 fa ${cm[n]}"></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 r=()=>{o.classList.remove("show"),o.classList.add("hide"),setTimeout(()=>o.remove(),300)};return s>0&&setTimeout(()=>r(),s),{element:o,close:r}}let tt=null,Us=3e3,Qt=null,fr=null,kn=null,no="",On=!1;function um(e,t=!1,n){if(no=e,On=t,n&&(kn=n),tt){try{tt.close()}catch{}tt=null}Qt&&(clearTimeout(Qt),Qt=null),Kr(no)}function Kr(e){if(tt&&tt.readyState===WebSocket.OPEN)return;if(tt&&tt.readyState!==WebSocket.OPEN){try{tt.close()}catch{}tt=null}const n=`${location.protocol==="https:"?"wss":"ws"}://${location.host}/ws?token=${e}`,s=new WebSocket(n);tt=s,s.onmessage=o=>{try{const{type:r,data:l}=JSON.parse(o.data),a=Pn(),i=xo();switch(r){case"serverInfo":i.updateServerInfo(l),On&&(he({text:"密码验证成功,连接已建立",type:"success"}),On=!1,kn&&(kn(!0),kn=null));break;case"tasks":console.log("[WebSocket] 收到任务数据:",l),l&&typeof l=="object"&&(a.setTasks(l),console.log("[WebSocket] 任务数据已更新,任务数量:",Object.keys(l).length));break;case"progress":{(Array.isArray(l)?l:[l]).forEach(f=>{f.url&&a.updateTask(f.url,f)});break}case"delete":Array.isArray(l)&&a.deleteTasks(l);break;case"queueStatus":l&&(a.queueStatus=l);break}}catch(r){console.error("WebSocket 消息解析失败:",r)}},s.onopen=()=>{On||he({text:"WebSocket connected",type:"success"}),Us=3e3},s.onclose=o=>{if(console.error("ws连接关闭:",o.code,o.reason),tt=null,o.code===1008){On?(On=!1,kn&&(kn(!1),kn=null)):fr&&fr();return}he({text:`Connection lost, will retry in ${Us/1e3}s...`,type:"error"}),Qt&&clearTimeout(Qt),Qt=window.setTimeout(()=>{Us+=1e3,Kr(no)},Us)},s.onerror=o=>{console.error("WebSocket 错误:",o)}}function qr(e,t){const n=X(null);t&&(fr=t),no=e;function s(){Kr(e),tt&&(n.value=tt)}function o(){Qt&&(clearTimeout(Qt),Qt=null),tt&&(tt.close(),tt=null),n.value=null}return{ws:n,connect:s,disconnect:o}}function fm(e,t){typeof console<"u"&&(console.warn("[intlify] "+e),t&&console.warn(t.stack))}const so=typeof window<"u",hn=(e,t=!1)=>t?Symbol.for(e):Symbol(e),dm=(e,t,n)=>pm({l:e,k:t,s:n}),pm=e=>JSON.stringify(e).replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029").replace(/\u0027/g,"\\u0027"),We=e=>typeof e=="number"&&isFinite(e),mm=e=>zr(e)==="[object Date]",Kn=e=>zr(e)==="[object RegExp]",ko=e=>de(e)&&Object.keys(e).length===0,Ke=Object.assign,hm=Object.create,Ee=(e=null)=>hm(e);let fa;const En=()=>fa||(fa=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:Ee());function da(e){return e.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'").replace(/\//g,"/").replace(/=/g,"=")}function pa(e){return e.replace(/&(?![a-zA-Z0-9#]{2,6};)/g,"&").replace(/"/g,""").replace(/'/g,"'").replace(/</g,"<").replace(/>/g,">")}function gm(e){return e=e.replace(/(\w+)\s*=\s*"([^"]*)"/g,(s,o,r)=>`${o}="${pa(r)}"`),e=e.replace(/(\w+)\s*=\s*'([^']*)'/g,(s,o,r)=>`${o}='${pa(r)}'`),/\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(s=>{e=e.replace(s,"$1javascript:")}),e}const bm=Object.prototype.hasOwnProperty;function kt(e,t){return bm.call(e,t)}const Re=Array.isArray,Pe=e=>typeof e=="function",J=e=>typeof e=="string",ye=e=>typeof e=="boolean",we=e=>e!==null&&typeof e=="object",vm=e=>we(e)&&Pe(e.then)&&Pe(e.catch),Tc=Object.prototype.toString,zr=e=>Tc.call(e),de=e=>zr(e)==="[object Object]",ym=e=>e==null?"":Re(e)||de(e)&&e.toString===Tc?JSON.stringify(e,null,2):String(e);function Yr(e,t=""){return e.reduce((n,s,o)=>o===0?n+s:n+t+s,"")}const Vs=e=>!we(e)||Re(e);function Ks(e,t){if(Vs(e)||Vs(t))throw new Error("Invalid value");const n=[{src:e,des:t}];for(;n.length;){const{src:s,des:o}=n.pop();Object.keys(s).forEach(r=>{r!=="__proto__"&&(we(s[r])&&!we(o[r])&&(o[r]=Array.isArray(s[r])?[]:Ee()),Vs(o[r])||Vs(s[r])?o[r]=s[r]:n.push({src:s[r],des:o[r]}))})}}function _m(e,t,n){return{line:e,column:t,offset:n}}function dr(e,t,n){return{start:e,end:t}}const ke={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},wm=17;function So(e,t,n={}){const{domain:s,messages:o,args:r}=n,l=e,a=new SyntaxError(String(l));return a.code=e,t&&(a.location=t),a.domain=s,a}function xm(e){throw e}const It=" ",km="\r",Ze=`
|
|
2
|
+
`,Sm="\u2028",$m="\u2029";function Em(e){const t=e;let n=0,s=1,o=1,r=0;const l=w=>t[w]===km&&t[w+1]===Ze,a=w=>t[w]===Ze,i=w=>t[w]===$m,u=w=>t[w]===Sm,f=w=>l(w)||a(w)||i(w)||u(w),d=()=>n,p=()=>s,b=()=>o,$=()=>r,S=w=>l(w)||i(w)||u(w)?Ze:t[w],D=()=>S(n),_=()=>S(n+r);function x(){return r=0,f(n)&&(s++,o=0),l(n)&&n++,n++,o++,t[n]}function L(){return l(n+r)&&r++,r++,t[n+r]}function v(){n=0,s=1,o=1,r=0}function E(w=0){r=w}function R(){const w=n+r;for(;w!==n;)x();r=0}return{index:d,line:p,column:b,peekOffset:$,charAt:S,currentChar:D,currentPeek:_,next:x,peek:L,reset:v,resetPeek:E,skipToPeek:R}}const Wt=void 0,Cm=".",ma="'",Lm="tokenizer";function Tm(e,t={}){const n=t.location!==!1,s=Em(e),o=()=>s.index(),r=()=>_m(s.line(),s.column(),s.index()),l=r(),a=o(),i={currentType:13,offset:a,startLoc:l,endLoc:l,lastType:13,lastOffset:a,lastStartLoc:l,lastEndLoc:l,braceNest:0,inLinked:!1,text:""},u=()=>i,{onError:f}=t;function d(h,g,T,...N){const Q=u();if(g.column+=T,g.offset+=T,f){const W=n?dr(Q.startLoc,g):null,I=So(h,W,{domain:Lm,args:N});f(I)}}function p(h,g,T){h.endLoc=r(),h.currentType=g;const N={type:g};return n&&(N.loc=dr(h.startLoc,h.endLoc)),T!=null&&(N.value=T),N}const b=h=>p(h,13);function $(h,g){return h.currentChar()===g?(h.next(),g):(d(ke.EXPECTED_TOKEN,r(),0,g),"")}function S(h){let g="";for(;h.currentPeek()===It||h.currentPeek()===Ze;)g+=h.currentPeek(),h.peek();return g}function D(h){const g=S(h);return h.skipToPeek(),g}function _(h){if(h===Wt)return!1;const g=h.charCodeAt(0);return g>=97&&g<=122||g>=65&&g<=90||g===95}function x(h){if(h===Wt)return!1;const g=h.charCodeAt(0);return g>=48&&g<=57}function L(h,g){const{currentType:T}=g;if(T!==2)return!1;S(h);const N=_(h.currentPeek());return h.resetPeek(),N}function v(h,g){const{currentType:T}=g;if(T!==2)return!1;S(h);const N=h.currentPeek()==="-"?h.peek():h.currentPeek(),Q=x(N);return h.resetPeek(),Q}function E(h,g){const{currentType:T}=g;if(T!==2)return!1;S(h);const N=h.currentPeek()===ma;return h.resetPeek(),N}function R(h,g){const{currentType:T}=g;if(T!==7)return!1;S(h);const N=h.currentPeek()===".";return h.resetPeek(),N}function w(h,g){const{currentType:T}=g;if(T!==8)return!1;S(h);const N=_(h.currentPeek());return h.resetPeek(),N}function C(h,g){const{currentType:T}=g;if(!(T===7||T===11))return!1;S(h);const N=h.currentPeek()===":";return h.resetPeek(),N}function P(h,g){const{currentType:T}=g;if(T!==9)return!1;const N=()=>{const W=h.currentPeek();return W==="{"?_(h.peek()):W==="@"||W==="|"||W===":"||W==="."||W===It||!W?!1:W===Ze?(h.peek(),N()):B(h,!1)},Q=N();return h.resetPeek(),Q}function K(h){S(h);const g=h.currentPeek()==="|";return h.resetPeek(),g}function B(h,g=!0){const T=(Q=!1,W="")=>{const I=h.currentPeek();return I==="{"||I==="@"||!I?Q:I==="|"?!(W===It||W===Ze):I===It?(h.peek(),T(!0,It)):I===Ze?(h.peek(),T(!0,Ze)):!0},N=T();return g&&h.resetPeek(),N}function F(h,g){const T=h.currentChar();return T===Wt?Wt:g(T)?(h.next(),T):null}function Z(h){const g=h.charCodeAt(0);return g>=97&&g<=122||g>=65&&g<=90||g>=48&&g<=57||g===95||g===36}function Te(h){return F(h,Z)}function Fe(h){const g=h.charCodeAt(0);return g>=97&&g<=122||g>=65&&g<=90||g>=48&&g<=57||g===95||g===36||g===45}function ge(h){return F(h,Fe)}function le(h){const g=h.charCodeAt(0);return g>=48&&g<=57}function pe(h){return F(h,le)}function Me(h){const g=h.charCodeAt(0);return g>=48&&g<=57||g>=65&&g<=70||g>=97&&g<=102}function it(h){return F(h,Me)}function Ye(h){let g="",T="";for(;g=pe(h);)T+=g;return T}function je(h){let g="";for(;;){const T=h.currentChar();if(T==="{"||T==="}"||T==="@"||T==="|"||!T)break;if(T===It||T===Ze)if(B(h))g+=T,h.next();else{if(K(h))break;g+=T,h.next()}else g+=T,h.next()}return g}function H(h){D(h);let g="",T="";for(;g=ge(h);)T+=g;const N=h.currentChar();if(N&&N!=="}"&&N!==Wt&&N!==It&&N!==Ze&&N!==" "){const Q=te(h);return d(ke.INVALID_TOKEN_IN_PLACEHOLDER,r(),0,T+Q),T+Q}return h.currentChar()===Wt&&d(ke.UNTERMINATED_CLOSING_BRACE,r(),0),T}function oe(h){D(h);let g="";return h.currentChar()==="-"?(h.next(),g+=`-${Ye(h)}`):g+=Ye(h),h.currentChar()===Wt&&d(ke.UNTERMINATED_CLOSING_BRACE,r(),0),g}function me(h){return h!==ma&&h!==Ze}function $e(h){D(h),$(h,"'");let g="",T="";for(;g=F(h,me);)g==="\\"?T+=M(h):T+=g;const N=h.currentChar();return N===Ze||N===Wt?(d(ke.UNTERMINATED_SINGLE_QUOTE_IN_PLACEHOLDER,r(),0),N===Ze&&(h.next(),$(h,"'")),T):($(h,"'"),T)}function M(h){const g=h.currentChar();switch(g){case"\\":case"'":return h.next(),`\\${g}`;case"u":return z(h,g,4);case"U":return z(h,g,6);default:return d(ke.UNKNOWN_ESCAPE_SEQUENCE,r(),0,g),""}}function z(h,g,T){$(h,g);let N="";for(let Q=0;Q<T;Q++){const W=it(h);if(!W){d(ke.INVALID_UNICODE_ESCAPE_SEQUENCE,r(),0,`\\${g}${N}${h.currentChar()}`);break}N+=W}return`\\${g}${N}`}function q(h){return h!=="{"&&h!=="}"&&h!==It&&h!==Ze}function te(h){D(h);let g="",T="";for(;g=F(h,q);)T+=g;return T}function ce(h){let g="",T="";for(;g=Te(h);)T+=g;return T}function y(h){const g=T=>{const N=h.currentChar();return N==="{"||N==="@"||N==="|"||N==="("||N===")"||!N||N===It?T:(T+=N,h.next(),g(T))};return g("")}function k(h){D(h);const g=$(h,"|");return D(h),g}function A(h,g){let T=null;switch(h.currentChar()){case"{":return g.braceNest>=1&&d(ke.NOT_ALLOW_NEST_PLACEHOLDER,r(),0),h.next(),T=p(g,2,"{"),D(h),g.braceNest++,T;case"}":return g.braceNest>0&&g.currentType===2&&d(ke.EMPTY_PLACEHOLDER,r(),0),h.next(),T=p(g,3,"}"),g.braceNest--,g.braceNest>0&&D(h),g.inLinked&&g.braceNest===0&&(g.inLinked=!1),T;case"@":return g.braceNest>0&&d(ke.UNTERMINATED_CLOSING_BRACE,r(),0),T=U(h,g)||b(g),g.braceNest=0,T;default:{let Q=!0,W=!0,I=!0;if(K(h))return g.braceNest>0&&d(ke.UNTERMINATED_CLOSING_BRACE,r(),0),T=p(g,1,k(h)),g.braceNest=0,g.inLinked=!1,T;if(g.braceNest>0&&(g.currentType===4||g.currentType===5||g.currentType===6))return d(ke.UNTERMINATED_CLOSING_BRACE,r(),0),g.braceNest=0,j(h,g);if(Q=L(h,g))return T=p(g,4,H(h)),D(h),T;if(W=v(h,g))return T=p(g,5,oe(h)),D(h),T;if(I=E(h,g))return T=p(g,6,$e(h)),D(h),T;if(!Q&&!W&&!I)return T=p(g,12,te(h)),d(ke.INVALID_TOKEN_IN_PLACEHOLDER,r(),0,T.value),D(h),T;break}}return T}function U(h,g){const{currentType:T}=g;let N=null;const Q=h.currentChar();switch((T===7||T===8||T===11||T===9)&&(Q===Ze||Q===It)&&d(ke.INVALID_LINKED_FORMAT,r(),0),Q){case"@":return h.next(),N=p(g,7,"@"),g.inLinked=!0,N;case".":return D(h),h.next(),p(g,8,".");case":":return D(h),h.next(),p(g,9,":");default:return K(h)?(N=p(g,1,k(h)),g.braceNest=0,g.inLinked=!1,N):R(h,g)||C(h,g)?(D(h),U(h,g)):w(h,g)?(D(h),p(g,11,ce(h))):P(h,g)?(D(h),Q==="{"?A(h,g)||N:p(g,10,y(h))):(T===7&&d(ke.INVALID_LINKED_FORMAT,r(),0),g.braceNest=0,g.inLinked=!1,j(h,g))}}function j(h,g){let T={type:13};if(g.braceNest>0)return A(h,g)||b(g);if(g.inLinked)return U(h,g)||b(g);switch(h.currentChar()){case"{":return A(h,g)||b(g);case"}":return d(ke.UNBALANCED_CLOSING_BRACE,r(),0),h.next(),p(g,3,"}");case"@":return U(h,g)||b(g);default:{if(K(h))return T=p(g,1,k(h)),g.braceNest=0,g.inLinked=!1,T;if(B(h))return p(g,0,je(h));break}}return T}function V(){const{currentType:h,offset:g,startLoc:T,endLoc:N}=i;return i.lastType=h,i.lastOffset=g,i.lastStartLoc=T,i.lastEndLoc=N,i.offset=o(),i.startLoc=r(),s.currentChar()===Wt?p(i,13):j(s,i)}return{nextToken:V,currentOffset:o,currentPosition:r,context:u}}const Im="parser",Pm=/(?:\\\\|\\'|\\u([0-9a-fA-F]{4})|\\U([0-9a-fA-F]{6}))/g;function Am(e,t,n){switch(e){case"\\\\":return"\\";case"\\'":return"'";default:{const s=parseInt(t||n,16);return s<=55295||s>=57344?String.fromCodePoint(s):"�"}}}function Dm(e={}){const t=e.location!==!1,{onError:n}=e;function s(_,x,L,v,...E){const R=_.currentPosition();if(R.offset+=v,R.column+=v,n){const w=t?dr(L,R):null,C=So(x,w,{domain:Im,args:E});n(C)}}function o(_,x,L){const v={type:_};return t&&(v.start=x,v.end=x,v.loc={start:L,end:L}),v}function r(_,x,L,v){t&&(_.end=x,_.loc&&(_.loc.end=L))}function l(_,x){const L=_.context(),v=o(3,L.offset,L.startLoc);return v.value=x,r(v,_.currentOffset(),_.currentPosition()),v}function a(_,x){const L=_.context(),{lastOffset:v,lastStartLoc:E}=L,R=o(5,v,E);return R.index=parseInt(x,10),_.nextToken(),r(R,_.currentOffset(),_.currentPosition()),R}function i(_,x){const L=_.context(),{lastOffset:v,lastStartLoc:E}=L,R=o(4,v,E);return R.key=x,_.nextToken(),r(R,_.currentOffset(),_.currentPosition()),R}function u(_,x){const L=_.context(),{lastOffset:v,lastStartLoc:E}=L,R=o(9,v,E);return R.value=x.replace(Pm,Am),_.nextToken(),r(R,_.currentOffset(),_.currentPosition()),R}function f(_){const x=_.nextToken(),L=_.context(),{lastOffset:v,lastStartLoc:E}=L,R=o(8,v,E);return x.type!==11?(s(_,ke.UNEXPECTED_EMPTY_LINKED_MODIFIER,L.lastStartLoc,0),R.value="",r(R,v,E),{nextConsumeToken:x,node:R}):(x.value==null&&s(_,ke.UNEXPECTED_LEXICAL_ANALYSIS,L.lastStartLoc,0,Pt(x)),R.value=x.value||"",r(R,_.currentOffset(),_.currentPosition()),{node:R})}function d(_,x){const L=_.context(),v=o(7,L.offset,L.startLoc);return v.value=x,r(v,_.currentOffset(),_.currentPosition()),v}function p(_){const x=_.context(),L=o(6,x.offset,x.startLoc);let v=_.nextToken();if(v.type===8){const E=f(_);L.modifier=E.node,v=E.nextConsumeToken||_.nextToken()}switch(v.type!==9&&s(_,ke.UNEXPECTED_LEXICAL_ANALYSIS,x.lastStartLoc,0,Pt(v)),v=_.nextToken(),v.type===2&&(v=_.nextToken()),v.type){case 10:v.value==null&&s(_,ke.UNEXPECTED_LEXICAL_ANALYSIS,x.lastStartLoc,0,Pt(v)),L.key=d(_,v.value||"");break;case 4:v.value==null&&s(_,ke.UNEXPECTED_LEXICAL_ANALYSIS,x.lastStartLoc,0,Pt(v)),L.key=i(_,v.value||"");break;case 5:v.value==null&&s(_,ke.UNEXPECTED_LEXICAL_ANALYSIS,x.lastStartLoc,0,Pt(v)),L.key=a(_,v.value||"");break;case 6:v.value==null&&s(_,ke.UNEXPECTED_LEXICAL_ANALYSIS,x.lastStartLoc,0,Pt(v)),L.key=u(_,v.value||"");break;default:{s(_,ke.UNEXPECTED_EMPTY_LINKED_KEY,x.lastStartLoc,0);const E=_.context(),R=o(7,E.offset,E.startLoc);return R.value="",r(R,E.offset,E.startLoc),L.key=R,r(L,E.offset,E.startLoc),{nextConsumeToken:v,node:L}}}return r(L,_.currentOffset(),_.currentPosition()),{node:L}}function b(_){const x=_.context(),L=x.currentType===1?_.currentOffset():x.offset,v=x.currentType===1?x.endLoc:x.startLoc,E=o(2,L,v);E.items=[];let R=null;do{const P=R||_.nextToken();switch(R=null,P.type){case 0:P.value==null&&s(_,ke.UNEXPECTED_LEXICAL_ANALYSIS,x.lastStartLoc,0,Pt(P)),E.items.push(l(_,P.value||""));break;case 5:P.value==null&&s(_,ke.UNEXPECTED_LEXICAL_ANALYSIS,x.lastStartLoc,0,Pt(P)),E.items.push(a(_,P.value||""));break;case 4:P.value==null&&s(_,ke.UNEXPECTED_LEXICAL_ANALYSIS,x.lastStartLoc,0,Pt(P)),E.items.push(i(_,P.value||""));break;case 6:P.value==null&&s(_,ke.UNEXPECTED_LEXICAL_ANALYSIS,x.lastStartLoc,0,Pt(P)),E.items.push(u(_,P.value||""));break;case 7:{const K=p(_);E.items.push(K.node),R=K.nextConsumeToken||null;break}}}while(x.currentType!==13&&x.currentType!==1);const w=x.currentType===1?x.lastOffset:_.currentOffset(),C=x.currentType===1?x.lastEndLoc:_.currentPosition();return r(E,w,C),E}function $(_,x,L,v){const E=_.context();let R=v.items.length===0;const w=o(1,x,L);w.cases=[],w.cases.push(v);do{const C=b(_);R||(R=C.items.length===0),w.cases.push(C)}while(E.currentType!==13);return R&&s(_,ke.MUST_HAVE_MESSAGES_IN_PLURAL,L,0),r(w,_.currentOffset(),_.currentPosition()),w}function S(_){const x=_.context(),{offset:L,startLoc:v}=x,E=b(_);return x.currentType===13?E:$(_,L,v,E)}function D(_){const x=Tm(_,Ke({},e)),L=x.context(),v=o(0,L.offset,L.startLoc);return t&&v.loc&&(v.loc.source=_),v.body=S(x),e.onCacheKey&&(v.cacheKey=e.onCacheKey(_)),L.currentType!==13&&s(x,ke.UNEXPECTED_LEXICAL_ANALYSIS,L.lastStartLoc,0,_[L.offset]||""),r(v,x.currentOffset(),x.currentPosition()),v}return{parse:D}}function Pt(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 Nm(e,t={}){const n={ast:e,helpers:new Set};return{context:()=>n,helper:r=>(n.helpers.add(r),r)}}function ha(e,t){for(let n=0;n<e.length;n++)Xr(e[n],t)}function Xr(e,t){switch(e.type){case 1:ha(e.cases,t),t.helper("plural");break;case 2:ha(e.items,t);break;case 6:{Xr(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 Rm(e,t={}){const n=Nm(e);n.helper("normalize"),e.body&&Xr(e.body,n);const s=n.context();e.helpers=Array.from(s.helpers)}function Om(e){const t=e.body;return t.type===2?ga(t):t.cases.forEach(n=>ga(n)),e}function ga(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 n=0;n<e.items.length;n++){const s=e.items[n];if(!(s.type===3||s.type===9)||s.value==null)break;t.push(s.value)}if(t.length===e.items.length){e.static=Yr(t);for(let n=0;n<e.items.length;n++){const s=e.items[n];(s.type===3||s.type===9)&&delete s.value}}}}function Fn(e){switch(e.t=e.type,e.type){case 0:{const t=e;Fn(t.body),t.b=t.body,delete t.body;break}case 1:{const t=e,n=t.cases;for(let s=0;s<n.length;s++)Fn(n[s]);t.c=n,delete t.cases;break}case 2:{const t=e,n=t.items;for(let s=0;s<n.length;s++)Fn(n[s]);t.i=n,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;Fn(t.key),t.k=t.key,delete t.key,t.modifier&&(Fn(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 Fm(e,t){const{filename:n,breakLineCode:s,needIndent:o}=t,r=t.location!==!1,l={filename:n,code:"",column:1,line:1,offset:0,map:void 0,breakLineCode:s,needIndent:o,indentLevel:0};r&&e.loc&&(l.source=e.loc.source);const a=()=>l;function i(S,D){l.code+=S}function u(S,D=!0){const _=D?s:"";i(o?_+" ".repeat(S):_)}function f(S=!0){const D=++l.indentLevel;S&&u(D)}function d(S=!0){const D=--l.indentLevel;S&&u(D)}function p(){u(l.indentLevel)}return{context:a,push:i,indent:f,deindent:d,newline:p,helper:S=>`_${S}`,needIndent:()=>l.needIndent}}function Mm(e,t){const{helper:n}=e;e.push(`${n("linked")}(`),qn(e,t.key),t.modifier?(e.push(", "),qn(e,t.modifier),e.push(", _type")):e.push(", undefined, _type"),e.push(")")}function Um(e,t){const{helper:n,needIndent:s}=e;e.push(`${n("normalize")}([`),e.indent(s());const o=t.items.length;for(let r=0;r<o&&(qn(e,t.items[r]),r!==o-1);r++)e.push(", ");e.deindent(s()),e.push("])")}function Vm(e,t){const{helper:n,needIndent:s}=e;if(t.cases.length>1){e.push(`${n("plural")}([`),e.indent(s());const o=t.cases.length;for(let r=0;r<o&&(qn(e,t.cases[r]),r!==o-1);r++)e.push(", ");e.deindent(s()),e.push("])")}}function jm(e,t){t.body?qn(e,t.body):e.push("null")}function qn(e,t){const{helper:n}=e;switch(t.type){case 0:jm(e,t);break;case 1:Vm(e,t);break;case 2:Um(e,t);break;case 6:Mm(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(`${n("interpolate")}(${n("list")}(${t.index}))`,t);break;case 4:e.push(`${n("interpolate")}(${n("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 Wm=(e,t={})=>{const n=J(t.mode)?t.mode:"normal",s=J(t.filename)?t.filename:"message.intl";t.sourceMap;const o=t.breakLineCode!=null?t.breakLineCode:n==="arrow"?";":`
|
|
3
|
+
`,r=t.needIndent?t.needIndent:n!=="arrow",l=e.helpers||[],a=Fm(e,{filename:s,breakLineCode:o,needIndent:r});a.push(n==="normal"?"function __msg__ (ctx) {":"(ctx) => {"),a.indent(r),l.length>0&&(a.push(`const { ${Yr(l.map(f=>`${f}: _${f}`),", ")} } = ctx`),a.newline()),a.push("return "),qn(a,e),a.deindent(r),a.push("}"),delete e.helpers;const{code:i,map:u}=a.context();return{ast:e,code:i,map:u?u.toJSON():void 0}};function Hm(e,t={}){const n=Ke({},t),s=!!n.jit,o=!!n.minify,r=n.optimize==null?!0:n.optimize,a=Dm(n).parse(e);return s?(r&&Om(a),o&&Fn(a),{ast:a,code:""}):(Rm(a,n),Wm(a,n))}function Bm(){typeof __INTLIFY_PROD_DEVTOOLS__!="boolean"&&(En().__INTLIFY_PROD_DEVTOOLS__=!1),typeof __INTLIFY_DROP_MESSAGE_COMPILER__!="boolean"&&(En().__INTLIFY_DROP_MESSAGE_COMPILER__=!1)}function Rt(e){return we(e)&&Qr(e)===0&&(kt(e,"b")||kt(e,"body"))}const Ic=["b","body"];function Gm(e){return gn(e,Ic)}const Pc=["c","cases"];function Km(e){return gn(e,Pc,[])}const Ac=["s","static"];function qm(e){return gn(e,Ac)}const Dc=["i","items"];function zm(e){return gn(e,Dc,[])}const Nc=["t","type"];function Qr(e){return gn(e,Nc)}const Rc=["v","value"];function js(e,t){const n=gn(e,Rc);if(n!=null)return n;throw ws(t)}const Oc=["m","modifier"];function Ym(e){return gn(e,Oc)}const Fc=["k","key"];function Xm(e){const t=gn(e,Fc);if(t)return t;throw ws(6)}function gn(e,t,n){for(let s=0;s<t.length;s++){const o=t[s];if(kt(e,o)&&e[o]!=null)return e[o]}return n}const Mc=[...Ic,...Pc,...Ac,...Dc,...Fc,...Oc,...Rc,...Nc];function ws(e){return new Error(`unhandled node type: ${e}`)}function Go(e){return n=>Qm(n,e)}function Qm(e,t){const n=Gm(t);if(n==null)throw ws(0);if(Qr(n)===1){const r=Km(n);return e.plural(r.reduce((l,a)=>[...l,ba(e,a)],[]))}else return ba(e,n)}function ba(e,t){const n=qm(t);if(n!=null)return e.type==="text"?n:e.normalize([n]);{const s=zm(t).reduce((o,r)=>[...o,pr(e,r)],[]);return e.normalize(s)}}function pr(e,t){const n=Qr(t);switch(n){case 3:return js(t,n);case 9:return js(t,n);case 4:{const s=t;if(kt(s,"k")&&s.k)return e.interpolate(e.named(s.k));if(kt(s,"key")&&s.key)return e.interpolate(e.named(s.key));throw ws(n)}case 5:{const s=t;if(kt(s,"i")&&We(s.i))return e.interpolate(e.list(s.i));if(kt(s,"index")&&We(s.index))return e.interpolate(e.list(s.index));throw ws(n)}case 6:{const s=t,o=Ym(s),r=Xm(s);return e.linked(pr(e,r),o?pr(e,o):void 0,e.type)}case 7:return js(t,n);case 8:return js(t,n);default:throw new Error(`unhandled node on format message part: ${n}`)}}const Jm=e=>e;let Ws=Ee();function Zm(e,t={}){let n=!1;const s=t.onError||xm;return t.onError=o=>{n=!0,s(o)},{...Hm(e,t),detectError:n}}function eh(e,t){if(!__INTLIFY_DROP_MESSAGE_COMPILER__&&J(e)){ye(t.warnHtmlMessage)&&t.warnHtmlMessage;const s=(t.onCacheKey||Jm)(e),o=Ws[s];if(o)return o;const{ast:r,detectError:l}=Zm(e,{...t,location:!1,jit:!0}),a=Go(r);return l?a:Ws[s]=a}else{const n=e.cacheKey;if(n){const s=Ws[n];return s||(Ws[n]=Go(e))}else return Go(e)}}let xs=null;function th(e){xs=e}function nh(e,t,n){xs&&xs.emit("i18n:init",{timestamp:Date.now(),i18n:e,version:t,meta:n})}const sh=oh("function:translate");function oh(e){return t=>xs&&xs.emit(e,t)}const qt={INVALID_ARGUMENT:wm,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},rh=24;function zt(e){return So(e,null,void 0)}function Jr(e,t){return t.locale!=null?va(t.locale):va(e.locale)}let Ko;function va(e){if(J(e))return e;if(Pe(e)){if(e.resolvedOnce&&Ko!=null)return Ko;if(e.constructor.name==="Function"){const t=e();if(vm(t))throw zt(qt.NOT_SUPPORT_LOCALE_PROMISE_VALUE);return Ko=t}else throw zt(qt.NOT_SUPPORT_LOCALE_ASYNC_FUNCTION)}else throw zt(qt.NOT_SUPPORT_LOCALE_TYPE)}function lh(e,t,n){return[...new Set([n,...Re(t)?t:we(t)?Object.keys(t):J(t)?[t]:[n]])]}function Uc(e,t,n){const s=J(n)?n:ks,o=e;o.__localeChainCache||(o.__localeChainCache=new Map);let r=o.__localeChainCache.get(s);if(!r){r=[];let l=[n];for(;Re(l);)l=ya(r,l,t);const a=Re(t)||!de(t)?t:t.default?t.default:null;l=J(a)?[a]:a,Re(l)&&ya(r,l,!1),o.__localeChainCache.set(s,r)}return r}function ya(e,t,n){let s=!0;for(let o=0;o<t.length&&ye(s);o++){const r=t[o];J(r)&&(s=ah(e,t[o],n))}return s}function ah(e,t,n){let s;const o=t.split("-");do{const r=o.join("-");s=ih(e,r,n),o.splice(-1,1)}while(o.length&&s===!0);return s}function ih(e,t,n){let s=!1;if(!e.includes(t)&&(s=!0,t)){s=t[t.length-1]!=="!";const o=t.replace(/!/g,"");e.push(o),(Re(n)||de(n))&&n[o]&&(s=n[o])}return s}const bn=[];bn[0]={w:[0],i:[3,0],"[":[4],o:[7]};bn[1]={w:[1],".":[2],"[":[4],o:[7]};bn[2]={w:[2],i:[3,0],0:[3,0]};bn[3]={i:[3,0],0:[3,0],w:[1,1],".":[2,1],"[":[4,1],o:[7,1]};bn[4]={"'":[5,0],'"':[6,0],"[":[4,2],"]":[1,3],o:8,l:[4,0]};bn[5]={"'":[4,0],o:8,l:[5,0]};bn[6]={'"':[4,0],o:8,l:[6,0]};const ch=/^\s?(?:true|false|-?[\d.]+|'[^']*'|"[^"]*")\s?$/;function uh(e){return ch.test(e)}function fh(e){const t=e.charCodeAt(0),n=e.charCodeAt(e.length-1);return t===n&&(t===34||t===39)?e.slice(1,-1):e}function dh(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 ph(e){const t=e.trim();return e.charAt(0)==="0"&&isNaN(parseInt(e))?!1:uh(t)?fh(t):"*"+t}function mh(e){const t=[];let n=-1,s=0,o=0,r,l,a,i,u,f,d;const p=[];p[0]=()=>{l===void 0?l=a:l+=a},p[1]=()=>{l!==void 0&&(t.push(l),l=void 0)},p[2]=()=>{p[0](),o++},p[3]=()=>{if(o>0)o--,s=4,p[0]();else{if(o=0,l===void 0||(l=ph(l),l===!1))return!1;p[1]()}};function b(){const $=e[n+1];if(s===5&&$==="'"||s===6&&$==='"')return n++,a="\\"+$,p[0](),!0}for(;s!==null;)if(n++,r=e[n],!(r==="\\"&&b())){if(i=dh(r),d=bn[s],u=d[i]||d.l||8,u===8||(s=u[0],u[1]!==void 0&&(f=p[u[1]],f&&(a=r,f()===!1))))return;if(s===7)return t}}const _a=new Map;function hh(e,t){return we(e)?e[t]:null}function gh(e,t){if(!we(e))return null;let n=_a.get(t);if(n||(n=mh(t),n&&_a.set(t,n)),!n)return null;const s=n.length;let o=e,r=0;for(;r<s;){const l=n[r];if(Mc.includes(l)&&Rt(o))return null;const a=o[l];if(a===void 0||Pe(o))return null;o=a,r++}return o}const bh="11.1.12",$o=-1,ks="en-US",wa="",xa=e=>`${e.charAt(0).toLocaleUpperCase()}${e.substr(1)}`;function vh(){return{upper:(e,t)=>t==="text"&&J(e)?e.toUpperCase():t==="vnode"&&we(e)&&"__v_isVNode"in e?e.children.toUpperCase():e,lower:(e,t)=>t==="text"&&J(e)?e.toLowerCase():t==="vnode"&&we(e)&&"__v_isVNode"in e?e.children.toLowerCase():e,capitalize:(e,t)=>t==="text"&&J(e)?xa(e):t==="vnode"&&we(e)&&"__v_isVNode"in e?xa(e.children):e}}let Vc;function yh(e){Vc=e}let jc;function _h(e){jc=e}let Wc;function wh(e){Wc=e}let Hc=null;const xh=e=>{Hc=e},kh=()=>Hc;let Bc=null;const ka=e=>{Bc=e},Sh=()=>Bc;let Sa=0;function $h(e={}){const t=Pe(e.onWarn)?e.onWarn:fm,n=J(e.version)?e.version:bh,s=J(e.locale)||Pe(e.locale)?e.locale:ks,o=Pe(s)?ks:s,r=Re(e.fallbackLocale)||de(e.fallbackLocale)||J(e.fallbackLocale)||e.fallbackLocale===!1?e.fallbackLocale:o,l=de(e.messages)?e.messages:qo(o),a=de(e.datetimeFormats)?e.datetimeFormats:qo(o),i=de(e.numberFormats)?e.numberFormats:qo(o),u=Ke(Ee(),e.modifiers,vh()),f=e.pluralRules||Ee(),d=Pe(e.missing)?e.missing:null,p=ye(e.missingWarn)||Kn(e.missingWarn)?e.missingWarn:!0,b=ye(e.fallbackWarn)||Kn(e.fallbackWarn)?e.fallbackWarn:!0,$=!!e.fallbackFormat,S=!!e.unresolving,D=Pe(e.postTranslation)?e.postTranslation:null,_=de(e.processor)?e.processor:null,x=ye(e.warnHtmlMessage)?e.warnHtmlMessage:!0,L=!!e.escapeParameter,v=Pe(e.messageCompiler)?e.messageCompiler:Vc,E=Pe(e.messageResolver)?e.messageResolver:jc||hh,R=Pe(e.localeFallbacker)?e.localeFallbacker:Wc||lh,w=we(e.fallbackContext)?e.fallbackContext:void 0,C=e,P=we(C.__datetimeFormatters)?C.__datetimeFormatters:new Map,K=we(C.__numberFormatters)?C.__numberFormatters:new Map,B=we(C.__meta)?C.__meta:{};Sa++;const F={version:n,cid:Sa,locale:s,fallbackLocale:r,messages:l,modifiers:u,pluralRules:f,missing:d,missingWarn:p,fallbackWarn:b,fallbackFormat:$,unresolving:S,postTranslation:D,processor:_,warnHtmlMessage:x,escapeParameter:L,messageCompiler:v,messageResolver:E,localeFallbacker:R,fallbackContext:w,onWarn:t,__meta:B};return F.datetimeFormats=a,F.numberFormats=i,F.__datetimeFormatters=P,F.__numberFormatters=K,__INTLIFY_PROD_DEVTOOLS__&&nh(F,n,B),F}const qo=e=>({[e]:Ee()});function Zr(e,t,n,s,o){const{missing:r,onWarn:l}=e;if(r!==null){const a=r(e,n,t,o);return J(a)?a:t}else return t}function es(e,t,n){const s=e;s.__localeChainCache=new Map,e.localeFallbacker(e,n,t)}function Eh(e,t){return e===t?!1:e.split("-")[0]===t.split("-")[0]}function Ch(e,t){const n=t.indexOf(e);if(n===-1)return!1;for(let s=n+1;s<t.length;s++)if(Eh(e,t[s]))return!0;return!1}function $a(e,...t){const{datetimeFormats:n,unresolving:s,fallbackLocale:o,onWarn:r,localeFallbacker:l}=e,{__datetimeFormatters:a}=e,[i,u,f,d]=mr(...t),p=ye(f.missingWarn)?f.missingWarn:e.missingWarn;ye(f.fallbackWarn)?f.fallbackWarn:e.fallbackWarn;const b=!!f.part,$=Jr(e,f),S=l(e,o,$);if(!J(i)||i==="")return new Intl.DateTimeFormat($,d).format(u);let D={},_,x=null;const L="datetime format";for(let R=0;R<S.length&&(_=S[R],D=n[_]||{},x=D[i],!de(x));R++)Zr(e,i,_,p,L);if(!de(x)||!J(_))return s?$o:i;let v=`${_}__${i}`;ko(d)||(v=`${v}__${JSON.stringify(d)}`);let E=a.get(v);return E||(E=new Intl.DateTimeFormat(_,Ke({},x,d)),a.set(v,E)),b?E.formatToParts(u):E.format(u)}const Gc=["localeMatcher","weekday","era","year","month","day","hour","minute","second","timeZoneName","formatMatcher","hour12","timeZone","dateStyle","timeStyle","calendar","dayPeriod","numberingSystem","hourCycle","fractionalSecondDigits"];function mr(...e){const[t,n,s,o]=e,r=Ee();let l=Ee(),a;if(J(t)){const i=t.match(/(\d{4}-\d{2}-\d{2})(T|\s)?(.*)/);if(!i)throw zt(qt.INVALID_ISO_DATE_ARGUMENT);const u=i[3]?i[3].trim().startsWith("T")?`${i[1].trim()}${i[3].trim()}`:`${i[1].trim()}T${i[3].trim()}`:i[1].trim();a=new Date(u);try{a.toISOString()}catch{throw zt(qt.INVALID_ISO_DATE_ARGUMENT)}}else if(mm(t)){if(isNaN(t.getTime()))throw zt(qt.INVALID_DATE_ARGUMENT);a=t}else if(We(t))a=t;else throw zt(qt.INVALID_ARGUMENT);return J(n)?r.key=n:de(n)&&Object.keys(n).forEach(i=>{Gc.includes(i)?l[i]=n[i]:r[i]=n[i]}),J(s)?r.locale=s:de(s)&&(l=s),de(o)&&(l=o),[r.key||"",a,r,l]}function Ea(e,t,n){const s=e;for(const o in n){const r=`${t}__${o}`;s.__datetimeFormatters.has(r)&&s.__datetimeFormatters.delete(r)}}function Ca(e,...t){const{numberFormats:n,unresolving:s,fallbackLocale:o,onWarn:r,localeFallbacker:l}=e,{__numberFormatters:a}=e,[i,u,f,d]=hr(...t),p=ye(f.missingWarn)?f.missingWarn:e.missingWarn;ye(f.fallbackWarn)?f.fallbackWarn:e.fallbackWarn;const b=!!f.part,$=Jr(e,f),S=l(e,o,$);if(!J(i)||i==="")return new Intl.NumberFormat($,d).format(u);let D={},_,x=null;const L="number format";for(let R=0;R<S.length&&(_=S[R],D=n[_]||{},x=D[i],!de(x));R++)Zr(e,i,_,p,L);if(!de(x)||!J(_))return s?$o:i;let v=`${_}__${i}`;ko(d)||(v=`${v}__${JSON.stringify(d)}`);let E=a.get(v);return E||(E=new Intl.NumberFormat(_,Ke({},x,d)),a.set(v,E)),b?E.formatToParts(u):E.format(u)}const Kc=["localeMatcher","style","currency","currencyDisplay","currencySign","useGrouping","minimumIntegerDigits","minimumFractionDigits","maximumFractionDigits","minimumSignificantDigits","maximumSignificantDigits","compactDisplay","notation","signDisplay","unit","unitDisplay","roundingMode","roundingPriority","roundingIncrement","trailingZeroDisplay"];function hr(...e){const[t,n,s,o]=e,r=Ee();let l=Ee();if(!We(t))throw zt(qt.INVALID_ARGUMENT);const a=t;return J(n)?r.key=n:de(n)&&Object.keys(n).forEach(i=>{Kc.includes(i)?l[i]=n[i]:r[i]=n[i]}),J(s)?r.locale=s:de(s)&&(l=s),de(o)&&(l=o),[r.key||"",a,r,l]}function La(e,t,n){const s=e;for(const o in n){const r=`${t}__${o}`;s.__numberFormatters.has(r)&&s.__numberFormatters.delete(r)}}const Lh=e=>e,Th=e=>"",Ih="text",Ph=e=>e.length===0?"":Yr(e),Ah=ym;function Ta(e,t){return e=Math.abs(e),t===2?e?e>1?1:0:1:e?Math.min(e,2):0}function Dh(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 Nh(e,t){t.count||(t.count=e),t.n||(t.n=e)}function Rh(e={}){const t=e.locale,n=Dh(e),s=we(e.pluralRules)&&J(t)&&Pe(e.pluralRules[t])?e.pluralRules[t]:Ta,o=we(e.pluralRules)&&J(t)&&Pe(e.pluralRules[t])?Ta:void 0,r=_=>_[s(n,_.length,o)],l=e.list||[],a=_=>l[_],i=e.named||Ee();We(e.pluralIndex)&&Nh(n,i);const u=_=>i[_];function f(_,x){const L=Pe(e.messages)?e.messages(_,!!x):we(e.messages)?e.messages[_]:!1;return L||(e.parent?e.parent.message(_):Th)}const d=_=>e.modifiers?e.modifiers[_]:Lh,p=de(e.processor)&&Pe(e.processor.normalize)?e.processor.normalize:Ph,b=de(e.processor)&&Pe(e.processor.interpolate)?e.processor.interpolate:Ah,$=de(e.processor)&&J(e.processor.type)?e.processor.type:Ih,D={list:a,named:u,plural:r,linked:(_,...x)=>{const[L,v]=x;let E="text",R="";x.length===1?we(L)?(R=L.modifier||R,E=L.type||E):J(L)&&(R=L||R):x.length===2&&(J(L)&&(R=L||R),J(v)&&(E=v||E));const w=f(_,!0)(D),C=E==="vnode"&&Re(w)&&R?w[0]:w;return R?d(R)(C,E):C},message:f,type:$,interpolate:b,normalize:p,values:Ke(Ee(),l,i)};return D}const Ia=()=>"",yt=e=>Pe(e);function Pa(e,...t){const{fallbackFormat:n,postTranslation:s,unresolving:o,messageCompiler:r,fallbackLocale:l,messages:a}=e,[i,u]=gr(...t),f=ye(u.missingWarn)?u.missingWarn:e.missingWarn,d=ye(u.fallbackWarn)?u.fallbackWarn:e.fallbackWarn,p=ye(u.escapeParameter)?u.escapeParameter:e.escapeParameter,b=!!u.resolvedMessage,$=J(u.default)||ye(u.default)?ye(u.default)?r?i:()=>i:u.default:n?r?i:()=>i:null,S=n||$!=null&&(J($)||Pe($)),D=Jr(e,u);p&&Oh(u);let[_,x,L]=b?[i,D,a[D]||Ee()]:qc(e,i,D,l,d,f),v=_,E=i;if(!b&&!(J(v)||Rt(v)||yt(v))&&S&&(v=$,E=v),!b&&(!(J(v)||Rt(v)||yt(v))||!J(x)))return o?$o:i;let R=!1;const w=()=>{R=!0},C=yt(v)?v:zc(e,i,x,v,E,w);if(R)return v;const P=Uh(e,x,L,u),K=Rh(P),B=Fh(e,C,K);let F=s?s(B,i):B;if(p&&J(F)&&(F=gm(F)),__INTLIFY_PROD_DEVTOOLS__){const Z={timestamp:Date.now(),key:J(i)?i:yt(v)?v.key:"",locale:x||(yt(v)?v.locale:""),format:J(v)?v:yt(v)?v.source:"",message:F};Z.meta=Ke({},e.__meta,kh()||{}),sh(Z)}return F}function Oh(e){Re(e.list)?e.list=e.list.map(t=>J(t)?da(t):t):we(e.named)&&Object.keys(e.named).forEach(t=>{J(e.named[t])&&(e.named[t]=da(e.named[t]))})}function qc(e,t,n,s,o,r){const{messages:l,onWarn:a,messageResolver:i,localeFallbacker:u}=e,f=u(e,s,n);let d=Ee(),p,b=null;const $="translate";for(let S=0;S<f.length&&(p=f[S],d=l[p]||Ee(),(b=i(d,t))===null&&(b=d[t]),!(J(b)||Rt(b)||yt(b)));S++)if(!Ch(p,f)){const D=Zr(e,t,p,r,$);D!==t&&(b=D)}return[b,p,d]}function zc(e,t,n,s,o,r){const{messageCompiler:l,warnHtmlMessage:a}=e;if(yt(s)){const u=s;return u.locale=u.locale||n,u.key=u.key||t,u}if(l==null){const u=(()=>s);return u.locale=n,u.key=t,u}const i=l(s,Mh(e,n,o,s,a,r));return i.locale=n,i.key=t,i.source=s,i}function Fh(e,t,n){return t(n)}function gr(...e){const[t,n,s]=e,o=Ee();if(!J(t)&&!We(t)&&!yt(t)&&!Rt(t))throw zt(qt.INVALID_ARGUMENT);const r=We(t)?String(t):(yt(t),t);return We(n)?o.plural=n:J(n)?o.default=n:de(n)&&!ko(n)?o.named=n:Re(n)&&(o.list=n),We(s)?o.plural=s:J(s)?o.default=s:de(s)&&Ke(o,s),[r,o]}function Mh(e,t,n,s,o,r){return{locale:t,key:n,warnHtmlMessage:o,onError:l=>{throw r&&r(l),l},onCacheKey:l=>dm(t,n,l)}}function Uh(e,t,n,s){const{modifiers:o,pluralRules:r,messageResolver:l,fallbackLocale:a,fallbackWarn:i,missingWarn:u,fallbackContext:f}=e,p={locale:t,modifiers:o,pluralRules:r,messages:(b,$)=>{let S=l(n,b);if(S==null&&(f||$)){const[,,D]=qc(f||e,b,t,a,i,u);S=l(D,b)}if(J(S)||Rt(S)){let D=!1;const x=zc(e,b,t,S,b,()=>{D=!0});return D?Ia:x}else return yt(S)?S:Ia}};return e.processor&&(p.processor=e.processor),s.list&&(p.list=s.list),s.named&&(p.named=s.named),We(s.plural)&&(p.pluralIndex=s.plural),p}Bm();const Vh="11.1.12";function jh(){typeof __VUE_I18N_FULL_INSTALL__!="boolean"&&(En().__VUE_I18N_FULL_INSTALL__=!0),typeof __VUE_I18N_LEGACY_API__!="boolean"&&(En().__VUE_I18N_LEGACY_API__=!0),typeof __INTLIFY_DROP_MESSAGE_COMPILER__!="boolean"&&(En().__INTLIFY_DROP_MESSAGE_COMPILER__=!1),typeof __INTLIFY_PROD_DEVTOOLS__!="boolean"&&(En().__INTLIFY_PROD_DEVTOOLS__=!1)}const dt={UNEXPECTED_RETURN_TYPE:rh,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 gt(e,...t){return So(e,null,void 0)}const br=hn("__translateVNode"),vr=hn("__datetimeParts"),yr=hn("__numberParts"),Yc=hn("__setPluralRules"),Xc=hn("__injectWithOption"),_r=hn("__dispose");function Ss(e){if(!we(e)||Rt(e))return e;for(const t in e)if(kt(e,t))if(!t.includes("."))we(e[t])&&Ss(e[t]);else{const n=t.split("."),s=n.length-1;let o=e,r=!1;for(let l=0;l<s;l++){if(n[l]==="__proto__")throw new Error(`unsafe key: ${n[l]}`);if(n[l]in o||(o[n[l]]=Ee()),!we(o[n[l]])){r=!0;break}o=o[n[l]]}if(r||(Rt(o)?Mc.includes(n[s])||delete e[t]:(o[n[s]]=e[t],delete e[t])),!Rt(o)){const l=o[n[s]];we(l)&&Ss(l)}}return e}function el(e,t){const{messages:n,__i18n:s,messageResolver:o,flatJson:r}=t,l=de(n)?n:Re(s)?Ee():{[e]:Ee()};if(Re(s)&&s.forEach(a=>{if("locale"in a&&"resource"in a){const{locale:i,resource:u}=a;i?(l[i]=l[i]||Ee(),Ks(u,l[i])):Ks(u,l)}else J(a)&&Ks(JSON.parse(a),l)}),o==null&&r)for(const a in l)kt(l,a)&&Ss(l[a]);return l}function Qc(e){return e.type}function Jc(e,t,n){let s=we(t.messages)?t.messages:Ee();"__i18nGlobal"in n&&(s=el(e.locale.value,{messages:s,__i18n:n.__i18nGlobal}));const o=Object.keys(s);o.length&&o.forEach(r=>{e.mergeLocaleMessage(r,s[r])});{if(we(t.datetimeFormats)){const r=Object.keys(t.datetimeFormats);r.length&&r.forEach(l=>{e.mergeDateTimeFormat(l,t.datetimeFormats[l])})}if(we(t.numberFormats)){const r=Object.keys(t.numberFormats);r.length&&r.forEach(l=>{e.mergeNumberFormat(l,t.numberFormats[l])})}}}function Aa(e){return _e(Is,null,e,0)}const Da="__INTLIFY_META__",Na=()=>[],Wh=()=>!1;let Ra=0;function Oa(e){return((t,n,s,o)=>e(n,s,pn()||void 0,o))}const Hh=()=>{const e=pn();let t=null;return e&&(t=Qc(e)[Da])?{[Da]:t}:null};function tl(e={}){const{__root:t,__injectWithOption:n}=e,s=t===void 0,o=e.flatJson,r=so?X:yi;let l=ye(e.inheritLocale)?e.inheritLocale:!0;const a=r(t&&l?t.locale.value:J(e.locale)?e.locale:ks),i=r(t&&l?t.fallbackLocale.value:J(e.fallbackLocale)||Re(e.fallbackLocale)||de(e.fallbackLocale)||e.fallbackLocale===!1?e.fallbackLocale:a.value),u=r(el(a.value,e)),f=r(de(e.datetimeFormats)?e.datetimeFormats:{[a.value]:{}}),d=r(de(e.numberFormats)?e.numberFormats:{[a.value]:{}});let p=t?t.missingWarn:ye(e.missingWarn)||Kn(e.missingWarn)?e.missingWarn:!0,b=t?t.fallbackWarn:ye(e.fallbackWarn)||Kn(e.fallbackWarn)?e.fallbackWarn:!0,$=t?t.fallbackRoot:ye(e.fallbackRoot)?e.fallbackRoot:!0,S=!!e.fallbackFormat,D=Pe(e.missing)?e.missing:null,_=Pe(e.missing)?Oa(e.missing):null,x=Pe(e.postTranslation)?e.postTranslation:null,L=t?t.warnHtmlMessage:ye(e.warnHtmlMessage)?e.warnHtmlMessage:!0,v=!!e.escapeParameter;const E=t?t.modifiers:de(e.modifiers)?e.modifiers:{};let R=e.pluralRules||t&&t.pluralRules,w;w=(()=>{s&&ka(null);const I={version:Vh,locale:a.value,fallbackLocale:i.value,messages:u.value,modifiers:E,pluralRules:R,missing:_===null?void 0:_,missingWarn:p,fallbackWarn:b,fallbackFormat:S,unresolving:!0,postTranslation:x===null?void 0:x,warnHtmlMessage:L,escapeParameter:v,messageResolver:e.messageResolver,messageCompiler:e.messageCompiler,__meta:{framework:"vue"}};I.datetimeFormats=f.value,I.numberFormats=d.value,I.__datetimeFormatters=de(w)?w.__datetimeFormatters:void 0,I.__numberFormatters=de(w)?w.__numberFormatters:void 0;const O=$h(I);return s&&ka(O),O})(),es(w,a.value,i.value);function P(){return[a.value,i.value,u.value,f.value,d.value]}const K=ue({get:()=>a.value,set:I=>{w.locale=I,a.value=I}}),B=ue({get:()=>i.value,set:I=>{w.fallbackLocale=I,i.value=I,es(w,a.value,I)}}),F=ue(()=>u.value),Z=ue(()=>f.value),Te=ue(()=>d.value);function Fe(){return Pe(x)?x:null}function ge(I){x=I,w.postTranslation=I}function le(){return D}function pe(I){I!==null&&(_=Oa(I)),D=I,w.missing=_}const Me=(I,O,ee,re,fe,He)=>{P();let Ue;try{__INTLIFY_PROD_DEVTOOLS__,s||(w.fallbackContext=t?Sh():void 0),Ue=I(w)}finally{__INTLIFY_PROD_DEVTOOLS__,s||(w.fallbackContext=void 0)}if(ee!=="translate exists"&&We(Ue)&&Ue===$o||ee==="translate exists"&&!Ue){const[bt,xt]=O();return t&&$?re(t):fe(bt)}else{if(He(Ue))return Ue;throw gt(dt.UNEXPECTED_RETURN_TYPE)}};function it(...I){return Me(O=>Reflect.apply(Pa,null,[O,...I]),()=>gr(...I),"translate",O=>Reflect.apply(O.t,O,[...I]),O=>O,O=>J(O))}function Ye(...I){const[O,ee,re]=I;if(re&&!we(re))throw gt(dt.INVALID_ARGUMENT);return it(O,ee,Ke({resolvedMessage:!0},re||{}))}function je(...I){return Me(O=>Reflect.apply($a,null,[O,...I]),()=>mr(...I),"datetime format",O=>Reflect.apply(O.d,O,[...I]),()=>wa,O=>J(O)||Re(O))}function H(...I){return Me(O=>Reflect.apply(Ca,null,[O,...I]),()=>hr(...I),"number format",O=>Reflect.apply(O.n,O,[...I]),()=>wa,O=>J(O)||Re(O))}function oe(I){return I.map(O=>J(O)||We(O)||ye(O)?Aa(String(O)):O)}const $e={normalize:oe,interpolate:I=>I,type:"vnode"};function M(...I){return Me(O=>{let ee;const re=O;try{re.processor=$e,ee=Reflect.apply(Pa,null,[re,...I])}finally{re.processor=null}return ee},()=>gr(...I),"translate",O=>O[br](...I),O=>[Aa(O)],O=>Re(O))}function z(...I){return Me(O=>Reflect.apply(Ca,null,[O,...I]),()=>hr(...I),"number format",O=>O[yr](...I),Na,O=>J(O)||Re(O))}function q(...I){return Me(O=>Reflect.apply($a,null,[O,...I]),()=>mr(...I),"datetime format",O=>O[vr](...I),Na,O=>J(O)||Re(O))}function te(I){R=I,w.pluralRules=R}function ce(I,O){return Me(()=>{if(!I)return!1;const ee=J(O)?O:a.value,re=A(ee),fe=w.messageResolver(re,I);return Rt(fe)||yt(fe)||J(fe)},()=>[I],"translate exists",ee=>Reflect.apply(ee.te,ee,[I,O]),Wh,ee=>ye(ee))}function y(I){let O=null;const ee=Uc(w,i.value,a.value);for(let re=0;re<ee.length;re++){const fe=u.value[ee[re]]||{},He=w.messageResolver(fe,I);if(He!=null){O=He;break}}return O}function k(I){const O=y(I);return O??(t?t.tm(I)||{}:{})}function A(I){return u.value[I]||{}}function U(I,O){if(o){const ee={[I]:O};for(const re in ee)kt(ee,re)&&Ss(ee[re]);O=ee[I]}u.value[I]=O,w.messages=u.value}function j(I,O){u.value[I]=u.value[I]||{};const ee={[I]:O};if(o)for(const re in ee)kt(ee,re)&&Ss(ee[re]);O=ee[I],Ks(O,u.value[I]),w.messages=u.value}function V(I){return f.value[I]||{}}function h(I,O){f.value[I]=O,w.datetimeFormats=f.value,Ea(w,I,O)}function g(I,O){f.value[I]=Ke(f.value[I]||{},O),w.datetimeFormats=f.value,Ea(w,I,O)}function T(I){return d.value[I]||{}}function N(I,O){d.value[I]=O,w.numberFormats=d.value,La(w,I,O)}function Q(I,O){d.value[I]=Ke(d.value[I]||{},O),w.numberFormats=d.value,La(w,I,O)}Ra++,t&&so&&(at(t.locale,I=>{l&&(a.value=I,w.locale=I,es(w,a.value,i.value))}),at(t.fallbackLocale,I=>{l&&(i.value=I,w.fallbackLocale=I,es(w,a.value,i.value))}));const W={id:Ra,locale:K,fallbackLocale:B,get inheritLocale(){return l},set inheritLocale(I){l=I,I&&t&&(a.value=t.locale.value,i.value=t.fallbackLocale.value,es(w,a.value,i.value))},get availableLocales(){return Object.keys(u.value).sort()},messages:F,get modifiers(){return E},get pluralRules(){return R||{}},get isGlobal(){return s},get missingWarn(){return p},set missingWarn(I){p=I,w.missingWarn=p},get fallbackWarn(){return b},set fallbackWarn(I){b=I,w.fallbackWarn=b},get fallbackRoot(){return $},set fallbackRoot(I){$=I},get fallbackFormat(){return S},set fallbackFormat(I){S=I,w.fallbackFormat=S},get warnHtmlMessage(){return L},set warnHtmlMessage(I){L=I,w.warnHtmlMessage=I},get escapeParameter(){return v},set escapeParameter(I){v=I,w.escapeParameter=I},t:it,getLocaleMessage:A,setLocaleMessage:U,mergeLocaleMessage:j,getPostTranslationHandler:Fe,setPostTranslationHandler:ge,getMissingHandler:le,setMissingHandler:pe,[Yc]:te};return W.datetimeFormats=Z,W.numberFormats=Te,W.rt=Ye,W.te=ce,W.tm=k,W.d=je,W.n=H,W.getDateTimeFormat=V,W.setDateTimeFormat=h,W.mergeDateTimeFormat=g,W.getNumberFormat=T,W.setNumberFormat=N,W.mergeNumberFormat=Q,W[Xc]=n,W[br]=M,W[vr]=q,W[yr]=z,W}function Bh(e){const t=J(e.locale)?e.locale:ks,n=J(e.fallbackLocale)||Re(e.fallbackLocale)||de(e.fallbackLocale)||e.fallbackLocale===!1?e.fallbackLocale:t,s=Pe(e.missing)?e.missing:void 0,o=ye(e.silentTranslationWarn)||Kn(e.silentTranslationWarn)?!e.silentTranslationWarn:!0,r=ye(e.silentFallbackWarn)||Kn(e.silentFallbackWarn)?!e.silentFallbackWarn:!0,l=ye(e.fallbackRoot)?e.fallbackRoot:!0,a=!!e.formatFallbackMessages,i=de(e.modifiers)?e.modifiers:{},u=e.pluralizationRules,f=Pe(e.postTranslation)?e.postTranslation:void 0,d=J(e.warnHtmlInMessage)?e.warnHtmlInMessage!=="off":!0,p=!!e.escapeParameterHtml,b=ye(e.sync)?e.sync:!0;let $=e.messages;if(de(e.sharedMessages)){const E=e.sharedMessages;$=Object.keys(E).reduce((w,C)=>{const P=w[C]||(w[C]={});return Ke(P,E[C]),w},$||{})}const{__i18n:S,__root:D,__injectWithOption:_}=e,x=e.datetimeFormats,L=e.numberFormats,v=e.flatJson;return{locale:t,fallbackLocale:n,messages:$,flatJson:v,datetimeFormats:x,numberFormats:L,missing:s,missingWarn:o,fallbackWarn:r,fallbackRoot:l,fallbackFormat:a,modifiers:i,pluralRules:u,postTranslation:f,warnHtmlMessage:d,escapeParameter:p,messageResolver:e.messageResolver,inheritLocale:b,__i18n:S,__root:D,__injectWithOption:_}}function wr(e={}){const t=tl(Bh(e)),{__extender:n}=e,s={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 ye(t.missingWarn)?!t.missingWarn:t.missingWarn},set silentTranslationWarn(o){t.missingWarn=ye(o)?!o:o},get silentFallbackWarn(){return ye(t.fallbackWarn)?!t.fallbackWarn:t.fallbackWarn},set silentFallbackWarn(o){t.fallbackWarn=ye(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,r){return t.te(o,r)},tm(o){return t.tm(o)},getLocaleMessage(o){return t.getLocaleMessage(o)},setLocaleMessage(o,r){t.setLocaleMessage(o,r)},mergeLocaleMessage(o,r){t.mergeLocaleMessage(o,r)},d(...o){return Reflect.apply(t.d,t,[...o])},getDateTimeFormat(o){return t.getDateTimeFormat(o)},setDateTimeFormat(o,r){t.setDateTimeFormat(o,r)},mergeDateTimeFormat(o,r){t.mergeDateTimeFormat(o,r)},n(...o){return Reflect.apply(t.n,t,[...o])},getNumberFormat(o){return t.getNumberFormat(o)},setNumberFormat(o,r){t.setNumberFormat(o,r)},mergeNumberFormat(o,r){t.mergeNumberFormat(o,r)}};return s.__extender=n,s}function Gh(e,t,n){return{beforeCreate(){const s=pn();if(!s)throw gt(dt.UNEXPECTED_ERROR);const o=this.$options;if(o.i18n){const r=o.i18n;if(o.__i18n&&(r.__i18n=o.__i18n),r.__root=t,this===this.$root)this.$i18n=Fa(e,r);else{r.__injectWithOption=!0,r.__extender=n.__vueI18nExtend,this.$i18n=wr(r);const l=this.$i18n;l.__extender&&(l.__disposer=l.__extender(this.$i18n))}}else if(o.__i18n)if(this===this.$root)this.$i18n=Fa(e,o);else{this.$i18n=wr({__i18n:o.__i18n,__injectWithOption:!0,__extender:n.__vueI18nExtend,__root:t});const r=this.$i18n;r.__extender&&(r.__disposer=r.__extender(this.$i18n))}else this.$i18n=e;o.__i18nGlobal&&Jc(t,o,o),this.$t=(...r)=>this.$i18n.t(...r),this.$rt=(...r)=>this.$i18n.rt(...r),this.$te=(r,l)=>this.$i18n.te(r,l),this.$d=(...r)=>this.$i18n.d(...r),this.$n=(...r)=>this.$i18n.n(...r),this.$tm=r=>this.$i18n.tm(r),n.__setInstance(s,this.$i18n)},mounted(){},unmounted(){const s=pn();if(!s)throw gt(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),n.__deleteInstance(s),delete this.$i18n}}}function Fa(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[Yc](t.pluralizationRules||e.pluralizationRules);const n=el(e.locale,{messages:t.messages,__i18n:t.__i18n});return Object.keys(n).forEach(s=>e.mergeLocaleMessage(s,n[s])),t.datetimeFormats&&Object.keys(t.datetimeFormats).forEach(s=>e.mergeDateTimeFormat(s,t.datetimeFormats[s])),t.numberFormats&&Object.keys(t.numberFormats).forEach(s=>e.mergeNumberFormat(s,t.numberFormats[s])),e}const nl={tag:{type:[String,Object]},locale:{type:String},scope:{type:String,validator:e=>e==="parent"||e==="global",default:"parent"},i18n:{type:Object}};function Kh({slots:e},t){return t.length===1&&t[0]==="default"?(e.default?e.default():[]).reduce((s,o)=>[...s,...o.type===Ge?o.children:[o]],[]):t.reduce((n,s)=>{const o=e[s];return o&&(n[s]=o()),n},Ee())}function Zc(){return Ge}const qh=Ae({name:"i18n-t",props:Ke({keypath:{type:String,required:!0},plural:{type:[Number,String],validator:e=>We(e)||!isNaN(e)}},nl),setup(e,t){const{slots:n,attrs:s}=t,o=e.i18n||qe({useScope:e.scope,__useComponent:!0});return()=>{const r=Object.keys(n).filter(d=>d[0]!=="_"),l=Ee();e.locale&&(l.locale=e.locale),e.plural!==void 0&&(l.plural=J(e.plural)?+e.plural:e.plural);const a=Kh(t,r),i=o[br](e.keypath,a,l),u=Ke(Ee(),s),f=J(e.tag)||we(e.tag)?e.tag:Zc();return As(f,u,i)}}}),Ma=qh;function zh(e){return Re(e)&&!J(e[0])}function eu(e,t,n,s){const{slots:o,attrs:r}=t;return()=>{const l={part:!0};let a=Ee();e.locale&&(l.locale=e.locale),J(e.format)?l.key=e.format:we(e.format)&&(J(e.format.key)&&(l.key=e.format.key),a=Object.keys(e.format).reduce((p,b)=>n.includes(b)?Ke(Ee(),p,{[b]:e.format[b]}):p,Ee()));const i=s(e.value,l,a);let u=[l.key];Re(i)?u=i.map((p,b)=>{const $=o[p.type],S=$?$({[p.type]:p.value,index:b,parts:i}):[p.value];return zh(S)&&(S[0].key=`${p.type}-${b}`),S}):J(i)&&(u=[i]);const f=Ke(Ee(),r),d=J(e.tag)||we(e.tag)?e.tag:Zc();return As(d,f,u)}}const Yh=Ae({name:"i18n-n",props:Ke({value:{type:Number,required:!0},format:{type:[String,Object]}},nl),setup(e,t){const n=e.i18n||qe({useScope:e.scope,__useComponent:!0});return eu(e,t,Kc,(...s)=>n[yr](...s))}}),Ua=Yh;function Xh(e,t){const n=e;if(e.mode==="composition")return n.__getInstance(t)||e.global;{const s=n.__getInstance(t);return s!=null?s.__composer:e.global.__composer}}function Qh(e){const t=l=>{const{instance:a,value:i}=l;if(!a||!a.$)throw gt(dt.UNEXPECTED_ERROR);const u=Xh(e,a.$),f=Va(i);return[Reflect.apply(u.t,u,[...ja(f)]),u]};return{created:(l,a)=>{const[i,u]=t(a);so&&e.global===u&&(l.__i18nWatcher=at(u.locale,()=>{a.instance&&a.instance.$forceUpdate()})),l.__composer=u,l.textContent=i},unmounted:l=>{so&&l.__i18nWatcher&&(l.__i18nWatcher(),l.__i18nWatcher=void 0,delete l.__i18nWatcher),l.__composer&&(l.__composer=void 0,delete l.__composer)},beforeUpdate:(l,{value:a})=>{if(l.__composer){const i=l.__composer,u=Va(a);l.textContent=Reflect.apply(i.t,i,[...ja(u)])}},getSSRProps:l=>{const[a]=t(l);return{textContent:a}}}}function Va(e){if(J(e))return{path:e};if(de(e)){if(!("path"in e))throw gt(dt.REQUIRED_VALUE,"path");return e}else throw gt(dt.INVALID_VALUE)}function ja(e){const{path:t,locale:n,args:s,choice:o,plural:r}=e,l={},a=s||{};return J(n)&&(l.locale=n),We(o)&&(l.plural=o),We(r)&&(l.plural=r),[t,a,l]}function Jh(e,t,...n){const s=de(n[0])?n[0]:{};(ye(s.globalInstall)?s.globalInstall:!0)&&([Ma.name,"I18nT"].forEach(r=>e.component(r,Ma)),[Ua.name,"I18nN"].forEach(r=>e.component(r,Ua)),[Ha.name,"I18nD"].forEach(r=>e.component(r,Ha))),e.directive("t",Qh(t))}const Zh=hn("global-vue-i18n");function eg(e={}){const t=__VUE_I18N_LEGACY_API__&&ye(e.legacy)?e.legacy:__VUE_I18N_LEGACY_API__,n=ye(e.globalInjection)?e.globalInjection:!0,s=new Map,[o,r]=tg(e,t),l=hn("");function a(d){return s.get(d)||null}function i(d,p){s.set(d,p)}function u(d){s.delete(d)}const f={get mode(){return __VUE_I18N_LEGACY_API__&&t?"legacy":"composition"},async install(d,...p){if(d.__VUE_I18N_SYMBOL__=l,d.provide(d.__VUE_I18N_SYMBOL__,f),de(p[0])){const S=p[0];f.__composerExtend=S.__composerExtend,f.__vueI18nExtend=S.__vueI18nExtend}let b=null;!t&&n&&(b=cg(d,f.global)),__VUE_I18N_FULL_INSTALL__&&Jh(d,f,...p),__VUE_I18N_LEGACY_API__&&t&&d.mixin(Gh(r,r.__composer,f));const $=d.unmount;d.unmount=()=>{b&&b(),f.dispose(),$()}},get global(){return r},dispose(){o.stop()},__instances:s,__getInstance:a,__setInstance:i,__deleteInstance:u};return f}function qe(e={}){const t=pn();if(t==null)throw gt(dt.MUST_BE_CALL_SETUP_TOP);if(!t.isCE&&t.appContext.app!=null&&!t.appContext.app.__VUE_I18N_SYMBOL__)throw gt(dt.NOT_INSTALLED);const n=ng(t),s=og(n),o=Qc(t),r=sg(e,o);if(r==="global")return Jc(s,e,o),s;if(r==="parent"){let i=rg(n,t,e.__useComponent);return i==null&&(i=s),i}const l=n;let a=l.__getInstance(t);if(a==null){const i=Ke({},e);"__i18n"in o&&(i.__i18n=o.__i18n),s&&(i.__root=s),a=tl(i),l.__composerExtend&&(a[_r]=l.__composerExtend(a)),ag(l,t,a),l.__setInstance(t,a)}return a}function tg(e,t){const n=Tr(),s=__VUE_I18N_LEGACY_API__&&t?n.run(()=>wr(e)):n.run(()=>tl(e));if(s==null)throw gt(dt.UNEXPECTED_ERROR);return[n,s]}function ng(e){const t=lt(e.isCE?Zh:e.appContext.app.__VUE_I18N_SYMBOL__);if(!t)throw gt(e.isCE?dt.NOT_INSTALLED_WITH_PROVIDE:dt.UNEXPECTED_ERROR);return t}function sg(e,t){return ko(e)?"__i18n"in t?"local":"global":e.useScope?e.useScope:"local"}function og(e){return e.mode==="composition"?e.global:e.global.__composer}function rg(e,t,n=!1){let s=null;const o=t.root;let r=lg(t,n);for(;r!=null;){const l=e;if(e.mode==="composition")s=l.__getInstance(r);else if(__VUE_I18N_LEGACY_API__){const a=l.__getInstance(r);a!=null&&(s=a.__composer,n&&s&&!s[Xc]&&(s=null))}if(s!=null||o===r)break;r=r.parent}return s}function lg(e,t=!1){return e==null?null:t&&e.vnode.ctx||e.parent}function ag(e,t,n){Mt(()=>{},t),Tn(()=>{const s=n;e.__deleteInstance(t);const o=s[_r];o&&(o(),delete s[_r])},t)}const ig=["locale","fallbackLocale","availableLocales"],Wa=["t","rt","d","n","tm","te"];function cg(e,t){const n=Object.create(null);return ig.forEach(o=>{const r=Object.getOwnPropertyDescriptor(t,o);if(!r)throw gt(dt.UNEXPECTED_ERROR);const l=Oe(r.value)?{get(){return r.value.value},set(a){r.value.value=a}}:{get(){return r.get&&r.get()}};Object.defineProperty(n,o,l)}),e.config.globalProperties.$i18n=n,Wa.forEach(o=>{const r=Object.getOwnPropertyDescriptor(t,o);if(!r||!r.value)throw gt(dt.UNEXPECTED_ERROR);Object.defineProperty(e.config.globalProperties,`$${o}`,r)}),()=>{delete e.config.globalProperties.$i18n,Wa.forEach(o=>{delete e.config.globalProperties[`$${o}`]})}}const ug=Ae({name:"i18n-d",props:Ke({value:{type:[Number,Date],required:!0},format:{type:[String,Object]}},nl),setup(e,t){const n=e.i18n||qe({useScope:e.scope,__useComponent:!0});return eu(e,t,Gc,(...s)=>n[vr](...s))}}),Ha=ug;jh();yh(eh);_h(gh);wh(Uc);if(__INTLIFY_PROD_DEVTOOLS__){const e=En();e.__INTLIFY__=!0,th(e.__INTLIFY_DEVTOOLS_GLOBAL_HOOK__)}const xr="m3u8-dl-version-check-cache",fg=360*60*1e3;function dg(){try{const e=localStorage.getItem(xr);if(!e)return null;const t=JSON.parse(e);return Date.now()-t.timestamp>fg?(localStorage.removeItem(xr),null):t}catch(e){return console.error("读取版本缓存失败:",e),null}}function pg(e){try{const t={version:e,timestamp:Date.now()};localStorage.setItem(xr,JSON.stringify(t))}catch(t){console.error("保存版本缓存失败:",t)}}function tu(){const{t:e,locale:t}=qe(),n=xo();async function s(o=!0,r=!1){try{let l;if(r||(l=dg()?.version),!l){if(window.electron){const i=await(await fetch("https://api.github.com/repos/lzwme/m3u8-dl/releases/latest")).json();i.tag_name&&(l=i.tag_name.replace(/^v/,""))}else{const i=await(await fetch(`https://registry.${t.value==="zh-CN"?"npmmirror":"npmjs"}.com/@lzwme/m3u8-dl/latest`)).json();i.version&&(l=i.version)}l&&pg(l)}if(l){if(!(l!==n.serverInfo.version))return o&&he({text:e("about.latestVersion",{version:l}),type:"success"}),!1;if(n.updateServerInfo({newVersion:l}),window.electron)window.electron.ipc.send("checkForUpdate");else if(o){const i=t.value==="zh-CN"?"https://m3u8-player.lzw.me/download.html":"https://github.com/lzwme/m3u8-dl/releases";he({text:e("about.newVersionAvailable",{version:l,url:i}),type:"success",duration:1e4})}return!0}return!1}catch(l){return console.error("检查新版本失败:",l),o&&he({text:e("about.versionCheckFailed",{error:l instanceof Error?l.message:e("error.unknownError")}),type:"error"}),!1}}return{checkNewVersion:s}}const mg={key:0,class:"fixed inset-0 modal-overlay flex items-center justify-center z-[9999] p-4"},hg={class:"bg-white rounded-lg shadow-xl max-w-md w-full"},gg={class:"p-6"},bg={class:"flex items-center mb-4"},vg={class:"text-xl font-semibold text-gray-900"},yg={class:"text-sm text-gray-500 mt-1"},_g={class:"mb-6"},wg={class:"block text-sm font-medium text-gray-700 mb-2"},xg=["placeholder"],kg={key:0,class:"mt-2 text-sm text-red-600"},Sg={class:"flex justify-end"},$g=["disabled"],Eg=Ae({__name:"PasswordDialog",props:{visible:{type:Boolean}},emits:["confirm"],setup(e,{expose:t,emit:n}){const{t:s}=qe(),o=e,r=n,l=X(""),a=X(""),i=X(!1),u=X(null);at(()=>o.visible,d=>{d&&(l.value="",a.value="",i.value=!1,Ts(()=>{u.value?.focus()}))});function f(){i.value||!l.value.trim()||(i.value=!0,a.value="",r("confirm",l.value.trim()))}return t({setError:d=>{a.value=d,i.value=!1},reset:()=>{l.value="",a.value="",i.value=!1}}),(d,p)=>e.visible?(G(),Y("div",mg,[c("div",hg,[c("div",gg,[c("div",bg,[p[1]||(p[1]=c("div",{class:"flex-shrink-0 w-10 h-10 bg-red-100 rounded-full flex items-center justify-center mr-3"},[c("i",{class:"fas fa-lock text-red-600"})],-1)),c("div",null,[c("h2",vg,m(d.$t("config.passwordRequired")),1),c("p",yg,m(d.$t("config.passwordRequiredHint")),1)])]),c("div",_g,[c("label",wg,m(d.$t("config.token")),1),De(c("input",{ref_key:"passwordInput",ref:u,"onUpdate:modelValue":p[0]||(p[0]=b=>l.value=b),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:d.$t("config.tokenPlaceholder"),onKeyup:Wr(f,["enter"])},null,40,xg),[[nt,l.value]]),a.value?(G(),Y("p",kg,m(a.value),1)):ne("",!0)]),c("div",Sg,[c("button",{onClick:f,disabled:i.value||!l.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(i.value?d.$t("config.verifying"):d.$t("common.confirm")),9,$g)])])])])):ne("",!0)}});function Cg(e){if(!e)return"";let t=e.trim();const n=t.match(/《([^》]+)》/);n&&(t=n[1]);const s=t.match(/【([^】]+)】/);if(s&&(t=s[1]),t.includes(" - "))t=t.split(" - ")[0].trim();else if(t.includes("-")){const o=t.split("-");o.length===2&&!/^\d{4}-\d{2}-\d{2}/.test(t)&&(t=o[0].trim())}return 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 Ba(e){const t=String(e||"").split(`
|
|
4
|
+
`).map(o=>{const r=o.split(/[|$]+/).map(i=>i.trim());let l=r[0],a=r[1]||"";return a.startsWith("http")&&([a,l]=[l,a]),{url:l,name:a}}).filter(o=>o.url.startsWith("http")),n=new Map;t.forEach(o=>{n.set(o.name,(n.get(o.name)||0)+1)});const s=new Map;return t.map(o=>{if((n.get(o.name)||0)>1){const l=(s.get(o.name)||0)+1;if(s.set(o.name,l),l>1)return{...o,name:`${o.name} (${l})`}}return o})}const Lg={class:"bg-white rounded-lg p-6 max-w-4xl w-full max-h-[98vh] overflow-y-auto"},Tg={class:"flex justify-between items-center mb-4"},Ig={class:"text-xl text-center w-full font-semibold"},Pg={class:"text-left"},Ag={class:"flex flex-row gap-4"},Dg=["placeholder"],Ng={class:"flex flex-row gap-1"},Rg=["disabled"],Og={class:"mt-4"},Fg=["placeholder"],Mg={class:"mt-1 text-sm text-gray-500"},Ug={class:"mt-4"},Vg={class:"block text-sm font-bold text-gray-700 mb-1"},jg={key:0,class:"text-gray-300 font-normal"},Wg=["placeholder"],Hg={class:"mt-4"},Bg={class:"flex flex-row gap-2 items-center"},Gg={class:"block text-sm font-bold text-gray-700 mb-1"},Kg=["placeholder"],qg={class:"ml-2 mt-1 text-sm text-gray-500"},zg={class:"mt-4 flex flex-row gap-2 items-center"},Yg={class:"block text-sm font-bold text-gray-700 mb-1"},Xg=["placeholder"],Qg={class:"mt-4"},Jg={class:"block text-sm font-bold text-gray-700 mb-1"},Zg=["placeholder"],eb={class:"mt-4"},tb={class:"block text-sm font-bold text-gray-700 mb-1"},nb=["placeholder"],sb={class:"flex justify-end space-x-4 mt-6"},ob=["disabled"],rb=Ae({__name:"NewDownloadDialog",props:{visible:{type:Boolean},initialData:{}},emits:["close"],setup(e,{emit:t}){const{t:n}=qe(),s=e,o=t,r=Ds(),l=Pn(),a=X(""),i=X(""),u=X(""),f=X(r.config.saveDir||""),d=X(""),p=X(""),b=X(""),$=X(!1),S=X(!1),D=ue(()=>{const v=i.value.split(`
|
|
5
|
+
`).map(R=>R.trim()).filter(R=>R.length>0);return new Set(v).size});at(()=>s.visible,v=>{if(v){if(f.value=r.config.saveDir||"",s.initialData&&s.initialData.url){const E=s.initialData.url;if(E.includes("|")){const R=Ba(E).map(({url:w,name:C})=>C?`${w} | ${Cg(C)}`:w);i.value=R.join(`
|
|
6
|
+
`)}else i.value=E}}else a.value="",i.value="",u.value="",d.value="",p.value="",b.value=""});async function _(){const v=a.value.trim();if(!/^https?:/.test(v)){he({text:n("toast.enterValidUrl"),type:"error"});return}$.value=!0;try{const E=await am(v,p.value.trim(),b.value.trim()||void 0);E.code===0&&Array.isArray(E.data)&&E.data.length>0?(i.value=E.data.map(R=>R.join(" | ")).join(`
|
|
7
|
+
`),he({text:E.message||n("toast.extractSuccess",{count:E.data.length}),type:"success"})):he({text:E.message||n("toast.extractFailed"),type:"error"})}catch(E){he({text:n("toast.extractError",{error:E instanceof Error?E.message:n("error.unknownError")}),type:"error"})}finally{$.value=!1}}function x(){o("close")}async function L(){const v=i.value.trim();if(!v){he({text:n("newDownload.enterM3u8Link"),type:"error"});return}const E=Ba(v);if(!E.length){he({text:n("newDownload.enterValidM3u8Link"),type:"error"});return}let R=f.value;E.length>1&&u.value&&!R.includes(u.value)&&(R||(R=r.config.saveDir),R=R.replace(/\/?$/,"")+"/"+u.value);const w=E.map((C,P)=>({url:C.url,filename:C.name||(u.value?`${u.value}${E.length>1?n("taskItem.episode",{index:P+1}):""}`:""),saveDir:R,headers:p.value.trim()||void 0,ignoreSegments:d.value.trim()||void 0}));S.value=!0;try{w.forEach(P=>{/\.html?$/.test(P.url)||l.updateTask(P.url,{status:"resume",progress:0,speed:0,remainingTime:0,size:0})});const C=await om(w);C.code?he({text:C.message||n("toast.downloadFailed"),type:"error"}):(he({text:C.message||n("toast.downloadStarted"),type:"success"}),x())}catch(C){console.error("批量下载失败:",C),he({text:`${n("toast.downloadFailed")}: ${C instanceof Error?C.message:n("error.unknownError")}`,type:"error"})}finally{S.value=!1}}return(v,E)=>e.visible?(G(),Y("div",{key:0,class:"fixed inset-0 modal-overlay flex items-center justify-center z-50",onClick:Xt(x,["self"])},[c("div",Lg,[c("div",Tg,[c("h2",Ig,m(v.$t("newDownload.title")),1),c("button",{onClick:x,class:"text-gray-500 hover:text-gray-700"},[...E[7]||(E[7]=[c("i",{class:"fas fa-times"},null,-1)])])]),c("div",Pg,[c("div",Ag,[De(c("input",{"onUpdate:modelValue":E[0]||(E[0]=R=>a.value=R),type:"text",placeholder:v.$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,Dg),[[nt,a.value]]),c("div",Ng,[c("button",{onClick:_,disabled:$.value,class:"px-2 py-1 bg-blue-600 text-white rounded hover:bg-blue-700 focus:outline-none disabled:opacity-50"},m($.value?v.$t("newDownload.extracting"):v.$t("newDownload.extract")),9,Rg)])]),c("div",Og,[De(c("input",{"onUpdate:modelValue":E[1]||(E[1]=R=>b.value=R),class:"w-full p-2 border rounded-lg focus:ring-blue-500",placeholder:v.$t("newDownload.subUrlRegex")},null,8,Fg),[[nt,b.value]]),c("p",Mg,m(v.$t("newDownload.subUrlRegexHint")),1)]),c("div",Ug,[c("label",Vg,[ae(m(v.$t("newDownload.videoLinks"))+" ",1),D.value>2?(G(),Y("span",jg,"("+m(D.value)+")",1)):ne("",!0)]),De(c("textarea",{"onUpdate:modelValue":E[2]||(E[2]=R=>i.value=R),class:"w-full p-2 border rounded-lg focus:ring-blue-500",rows:"3",placeholder:v.$t("newDownload.videoLinksPlaceholder")},null,8,Wg),[[nt,i.value]])]),c("div",Hg,[c("div",Bg,[c("label",Gg,m(v.$t("newDownload.videoName")),1),De(c("input",{"onUpdate:modelValue":E[3]||(E[3]=R=>u.value=R),class:"flex-1 p-2 border rounded-lg focus:border-blue-500",placeholder:v.$t("newDownload.videoNamePlaceholder")},null,8,Kg),[[nt,u.value]])]),c("p",qg,m(v.$t("newDownload.videoNameHint")),1)]),c("div",zg,[c("label",Yg,m(v.$t("newDownload.saveDir")),1),De(c("input",{"onUpdate:modelValue":E[4]||(E[4]=R=>f.value=R),class:"flex-1 p-2 border rounded-lg focus:ring-blue-500",placeholder:v.$t("newDownload.saveDirPlaceholder")},null,8,Xg),[[nt,f.value]])]),c("div",Qg,[c("label",Jg,m(v.$t("newDownload.ignoreSegments")),1),De(c("input",{"onUpdate:modelValue":E[5]||(E[5]=R=>d.value=R),class:"w-full p-2 border rounded-lg focus:ring-blue-500",placeholder:v.$t("newDownload.ignoreSegmentsPlaceholder")},null,8,Zg),[[nt,d.value]])]),c("div",eb,[c("label",tb,m(v.$t("newDownload.headers")),1),De(c("textarea",{"onUpdate:modelValue":E[6]||(E[6]=R=>p.value=R),class:"w-full p-2 border rounded-lg focus:ring-blue-500",rows:"3",placeholder:v.$t("newDownload.headersPlaceholder")},null,8,nb),[[nt,p.value]])])]),c("div",sb,[c("button",{onClick:x,class:"px-6 py-2 text-gray-600 hover:bg-gray-100 rounded-lg border"},m(v.$t("common.cancel")),1),c("button",{onClick:L,disabled:S.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(S.value?v.$t("newDownload.submitting"):v.$t("newDownload.startDownload")),9,ob)])])])):ne("",!0)}}),lb={id:"app"},ab=Ae({__name:"App",setup(e){const t=$c(),n=Sc(),s=Ds(),{checkNewVersion:o}=tu();let r=null;const l=X(!1),a=X(null),i=X(!1),u=X(void 0);function f(D){u.value=D,i.value=!0}as("showGlobalNewDownload",f);function d(){i.value=!1,u.value=void 0,(t.query.action==="new"||t.query.url)&&n.replace({query:{}})}function p(){if(t.query.action==="new"&&t.query.url){const D=t.query.url;f({url:decodeURIComponent(D)})}}at(()=>t.query,()=>{p()},{immediate:!0});function b(){l.value=!0}Mt(async()=>{const D=localStorage.getItem("token")||"";D&&(s.token=D);try{await s.loadConfig()}catch(v){console.log("[App] 配置加载失败,使用本地 token:",v)}const _=s.token||localStorage.getItem("token")||"";_&&!s.token&&(s.token=_);const{connect:x,disconnect:L}=qr(_,b);r=L,x(),setTimeout(()=>o(!1),5e3)}),Tn(()=>{r&&r()});function $(){}async function S(D){if(!D.trim()){a.value?.setError("请输入访问密码");return}try{let _=D.trim();typeof window<"u"&&window.md5?_=window.md5(_).slice(0,8):_=btoa(_).replace(/[^a-zA-Z0-9]/g,"").slice(0,8),s.token=_,localStorage.setItem("token",_),um(_,!0,x=>{x?(l.value=!1,a.value?.reset()):a.value?.setError("密码错误,请重新输入")}),a.value?.reset()}catch(_){a.value?.setError("密码处理失败,请重试"),console.error("密码处理失败:",_)}}return(D,_)=>{const x=mf("router-view");return G(),Y("div",lb,[_e(x),_e(Eg,{visible:l.value,onClose:$,onConfirm:S,ref_key:"passwordDialogRef",ref:a},null,8,["visible"]),_e(rb,{visible:i.value,"initial-data":u.value,onClose:d},null,8,["visible","initial-data"])])}}}),ib={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:
|
|
8
|
+
Referer: https://example.com
|
|
9
|
+
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.
|
|
10
|
+
|
|
11
|
+
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"},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",play:"Play",delete:"Delete",noCompletedTasks:"No completed tasks",selected:"Selected {count} items",deleteSelected:"Delete Selected"},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"}},cb={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。例如:
|
|
12
|
+
Referer: https://example.com
|
|
13
|
+
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:`该任务状态为异常,可能无法正常播放。
|
|
14
|
+
|
|
15
|
+
确定要继续播放吗?`,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:"复制失败"},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:"查看详情",play:"播放",delete:"删除",noCompletedTasks:"暂无已完成的任务",selected:"已选择 {count} 项",deleteSelected:"删除选中"},deleteConfirm:{title:"确认删除",message:"确定要删除选中的 {count} 个任务吗?",deleteCache:"同时删除已下载的缓存文件",deleteVideo:"同时删除已下载的视频文件",cancel:"取消",confirm:"确认删除"}},kr={"zh-CN":cb,en:ib};function ub(){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 kr)return e}const n=(navigator.language||navigator.userLanguage||"en").toLowerCase();if(n.startsWith("zh"))return"zh-CN";const s=n.split("-")[0];return s in kr?s:"en"}const fb=eg({legacy:!1,locale:ub(),fallbackLocale:"en",messages:kr}),db="/logo.png",pb={class:"language-switcher"},mb=["value","title"],hb=Ae({__name:"LanguageSwitcher",setup(e){const{locale:t}=qe(),n=ue({get:()=>t.value,set:o=>{t.value=o,localStorage.setItem("language",o)}});function s(o){const r=o.target;n.value=r.value}return(o,r)=>(G(),Y("div",pb,[c("select",{value:n.value,onChange:s,class:"px-3 py-2 border rounded-lg focus:ring-blue-500 focus:border-blue-500 bg-white",title:o.$t("common.language")},[...r[0]||(r[0]=[c("option",{value:"zh-CN"},"中文",-1),c("option",{value:"en"},"English",-1)])],40,mb)]))}}),nu={isElectron:typeof window<"u"&&!!window.electron},gb={class:"app-layout"},bb={class:"mb-8"},vb={class:"flex items-center mb-4"},yb=["alt"],_b={class:"text-xl font-bold text-gray-800"},wb={class:"space-y-2"},xb={class:"mt-4 pt-4 border-t"},kb=Ae({__name:"Layout",emits:["new-download"],setup(e,{emit:t}){const n=Sc(),s=$c(),o=xo(),r=X(window.innerWidth<=768),l=X("download"),a=ue(()=>nu.isElectron),i=t,u=lt("showGlobalNewDownload");function f(){r.value=!r.value}function d(S){if(console.log("[Layout] switchSection 被调用,section:",S,"当前路径:",s.path),S==="ariang"){p();return}const D=`/page/${S}`;if(console.log("[Layout] 准备导航到:",D),s.path===D){console.log("[Layout] 已在目标路径,跳过导航"),l.value=S;return}l.value=S,n.push(D).then(()=>{console.log("[Layout] 导航成功,当前路径:",s.path,"当前名称:",s.name),s.name&&(l.value=s.name)}).catch(_=>{_.name!=="NavigationDuplicated"?console.error("[Layout] 路由导航失败:",_):console.log("[Layout] 导航重复,已忽略")}),window.innerWidth<=768&&(r.value=!0)}function p(){const D=o.serverInfo.ariang?"./ariang/":"http://lzw.me/x/ariang/";window.open(D)}function b(){u?u():i("new-download")}function $(){window.innerWidth>768?r.value=!1:r.value=!0}return at(()=>s.name,S=>{S&&(l.value=S)},{immediate:!0}),at(()=>s.path,S=>{S.startsWith("/page/download")?l.value="download":S.startsWith("/page/web-browser")?l.value="web-browser":S.startsWith("/page/completed")?l.value="completed":S.startsWith("/page/config")?l.value="config":S.startsWith("/page/about")&&(l.value="about")},{immediate:!0}),Mt(()=>{window.addEventListener("resize",$),$()}),Tn(()=>{window.removeEventListener("resize",$)}),(S,D)=>(G(),Y("div",gb,[c("button",{class:"menu-toggle",onClick:f},[c("i",{class:Xe(["fas",r.value?"fa-bars":"fa-times"])},null,2)]),c("div",{class:Xe(["sidebar p-4",{show:!r.value}])},[c("div",bb,[c("div",vb,[c("img",{src:db,alt:S.$t("layout.title"),class:"w-8 h-8 mr-2"},null,8,yb),c("h1",_b,m(S.$t("layout.title")),1)]),c("button",{onClick:b,class:"w-full bg-blue-500 hover:bg-blue-600 text-white p-2 rounded-lg flex items-center justify-center transition-colors"},[D[5]||(D[5]=c("i",{class:"fas fa-plus mr-2"},null,-1)),ae(m(S.$t("layout.newDownload")),1)])]),c("nav",wb,[c("button",{onClick:D[0]||(D[0]=_=>d("download")),class:Xe(["nav-item w-full p-3 rounded-lg flex items-center",{active:l.value==="download"}])},[D[6]||(D[6]=c("i",{class:"fas fa-download mr-3"},null,-1)),ae(m(S.$t("layout.downloadManagement")),1)],2),a.value?(G(),Y("button",{key:0,onClick:D[1]||(D[1]=_=>d("web-browser")),class:Xe(["nav-item w-full p-3 rounded-lg flex items-center",{active:l.value==="web-browser"}])},[D[7]||(D[7]=c("i",{class:"fas fa-globe mr-3"},null,-1)),ae(m(S.$t("layout.webBrowser")),1)],2)):ne("",!0),c("button",{onClick:D[2]||(D[2]=_=>d("completed")),class:Xe(["nav-item w-full p-3 rounded-lg flex items-center",{active:l.value==="completed"}])},[D[8]||(D[8]=c("i",{class:"fas fa-check-circle mr-3"},null,-1)),ae(m(S.$t("layout.completed")),1)],2),c("button",{onClick:D[3]||(D[3]=_=>d("config")),class:Xe(["nav-item w-full p-3 rounded-lg flex items-center",{active:l.value==="config"}])},[D[9]||(D[9]=c("i",{class:"fas fa-cog mr-3"},null,-1)),ae(m(S.$t("layout.config")),1)],2),c("button",{onClick:D[4]||(D[4]=_=>d("about")),class:Xe(["nav-item w-full p-3 rounded-lg flex items-center",{active:l.value==="about"}])},[D[10]||(D[10]=c("i",{class:"fas fa-info-circle mr-3"},null,-1)),ae(m(S.$t("layout.about")),1)],2),c("button",{onClick:p,class:"nav-item w-full p-3 rounded-lg flex items-center"},[D[11]||(D[11]=c("i",{class:"fas fa-link mr-3"},null,-1)),ae(m(S.$t("layout.ariang")),1)])]),c("div",xb,[_e(hb)])],2),c("div",{class:Xe(["main-content",{"sidebar-collapsed":r.value}])},[Oi(S.$slots,"default",{},void 0,!0)],2)]))}}),Eo=(e,t)=>{const n=e.__vccOpts||e;for(const[s,o]of t)n[s]=o;return n},Ns=Eo(kb,[["__scopeId","data-v-c730956f"]]);function zn(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 Sb(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 oo(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 $b={class:"p-1 md:p-2"},Eb={class:"bg-white rounded-lg shadow p-6"},Cb={class:"text-xl font-semibold mb-6 text-center"},Lb={class:"space-y-6"},Tb={class:"text-lg font-medium text-green-700 mb-2"},Ib={class:"bg-gray-50 p-4 rounded-lg"},Pb={class:"text-gray-600 mb-2"},Ab={class:"text-gray-600 mb-2"},Db={class:"text-gray-600 mb-2"},Nb={class:"text-gray-600"},Rb={class:"text-gray-600"},Ob={href:"https://github.com/lzwme/m3u8-dl/release",target:"_blank",rel:"noopener",class:"text-blue-500 hover:text-blue-600"},Fb={class:"text-gray-600"},Mb={key:1,class:"text-red-600 ml-2"},Ub={key:2,class:"text-green-600"},Vb={class:"text-lg font-medium text-green-700 mb-2"},jb={class:"text-gray-600"},Wb={class:"text-lg font-medium text-green-700 mb-4"},Hb={class:"space-y-4"},Bb={class:"bg-gray-50 p-4 rounded-lg"},Gb={class:"text-base font-semibold text-gray-800 mb-3"},Kb={class:"list-disc list-inside text-gray-600 space-y-1.5 text-sm"},qb={class:"bg-gray-50 p-4 rounded-lg"},zb={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"},Xb={class:"bg-gray-50 p-4 rounded-lg"},Qb={class:"text-base font-semibold text-gray-800 mb-3"},Jb={class:"list-disc list-inside text-gray-600 space-y-1.5 text-sm"},Zb={class:"bg-gray-50 p-4 rounded-lg"},ev={class:"text-base font-semibold text-gray-800 mb-3"},tv={class:"list-disc list-inside text-gray-600 space-y-1.5 text-sm"},nv={class:"bg-gray-50 p-4 rounded-lg"},sv={class:"text-base font-semibold text-gray-800 mb-3"},ov={class:"list-disc list-inside text-gray-600 space-y-1.5 text-sm"},rv={class:"bg-gray-50 p-4 rounded-lg"},lv={class:"text-base font-semibold text-gray-800 mb-3"},av={class:"list-disc list-inside text-gray-600 space-y-1.5 text-sm"},iv={class:"bg-gray-50 p-4 rounded-lg"},cv={class:"text-base font-semibold text-gray-800 mb-3"},uv={class:"list-disc list-inside text-gray-600 space-y-1.5 text-sm"},fv={class:"text-lg font-medium text-green-700 mb-2"},dv={class:"bg-gray-50 p-4 rounded-lg space-y-4"},pv={class:"text-gray-600 mb-2"},mv={class:"text-gray-600 mb-2"},hv={class:"text-gray-600 mb-2"},gv={class:"text-gray-600 mb-2 text-sm"},bv={class:"list-disc list-inside text-gray-600 space-y-1 text-sm ml-2"},vv=["href"],yv=["href"],_v={class:"text-lg font-medium text-green-700 mb-2"},wv={class:"bg-gray-50 p-4 rounded-lg space-y-4"},xv={class:"text-gray-600 mb-2"},kv={class:"text-gray-600 mb-2"},Sv={class:"text-gray-600 text-sm"},$v={class:"text-lg font-medium text-green-700 mb-2"},Ev={class:"bg-gray-50 p-4 rounded-lg space-y-4"},Cv={class:"text-gray-600 mb-2"},Lv={class:"text-gray-600 mb-2 font-semibold"},Tv={class:"list-decimal list-inside text-gray-600 space-y-2 text-sm ml-2"},Iv={class:"list-disc list-inside ml-4 mt-1 space-y-1"},Pv={class:"list-disc list-inside ml-4 mt-1 space-y-1"},Av={class:"text-gray-500 text-xs ml-1"},Dv=["href"],Nv={class:"list-disc list-inside ml-4 mt-1 space-y-1"},Rv={class:"text-gray-600 mb-2 font-semibold"},Ov={class:"list-disc list-inside text-gray-600 space-y-1.5 text-sm ml-2"},Fv={class:"list-disc list-inside ml-4 mt-1 space-y-1"},Mv={class:"text-gray-600 mb-2 font-semibold"},Uv={class:"list-decimal list-inside text-gray-600 space-y-1.5 text-sm ml-2"},Vv={class:"text-gray-600 mb-2 font-semibold"},jv={class:"text-gray-600 mb-2 text-sm"},Wv={class:"text-gray-600 text-sm"},Hv=Ae({__name:"About",setup(e){const t=xo(),n=ue(()=>t.serverInfo),{checkNewVersion:s}=tu(),o=ue(()=>window.location.origin);async function r(){await s(!0)}return Mt(()=>{window.electron&&window.electron.ipc.on("downloadProgress",a=>{console.log("downloadProgress",a),t.updateServerInfo({appUpdateMessage:`下载中:${Number(a.percent).toFixed(2)}% [${Sb(a.bytesPerSecond)}] [${zn(a.transferred)}/${zn(a.total)}]`})})}),(l,a)=>(G(),Ft(Ns,{onNewDownload:()=>{}},{default:Ot(()=>[c("div",$b,[c("div",Eb,[c("h2",Cb,m(l.$t("about.title")),1),c("div",Lb,[c("div",null,[c("h3",Tb,m(l.$t("about.projectInfo")),1),c("div",Ib,[c("p",Pb,[c("strong",null,m(l.$t("about.license"))+":",1),a[0]||(a[0]=ae("MIT",-1))]),c("p",Ab,[c("strong",null,m(l.$t("about.author"))+":",1),a[1]||(a[1]=c("a",{href:"https://lzw.me",target:"_blank",rel:"noopener",class:"text-blue-500 hover:text-blue-600"},"renxia",-1))]),c("p",Db,[c("strong",null,m(l.$t("about.github"))+":",1),a[2]||(a[2]=c("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))]),c("p",Nb,[c("strong",null,m(l.$t("about.issues"))+":",1),a[3]||(a[3]=c("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))]),c("p",Rb,[c("strong",null,m(l.$t("about.currentVersion"))+":",1),c("a",Ob,m(n.value.version),1)]),c("p",Fb,[c("strong",null,m(l.$t("about.checkVersion"))+":",1),n.value.appUpdateMessage?ne("",!0):(G(),Y("button",{key:0,onClick:r,class:"px-2 py-1 text-sm bg-green-600 hover:bg-green-700 text-white rounded"},[a[4]||(a[4]=c("i",{class:"fas fa-check mr-1"},null,-1)),ae(m(l.$t("about.checkVersion")),1)])),n.value.newVersion?(G(),Y("span",Mb,m(l.$t("about.newVersionFound",{version:n.value.newVersion})),1)):ne("",!0),n.value.appUpdateMessage?(G(),Y("span",Ub,m(n.value.appUpdateMessage),1)):ne("",!0)])])]),c("div",null,[c("h3",Vb,m(l.$t("about.projectDescription")),1),c("p",jb,[a[5]||(a[5]=c("a",{href:"https://github.com/lzwme/m3u8-dl",target:"_blank",rel:"noopener",class:"text-blue-500 hover:text-blue-600"},"@lzwme/m3u8-dl",-1)),ae(" "+m(l.$t("about.projectDescriptionText")),1)])]),c("div",null,[c("h3",Wb,m(l.$t("about.features")),1),c("div",Hb,[c("div",Bb,[c("h4",Gb,m(l.$t("about.coreFeatures")),1),c("ul",Kb,[c("li",null,m(l.$t("about.coreFeature1")),1),c("li",null,m(l.$t("about.coreFeature2")),1),c("li",null,m(l.$t("about.coreFeature3")),1),c("li",null,m(l.$t("about.coreFeature4")),1),c("li",null,m(l.$t("about.coreFeature5")),1),c("li",null,m(l.$t("about.coreFeature6")),1),c("li",null,m(l.$t("about.coreFeature7")),1),c("li",null,m(l.$t("about.coreFeature8")),1)])]),c("div",qb,[c("h4",zb,m(l.$t("about.webUIFeatures")),1),c("ul",Yb,[c("li",null,m(l.$t("about.webUIFeature1")),1),c("li",null,m(l.$t("about.webUIFeature2")),1),c("li",null,m(l.$t("about.webUIFeature3")),1),c("li",null,m(l.$t("about.webUIFeature4")),1),c("li",null,m(l.$t("about.webUIFeature5")),1),c("li",null,m(l.$t("about.webUIFeature6")),1)])]),c("div",Xb,[c("h4",Qb,m(l.$t("about.parserFeatures")),1),c("ul",Jb,[c("li",null,m(l.$t("about.parserFeature1")),1),c("li",null,m(l.$t("about.parserFeature2")),1),c("li",null,m(l.$t("about.parserFeature3")),1)])]),c("div",Zb,[c("h4",ev,m(l.$t("about.extractFeatures")),1),c("ul",tv,[c("li",null,m(l.$t("about.extractFeature1")),1),c("li",null,m(l.$t("about.extractFeature2")),1),c("li",null,m(l.$t("about.extractFeature3")),1)])]),c("div",nv,[c("h4",sv,m(l.$t("about.searchFeatures")),1),c("ul",ov,[c("li",null,m(l.$t("about.searchFeature1")),1),c("li",null,m(l.$t("about.searchFeature2")),1)])]),c("div",rv,[c("h4",lv,m(l.$t("about.usageFeatures")),1),c("ul",av,[c("li",null,m(l.$t("about.usageFeature1")),1),c("li",null,m(l.$t("about.usageFeature2")),1),c("li",null,m(l.$t("about.usageFeature3")),1),c("li",null,m(l.$t("about.usageFeature4")),1),c("li",null,m(l.$t("about.usageFeature5")),1)])]),c("div",iv,[c("h4",cv,m(l.$t("about.i18nFeatures")),1),c("ul",uv,[c("li",null,m(l.$t("about.i18nFeature1")),1),c("li",null,m(l.$t("about.i18nFeature2")),1)])])])]),c("div",null,[c("h3",fv,m(l.$t("about.installation")),1),c("div",dv,[c("div",null,[c("p",pv,m(l.$t("about.globalInstall")),1),a[6]||(a[6]=c("pre",{class:"bg-gray-800 text-gray-100 p-3 rounded-lg overflow-x-auto text-sm"},[ae("npm i -g @lzwme/m3u8-dl"),c("br"),ae("m3u8dl -h")],-1))]),c("div",null,[c("p",mv,m(l.$t("about.useNpx")),1),a[7]||(a[7]=c("pre",{class:"bg-gray-800 text-gray-100 p-3 rounded-lg overflow-x-auto text-sm"},"npx @lzwme/m3u8-dl -h",-1))]),c("div",null,[c("p",hv,m(l.$t("about.desktopApp")),1),c("p",gv,m(l.$t("about.desktopAppText")),1),c("ul",bv,[c("li",null,[c("a",{href:l.$t("about.desktopAppLink1"),target:"_blank",rel:"noopener",class:"text-blue-500 hover:text-blue-600"},m(l.$t("about.desktopAppLink1")),9,vv)]),c("li",null,[c("a",{href:l.$t("about.desktopAppLink2"),target:"_blank",rel:"noopener",class:"text-blue-500 hover:text-blue-600"},m(l.$t("about.desktopAppLink2")),9,yv)])])])])]),c("div",null,[c("h3",_v,m(l.$t("about.docker")),1),c("div",wv,[c("div",null,[c("p",xv,m(l.$t("about.dockerCommand")),1),a[8]||(a[8]=c("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))]),c("div",null,[c("p",kv,m(l.$t("about.dockerCompose")),1),a[9]||(a[9]=c("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))]),c("p",Sv,m(l.$t("about.dockerDeployComplete",{url:"http://localhost:6600"})),1)])]),c("div",null,[c("h3",$v,m(l.$t("about.captureScript")),1),c("div",Ev,[c("div",null,[c("p",Cv,m(l.$t("about.captureScriptDescription")),1)]),c("div",null,[c("p",Lv,m(l.$t("about.captureScriptInstall")),1),c("ol",Tv,[c("li",null,[ae(m(l.$t("about.captureScriptInstallStep1"))+" ",1),a[10]||(a[10]=c("a",{href:"https://violentmonkey.github.io/",target:"_blank",rel:"noopener",class:"text-blue-500 hover:text-blue-600"},"Violentmonkey",-1)),ae(" "+m(l.$t("about.captureScriptInstallStep1Or"))+" ",1),a[11]||(a[11]=c("a",{href:"https://www.tampermonkey.net/",target:"_blank",rel:"noopener",class:"text-blue-500 hover:text-blue-600"},"Tampermonkey",-1))]),c("li",null,[ae(m(l.$t("about.captureScriptInstallStep2"))+" ",1),c("ul",Iv,[c("li",null,m(l.$t("about.captureScriptInstallStep2a")),1),c("li",null,m(l.$t("about.captureScriptInstallStep2b")),1),c("li",null,[ae(m(l.$t("about.captureScriptInstallStep2c"))+" ",1),c("ul",Pv,[c("li",null,[ae(m(l.$t("about.captureScriptInstallStep2cOption1"))+" ",1),a[12]||(a[12]=c("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)),c("span",Av,"("+m(l.$t("about.captureScriptInstallStep2cOption1Note"))+")",1)]),c("li",null,[ae(m(l.$t("about.captureScriptInstallStep2cOption2"))+" ",1),c("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,Dv)])])])])]),c("li",null,[ae(m(l.$t("about.captureScriptInstallStep3"))+" ",1),c("ul",Nv,[c("li",null,m(l.$t("about.captureScriptInstallStep3a")),1),c("li",null,m(l.$t("about.captureScriptInstallStep3b")),1),c("li",null,m(l.$t("about.captureScriptInstallStep3c")),1)])])])]),c("div",null,[c("p",Rv,m(l.$t("about.captureScriptFeatures")),1),c("ul",Ov,[c("li",null,m(l.$t("about.captureScriptFeature1")),1),c("li",null,m(l.$t("about.captureScriptFeature2")),1),c("li",null,m(l.$t("about.captureScriptFeature3")),1),c("li",null,[ae(m(l.$t("about.captureScriptFeature4"))+" ",1),c("ul",Fv,[c("li",null,m(l.$t("about.captureScriptFeature4a")),1),c("li",null,m(l.$t("about.captureScriptFeature4b")),1)])])])]),c("div",null,[c("p",Mv,m(l.$t("about.captureScriptUsage")),1),c("ol",Uv,[c("li",null,m(l.$t("about.captureScriptUsageStep1")),1),c("li",null,m(l.$t("about.captureScriptUsageStep2")),1),c("li",null,m(l.$t("about.captureScriptUsageStep3")),1),c("li",null,m(l.$t("about.captureScriptUsageStep4")),1),c("li",null,m(l.$t("about.captureScriptUsageStep5")),1)])]),c("div",null,[c("p",Vv,m(l.$t("about.captureScriptExcludeRules")),1),c("p",jv,m(l.$t("about.captureScriptExcludeRulesHint")),1),a[13]||(a[13]=c("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))]),c("p",Wv,m(l.$t("about.captureScriptTip")),1)])])])])])]),_:1}))}}),Bv={class:"bg-white rounded-lg shadow"},Gv={class:"p-4"},Kv={class:"flex justify-between items-center"},qv={class:"text-xl font-semibold"},zv={class:"flex items-center space-x-2"},Yv={class:"text-sm text-gray-600"},Xv={class:"px-4 pb-2 border-b"},Qv={class:"flex items-center space-x-4"},Jv={class:"flex items-center space-x-2"},Zv={class:"text-sm text-gray-600"},e0={value:"startTime"},t0={value:"endTime"},n0={value:"name"},s0={value:"size"},o0={value:"saveDir"},r0={class:"flex items-center space-x-2"},l0=["title"],a0={class:"ml-1"},i0={class:"flex items-center space-x-2"},c0=["placeholder"],u0={class:"overflow-x-auto"},f0={class:"w-full"},d0={class:"bg-gray-50 border-b"},p0={class:"px-4 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider w-12"},m0=["checked","indeterminate"],h0={class:"px-4 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider"},g0={class:"px-4 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider"},b0={class:"px-4 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider"},v0={class:"px-4 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider"},y0={class:"px-4 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider"},_0={class:"bg-white divide-y divide-gray-200"},w0={class:"px-4 py-3 whitespace-nowrap"},x0=["checked","onChange"],k0={class:"px-4 py-3 whitespace-nowrap text-sm"},S0={class:"flex items-center space-x-2"},$0=["onClick","title"],E0=["onClick","title"],C0=["onClick","title"],L0={class:"px-4 py-3"},T0={class:"flex items-center"},I0={class:"flex-1 min-w-0"},P0=["title"],A0=["title"],D0={class:"px-4 py-3 whitespace-nowrap text-sm text-gray-600"},N0={class:"px-4 py-3 whitespace-nowrap text-sm text-gray-600"},R0={class:"px-4 py-3 whitespace-nowrap text-sm text-gray-600"},O0={key:0},F0={colspan:"6",class:"px-4 py-8 text-center text-gray-500"},M0={class:"flex flex-col items-center"},U0={key:0,class:"px-4 py-3 bg-blue-50 border-t flex items-center justify-between"},V0={class:"text-sm text-gray-700"},j0={class:"flex items-center space-x-2"},W0=Ae({__name:"CompletedList",emits:["show-detail","local-play","delete"],setup(e,{emit:t}){const n=Pn(),s=X("endTime"),o=X("desc"),r=X(""),l=ue(()=>{const C=Object.values(n.tasks).filter(P=>P.status==="done"||P.progress!==void 0&&P.progress>=100);return C.forEach(P=>{P.showName=P.filename||P.dlOptions?.filename||P.localVideo||P.url}),C}),a=ue(()=>{if(!r.value.trim())return l.value;const w=r.value.toLowerCase();return l.value.filter(C=>{const P=(C.showName||C.filename||C.url||"").toLowerCase(),K=(C.url||"").toLowerCase();return P.includes(w)||K.includes(w)})}),i=ue(()=>{const w=[...a.value];return w.sort((C,P)=>{let K,B;switch(s.value){case"startTime":K=C.startTime||0,B=P.startTime||0;break;case"endTime":K=C.endTime||0,B=P.endTime||0;break;case"name":K=(C.showName||C.filename||C.url||"").toLowerCase(),B=(P.showName||P.filename||P.url||"").toLowerCase();break;case"size":K=C.downloadedSize||C.size||0,B=P.downloadedSize||P.size||0;break;case"saveDir":K=(C.dlOptions?.saveDir||C.options?.saveDir||"").toLowerCase(),B=(P.dlOptions?.saveDir||P.options?.saveDir||"").toLowerCase();break;default:return 0}return K<B?o.value==="asc"?-1:1:K>B?o.value==="asc"?1:-1:0}),w}),u=X([]),f=ue(()=>i.value.length>0&&u.value.length===i.value.length),d=ue(()=>u.value.length>0&&u.value.length<i.value.length);function p(){}function b(){o.value=o.value==="asc"?"desc":"asc"}function $(){}function S(){f.value?u.value=[]:u.value=i.value.map(w=>w.url)}function D(w){const C=u.value.indexOf(w);C===-1?u.value.push(w):u.value.splice(C,1)}function _(w){if(!w)return"-";const C=new Date(w),{locale:P}=qe(),K=P.value==="zh-CN"?"zh-CN":"en-US";return C.toLocaleString(K,{year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit"})}const x=t;function L(w){x("show-detail",w)}function v(w){const C=location.origin+`/localplay/${encodeURIComponent(w.localVideo||"")||w.localM3u8}`;x("local-play",{task:w,url:C})}function E(w){x("delete",[w])}function R(){u.value.length>0&&(x("delete",u.value),u.value=[])}return(w,C)=>(G(),Y("div",Bv,[c("div",Gv,[c("div",Kv,[c("h2",qv,m(w.$t("completedList.title")),1),c("div",zv,[c("span",Yv,m(w.$t("completedList.total",{count:l.value.length})),1)])])]),c("div",Xv,[c("div",Qv,[c("div",Jv,[c("label",Zv,m(w.$t("completedList.sortBy")),1),De(c("select",{"onUpdate:modelValue":C[0]||(C[0]=P=>s.value=P),onChange:p,class:"px-3 py-1 text-sm border rounded-lg focus:ring-blue-500 focus:border-blue-500"},[c("option",e0,m(w.$t("completedList.sortStartTime")),1),c("option",t0,m(w.$t("completedList.sortEndTime")),1),c("option",n0,m(w.$t("completedList.sortName")),1),c("option",s0,m(w.$t("completedList.sortSize")),1),c("option",o0,m(w.$t("completedList.sortSaveDir")),1)],544),[[Ad,s.value]])]),c("div",r0,[c("button",{onClick:b,class:"px-3 py-1 text-sm bg-gray-100 hover:bg-gray-200 rounded-lg flex items-center",title:o.value==="asc"?w.$t("completedList.ascending"):w.$t("completedList.descending")},[c("i",{class:Xe(["fas",o.value==="asc"?"fa-sort-up":"fa-sort-down"])},null,2),c("span",a0,m(o.value==="asc"?w.$t("completedList.ascending"):w.$t("completedList.descending")),1)],8,l0)]),C[3]||(C[3]=c("div",{class:"flex-1"},null,-1)),c("div",i0,[De(c("input",{type:"text","onUpdate:modelValue":C[1]||(C[1]=P=>r.value=P),class:"px-3 py-1 text-sm border rounded-lg focus:ring-blue-500 focus:border-blue-500",placeholder:w.$t("completedList.searchPlaceholder"),onInput:$},null,40,c0),[[nt,r.value]]),C[2]||(C[2]=c("i",{class:"fas fa-search text-gray-400"},null,-1))])])]),c("div",u0,[c("table",f0,[c("thead",d0,[c("tr",null,[c("th",p0,[c("input",{type:"checkbox",checked:f.value,indeterminate:d.value,onChange:S,class:"form-checkbox h-4 w-4 text-blue-500 rounded focus:ring-blue-500"},null,40,m0)]),c("th",h0,m(w.$t("completedList.action")),1),c("th",g0,m(w.$t("completedList.taskName")),1),c("th",b0,m(w.$t("completedList.fileSize")),1),c("th",v0,m(w.$t("completedList.startTime")),1),c("th",y0,m(w.$t("completedList.endTime")),1)])]),c("tbody",_0,[(G(!0),Y(Ge,null,go(i.value,P=>(G(),Y("tr",{key:P.url,class:"hover:bg-gray-50 transition-colors"},[c("td",w0,[c("input",{type:"checkbox",checked:u.value.includes(P.url),onChange:K=>D(P.url),class:"form-checkbox h-4 w-4 text-blue-500 rounded focus:ring-blue-500"},null,40,x0)]),c("td",k0,[c("div",S0,[c("button",{onClick:K=>L(P),class:"text-blue-600 hover:text-blue-800",title:w.$t("completedList.viewDetail")},[...C[4]||(C[4]=[c("i",{class:"fas fa-info-circle"},null,-1)])],8,$0),P.localVideo?(G(),Y("button",{key:0,onClick:K=>v(P),class:"text-green-600 hover:text-green-800",title:w.$t("completedList.play")},[...C[5]||(C[5]=[c("i",{class:"fas fa-play-circle"},null,-1)])],8,E0)):ne("",!0),c("button",{onClick:K=>E(P.url),class:"text-red-600 hover:text-red-800",title:w.$t("completedList.delete")},[...C[6]||(C[6]=[c("i",{class:"fas fa-trash"},null,-1)])],8,C0)])]),c("td",L0,[c("div",T0,[c("div",I0,[c("p",{class:"text-sm font-medium text-gray-900 truncate",title:P.showName},m(P.showName),9,P0),c("p",{class:"text-xs text-gray-500 truncate",title:P.url},m(P.url),9,A0)])])]),c("td",D0,m(ve(zn)(P.downloadedSize||P.size||0)),1),c("td",N0,m(_(P.startTime)),1),c("td",R0,m(_(P.endTime)),1)]))),128)),i.value.length===0?(G(),Y("tr",O0,[c("td",F0,[c("div",M0,[C[7]||(C[7]=c("i",{class:"fas fa-inbox text-4xl mb-2 text-gray-300"},null,-1)),c("p",null,m(w.$t("completedList.noCompletedTasks")),1)])])])):ne("",!0)])])]),u.value.length>0?(G(),Y("div",U0,[c("span",V0,m(w.$t("completedList.selected",{count:u.value.length})),1),c("div",j0,[c("button",{onClick:R,class:"px-3 py-1 text-sm bg-red-500 hover:bg-red-600 text-white rounded"},[C[8]||(C[8]=c("i",{class:"fas fa-trash mr-1"},null,-1)),ae(m(w.$t("completedList.deleteSelected")),1)])])])):ne("",!0)]))}});function H0(e){return new Promise((t,n)=>{navigator.clipboard?.writeText?navigator.clipboard.writeText(e).then(()=>t(!0)).catch(()=>{Ga(e)?t(!0):n(new Error("复制失败"))}):Ga(e)?t(!0):n(new Error("复制失败"))})}function Ga(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 n=document.execCommand("copy");return document.body.removeChild(t),n}catch(t){return console.error("[M3U8 Capture] fallbackCopy failed:",t),!1}}const B0={class:"bg-white rounded-lg shadow-xl max-w-3xl w-full max-h-[98vh] overflow-hidden flex flex-col"},G0={class:"flex justify-between items-center p-2 md:p-4 border-b"},K0={class:"text-lg md:text-xl font-semibold"},q0={class:"overflow-y-auto p-2 md:p-4 flex-1"},z0={key:0,class:"flex flex-col w-full text-left space-y-2 md:space-y-3"},Y0={class:"flex items-start"},X0={class:"font-bold text-right inline-block text-sm md:text-base",style:{"min-width":"80px","max-width":"80px"}},Q0={class:"ml-1 md:ml-2 text-gray-800 break-words flex-1 text-sm md:text-base"},J0={class:"flex items-center"},Z0={class:"font-bold text-right inline-block text-sm md:text-base",style:{"min-width":"80px","max-width":"80px"}},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"}},ny={class:"ml-1 md:ml-2 text-gray-800 text-sm md:text-base"},sy={class:"flex items-center"},oy={class:"font-bold text-right inline-block text-sm md:text-base",style:{"min-width":"80px","max-width":"80px"}},ry={class:"ml-1 md:ml-2 text-gray-800 text-sm md:text-base"},ly={class:"flex items-center"},ay={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"},cy={key:0},uy={key:0,class:"flex items-center"},fy={class:"font-bold text-right inline-block text-sm md:text-base",style:{"min-width":"80px","max-width":"80px"}},dy={class:"ml-1 md:ml-2 text-gray-800 text-sm md:text-base"},py={class:"text-green-600"},my={class:"text-red-500"},hy={key:1,class:"flex items-center"},gy={class:"font-bold text-right inline-block text-sm md:text-base",style:{"min-width":"80px","max-width":"80px"}},by={class:"ml-1 md:ml-2 text-gray-800 text-sm md:text-base"},vy={key:2,class:"flex items-center"},yy={class:"font-bold text-right inline-block text-sm md:text-base",style:{"min-width":"80px","max-width":"80px"}},_y={class:"ml-1 md:ml-2 text-gray-800 text-sm md:text-base"},wy={key:3,class:"flex items-center"},xy={class:"font-bold text-right inline-block text-sm md:text-base",style:{"min-width":"80px","max-width":"80px"}},ky={class:"ml-1 md:ml-2 text-gray-800 text-sm md:text-base"},Sy={key:4,class:"flex items-center"},$y={class:"font-bold text-right inline-block text-sm md:text-base",style:{"min-width":"80px","max-width":"80px"}},Ey={class:"ml-1 md:ml-2 text-gray-800 text-sm md:text-base"},Cy={key:5,class:"flex items-center"},Ly={class:"font-bold text-right inline-block text-sm md:text-base",style:{"min-width":"80px","max-width":"80px"}},Ty={class:"ml-1 md:ml-2 text-gray-800 text-sm md:text-base"},Iy={class:"flex items-start"},Py={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"},Dy={class:"flex-1 p-1.5 md:p-2 bg-gray-50 rounded border text-xs md:text-sm text-gray-700 break-all"},Ny=["title"],Ry={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"}},Fy={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"},Uy=["title"],Vy={key:7,class:"flex items-start"},jy={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-red-600 break-words flex-1 text-sm md:text-base"},Hy={class:"flex justify-end gap-2 p-2 md:p-4 border-t"},su=Ae({__name:"TaskDetailModal",props:{visible:{type:Boolean},task:{}},emits:["close"],setup(e,{emit:t}){const{t:n}=qe(),s=t;function o(){s("close")}function r(i){return{resume:n("download.status.resume"),pending:n("download.status.pending"),pause:n("download.status.pause"),error:n("download.status.error"),done:n("download.status.done")}[i]||i}function l(i){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"}[i]||"px-2 py-1 bg-gray-100 text-gray-800 rounded text-sm inline-block"}function a(i){return H0(i).then(()=>he({text:n("toast.copySuccess"),type:"success"})).catch(u=>{console.error("复制失败:",u),he({text:n("toast.copyFailed"),type:"error"})})}return(i,u)=>e.visible?(G(),Y("div",{key:0,class:"fixed inset-0 modal-overlay flex items-center justify-center z-50 p-2 md:p-4",onClick:Xt(o,["self"])},[c("div",B0,[c("div",G0,[c("h2",K0,m(i.$t("taskDetail.title")),1),c("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]=[c("i",{class:"fas fa-times"},null,-1)])])]),c("div",q0,[e.task?(G(),Y("div",z0,[c("div",Y0,[c("label",X0,m(i.$t("taskDetail.name"))+":",1),c("span",Q0,m(e.task.filename||e.task.localVideo||"-"),1)]),c("div",J0,[c("label",Z0,m(i.$t("taskDetail.status"))+":",1),c("span",{class:Xe([l(e.task.status),"ml-1 md:ml-2 text-xs md:text-sm"])},m(r(e.task.status)),3)]),c("div",ey,[c("label",ty,m(i.$t("taskDetail.progress"))+":",1),c("span",ny,m(e.task.progress||0)+"%",1)]),c("div",sy,[c("label",oy,m(i.$t("taskDetail.avgSpeed"))+":",1),c("span",ry,m(e.task.avgSpeedDesc||"-")+"/s",1)]),c("div",ly,[c("label",ay,m(i.$t("taskDetail.size"))+":",1),c("span",iy,[ae(m(ve(zn)(e.task.downloadedSize||0))+" ",1),e.task.size?(G(),Y("span",cy," / "+m(ve(zn)(e.task.size)),1)):ne("",!0)])]),e.task.tsCount?(G(),Y("div",uy,[c("label",fy,m(i.$t("taskDetail.segments"))+":",1),c("span",dy,[c("span",py,m(e.task.tsSuccess||0),1),u[3]||(u[3]=ae(" / ",-1)),c("span",my,m(e.task.tsFailed||0),1),ae(" / "+m(e.task.tsCount),1)])])):ne("",!0),e.task.threadNum?(G(),Y("div",hy,[c("label",gy,m(i.$t("taskDetail.threadNum"))+":",1),c("span",by,m(e.task.threadNum),1)])):ne("",!0),e.task.duration?(G(),Y("div",vy,[c("label",yy,m(i.$t("taskDetail.duration"))+":",1),c("span",_y,m(ve(oo)(e.task.duration*1e3)),1)])):ne("",!0),e.task.startTime?(G(),Y("div",wy,[c("label",xy,m(i.$t("taskDetail.startTime"))+":",1),c("span",ky,m(new Date(e.task.startTime).toLocaleString()),1)])):ne("",!0),e.task.endTime&&e.task.status!=="resume"?(G(),Y("div",Sy,[c("label",$y,m(i.$t("taskDetail.endTime"))+":",1),c("span",Ey,m(new Date(e.task.endTime).toLocaleString()),1)])):ne("",!0),e.task.status==="resume"&&e.task.remainingTime?(G(),Y("div",Cy,[c("label",Ly,m(i.$t("taskDetail.remainingTime"))+":",1),c("span",Ty,m(ve(oo)(e.task.remainingTime)),1)])):ne("",!0),c("div",Iy,[c("label",Py,m(i.$t("taskDetail.downloadUrl"))+":",1),c("div",Ay,[c("div",Dy,m(e.task.url),1),c("button",{onClick:u[0]||(u[0]=f=>a(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:i.$t("taskDetail.copy")},[...u[4]||(u[4]=[c("i",{class:"fas fa-copy"},null,-1)])],8,Ny)])]),e.task.localVideo||e.task.options?.saveDir?(G(),Y("div",Ry,[c("label",Oy,m(i.$t("taskDetail.saveLocation"))+":",1),c("div",Fy,[c("div",My,m(e.task.localVideo||e.task.options?.saveDir||"-"),1),e.task.localVideo||e.task.options?.saveDir?(G(),Y("button",{key:0,onClick:u[1]||(u[1]=f=>a(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:i.$t("taskDetail.copy")},[...u[5]||(u[5]=[c("i",{class:"fas fa-copy"},null,-1)])],8,Uy)):ne("",!0)])])):ne("",!0),e.task.errmsg?(G(),Y("div",Vy,[c("label",jy,m(i.$t("taskDetail.relatedInfo"))+":",1),c("span",Wy,m(e.task.errmsg),1)])):ne("",!0)])):ne("",!0)]),c("div",Hy,[c("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(i.$t("taskDetail.close")),1)])])])):ne("",!0)}}),By={class:"bg-white rounded-lg shadow-xl max-w-md w-full"},Gy={class:"p-6"},Ky={class:"text-xl font-semibold mb-4"},qy={class:"text-gray-600 mb-6"},zy={class:"space-y-3 mb-6"},Yy={class:"flex items-center cursor-pointer"},Xy={class:"text-gray-700"},Qy={class:"flex items-center cursor-pointer"},Jy={class:"text-red-700 font-medium"},Zy={class:"flex justify-end gap-3"},ou=Ae({__name:"DeleteConfirmDialog",props:{visible:{type:Boolean},count:{}},emits:["close","confirm"],setup(e,{emit:t}){const{t:n}=qe(),s=e,o=t,r=X(!0),l=X(!0);at(()=>s.visible,u=>{u&&(r.value=!0,l.value=!0)});function a(){o("close")}function i(){o("confirm",{deleteCache:r.value,deleteVideo:l.value}),a()}return(u,f)=>e.visible?(G(),Y("div",{key:0,class:"fixed inset-0 modal-overlay flex items-center justify-center z-50 p-4",onClick:Xt(a,["self"])},[c("div",By,[c("div",Gy,[c("h2",Ky,m(u.$t("deleteConfirm.title")),1),c("p",qy,m(u.$t("deleteConfirm.message",{count:e.count})),1),c("div",zy,[c("label",Yy,[De(c("input",{"onUpdate:modelValue":f[0]||(f[0]=d=>r.value=d),type:"checkbox",class:"form-checkbox h-5 w-5 text-blue-500 rounded focus:ring-blue-500 mr-3"},null,512),[[Mn,r.value]]),c("span",Xy,m(u.$t("deleteConfirm.deleteCache")),1)]),c("label",Qy,[De(c("input",{"onUpdate:modelValue":f[1]||(f[1]=d=>l.value=d),type:"checkbox",class:"form-checkbox h-5 w-5 text-blue-500 rounded focus:ring-blue-500 mr-3"},null,512),[[Mn,l.value]]),c("span",Jy,m(u.$t("deleteConfirm.deleteVideo")),1)])]),c("div",Zy,[c("button",{onClick:a,class:"px-4 py-2 text-gray-600 hover:bg-gray-100 rounded-lg transition-colors"},m(u.$t("deleteConfirm.cancel")),1),c("button",{onClick:i,class:"px-4 py-2 bg-red-500 hover:bg-red-600 text-white rounded-lg transition-colors"},m(u.$t("deleteConfirm.confirm")),1)])])])])):ne("",!0)}}),e_={class:"bg-white rounded-lg shadow-xl max-w-md w-full"},t_={class:"p-6"},n_={class:"flex items-center mb-4"},s_={class:"text-xl font-semibold text-gray-900"},o_={class:"mb-6"},r_={class:"text-gray-600 whitespace-pre-line"},l_={class:"flex justify-end gap-3"},ru=Ae({__name:"ConfirmDialog",props:{visible:{type:Boolean},title:{},message:{}},emits:["close","confirm"],setup(e,{emit:t}){const{t:n}=qe(),s=t;function o(){s("close")}function r(){s("confirm"),o()}return(l,a)=>e.visible?(G(),Y("div",{key:0,class:"fixed inset-0 modal-overlay flex items-center justify-center z-50 p-4",onClick:Xt(o,["self"])},[c("div",e_,[c("div",t_,[c("div",n_,[a[0]||(a[0]=c("div",{class:"flex-shrink-0 w-10 h-10 bg-yellow-100 rounded-full flex items-center justify-center mr-3"},[c("i",{class:"fas fa-exclamation-triangle text-yellow-600"})],-1)),c("div",null,[c("h2",s_,m(e.title),1)])]),c("div",o_,[Oi(l.$slots,"default",{},()=>[c("p",r_,m(e.message),1)])]),c("div",l_,[c("button",{onClick:o,class:"px-4 py-2 text-gray-600 hover:bg-gray-100 rounded-lg transition-colors"},m(l.$t("common.cancel")),1),c("button",{onClick:r,class:"px-4 py-2 bg-blue-500 hover:bg-blue-600 text-white rounded-lg transition-colors"},m(l.$t("common.confirm")),1)])])])])):ne("",!0)}}),a_={class:"flex items-center justify-between bg-gray-900 text-white px-4 py-2 flex-shrink-0"},i_={class:"flex items-center gap-4 flex-1 min-w-0"},c_=["title"],u_={class:"text-sm md:text-base font-semibold truncate flex-1"},f_={class:"flex items-center gap-2"},d_=["title"],p_={class:"flex-1 flex overflow-hidden relative"},m_={class:"flex-1 relative"},h_=["src"],g_={key:0,class:"playlist-sidebar w-80 bg-gray-900 text-white overflow-y-auto flex-shrink-0 border-l border-gray-700"},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_=["onClick"],k_={class:"flex items-start justify-between gap-2"},S_={class:"flex-1 min-w-0"},$_={class:"font-medium text-sm truncate mb-1"},E_={class:"text-xs text-gray-400 flex items-center gap-2 flex-wrap"},C_={key:0,class:"fas fa-play text-blue-300 flex-shrink-0 mt-1"},L_=Ae({__name:"VideoPlayer",props:{visible:{type:Boolean},initialUrl:{},initialTask:{}},emits:["close"],setup(e,{emit:t}){const{t:n}=qe(),s=Pn(),o=e,r=t,l=X(null),a=X(!0),i=X(null),u=X(""),f=ue(()=>u.value?`/play.html?url=${encodeURIComponent(u.value)}`:""),d=ue(()=>{if(!i.value)return[];const x=i.value.dlOptions?.saveDir||i.value.options?.saveDir;if(!x)return[i.value];const v=Object.values(s.tasks).filter(R=>!R.localVideo&&!R.localM3u8||(R.progress||0)<20?!1:(R.dlOptions?.saveDir||R.options?.saveDir)===x);return!v.some(R=>R.url===i.value?.url)&&i.value&&v.push(i.value),v.sort((R,w)=>{const C=(R.filename||R.showName||"").toLowerCase(),P=(w.filename||w.showName||"").toLowerCase();return C.localeCompare(P)})});at(()=>[o.visible,o.initialUrl,o.initialTask],([x,L,v])=>{if(x&&(u.value=L,i.value=v||null,!i.value&&L)){const E=Object.values(s.tasks);i.value=E.find(R=>{const w=R.localVideo||R.localM3u8;return w?`${location.origin}/localplay/${w}`===L:!1})||null}},{immediate:!0});function p(x){if(x.url===i.value?.url)return;const L=x.localVideo||x.localM3u8;if(!L){console.error("[VideoPlayer] switchVideo: task 缺少本地文件路径",x);return}const v=`${location.origin}/localplay/${L}`;u.value=v,i.value=x,l.value?.contentWindow&&l.value.contentWindow.postMessage({url:v,playType:v.includes("dplayer")?"dplayer":"artplayer"},"*")}function b(x){const L=x.data;if(!(!L||typeof L!="object")&&(L.action==="next"||L.action==="previous")){const v=d.value.findIndex(E=>E.url===i.value?.url);if(v===-1)return;if(L.action==="next"){const E=v+1;E<d.value.length&&p(d.value[E])}else if(L.action==="previous"){const E=v-1;E>=0&&p(d.value[E])}}}function $(){a.value=!a.value}function S(){r("close")}function D(x){return{resume:n("download.status.resume"),pending:n("download.status.pending"),pause:n("download.status.pause"),error:n("download.status.error"),done:n("download.status.done")}[x]||x}function _(x){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"}[x]||"bg-gray-500/20 text-gray-300"}return Mt(()=>{window.addEventListener("message",b)}),Tn(()=>{window.removeEventListener("message",b)}),(x,L)=>e.visible?(G(),Y("div",{key:0,class:"fixed inset-0 bg-black z-100 flex flex-col",onKeydown:Wr(S,["esc"]),tabindex:"0"},[c("div",a_,[c("div",i_,[c("button",{onClick:S,class:"text-gray-300 hover:text-white transition-colors p-2 rounded-lg hover:bg-gray-800",title:x.$t("common.close")},[...L[0]||(L[0]=[c("i",{class:"fas fa-times"},null,-1)])],8,c_),c("h2",u_,m(i.value?.filename||i.value?.showName||"视频播放"),1)]),c("div",f_,[d.value.length>1?(G(),Y("button",{key:0,onClick:$,class:"text-gray-300 hover:text-white transition-colors p-2 rounded-lg hover:bg-gray-800",title:a.value?"隐藏列表":"显示列表"},[c("i",{class:Xe(["fas",a.value?"fa-list-ul":"fa-list"])},null,2)],8,d_)):ne("",!0)])]),c("div",p_,[c("div",m_,[c("iframe",{ref_key:"playerIframe",ref:l,src:f.value,class:"w-full h-full border-0",allowfullscreen:""},null,8,h_)]),_e(El,{name:"fade"},{default:Ot(()=>[a.value&&d.value.length>1?(G(),Y("div",{key:0,class:"playlist-overlay md:hidden fixed inset-0 bg-black/50 backdrop-blur-sm z-40",onClick:$})):ne("",!0)]),_:1}),_e(El,{name:"slide"},{default:Ot(()=>[a.value&&d.value.length>1?(G(),Y("div",g_,[c("div",b_,[c("div",v_,[c("h3",y_,"播放列表 ("+m(d.value.length)+")",1),c("button",{onClick:$,class:"md:hidden text-gray-300 hover:text-white transition-colors p-2 rounded-lg hover:bg-gray-800",title:x.$t("common.close")},[...L[1]||(L[1]=[c("i",{class:"fas fa-times"},null,-1)])],8,__)]),c("div",w_,[(G(!0),Y(Ge,null,go(d.value,v=>(G(),Y("div",{key:v.url,onClick:E=>p(v),class:Xe(["p-3 rounded-lg cursor-pointer transition-colors",i.value?.url===v.url?"bg-blue-600 text-white":"bg-gray-800 hover:bg-gray-700 text-gray-200"])},[c("div",k_,[c("div",S_,[c("div",$_,m(v.filename||v.showName||v.url),1),c("div",E_,[c("span",null,"进度: "+m(v.progress||0)+"%",1),v.status?(G(),Y("span",{key:0,class:Xe(["px-1.5 py-0.5 rounded text-xs",_(v.status)])},m(D(v.status)),3)):ne("",!0)])]),i.value?.url===v.url?(G(),Y("i",C_)):ne("",!0)])],10,x_))),128))])])])):ne("",!0)]),_:1})])],32)):ne("",!0)}}),lu=Eo(L_,[["__scopeId","data-v-ffb38195"]]),T_={class:"p-1 md:p-2"},I_={key:0,class:"text-red-600 font-medium mb-2 whitespace-pre-line"},P_={class:"text-gray-600 whitespace-pre-line"},A_=Ae({__name:"Completed",setup(e){const{t}=qe(),n=Pn(),s=X(!1),o=X(!1),r=X(!1),l=X(!1),a=X(null),i=X([]),u=X(null),f=X(""),d=X(""),p=X(""),b=X(null);function $(v){a.value=v,s.value=!0}function S(v){v.length&&(i.value=v,o.value=!0)}async function D(v){const E=await Lc(i.value,v.deleteCache,v.deleteVideo);E.code||(he({text:E.message||t("toast.deleteSuccess"),type:"success"}),n.deleteTasks(i.value)),i.value=[]}function _(v){const{task:E,url:R}=v;if(E.status==="error"){d.value=E.errmsg?t("confirm.playError",{error:E.errmsg}):"",f.value=t("confirm.playConfirmMessage"),u.value={task:E,url:R},r.value=!0;return}L(R,E)}function x(){u.value&&(L(u.value.url,u.value.task),u.value=null)}function L(v,E){p.value=v,b.value=E||null,l.value=!0}return(v,E)=>(G(),Ft(Ns,null,{default:Ot(()=>[c("div",T_,[_e(W0,{onShowDetail:$,onLocalPlay:_,onDelete:S}),_e(su,{visible:s.value,task:a.value,onClose:E[0]||(E[0]=R=>s.value=!1)},null,8,["visible","task"]),_e(ou,{visible:o.value,count:i.value.length,onClose:E[1]||(E[1]=R=>o.value=!1),onConfirm:D},null,8,["visible","count"]),_e(ru,{visible:r.value,title:v.$t("confirm.play"),onClose:E[2]||(E[2]=R=>r.value=!1),onConfirm:x},{default:Ot(()=>[d.value?(G(),Y("p",I_,m(d.value),1)):ne("",!0),c("p",P_,m(f.value),1)]),_:1},8,["visible","title"]),_e(lu,{visible:l.value,"initial-url":p.value,"initial-task":b.value,onClose:E[3]||(E[3]=R=>l.value=!1)},null,8,["visible","initial-url","initial-task"])])]),_:1}))}}),D_={class:"p-1 md:p-2"},N_={class:"space-y-6"},R_={class:"bg-white rounded-lg shadow p-6 mb-6"},O_={class:"text-xl font-semibold mb-6"},F_={class:"grid grid-cols-1 md:grid-cols-2 gap-6"},M_={class:"block text-sm font-bold text-gray-700 mb-1"},U_=["placeholder"],V_={class:"mt-1 text-sm text-gray-500"},j_={class:"block text-sm font-bold text-gray-700 mb-1"},W_=["placeholder"],H_={class:"mt-1 text-sm text-gray-500"},B_={class:"block text-sm font-bold text-gray-700 mb-1"},G_={class:"flex"},K_=["placeholder"],q_={class:"mt-1 text-sm text-gray-500"},z_={class:"block text-sm font-bold text-gray-700 mb-1"},Y_=["placeholder"],X_={class:"mt-1 text-sm text-gray-500"},Q_={class:"block text-sm font-bold text-gray-700 mb-1"},J_={class:"flex items-center mt-2"},Z_={class:"inline-flex items-center"},ew={class:"ml-2 text-gray-700"},tw={class:"mt-1 text-sm text-gray-500"},nw={class:"block text-sm font-bold text-gray-700 mb-1"},sw={class:"flex items-center mt-2"},ow={class:"inline-flex items-center"},rw={class:"ml-2 text-gray-700"},lw={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"},fw={class:"flex items-center mt-2"},dw={class:"inline-flex items-center"},pw={class:"ml-2 text-gray-700"},mw={class:"flex justify-end space-x-4"},hw={type:"submit",class:"px-6 py-2 bg-blue-500 hover:bg-blue-600 text-white rounded-lg"},gw={class:"bg-white rounded-lg shadow p-6"},bw={class:"text-xl font-semibold mb-6"},vw={class:"grid grid-cols-1 md:grid-cols-2 gap-6"},yw={class:"block text-sm font-bold text-gray-700 mb-1"},_w={class:"flex"},ww=["placeholder"],xw={class:"mt-1 text-sm text-gray-500"},kw={class:"flex justify-end space-x-4"},Sw={type:"submit",class:"px-6 py-2 bg-blue-500 hover:bg-blue-600 text-white rounded-lg"},$w=Ae({__name:"Config",setup(e){const{t}=qe(),n=Ds(),s=X(n.token||""),{connect:o}=qr("");Mt(async()=>{await n.loadConfig(),s.value=n.token||localStorage.getItem("token")||""});async function r(){const a=await n.updateConfig();he({text:a.message||t("config.configUpdated"),type:a.code?"error":"success"})}async function l(){if(!(s.value!==n.token))return;let i=s.value;i&&(typeof window<"u"&&window.md5?i=window.md5(i).slice(0,8):i=btoa(i).replace(/[^a-zA-Z0-9]/g,"").slice(0,8)),n.token=i,i?(localStorage.setItem("token",i),await n.loadConfig()&&o()):localStorage.removeItem("token"),he({text:t("config.localConfigUpdated"),type:"success"})}return(a,i)=>(G(),Ft(Ns,{onNewDownload:()=>{}},{default:Ot(()=>[c("div",D_,[c("div",N_,[c("div",R_,[c("h2",O_,m(a.$t("config.downloadSettings")),1),c("form",{onSubmit:Xt(r,["prevent"]),class:"space-y-6"},[c("div",F_,[c("div",null,[c("label",M_,m(a.$t("config.threadNum")),1),De(c("input",{"onUpdate:modelValue":i[0]||(i[0]=u=>ve(n).config.threadNum=u),type:"number",min:"0",max:"16",class:"w-full p-2 border rounded-lg focus:ring-blue-500",placeholder:a.$t("config.threadNumPlaceholder")},null,8,U_),[[nt,ve(n).config.threadNum,void 0,{number:!0}]]),c("p",V_,m(a.$t("config.threadNumHint")),1)]),c("div",null,[c("label",j_,m(a.$t("config.maxDownloads")),1),De(c("input",{"onUpdate:modelValue":i[1]||(i[1]=u=>ve(n).config.maxDownloads=u),type:"number",min:"1",max:"10",class:"w-full p-2 border rounded-lg focus:ring-blue-500",placeholder:a.$t("config.maxDownloadsPlaceholder")},null,8,W_),[[nt,ve(n).config.maxDownloads,void 0,{number:!0}]]),c("p",H_,m(a.$t("config.maxDownloadsHint")),1)]),c("div",null,[c("label",B_,m(a.$t("config.saveDir")),1),c("div",G_,[De(c("input",{"onUpdate:modelValue":i[2]||(i[2]=u=>ve(n).config.saveDir=u),type:"text",class:"w-full p-2 border rounded-lg focus:ring-blue-500",placeholder:a.$t("config.saveDirPlaceholder")},null,8,K_),[[nt,ve(n).config.saveDir]])]),c("p",q_,m(a.$t("config.saveDirHint")),1)]),c("div",null,[c("label",z_,m(a.$t("config.ffmpegPath")),1),De(c("input",{"onUpdate:modelValue":i[3]||(i[3]=u=>ve(n).config.ffmpegPath=u),type:"text",class:"w-full p-2 border rounded-lg focus:ring-blue-500",placeholder:a.$t("config.ffmpegPathPlaceholder")},null,8,Y_),[[nt,ve(n).config.ffmpegPath]]),c("p",X_,m(a.$t("config.ffmpegPathHint")),1)]),c("div",null,[c("label",Q_,m(a.$t("config.delCache")),1),c("div",J_,[c("label",Z_,[De(c("input",{"onUpdate:modelValue":i[4]||(i[4]=u=>ve(n).config.delCache=u),type:"checkbox",class:"form-checkbox h-5 w-5 text-blue-500 rounded focus:ring-blue-500"},null,512),[[Mn,ve(n).config.delCache]]),c("span",ew,m(a.$t("config.delCacheLabel")),1)])]),c("p",tw,m(a.$t("config.delCacheHint")),1)]),c("div",null,[c("label",nw,m(a.$t("config.convert")),1),c("div",sw,[c("label",ow,[De(c("input",{"onUpdate:modelValue":i[5]||(i[5]=u=>ve(n).config.convert=u),type:"checkbox",class:"form-checkbox h-5 w-5 text-blue-500 rounded focus:ring-blue-500"},null,512),[[Mn,ve(n).config.convert]]),c("span",rw,m(a.$t("config.convertLabel")),1)])])]),c("div",null,[c("label",lw,m(a.$t("config.showPreview")),1),c("div",aw,[c("label",iw,[De(c("input",{"onUpdate:modelValue":i[6]||(i[6]=u=>ve(n).config.showPreview=u),type:"checkbox",class:"form-checkbox h-5 w-5 text-blue-500 rounded focus:ring-blue-500"},null,512),[[Mn,ve(n).config.showPreview]]),c("span",cw,m(a.$t("config.showPreviewLabel")),1)])])]),c("div",null,[c("label",uw,m(a.$t("config.showLocalPlay")),1),c("div",fw,[c("label",dw,[De(c("input",{"onUpdate:modelValue":i[7]||(i[7]=u=>ve(n).config.showLocalPlay=u),type:"checkbox",class:"form-checkbox h-5 w-5 text-blue-500 rounded focus:ring-blue-500"},null,512),[[Mn,ve(n).config.showLocalPlay]]),c("span",pw,m(a.$t("config.showLocalPlayLabel")),1)])])])]),c("div",mw,[c("button",hw,m(a.$t("config.save")),1)])],32)]),c("div",gw,[c("h2",bw,m(a.$t("config.localConfig")),1),c("form",{onSubmit:Xt(l,["prevent"]),class:"space-y-6"},[c("div",vw,[c("div",null,[c("label",yw,m(a.$t("config.token")),1),c("div",_w,[De(c("input",{"onUpdate:modelValue":i[8]||(i[8]=u=>s.value=u),type:"password",maxlength:"256",class:"w-full p-2 border rounded-lg focus:ring-blue-500",placeholder:a.$t("config.tokenPlaceholder")},null,8,ww),[[nt,s.value]])]),c("p",xw,m(a.$t("config.tokenHint")),1)])]),c("div",kw,[c("button",Sw,m(a.$t("config.save")),1)])],32)])])])]),_:1}))}}),Ew=Eo($w,[["__scopeId","data-v-51fd32c8"]]),Cw={class:"download-item p-4 hover:bg-gray-50 relative"},Lw={class:"flex items-center justify-between mb-2"},Tw={class:"flex-1"},Iw={class:"flex items-center"},Pw=["checked","title"],Aw=["title"],Dw={class:"absolute right-1 top-1 text-xs rounded overflow-hidden"},Nw={key:0,class:"px-2 py-0.5 bg-yellow-100 text-yellow-800"},Rw={key:1,class:"px-2 py-0.5 bg-green-100 text-green-800"},Ow={key:2,class:"px-2 py-0.5 bg-gray-100 text-gray-800"},Fw={key:3,class:"px-2 py-0.5 bg-blue-100 text-blue-800"},Mw=["title"],Uw={class:"flex items-center text-sm text-gray-500 mt-1 flex-wrap gap-2"},Vw={key:2,class:"flex items-center"},jw={class:"flex items-center"},Ww={key:3,class:"flex items-center"},Hw={key:4,class:"flex items-center"},Bw={class:"flex space-x-2"},Gw=["title"],Kw=["title"],qw=["title"],zw={class:"relative pt-1"},Yw={class:"flex mb-2 items-center justify-between"},Xw={class:"flex items-center"},Qw={class:"text-xs font-semibold inline-block text-blue-600"},Jw={class:"text-xs font-semibold inline-block py-1 px-2 rounded text-green-600"},Zw={class:"overflow-hidden h-2 text-xs flex rounded bg-blue-200"},e1=Ae({__name:"TaskItem",props:{task:{},isSelected:{type:Boolean}},emits:["toggle-select","show-detail","preview","local-play","pause","resume","delete"],setup(e){const{t}=qe(),n=Ds(),s=ue(()=>n.config);return(o,r)=>(G(),Y("div",Cw,[c("div",Lw,[c("div",Tw,[c("div",Iw,[c("input",{type:"checkbox",checked:e.isSelected,onChange:r[0]||(r[0]=l=>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,Pw),c("h3",{class:"font-bold text-green-600 truncate max-w-[calc(100vw-100px)]",title:e.task.url},m(e.task.showName),9,Aw),c("div",Dw,[e.task.status==="pending"?(G(),Y("span",Nw,m(o.$t("download.status.pending")),1)):e.task.status==="resume"?(G(),Y("span",Rw,m(o.$t("download.status.resume")),1)):e.task.status==="pause"?(G(),Y("span",Ow,m(o.$t("download.status.pause")),1)):e.task.status==="done"?(G(),Y("span",Fw,m(o.$t("download.status.done")),1)):e.task.status==="error"?(G(),Y("span",{key:4,class:"px-2 py-0.5 bg-red-100 text-red-600",title:e.task.errmsg},[ae(m(e.task.errmsg||o.$t("download.status.error"))+" ",1),r[7]||(r[7]=c("i",{class:"fas fa-info-circle"},null,-1))],8,Mw)):ne("",!0)])]),c("div",Uw,[c("span",{class:"cursor-pointer text-blue-600 hover:text-blue-800",onClick:r[1]||(r[1]=l=>o.$emit("show-detail"))},[r[8]||(r[8]=c("i",{class:"fas fa-info-circle mr-1"},null,-1)),c("span",null,m(o.$t("taskItem.detail")),1)]),s.value?.showPreview?(G(),Y("span",{key:0,class:"text-blue-500 hover:text-blue-600 cursor-pointer",onClick:r[2]||(r[2]=l=>o.$emit("preview"))},[r[9]||(r[9]=c("i",{class:"fas fa-eye mr-1"},null,-1)),ae(m(o.$t("taskItem.preview")),1)])):ne("",!0),s.value?.showLocalPlay?(G(),Y("span",{key:1,class:"text-green-500 hover:text-green-600 cursor-pointer",onClick:r[3]||(r[3]=l=>o.$emit("local-play"))},[r[10]||(r[10]=c("i",{class:"fas fa-play-circle mr-1"},null,-1)),ae(m(e.task.localVideo?o.$t("taskItem.play"):o.$t("taskItem.localPlay")),1)])):ne("",!0),e.task.duration?(G(),Y("span",Vw,[r[11]||(r[11]=c("i",{class:"fas fa-clock mr-1"},null,-1)),c("span",null,m(o.$t("taskItem.duration"))+": "+m(ve(oo)(e.task.duration*1e3)),1)])):ne("",!0),c("span",jw,[r[12]||(r[12]=c("i",{class:"fas fa-file-video mr-1"},null,-1)),c("span",null,m(o.$t("taskItem.size"))+": "+m(ve(zn)(e.task.downloadedSize||0)),1)]),e.task.tsCount?(G(),Y("span",Ww,[r[13]||(r[13]=c("i",{class:"fas fa-file-alt mr-1"},null,-1)),c("span",null,m(o.$t("taskItem.segments"))+": "+m((e.task.tsSuccess||0)+(e.task.tsFailed||0))+"/"+m(e.task.tsCount),1)])):ne("",!0),e.task.status==="resume"?(G(),Y("span",Hw,[r[14]||(r[14]=c("i",{class:"fas fa-hourglass-half mr-1"},null,-1)),c("span",null,m(o.$t("taskItem.remaining"))+": "+m(ve(oo)(e.task.remainingTime||0)),1)])):ne("",!0)])]),c("div",Bw,[e.task.status==="resume"||e.task.status==="pending"?(G(),Y("button",{key:0,onClick:r[4]||(r[4]=l=>o.$emit("pause")),class:"p-2 text-yellow-500 hover:bg-yellow-50 rounded",title:o.$t("taskItem.pause")},[...r[15]||(r[15]=[c("i",{class:"fas fa-pause"},null,-1)])],8,Gw)):ne("",!0),e.task.status==="pause"||e.task.status==="error"?(G(),Y("button",{key:1,onClick:r[5]||(r[5]=l=>o.$emit("resume")),class:"p-2 text-green-500 hover:bg-green-50 rounded",title:o.$t("taskItem.resume")},[...r[16]||(r[16]=[c("i",{class:"fas fa-play"},null,-1)])],8,Kw)):ne("",!0),c("button",{onClick:r[6]||(r[6]=l=>o.$emit("delete")),class:"p-2 text-red-500 hover:bg-red-50 rounded",title:o.$t("taskItem.delete")},[...r[17]||(r[17]=[c("i",{class:"fas fa-trash"},null,-1)])],8,qw)])]),c("div",zw,[c("div",Yw,[c("div",Xw,[c("span",Qw,m(e.task.progress||0)+"% ",1)]),c("div",null,[c("span",Jw,m(e.task.speedDesc),1)])]),c("div",Zw,[c("div",{style:uo({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)])])]))}}),t1={class:"p-8 text-center text-gray-500"},n1=Ae({__name:"EmptyState",emits:["new-download"],setup(e){const{t}=qe();return(n,s)=>(G(),Y("div",t1,[s[2]||(s[2]=c("i",{class:"fas fa-download text-4xl mb-4"},null,-1)),c("p",null,m(n.$t("emptyState.noTasks")),1),c("button",{onClick:s[0]||(s[0]=o=>n.$emit("new-download")),class:"mt-4 px-4 py-2 bg-blue-500 text-white rounded hover:bg-blue-600"},[s[1]||(s[1]=c("i",{class:"fas fa-plus mr-1"},null,-1)),ae(m(n.$t("emptyState.addTask")),1)])]))}}),s1={class:"bg-white rounded-lg shadow"},o1={class:"p-4"},r1={class:"flex justify-between items-center"},l1={class:"text-xl font-semibold"},a1={class:"flex space-x-2"},i1={class:"mt-4 flex items-center space-x-4"},c1={class:"flex-1"},u1={class:"relative"},f1=["placeholder","aria-label"],d1={class:"flex items-center space-x-2"},p1=["value","title","aria-label"],m1={value:""},h1={value:"resume"},g1={value:"pending"},b1={value:"pause"},v1={value:"error"},y1=["title","aria-label"],_1={class:"text-sm text-gray-600 border-b bg-gray-50"},w1={class:"flex items-center space-x-4 px-4 py-2"},x1={class:"flex items-center"},k1=["checked","indeterminate","title"],S1={class:"text-gray-700 text-sm"},$1={class:"ml-4 text-gray-400 text-xs"},E1={class:"flex items-center"},C1={class:"flex items-center"},L1={class:"flex items-center"},T1={class:"divide-y overflow-auto max-h-[calc(100vh-200px)]"},I1=Ae({__name:"TaskList",emits:["new-download","pause","resume","delete","clear-queue","show-detail","local-play"],setup(e,{emit:t}){const{t:n}=qe(),s=Pn(),o=ue(()=>{const w=s.filteredTasks;return console.log("[TaskList] filteredTasks computed, 数量:",w.length),w}),r=ue(()=>s.selectedTasks),l=ue(()=>s.queueStatus),a=ue(()=>s.statusFilter),i=X(s.searchQuery);let u=null;at(i,w=>{u&&clearTimeout(u),u=window.setTimeout(()=>{s.searchQuery=w},300)});const f=ue(()=>o.value.length>0&&r.value.length===o.value.length),d=ue(()=>r.value.length>0&&r.value.length<o.value.length);function p(w){const C=w.target;s.statusFilter=C.value}function b(){s.clearFilters()}function $(){s.toggleSelectAll()}function S(w){s.toggleTaskSelection(w)}const D=t;function _(w){D("pause",[w])}function x(w){D("resume",[w])}function L(w){D("delete",[w])}function v(w){D("show-detail",w)}function E(w){window.open(`https://lzw.me/x/m3u8-player/?url=${encodeURIComponent(w)}`)}function R(w){const C=w.localVideo||w.localM3u8;if(!C){console.error("[TaskList] localPlay: task 缺少本地文件路径",w),he({text:n("error.noLocalFile"),type:"error"});return}const P=location.origin+`/localplay/${C}`;D("local-play",{task:w,url:P})}return(w,C)=>(G(),Y("div",s1,[c("div",o1,[c("div",r1,[c("h2",l1,m(w.$t("taskList.title")),1),c("div",a1,[c("button",{onClick:C[0]||(C[0]=P=>w.$emit("new-download")),class:"px-3 py-1 text-sm bg-blue-500 hover:bg-blue-600 text-white rounded"},[C[9]||(C[9]=c("i",{class:"fas fa-plus mr-1"},null,-1)),ae(m(w.$t("taskList.new")),1)]),r.value.length>0?(G(),Y("button",{key:0,onClick:C[1]||(C[1]=P=>w.$emit("pause",r.value)),class:"px-3 py-1 text-sm bg-yellow-500 text-white rounded hover:bg-yellow-600"},[C[10]||(C[10]=c("i",{class:"fas fa-pause mr-1"},null,-1)),ae(m(w.$t("taskList.pauseSelected")),1)])):ne("",!0),r.value.length>0?(G(),Y("button",{key:1,onClick:C[2]||(C[2]=P=>w.$emit("resume",r.value)),class:"px-3 py-1 text-sm bg-green-500 text-white rounded hover:bg-green-600"},[C[11]||(C[11]=c("i",{class:"fas fa-play mr-1"},null,-1)),ae(m(w.$t("taskList.resumeSelected")),1)])):ne("",!0),r.value.length>0?(G(),Y("button",{key:2,onClick:C[3]||(C[3]=P=>w.$emit("delete",r.value)),class:"px-3 py-1 text-sm bg-red-500 text-white rounded hover:bg-red-600"},[C[12]||(C[12]=c("i",{class:"fas fa-trash mr-1"},null,-1)),ae(m(w.$t("taskList.deleteSelected")),1)])):ne("",!0),r.value.length===0?(G(),Y("button",{key:3,onClick:C[4]||(C[4]=P=>w.$emit("pause","all")),class:"px-3 py-1 text-sm bg-yellow-500 text-white rounded hover:bg-yellow-600"},[C[13]||(C[13]=c("i",{class:"fas fa-pause mr-1"},null,-1)),ae(m(w.$t("taskList.pauseAll")),1)])):ne("",!0),r.value.length===0?(G(),Y("button",{key:4,onClick:C[5]||(C[5]=P=>w.$emit("resume","all")),class:"px-3 py-1 text-sm bg-green-500 text-white rounded hover:bg-green-600"},[C[14]||(C[14]=c("i",{class:"fas fa-play mr-1"},null,-1)),ae(m(w.$t("taskList.resumeAll")),1)])):ne("",!0),r.value.length===0?(G(),Y("button",{key:5,onClick:C[6]||(C[6]=P=>w.$emit("clear-queue")),class:"px-3 py-1 text-sm bg-red-500 text-white rounded hover:bg-red-600"},[C[15]||(C[15]=c("i",{class:"fas fa-trash mr-1"},null,-1)),ae(m(w.$t("taskList.clearQueue")),1)])):ne("",!0)])]),c("div",i1,[c("div",c1,[c("div",u1,[De(c("input",{type:"text","onUpdate:modelValue":C[7]||(C[7]=P=>i.value=P),class:"w-full pl-10 pr-4 py-2 border rounded-lg focus:ring-blue-500 focus:border-blue-500",placeholder:w.$t("taskList.searchPlaceholder"),"aria-label":w.$t("taskList.searchLabel")},null,8,f1),[[nt,i.value]]),C[16]||(C[16]=c("i",{class:"fas fa-search absolute left-3 top-3 text-gray-400"},null,-1))])]),c("div",d1,[c("select",{value:a.value,onChange:p,class:"px-3 py-2 border rounded-lg focus:ring-blue-500 focus:border-blue-500",title:w.$t("taskList.filterByStatus"),"aria-label":w.$t("taskList.filterByStatus")},[c("option",m1,m(w.$t("taskList.all")),1),c("option",h1,m(w.$t("taskList.status.resume")),1),c("option",g1,m(w.$t("taskList.status.pending")),1),c("option",b1,m(w.$t("taskList.status.pause")),1),c("option",v1,m(w.$t("taskList.status.error")),1)],40,p1),c("button",{onClick:b,class:"px-3 py-2 text-gray-600 hover:text-gray-800",title:w.$t("taskList.clearFilters"),"aria-label":w.$t("taskList.clearFilters")},[...C[17]||(C[17]=[c("i",{class:"fas fa-times"},null,-1)])],8,y1)])])]),c("div",_1,[c("div",w1,[c("div",x1,[c("input",{type:"checkbox",checked:f.value,indeterminate:d.value,onChange:$,class:"form-checkbox h-5 w-5 text-blue-500 rounded focus:ring-blue-500 mr-2",title:w.$t("taskList.selectAll")},null,40,k1),c("span",S1,m(w.$t("taskList.selectAll")),1),c("span",$1,m(w.$t("taskList.selected"))+" "+m(r.value.length)+" / "+m(o.value.length),1)]),c("div",E1,[C[18]||(C[18]=c("i",{class:"fas fa-tasks text-blue-600 mr-1"},null,-1)),c("span",null,m(w.$t("taskList.total"))+": "+m(o.value.length),1)]),c("div",C1,[C[19]||(C[19]=c("i",{class:"fas fa-clock text-yellow-500 mr-1"},null,-1)),c("span",null,m(w.$t("taskList.pending"))+": "+m(l.value.queueLength),1)]),c("div",L1,[C[20]||(C[20]=c("i",{class:"fas fa-download text-green-500 mr-1"},null,-1)),c("span",null,m(w.$t("taskList.downloading"))+": "+m(l.value.activeDownloads.length),1)])])]),c("div",T1,[ne("",!0),(G(!0),Y(Ge,null,go(o.value,P=>(G(),Ft(e1,{key:P.url,task:P,"is-selected":r.value.includes(P.url),onToggleSelect:K=>S(P.url),onShowDetail:K=>v(P),onPreview:K=>E(P.url),onLocalPlay:K=>R(P),onPause:K=>_(P.url),onResume:K=>x(P.url),onDelete:K=>L(P.url)},null,8,["task","is-selected","onToggleSelect","onShowDetail","onPreview","onLocalPlay","onPause","onResume","onDelete"]))),128)),o.value.length===0?(G(),Ft(n1,{key:1,onNewDownload:C[8]||(C[8]=P=>w.$emit("new-download"))})):ne("",!0)])]))}}),P1={class:"p-1 md:p-2"},A1={key:0,class:"text-red-600 font-medium mb-2 whitespace-pre-line"},D1={class:"text-gray-600 whitespace-pre-line"},N1=Ae({__name:"Download",setup(e){const{t}=qe(),n=Pn(),s=Ds(),o=lt("showGlobalNewDownload"),r=X(!1),l=X(!1),a=X(!1),i=X(!1),u=X(null),f=X([]),d=X(null),p=X(""),b=X(""),$=X(""),S=X(null);Mt(async()=>{const{connect:B}=qr(s.token||"");B();const F=Object.keys(n.tasks).length;if(F===0)try{console.log("[Download] store 中没有任务,开始获取任务列表...");const Z=await sm();console.log("[Download] 获取到的任务数据:",Z),Z&&typeof Z=="object"&&Object.keys(Z).length>0?(n.setTasks(Z),console.log("[Download] 任务数据已设置到 store,任务数量:",Object.keys(Z).length)):console.log("[Download] 获取到的任务数据为空,保留现有数据")}catch(Z){console.error("[Download] 获取任务列表失败:",Z)}else console.log(`[Download] store 中已有 ${F} 个任务,跳过获取`);K()});function D(){o&&o()}async function _(B){const Z=await rm(B==="all"?["all"]:B,B==="all");Z.code||(he({text:Z.message||t("toast.pauseSuccess"),type:"success"}),Array.isArray(B)&&B===n.selectedTasks&&n.clearSelection())}async function x(B){const Z=await lm(B==="all"?["all"]:B,B==="all");Z.code||(he({text:Z.message||t("toast.resumeSuccess"),type:"success"}),Array.isArray(B)&&B===n.selectedTasks&&n.clearSelection())}function L(B){B.length&&(f.value=B,l.value=!0)}async function v(B){const F=await Lc(f.value,B.deleteCache,B.deleteVideo);F.code||(he({text:F.message||t("toast.deleteSuccess"),type:"success"}),n.deleteTasks(f.value),f.value===n.selectedTasks&&n.clearSelection()),f.value=[]}async function E(){const B=await im();B.code?he({text:B.message||t("toast.clearQueueFailed"),type:"error"}):he({text:B.message||t("toast.clearQueueSuccess"),type:"success"})}function R(B){u.value=B,r.value=!0}function w(B){const{task:F,url:Z}=B;if(F.status==="error"){b.value=F.errmsg?t("confirm.playError",{error:F.errmsg}):"",p.value=t("confirm.playConfirmMessage"),d.value={task:F,url:Z},a.value=!0;return}P(Z,F)}function C(){d.value&&(P(d.value.url,d.value.task),d.value=null)}function P(B,F){$.value=B,S.value=F||null,i.value=!0}function K(){if(window.electron){const B=window.electron.ipc;B.on("message",F=>{typeof F.data=="string"?he({text:F.data,type:"info"}):console.log(F.data)}),B.on("downloadProgress",F=>{console.log("downloadProgress",F)})}}return(B,F)=>(G(),Ft(Ns,{onNewDownload:D},{default:Ot(()=>[c("div",P1,[_e(I1,{onNewDownload:D,onPause:_,onResume:x,onDelete:L,onClearQueue:E,onShowDetail:R,onLocalPlay:w}),_e(su,{visible:r.value,task:u.value,onClose:F[0]||(F[0]=Z=>r.value=!1)},null,8,["visible","task"]),_e(ou,{visible:l.value,count:f.value.length,onClose:F[1]||(F[1]=Z=>l.value=!1),onConfirm:v},null,8,["visible","count"]),_e(ru,{visible:a.value,title:B.$t("confirm.play"),onClose:F[2]||(F[2]=Z=>a.value=!1),onConfirm:C},{default:Ot(()=>[b.value?(G(),Y("p",A1,m(b.value),1)):ne("",!0),c("p",D1,m(p.value),1)]),_:1},8,["visible","title"]),_e(lu,{visible:i.value,"initial-url":$.value,"initial-task":S.value,onClose:F[3]||(F[3]=Z=>i.value=!1)},null,8,["visible","initial-url","initial-task"])])]),_:1}))}}),R1=["m3u8","mp4","mkv","avi","mov","wmv","flv","webm","m4v","m3u","m4a","aac","flac","ape","mp3","wav","ogg","wma"];function au(){return R1}function O1(){const e=au();return new RegExp(`\\.(${e.join("|")})(\\?|$|#)`,"i")}function Ka(e){try{const t=new URL(e);return`${t.protocol}//${t.host}${t.pathname}`}catch{return e}}function F1(e){if(!e||typeof e!="string"||!e.startsWith("http"))return!1;const t=e.toLowerCase();return!!(O1().test(t)||t.includes(".m3u8"))}function qa(e){if(!e||typeof e!="string")return"media";const t=e.toLowerCase(),n=au();for(const s of n)if(new RegExp(`\\.${s}(\\?|$|#)`,"i").test(t))return s;return/m3u8/i.test(t)?"m3u8":"media"}function M1(e){if(!e||typeof e!="string")return null;try{const t=new URL(e);for(const[n,s]of t.searchParams.entries()){if(!s)continue;const o=decodeURIComponent(s);if(F1(o))return o}}catch{}return null}const U1={key:0,class:"web-browser-container border border-gray-300 rounded-lg p-4 bg-white"},V1={class:"flex items-center justify-between mb-3"},j1={class:"text-lg font-semibold text-gray-800"},W1={class:"flex gap-2"},H1={class:"flex gap-2 mb-3"},B1=["placeholder","disabled"],G1=["disabled"],K1={key:0,class:"mb-3 p-2 bg-gray-50 rounded border border-gray-200"},q1={class:"flex items-center gap-2 mb-2"},z1=["disabled","title"],Y1=["disabled","title"],X1=["title"],Q1=["title"],J1={key:0,class:"text-xs text-gray-500"},Z1={key:1,class:"mb-3 p-3 bg-red-50 border border-red-200 rounded text-red-700 text-sm"},ex={key:2,class:"mt-4"},tx={class:"flex items-center justify-between mb-2"},nx={class:"flex items-center gap-3"},sx={class:"text-sm font-semibold text-gray-700"},ox={class:"flex items-center gap-1 text-sm text-gray-600 cursor-pointer"},rx=["checked"],lx={key:0,class:"text-sm text-blue-600 font-medium"},ax={class:"flex gap-2"},ix={class:"m3u8-list-container border border-gray-200 rounded-lg overflow-hidden overflow-y-auto"},cx={class:"flex items-start gap-3"},ux=["checked","onChange"],fx=["onClick"],dx={class:"flex items-center gap-2 mb-1"},px=["title"],mx=["title"],hx=["title"],gx=["title"],bx={class:"flex flex-col gap-2 ml-2"},vx=["onClick"],yx=["onClick","title"],_x={key:3,class:"text-sm text-gray-500 text-center py-4"},wx=Ae({__name:"WebBrowser",props:{visible:{type:Boolean}},emits:["batch-download"],setup(e,{emit:t}){const{t:n}=qe(),s=t,o=ue(()=>nu.isElectron),r=X(""),l=X(!1),a=X(""),i=X(""),u=X(""),f=X(!1),d=X(!1),p=X(!1),b=X([]),$=X(new Set);function S(){const H=r.value.trim();if(!H){he({text:n("webBrowser.enterUrl"),type:"error"});return}if(!/^https?:\/\//.test(H)){he({text:n("webBrowser.enterValidUrl"),type:"error"});return}if(!o.value){he({text:n("webBrowser.electronOnly"),type:"error"});return}l.value=!0,a.value="",i.value="",u.value=H,f.value=!0,window.electron?.ipc.send("web-browser:load",H)}function D(){o.value&&window.electron?.ipc.send("web-browser:stop"),l.value=!1}function _(){b.value=[],$.value.clear()}function x(H){if(H<0||H>=b.value.length)return;b.value.splice(H,1);const oe=new Set;$.value.forEach(me=>{me<H?oe.add(me):me>H&&oe.add(me-1)}),$.value=oe}function L(H){s("batch-download",[H])}function v(H){return $.value.has(H)}function E(H){$.value.has(H)?$.value.delete(H):$.value.add(H)}function R(H){H.target.checked?$.value=new Set(b.value.map((me,$e)=>$e)):$.value.clear()}const w=ue(()=>b.value.length>0&&$.value.size===b.value.length),C=ue(()=>$.value.size);function P(){if($.value.size===0){he({text:n("webBrowser.selectAtLeastOne"),type:"error"});return}const H=Array.from($.value).map(oe=>b.value[oe]).map(oe=>({url:oe.url,title:oe.title}));s("batch-download",H),$.value.clear()}function K(H){H.url=M1(H.url)||H.url;const oe=Ka(H.url),me=b.value.find(z=>Ka(z.url)===oe);if(me)if(!me.title)me.title=H.title||i.value||"";else return;const $e={url:H.url,title:H.title||i.value||"",pageUrl:H.pageUrl||u.value};let M=!1;for(let z=0;z<b.value.length;z++){const q=b.value[z];if(q.url.toLowerCase().endsWith(".m3u8")){const te=q.url.lastIndexOf("/");if(te!==-1){const ce=q.url.substring(0,te+1);if(H.url.includes(ce)){b.value[z].url=$e.url,b.value[z].title||(b.value[z].title=$e.title),M=!0;break}}}}M||b.value.push($e),he({text:n("webBrowser.newVideoFound",{title:H.title||n("webBrowser.unnamedVideo")}),type:"success"})}function B(H){i.value=H,b.value.forEach(oe=>{oe.title||(oe.title=H)})}function F(H){u.value=H}function Z(H){u.value=H.url}function Te(){f.value=!1,u.value="",i.value="",d.value=!1,p.value=!1}function Fe(H){d.value=H.canGoBack,p.value=H.canGoForward}function ge(){o.value&&(window.electron?.ipc.send("web-browser:show"),f.value=!0)}function le(){o.value&&(window.electron?.ipc.send("web-browser:hide"),f.value=!1)}function pe(){o.value&&window.electron?.ipc.send("web-browser:go-back")}function Me(){o.value&&window.electron?.ipc.send("web-browser:go-forward")}function it(){o.value&&window.electron?.ipc.send("web-browser:reload")}function Ye(H){l.value=H.loading,H.loading||(b.value.length===0?he({text:n("webBrowser.pageLoadCompleteNoVideos"),type:"info"}):he({text:n("webBrowser.pageLoadComplete",{count:b.value.length}),type:"success"}))}function je(H){a.value=`${n("error.requestFailed")}: ${H.description||`${n("error.unknownError")} ${H.code}`}`,l.value=!1,he({text:a.value,type:"error"})}return Mt(()=>{if(o.value&&window.electron){const H=window.electron.ipc;H.on("web-browser:m3u8-found",K),H.on("web-browser:page-title",B),H.on("web-browser:loading",Ye),H.on("web-browser:error",je),H.on("web-browser:url-changed",F),H.on("web-browser:navigation",Z),H.on("web-browser:closed",Te),H.on("web-browser:navigation-state",Fe)}}),Tn(()=>{if(o.value&&window.electron){const H=window.electron.ipc;H.removeAllListeners("web-browser:m3u8-found"),H.removeAllListeners("web-browser:page-title"),H.removeAllListeners("web-browser:loading"),H.removeAllListeners("web-browser:error"),H.removeAllListeners("web-browser:url-changed"),H.removeAllListeners("web-browser:navigation"),H.removeAllListeners("web-browser:closed"),H.removeAllListeners("web-browser:navigation-state")}}),(H,oe)=>o.value?(G(),Y("div",U1,[c("div",V1,[c("h3",j1,[oe[2]||(oe[2]=c("i",{class:"fas fa-globe mr-2"},null,-1)),ae(m(H.$t("webBrowser.title")),1)]),c("div",W1,[f.value?(G(),Y("button",{key:0,onClick:le,class:"px-3 py-1 bg-gray-500 text-white rounded hover:bg-gray-600 text-sm"},[oe[3]||(oe[3]=c("i",{class:"fas fa-eye-slash mr-1"},null,-1)),ae(m(H.$t("webBrowser.hideBrowser")),1)])):u.value?(G(),Y("button",{key:1,onClick:ge,class:"px-3 py-1 bg-green-500 text-white rounded hover:bg-green-600 text-sm"},[oe[4]||(oe[4]=c("i",{class:"fas fa-eye mr-1"},null,-1)),ae(m(H.$t("webBrowser.showBrowser")),1)])):ne("",!0),l.value?(G(),Y("button",{key:2,onClick:D,class:"px-3 py-1 bg-red-500 text-white rounded hover:bg-red-600 text-sm"},[oe[5]||(oe[5]=c("i",{class:"fas fa-stop mr-1"},null,-1)),ae(m(H.$t("webBrowser.stop")),1)])):ne("",!0)])]),c("div",H1,[De(c("input",{"onUpdate:modelValue":oe[0]||(oe[0]=me=>r.value=me),type:"text",placeholder:H.$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:l.value,onKeyup:Wr(S,["enter"])},null,40,B1),[[nt,r.value]]),c("button",{onClick:S,disabled:l.value||!r.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(l.value?H.$t("webBrowser.loading"):H.$t("webBrowser.load")),9,G1)]),u.value?(G(),Y("div",K1,[c("div",q1,[c("button",{onClick:pe,disabled:!d.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:H.$t("common.back")},[...oe[6]||(oe[6]=[c("i",{class:"fas fa-arrow-left"},null,-1)])],8,z1),c("button",{onClick:Me,disabled:!p.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:H.$t("common.forward")},[...oe[7]||(oe[7]=[c("i",{class:"fas fa-arrow-right"},null,-1)])],8,Y1),c("button",{onClick:it,class:"px-2 py-1 bg-white border border-gray-300 rounded hover:bg-gray-50",title:H.$t("common.refresh")},[...oe[8]||(oe[8]=[c("i",{class:"fas fa-sync-alt"},null,-1)])],8,X1),c("div",{class:"flex-1 text-xs text-gray-600 truncate ml-2",title:u.value},[oe[9]||(oe[9]=c("i",{class:"fas fa-link mr-1"},null,-1)),ae(m(u.value),1)],8,Q1)]),i.value?(G(),Y("div",J1,[oe[10]||(oe[10]=c("i",{class:"fas fa-file-alt mr-1"},null,-1)),ae(m(i.value),1)])):ne("",!0)])):ne("",!0),a.value?(G(),Y("div",Z1,[oe[11]||(oe[11]=c("i",{class:"fas fa-exclamation-circle mr-2"},null,-1)),ae(m(a.value),1)])):ne("",!0),b.value.length>0?(G(),Y("div",ex,[c("div",tx,[c("div",nx,[c("h4",sx,m(H.$t("webBrowser.foundVideos",{count:b.value.length})),1),c("label",ox,[c("input",{type:"checkbox",checked:w.value,onChange:R,class:"rounded border-gray-300 text-blue-600 focus:ring-blue-500"},null,40,rx),c("span",null,m(H.$t("download.selectAll")),1)]),C.value>0?(G(),Y("span",lx,m(H.$t("download.selected"))+" "+m(C.value),1)):ne("",!0)]),c("div",ax,[C.value>0?(G(),Y("button",{key:0,onClick:P,class:"px-3 py-1 bg-green-500 text-white rounded hover:bg-green-600 text-sm"},m(H.$t("download.batchDownload"))+" ("+m(C.value)+") ",1)):ne("",!0),c("button",{onClick:_,class:"text-sm text-gray-500 hover:text-gray-700"},m(H.$t("webBrowser.clearList")),1)])]),c("div",ix,[(G(!0),Y(Ge,null,go(b.value,(me,$e)=>(G(),Y("div",{key:$e,class:Xe(["p-3 border-b border-gray-100 hover:bg-gray-50 transition-colors",{"bg-blue-50":v($e)}])},[c("div",cx,[c("input",{type:"checkbox",checked:v($e),onChange:M=>E($e),onClick:oe[1]||(oe[1]=Xt(()=>{},["stop"])),class:"mt-1 rounded border-gray-300 text-blue-600 focus:ring-blue-500"},null,40,ux),c("div",{class:"flex-1 min-w-0 cursor-pointer",onClick:M=>L(me)},[c("div",dx,[c("div",{class:"text-sm font-medium text-gray-800 truncate",title:me.title},m(me.title||H.$t("webBrowser.unnamedVideo")),9,px),c("span",{class:"text-xs px-2 py-0.5 bg-blue-100 text-blue-700 rounded",title:ve(qa)(me.url)},m(ve(qa)(me.url).toUpperCase()),9,mx)]),c("div",{class:"text-xs text-gray-500 truncate",title:me.url},m(me.url),9,hx),me.pageUrl&&me.pageUrl!==u.value?(G(),Y("div",{key:0,class:"text-xs text-gray-400 mt-1 truncate",title:me.pageUrl},m(H.$t("webBrowser.source"))+": "+m(me.pageUrl),9,gx)):ne("",!0)],8,fx),c("div",bx,[c("button",{onClick:Xt(M=>L(me),["stop"]),class:"px-3 py-1 bg-blue-500 text-white rounded hover:bg-blue-600 text-sm whitespace-nowrap"},m(H.$t("webBrowser.download")),9,vx),c("button",{onClick:Xt(M=>x($e),["stop"]),class:"px-3 py-1 bg-red-500 text-white rounded hover:bg-red-600 text-sm whitespace-nowrap",title:H.$t("common.delete")},[...oe[12]||(oe[12]=[c("i",{class:"fas fa-trash"},null,-1)])],8,yx)])])],2))),128))])])):!l.value&&r.value?(G(),Y("div",_x,m(H.$t("webBrowser.noVideos")),1)):ne("",!0)])):ne("",!0)}}),xx=Eo(wx,[["__scopeId","data-v-64486f5d"]]),kx={class:"p-1 md:p-2"},Sx=Ae({__name:"WebBrowser",setup(e){const t=lt("showGlobalNewDownload");function n(s){const o=s.map(r=>r.title?`${r.url} | ${r.title}`:r.url).join(`
|
|
29
|
+
`);t&&t({url:o})}return(s,o)=>(G(),Ft(Ns,null,{default:Ot(()=>[c("div",kx,[_e(xx,{onBatchDownload:n})])]),_:1}))}}),$x=Jp({history:Ip(),routes:[{path:"/",redirect:"/page/download"},{path:"/page/download",name:"download",component:N1},{path:"/page/web-browser",name:"web-browser",component:Sx},{path:"/page/completed",name:"completed",component:A_},{path:"/page/config",name:"config",component:Ew},{path:"/page/about",name:"about",component:Hv}]});function Ex(e=""){const t=window;if(Array.isArray(t._hmt)&&t._hmt.length>0)return;t._hmt=[];const n=document.createElement("script");n.src=`https://hm.baidu.com/hm.js?${e||"0b21eda331ac9677a4c546dea88616d0"}`;const s=document.getElementsByTagName("script")[0];s.parentNode?.insertBefore(n,s)}const Co=Md(ab),Cx=jd();Co.use(Cx);Co.use($x);Co.use(fb);Co.mount("#app");Ex();
|