pac-proxy-cli 1.1.13 → 1.2.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 +15 -0
- package/dist/assets/index-CFoGlW0m.css +1 -0
- package/dist/assets/index-DN6Yf8E7.js +28 -0
- package/dist/index.html +2 -2
- package/lib/config-cli.js +709 -0
- package/lib/index.js +70 -0
- package/lib/local-store.js +3 -3
- package/lib/pac-file.js +3 -2
- package/lib/pac-match.js +7 -5
- package/lib/proxy-server.js +12 -0
- package/lib/sslocal-manager.js +51 -14
- package/package.json +4 -2
- package/dist/assets/index-CmIDvBkA.js +0 -28
- package/dist/assets/index-QepWtMiX.css +0 -1
|
@@ -1,28 +0,0 @@
|
|
|
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)}})();/**
|
|
2
|
-
* @vue/shared v3.5.31
|
|
3
|
-
* (c) 2018-present Yuxi (Evan) You and Vue contributors
|
|
4
|
-
* @license MIT
|
|
5
|
-
**/function ao(e){const t=Object.create(null);for(const n of e.split(","))t[n]=1;return n=>n in t}const pe={},nn=[],dt=()=>{},Ur=()=>!1,fs=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&(e.charCodeAt(2)>122||e.charCodeAt(2)<97),ds=e=>e.startsWith("onUpdate:"),Re=Object.assign,co=(e,t)=>{const n=e.indexOf(t);n>-1&&e.splice(n,1)},Ai=Object.prototype.hasOwnProperty,ce=(e,t)=>Ai.call(e,t),q=Array.isArray,sn=e=>Bn(e)==="[object Map]",pn=e=>Bn(e)==="[object Set]",Io=e=>Bn(e)==="[object Date]",Z=e=>typeof e=="function",xe=e=>typeof e=="string",ht=e=>typeof e=="symbol",ue=e=>e!==null&&typeof e=="object",Br=e=>(ue(e)||Z(e))&&Z(e.then)&&Z(e.catch),Hr=Object.prototype.toString,Bn=e=>Hr.call(e),Ti=e=>Bn(e).slice(8,-1),Fr=e=>Bn(e)==="[object Object]",uo=e=>xe(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,wn=ao(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),ps=e=>{const t=Object.create(null);return n=>t[n]||(t[n]=e(n))},Ri=/-\w/g,Be=ps(e=>e.replace(Ri,t=>t.slice(1).toUpperCase())),Pi=/\B([A-Z])/g,Jt=ps(e=>e.replace(Pi,"-$1").toLowerCase()),hs=ps(e=>e.charAt(0).toUpperCase()+e.slice(1)),Rs=ps(e=>e?`on${hs(e)}`:""),ut=(e,t)=>!Object.is(e,t),Jn=(e,...t)=>{for(let n=0;n<e.length;n++)e[n](...t)},jr=(e,t,n,s=!1)=>{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,writable:s,value:n})},gs=e=>{const t=parseFloat(e);return isNaN(t)?e:t},Oi=e=>{const t=xe(e)?Number(e):NaN;return isNaN(t)?e:t};let Mo;const ms=()=>Mo||(Mo=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});function vs(e){if(q(e)){const t={};for(let n=0;n<e.length;n++){const s=e[n],o=xe(s)?Mi(s):vs(s);if(o)for(const r in o)t[r]=o[r]}return t}else if(xe(e)||ue(e))return e}const ki=/;(?![^(]*\))/g,Ni=/:([^]+)/,Ii=/\/\*[^]*?\*\//g;function Mi(e){const t={};return e.replace(Ii,"").split(ki).forEach(n=>{if(n){const s=n.split(Ni);s.length>1&&(t[s[0].trim()]=s[1].trim())}}),t}function be(e){let t="";if(xe(e))t=e;else if(q(e))for(let n=0;n<e.length;n++){const s=be(e[n]);s&&(t+=s+" ")}else if(ue(e))for(const n in e)e[n]&&(t+=n+" ");return t.trim()}const $i="itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly",Li=ao($i);function Gr(e){return!!e||e===""}function Di(e,t){if(e.length!==t.length)return!1;let n=!0;for(let s=0;n&&s<e.length;s++)n=Dt(e[s],t[s]);return n}function Dt(e,t){if(e===t)return!0;let n=Io(e),s=Io(t);if(n||s)return n&&s?e.getTime()===t.getTime():!1;if(n=ht(e),s=ht(t),n||s)return e===t;if(n=q(e),s=q(t),n||s)return n&&s?Di(e,t):!1;if(n=ue(e),s=ue(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 i=e.hasOwnProperty(l),a=t.hasOwnProperty(l);if(i&&!a||!i&&a||!Dt(e[l],t[l]))return!1}}return String(e)===String(t)}function fo(e,t){return e.findIndex(n=>Dt(n,t))}const Kr=e=>!!(e&&e.__v_isRef===!0),z=e=>xe(e)?e:e==null?"":q(e)||ue(e)&&(e.toString===Hr||!Z(e.toString))?Kr(e)?z(e.value):JSON.stringify(e,Wr,2):String(e),Wr=(e,t)=>Kr(t)?Wr(e,t.value):sn(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((n,[s,o],r)=>(n[Ps(s,r)+" =>"]=o,n),{})}:pn(t)?{[`Set(${t.size})`]:[...t.values()].map(n=>Ps(n))}:ht(t)?Ps(t):ue(t)&&!q(t)&&!Fr(t)?String(t):t,Ps=(e,t="")=>{var n;return ht(e)?`Symbol(${(n=e.description)!=null?n:t})`:e};/**
|
|
6
|
-
* @vue/reactivity v3.5.31
|
|
7
|
-
* (c) 2018-present Yuxi (Evan) You and Vue contributors
|
|
8
|
-
* @license MIT
|
|
9
|
-
**/let Fe;class Vi{constructor(t=!1){this.detached=t,this._active=!0,this._on=0,this.effects=[],this.cleanups=[],this._isPaused=!1,this.__v_skip=!0,this.parent=Fe,!t&&Fe&&(this.index=(Fe.scopes||(Fe.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=Fe;try{return Fe=this,t()}finally{Fe=n}}}on(){++this._on===1&&(this.prevScope=Fe,Fe=this)}off(){this._on>0&&--this._on===0&&(Fe=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 Ui(){return Fe}let me;const Os=new WeakSet;class zr{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,Fe&&Fe.active&&Fe.effects.push(this)}pause(){this.flags|=64}resume(){this.flags&64&&(this.flags&=-65,Os.has(this)&&(Os.delete(this),this.trigger()))}notify(){this.flags&2&&!(this.flags&32)||this.flags&8||Jr(this)}run(){if(!(this.flags&1))return this.fn();this.flags|=2,$o(this),Qr(this);const t=me,n=Ye;me=this,Ye=!0;try{return this.fn()}finally{Yr(this),me=t,Ye=n,this.flags&=-3}}stop(){if(this.flags&1){for(let t=this.deps;t;t=t.nextDep)go(t);this.deps=this.depsTail=void 0,$o(this),this.onStop&&this.onStop(),this.flags&=-2}}trigger(){this.flags&64?Os.add(this):this.scheduler?this.scheduler():this.runIfDirty()}runIfDirty(){Gs(this)&&this.run()}get dirty(){return Gs(this)}}let qr=0,xn,Cn;function Jr(e,t=!1){if(e.flags|=8,t){e.next=Cn,Cn=e;return}e.next=xn,xn=e}function po(){qr++}function ho(){if(--qr>0)return;if(Cn){let t=Cn;for(Cn=void 0;t;){const n=t.next;t.next=void 0,t.flags&=-9,t=n}}let e;for(;xn;){let t=xn;for(xn=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 Qr(e){for(let t=e.deps;t;t=t.nextDep)t.version=-1,t.prevActiveLink=t.dep.activeLink,t.dep.activeLink=t}function Yr(e){let t,n=e.depsTail,s=n;for(;s;){const o=s.prevDep;s.version===-1?(s===n&&(n=o),go(s),Bi(s)):t=s,s.dep.activeLink=s.prevActiveLink,s.prevActiveLink=void 0,s=o}e.deps=t,e.depsTail=n}function Gs(e){for(let t=e.deps;t;t=t.nextDep)if(t.dep.version!==t.version||t.dep.computed&&(Xr(t.dep.computed)||t.dep.version!==t.version))return!0;return!!e._dirty}function Xr(e){if(e.flags&4&&!(e.flags&16)||(e.flags&=-17,e.globalVersion===kn)||(e.globalVersion=kn,!e.isSSR&&e.flags&128&&(!e.deps&&!e._dirty||!Gs(e))))return;e.flags|=2;const t=e.dep,n=me,s=Ye;me=e,Ye=!0;try{Qr(e);const o=e.fn(e._value);(t.version===0||ut(o,e._value))&&(e.flags|=128,e._value=o,t.version++)}catch(o){throw t.version++,o}finally{me=n,Ye=s,Yr(e),e.flags&=-3}}function go(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)go(r,!0)}!t&&!--n.sc&&n.map&&n.map.delete(n.key)}function Bi(e){const{prevDep:t,nextDep:n}=e;t&&(t.nextDep=n,e.prevDep=void 0),n&&(n.prevDep=t,e.nextDep=void 0)}let Ye=!0;const Zr=[];function Ct(){Zr.push(Ye),Ye=!1}function St(){const e=Zr.pop();Ye=e===void 0?!0:e}function $o(e){const{cleanup:t}=e;if(e.cleanup=void 0,t){const n=me;me=void 0;try{t()}finally{me=n}}}let kn=0;class Hi{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 mo{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(!me||!Ye||me===this.computed)return;let n=this.activeLink;if(n===void 0||n.sub!==me)n=this.activeLink=new Hi(me,this),me.deps?(n.prevDep=me.depsTail,me.depsTail.nextDep=n,me.depsTail=n):me.deps=me.depsTail=n,el(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=me.depsTail,n.nextDep=void 0,me.depsTail.nextDep=n,me.depsTail=n,me.deps===n&&(me.deps=s)}return n}trigger(t){this.version++,kn++,this.notify(t)}notify(t){po();try{for(let n=this.subs;n;n=n.prevSub)n.sub.notify()&&n.sub.dep.notify()}finally{ho()}}}function el(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)el(s)}const n=e.dep.subs;n!==e&&(e.prevSub=n,n&&(n.nextSub=e)),e.dep.subs=e}}const Ks=new WeakMap,Wt=Symbol(""),Ws=Symbol(""),Nn=Symbol("");function Me(e,t,n){if(Ye&&me){let s=Ks.get(e);s||Ks.set(e,s=new Map);let o=s.get(n);o||(s.set(n,o=new mo),o.map=s,o.key=n),o.track()}}function bt(e,t,n,s,o,r){const l=Ks.get(e);if(!l){kn++;return}const i=a=>{a&&a.trigger()};if(po(),t==="clear")l.forEach(i);else{const a=q(e),c=a&&uo(n);if(a&&n==="length"){const f=Number(s);l.forEach((d,g)=>{(g==="length"||g===Nn||!ht(g)&&g>=f)&&i(d)})}else switch((n!==void 0||l.has(void 0))&&i(l.get(n)),c&&i(l.get(Nn)),t){case"add":a?c&&i(l.get("length")):(i(l.get(Wt)),sn(e)&&i(l.get(Ws)));break;case"delete":a||(i(l.get(Wt)),sn(e)&&i(l.get(Ws)));break;case"set":sn(e)&&i(l.get(Wt));break}}ho()}function Xt(e){const t=ie(e);return t===e?t:(Me(t,"iterate",Nn),qe(e)?t:t.map(Xe))}function ys(e){return Me(e=ie(e),"iterate",Nn),e}function at(e,t){return Et(e)?an(zt(e)?Xe(t):t):Xe(t)}const Fi={__proto__:null,[Symbol.iterator](){return ks(this,Symbol.iterator,e=>at(this,e))},concat(...e){return Xt(this).concat(...e.map(t=>q(t)?Xt(t):t))},entries(){return ks(this,"entries",e=>(e[1]=at(this,e[1]),e))},every(e,t){return mt(this,"every",e,t,void 0,arguments)},filter(e,t){return mt(this,"filter",e,t,n=>n.map(s=>at(this,s)),arguments)},find(e,t){return mt(this,"find",e,t,n=>at(this,n),arguments)},findIndex(e,t){return mt(this,"findIndex",e,t,void 0,arguments)},findLast(e,t){return mt(this,"findLast",e,t,n=>at(this,n),arguments)},findLastIndex(e,t){return mt(this,"findLastIndex",e,t,void 0,arguments)},forEach(e,t){return mt(this,"forEach",e,t,void 0,arguments)},includes(...e){return Ns(this,"includes",e)},indexOf(...e){return Ns(this,"indexOf",e)},join(e){return Xt(this).join(e)},lastIndexOf(...e){return Ns(this,"lastIndexOf",e)},map(e,t){return mt(this,"map",e,t,void 0,arguments)},pop(){return mn(this,"pop")},push(...e){return mn(this,"push",e)},reduce(e,...t){return Lo(this,"reduce",e,t)},reduceRight(e,...t){return Lo(this,"reduceRight",e,t)},shift(){return mn(this,"shift")},some(e,t){return mt(this,"some",e,t,void 0,arguments)},splice(...e){return mn(this,"splice",e)},toReversed(){return Xt(this).toReversed()},toSorted(e){return Xt(this).toSorted(e)},toSpliced(...e){return Xt(this).toSpliced(...e)},unshift(...e){return mn(this,"unshift",e)},values(){return ks(this,"values",e=>at(this,e))}};function ks(e,t,n){const s=ys(e),o=s[t]();return s!==e&&!qe(e)&&(o._next=o.next,o.next=()=>{const r=o._next();return r.done||(r.value=n(r.value)),r}),o}const ji=Array.prototype;function mt(e,t,n,s,o,r){const l=ys(e),i=l!==e&&!qe(e),a=l[t];if(a!==ji[t]){const d=a.apply(e,r);return i?Xe(d):d}let c=n;l!==e&&(i?c=function(d,g){return n.call(this,at(e,d),g,e)}:n.length>2&&(c=function(d,g){return n.call(this,d,g,e)}));const f=a.call(l,c,s);return i&&o?o(f):f}function Lo(e,t,n,s){const o=ys(e),r=o!==e&&!qe(e);let l=n,i=!1;o!==e&&(r?(i=s.length===0,l=function(c,f,d){return i&&(i=!1,c=at(e,c)),n.call(this,c,at(e,f),d,e)}):n.length>3&&(l=function(c,f,d){return n.call(this,c,f,d,e)}));const a=o[t](l,...s);return i?at(e,a):a}function Ns(e,t,n){const s=ie(e);Me(s,"iterate",Nn);const o=s[t](...n);return(o===-1||o===!1)&&_o(n[0])?(n[0]=ie(n[0]),s[t](...n)):o}function mn(e,t,n=[]){Ct(),po();const s=ie(e)[t].apply(e,n);return ho(),St(),s}const Gi=ao("__proto__,__v_isRef,__isVue"),tl=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!=="arguments"&&e!=="caller").map(e=>Symbol[e]).filter(ht));function Ki(e){ht(e)||(e=String(e));const t=ie(this);return Me(t,"has",e),t.hasOwnProperty(e)}class nl{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?ta:ll:r?rl:ol).get(t)||Object.getPrototypeOf(t)===Object.getPrototypeOf(s)?t:void 0;const l=q(t);if(!o){let a;if(l&&(a=Fi[n]))return a;if(n==="hasOwnProperty")return Ki}const i=Reflect.get(t,n,Le(t)?t:s);if((ht(n)?tl.has(n):Gi(n))||(o||Me(t,"get",n),r))return i;if(Le(i)){const a=l&&uo(n)?i:i.value;return o&&ue(a)?ts(a):a}return ue(i)?o?ts(i):hn(i):i}}class sl extends nl{constructor(t=!1){super(!1,t)}set(t,n,s,o){let r=t[n];const l=q(t)&&uo(n);if(!this._isShallow){const c=Et(r);if(!qe(s)&&!Et(s)&&(r=ie(r),s=ie(s)),!l&&Le(r)&&!Le(s))return c||(r.value=s),!0}const i=l?Number(n)<t.length:ce(t,n),a=Reflect.set(t,n,s,Le(t)?t:o);return t===ie(o)&&(i?ut(s,r)&&bt(t,"set",n,s):bt(t,"add",n,s)),a}deleteProperty(t,n){const s=ce(t,n);t[n];const o=Reflect.deleteProperty(t,n);return o&&s&&bt(t,"delete",n,void 0),o}has(t,n){const s=Reflect.has(t,n);return(!ht(n)||!tl.has(n))&&Me(t,"has",n),s}ownKeys(t){return Me(t,"iterate",q(t)?"length":Wt),Reflect.ownKeys(t)}}class Wi extends nl{constructor(t=!1){super(!0,t)}set(t,n){return!0}deleteProperty(t,n){return!0}}const zi=new sl,qi=new Wi,Ji=new sl(!0);const zs=e=>e,Gn=e=>Reflect.getPrototypeOf(e);function Qi(e,t,n){return function(...s){const o=this.__v_raw,r=ie(o),l=sn(r),i=e==="entries"||e===Symbol.iterator&&l,a=e==="keys"&&l,c=o[e](...s),f=n?zs:t?an:Xe;return!t&&Me(r,"iterate",a?Ws:Wt),Re(Object.create(c),{next(){const{value:d,done:g}=c.next();return g?{value:d,done:g}:{value:i?[f(d[0]),f(d[1])]:f(d),done:g}}})}}function Kn(e){return function(...t){return e==="delete"?!1:e==="clear"?void 0:this}}function Yi(e,t){const n={get(o){const r=this.__v_raw,l=ie(r),i=ie(o);e||(ut(o,i)&&Me(l,"get",o),Me(l,"get",i));const{has:a}=Gn(l),c=t?zs:e?an:Xe;if(a.call(l,o))return c(r.get(o));if(a.call(l,i))return c(r.get(i));r!==l&&r.get(o)},get size(){const o=this.__v_raw;return!e&&Me(ie(o),"iterate",Wt),o.size},has(o){const r=this.__v_raw,l=ie(r),i=ie(o);return e||(ut(o,i)&&Me(l,"has",o),Me(l,"has",i)),o===i?r.has(o):r.has(o)||r.has(i)},forEach(o,r){const l=this,i=l.__v_raw,a=ie(i),c=t?zs:e?an:Xe;return!e&&Me(a,"iterate",Wt),i.forEach((f,d)=>o.call(r,c(f),c(d),l))}};return Re(n,e?{add:Kn("add"),set:Kn("set"),delete:Kn("delete"),clear:Kn("clear")}:{add(o){const r=ie(this),l=Gn(r),i=ie(o),a=!t&&!qe(o)&&!Et(o)?i:o;return l.has.call(r,a)||ut(o,a)&&l.has.call(r,o)||ut(i,a)&&l.has.call(r,i)||(r.add(a),bt(r,"add",a,a)),this},set(o,r){!t&&!qe(r)&&!Et(r)&&(r=ie(r));const l=ie(this),{has:i,get:a}=Gn(l);let c=i.call(l,o);c||(o=ie(o),c=i.call(l,o));const f=a.call(l,o);return l.set(o,r),c?ut(r,f)&&bt(l,"set",o,r):bt(l,"add",o,r),this},delete(o){const r=ie(this),{has:l,get:i}=Gn(r);let a=l.call(r,o);a||(o=ie(o),a=l.call(r,o)),i&&i.call(r,o);const c=r.delete(o);return a&&bt(r,"delete",o,void 0),c},clear(){const o=ie(this),r=o.size!==0,l=o.clear();return r&&bt(o,"clear",void 0,void 0),l}}),["keys","values","entries",Symbol.iterator].forEach(o=>{n[o]=Qi(o,e,t)}),n}function vo(e,t){const n=Yi(e,t);return(s,o,r)=>o==="__v_isReactive"?!e:o==="__v_isReadonly"?e:o==="__v_raw"?s:Reflect.get(ce(n,o)&&o in s?n:s,o,r)}const Xi={get:vo(!1,!1)},Zi={get:vo(!1,!0)},ea={get:vo(!0,!1)};const ol=new WeakMap,rl=new WeakMap,ll=new WeakMap,ta=new WeakMap;function na(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function sa(e){return e.__v_skip||!Object.isExtensible(e)?0:na(Ti(e))}function hn(e){return Et(e)?e:yo(e,!1,zi,Xi,ol)}function il(e){return yo(e,!1,Ji,Zi,rl)}function ts(e){return yo(e,!0,qi,ea,ll)}function yo(e,t,n,s,o){if(!ue(e)||e.__v_raw&&!(t&&e.__v_isReactive))return e;const r=sa(e);if(r===0)return e;const l=o.get(e);if(l)return l;const i=new Proxy(e,r===2?s:n);return o.set(e,i),i}function zt(e){return Et(e)?zt(e.__v_raw):!!(e&&e.__v_isReactive)}function Et(e){return!!(e&&e.__v_isReadonly)}function qe(e){return!!(e&&e.__v_isShallow)}function _o(e){return e?!!e.__v_raw:!1}function ie(e){const t=e&&e.__v_raw;return t?ie(t):e}function oa(e){return!ce(e,"__v_skip")&&Object.isExtensible(e)&&jr(e,"__v_skip",!0),e}const Xe=e=>ue(e)?hn(e):e,an=e=>ue(e)?ts(e):e;function Le(e){return e?e.__v_isRef===!0:!1}function ee(e){return al(e,!1)}function ra(e){return al(e,!0)}function al(e,t){return Le(e)?e:new la(e,t)}class la{constructor(t,n){this.dep=new mo,this.__v_isRef=!0,this.__v_isShallow=!1,this._rawValue=n?t:ie(t),this._value=n?t:Xe(t),this.__v_isShallow=n}get value(){return this.dep.track(),this._value}set value(t){const n=this._rawValue,s=this.__v_isShallow||qe(t)||Et(t);t=s?t:ie(t),ut(t,n)&&(this._rawValue=t,this._value=s?t:Xe(t),this.dep.trigger())}}function pt(e){return Le(e)?e.value:e}const ia={get:(e,t,n)=>t==="__v_raw"?e:pt(Reflect.get(e,t,n)),set:(e,t,n,s)=>{const o=e[t];return Le(o)&&!Le(n)?(o.value=n,!0):Reflect.set(e,t,n,s)}};function cl(e){return zt(e)?e:new Proxy(e,ia)}class aa{constructor(t,n,s){this.fn=t,this.setter=n,this._value=void 0,this.dep=new mo(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=kn-1,this.next=void 0,this.effect=this,this.__v_isReadonly=!n,this.isSSR=s}notify(){if(this.flags|=16,!(this.flags&8)&&me!==this)return Jr(this,!0),!0}get value(){const t=this.dep.track();return Xr(this),t&&(t.version=this.dep.version),this._value}set value(t){this.setter&&this.setter(t)}}function ca(e,t,n=!1){let s,o;return Z(e)?s=e:(s=e.get,o=e.set),new aa(s,o,n)}const Wn={},ns=new WeakMap;let Gt;function ua(e,t=!1,n=Gt){if(n){let s=ns.get(n);s||ns.set(n,s=[]),s.push(e)}}function fa(e,t,n=pe){const{immediate:s,deep:o,once:r,scheduler:l,augmentJob:i,call:a}=n,c=b=>o?b:qe(b)||o===!1||o===0?wt(b,1):wt(b);let f,d,g,m,_=!1,y=!1;if(Le(e)?(d=()=>e.value,_=qe(e)):zt(e)?(d=()=>c(e),_=!0):q(e)?(y=!0,_=e.some(b=>zt(b)||qe(b)),d=()=>e.map(b=>{if(Le(b))return b.value;if(zt(b))return c(b);if(Z(b))return a?a(b,2):b()})):Z(e)?t?d=a?()=>a(e,2):e:d=()=>{if(g){Ct();try{g()}finally{St()}}const b=Gt;Gt=f;try{return a?a(e,3,[m]):e(m)}finally{Gt=b}}:d=dt,t&&o){const b=d,I=o===!0?1/0:o;d=()=>wt(b(),I)}const T=Ui(),P=()=>{f.stop(),T&&T.active&&co(T.effects,f)};if(r&&t){const b=t;t=(...I)=>{b(...I),P()}}let R=y?new Array(e.length).fill(Wn):Wn;const A=b=>{if(!(!(f.flags&1)||!f.dirty&&!b))if(t){const I=f.run();if(o||_||(y?I.some((J,j)=>ut(J,R[j])):ut(I,R))){g&&g();const J=Gt;Gt=f;try{const j=[I,R===Wn?void 0:y&&R[0]===Wn?[]:R,m];R=I,a?a(t,3,j):t(...j)}finally{Gt=J}}}else f.run()};return i&&i(A),f=new zr(d),f.scheduler=l?()=>l(A,!1):A,m=b=>ua(b,!1,f),g=f.onStop=()=>{const b=ns.get(f);if(b){if(a)a(b,4);else for(const I of b)I();ns.delete(f)}},t?s?A(!0):R=f.run():l?l(A.bind(null,!0),!0):f.run(),P.pause=f.pause.bind(f),P.resume=f.resume.bind(f),P.stop=P,P}function wt(e,t=1/0,n){if(t<=0||!ue(e)||e.__v_skip||(n=n||new Map,(n.get(e)||0)>=t))return e;if(n.set(e,t),t--,Le(e))wt(e.value,t,n);else if(q(e))for(let s=0;s<e.length;s++)wt(e[s],t,n);else if(pn(e)||sn(e))e.forEach(s=>{wt(s,t,n)});else if(Fr(e)){for(const s in e)wt(e[s],t,n);for(const s of Object.getOwnPropertySymbols(e))Object.prototype.propertyIsEnumerable.call(e,s)&&wt(e[s],t,n)}return e}/**
|
|
10
|
-
* @vue/runtime-core v3.5.31
|
|
11
|
-
* (c) 2018-present Yuxi (Evan) You and Vue contributors
|
|
12
|
-
* @license MIT
|
|
13
|
-
**/function Hn(e,t,n,s){try{return s?e(...s):e()}catch(o){_s(o,t,n)}}function Ze(e,t,n,s){if(Z(e)){const o=Hn(e,t,n,s);return o&&Br(o)&&o.catch(r=>{_s(r,t,n)}),o}if(q(e)){const o=[];for(let r=0;r<e.length;r++)o.push(Ze(e[r],t,n,s));return o}}function _s(e,t,n,s=!0){const o=t?t.vnode:null,{errorHandler:r,throwUnhandledErrorInProduction:l}=t&&t.appContext.config||pe;if(t){let i=t.parent;const a=t.proxy,c=`https://vuejs.org/error-reference/#runtime-${n}`;for(;i;){const f=i.ec;if(f){for(let d=0;d<f.length;d++)if(f[d](e,a,c)===!1)return}i=i.parent}if(r){Ct(),Hn(r,null,10,[e,a,c]),St();return}}da(e,n,o,s,l)}function da(e,t,n,s=!0,o=!1){if(o)throw e;console.error(e)}const Ue=[];let it=-1;const on=[];let Mt=null,Zt=0;const ul=Promise.resolve();let ss=null;function bo(e){const t=ss||ul;return e?t.then(this?e.bind(this):e):t}function pa(e){let t=it+1,n=Ue.length;for(;t<n;){const s=t+n>>>1,o=Ue[s],r=In(o);r<e||r===e&&o.flags&2?t=s+1:n=s}return t}function wo(e){if(!(e.flags&1)){const t=In(e),n=Ue[Ue.length-1];!n||!(e.flags&2)&&t>=In(n)?Ue.push(e):Ue.splice(pa(t),0,e),e.flags|=1,fl()}}function fl(){ss||(ss=ul.then(pl))}function ha(e){q(e)?on.push(...e):Mt&&e.id===-1?Mt.splice(Zt+1,0,e):e.flags&1||(on.push(e),e.flags|=1),fl()}function Do(e,t,n=it+1){for(;n<Ue.length;n++){const s=Ue[n];if(s&&s.flags&2){if(e&&s.id!==e.uid)continue;Ue.splice(n,1),n--,s.flags&4&&(s.flags&=-2),s(),s.flags&4||(s.flags&=-2)}}}function dl(e){if(on.length){const t=[...new Set(on)].sort((n,s)=>In(n)-In(s));if(on.length=0,Mt){Mt.push(...t);return}for(Mt=t,Zt=0;Zt<Mt.length;Zt++){const n=Mt[Zt];n.flags&4&&(n.flags&=-2),n.flags&8||n(),n.flags&=-2}Mt=null,Zt=0}}const In=e=>e.id==null?e.flags&2?-1:1/0:e.id;function pl(e){try{for(it=0;it<Ue.length;it++){const t=Ue[it];t&&!(t.flags&8)&&(t.flags&4&&(t.flags&=-2),Hn(t,t.i,t.i?15:14),t.flags&4||(t.flags&=-2))}}finally{for(;it<Ue.length;it++){const t=Ue[it];t&&(t.flags&=-2)}it=-1,Ue.length=0,dl(),ss=null,(Ue.length||on.length)&&pl()}}let Ge=null,hl=null;function os(e){const t=Ge;return Ge=e,hl=e&&e.type.__scopeId||null,t}function ft(e,t=Ge,n){if(!t||e._n)return e;const s=(...o)=>{s._d&&is(-1);const r=os(t);let l;try{l=e(...o)}finally{os(r),s._d&&is(1)}return l};return s._n=!0,s._c=!0,s._d=!0,s}function Te(e,t){if(Ge===null)return e;const n=Ss(Ge),s=e.dirs||(e.dirs=[]);for(let o=0;o<t.length;o++){let[r,l,i,a=pe]=t[o];r&&(Z(r)&&(r={mounted:r,updated:r}),r.deep&&wt(l),s.push({dir:r,instance:n,value:l,oldValue:void 0,arg:i,modifiers:a}))}return e}function Ht(e,t,n,s){const o=e.dirs,r=t&&t.dirs;for(let l=0;l<o.length;l++){const i=o[l];r&&(i.oldValue=r[l].value);let a=i.dir[s];a&&(Ct(),Ze(a,n,8,[e.el,i,e,t]),St())}}function Qn(e,t){if($e){let n=$e.provides;const s=$e.parent&&$e.parent.provides;s===n&&(n=$e.provides=Object.create(s)),n[e]=t}}function Je(e,t,n=!1){const s=zl();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&&Z(t)?t.call(s&&s.proxy):t}}const ga=Symbol.for("v-scx"),ma=()=>Je(ga);function rn(e,t,n){return gl(e,t,n)}function gl(e,t,n=pe){const{immediate:s,deep:o,flush:r,once:l}=n,i=Re({},n),a=t&&s||!t&&r!=="post";let c;if(Vn){if(r==="sync"){const m=ma();c=m.__watcherHandles||(m.__watcherHandles=[])}else if(!a){const m=()=>{};return m.stop=dt,m.resume=dt,m.pause=dt,m}}const f=$e;i.call=(m,_,y)=>Ze(m,f,_,y);let d=!1;r==="post"?i.scheduler=m=>{Ie(m,f&&f.suspense)}:r!=="sync"&&(d=!0,i.scheduler=(m,_)=>{_?m():wo(m)}),i.augmentJob=m=>{t&&(m.flags|=4),d&&(m.flags|=2,f&&(m.id=f.uid,m.i=f))};const g=fa(e,t,i);return Vn&&(c?c.push(g):a&&g()),g}function va(e,t,n){const s=this.proxy,o=xe(e)?e.includes(".")?ml(s,e):()=>s[e]:e.bind(s,s);let r;Z(t)?r=t:(r=t.handler,n=t);const l=Fn(this),i=gl(o,r.bind(s),n);return l(),i}function ml(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 vl=Symbol("_vte"),ya=e=>e.__isTeleport,Sn=e=>e&&(e.disabled||e.disabled===""),_a=e=>e&&(e.defer||e.defer===""),Vo=e=>typeof SVGElement<"u"&&e instanceof SVGElement,Uo=e=>typeof MathMLElement=="function"&&e instanceof MathMLElement,qs=(e,t)=>{const n=e&&e.to;return xe(n)?t?t(n):null:n},yl={name:"Teleport",__isTeleport:!0,process(e,t,n,s,o,r,l,i,a,c){const{mc:f,pc:d,pbc:g,o:{insert:m,querySelector:_,createText:y,createComment:T}}=c,P=Sn(t.props);let{shapeFlag:R,children:A,dynamicChildren:b}=t;if(e==null){const I=t.el=y(""),J=t.anchor=y("");m(I,n,s),m(J,n,s);const j=(V,X)=>{R&16&&f(A,V,X,o,r,l,i,a)},re=()=>{const V=t.target=qs(t.props,_),X=Js(V,t,y,m);V&&(l!=="svg"&&Vo(V)?l="svg":l!=="mathml"&&Uo(V)&&(l="mathml"),o&&o.isCE&&(o.ce._teleportTargets||(o.ce._teleportTargets=new Set)).add(V),P||(j(V,X),Yn(t,!1)))};P&&(j(n,J),Yn(t,!0)),_a(t.props)||r&&r.pendingBranch?(t.el.__isMounted=!1,Ie(()=>{t.el.__isMounted===!1&&(re(),delete t.el.__isMounted)},r)):re()}else{t.el=e.el,t.targetStart=e.targetStart;const I=t.anchor=e.anchor,J=t.target=e.target,j=t.targetAnchor=e.targetAnchor;if(e.el.__isMounted===!1){Ie(()=>{yl.process(e,t,n,s,o,r,l,i,a,c)},r);return}const re=Sn(e.props),V=re?n:J,X=re?I:j;if(l==="svg"||Vo(J)?l="svg":(l==="mathml"||Uo(J))&&(l="mathml"),b?(g(e.dynamicChildren,b,V,o,r,l,i),So(e,t,!0)):a||d(e,t,V,X,o,r,l,i,!1),P)re?t.props&&e.props&&t.props.to!==e.props.to&&(t.props.to=e.props.to):zn(t,n,I,c,1);else if((t.props&&t.props.to)!==(e.props&&e.props.to)){const te=t.target=qs(t.props,_);te&&zn(t,te,null,c,0)}else re&&zn(t,J,j,c,1);Yn(t,P)}},remove(e,t,n,{um:s,o:{remove:o}},r){const{shapeFlag:l,children:i,anchor:a,targetStart:c,targetAnchor:f,target:d,props:g}=e;if(d&&(o(c),o(f)),r&&o(a),l&16){const m=r||!Sn(g);for(let _=0;_<i.length;_++){const y=i[_];s(y,t,n,m,!!y.dynamicChildren)}}},move:zn,hydrate:ba};function zn(e,t,n,{o:{insert:s},m:o},r=2){r===0&&s(e.targetAnchor,t,n);const{el:l,anchor:i,shapeFlag:a,children:c,props:f}=e,d=r===2;if(d&&s(l,t,n),(!d||Sn(f))&&a&16)for(let g=0;g<c.length;g++)o(c[g],t,n,2);d&&s(i,t,n)}function ba(e,t,n,s,o,r,{o:{nextSibling:l,parentNode:i,querySelector:a,insert:c,createText:f}},d){function g(T,P){let R=P;for(;R;){if(R&&R.nodeType===8){if(R.data==="teleport start anchor")t.targetStart=R;else if(R.data==="teleport anchor"){t.targetAnchor=R,T._lpa=t.targetAnchor&&l(t.targetAnchor);break}}R=l(R)}}function m(T,P){P.anchor=d(l(T),P,i(T),n,s,o,r)}const _=t.target=qs(t.props,a),y=Sn(t.props);if(_){const T=_._lpa||_.firstChild;t.shapeFlag&16&&(y?(m(e,t),g(_,T),t.targetAnchor||Js(_,t,f,c,i(e)===_?e:null)):(t.anchor=l(e),g(_,T),t.targetAnchor||Js(_,t,f,c),d(T&&l(T),t,_,n,s,o,r))),Yn(t,y)}else y&&t.shapeFlag&16&&(m(e,t),t.targetStart=e,t.targetAnchor=l(e));return t.anchor&&l(t.anchor)}const wa=yl;function Yn(e,t){const n=e.ctx;if(n&&n.ut){let s,o;for(t?(s=e.el,o=e.anchor):(s=e.targetStart,o=e.targetAnchor);s&&s!==o;)s.nodeType===1&&s.setAttribute("data-v-owner",n.uid),s=s.nextSibling;n.ut()}}function Js(e,t,n,s,o=null){const r=t.targetStart=n(""),l=t.targetAnchor=n("");return r[vl]=l,e&&(s(r,e,o),s(l,e,o)),l}const Nt=Symbol("_leaveCb"),vn=Symbol("_enterCb");function xa(){const e={isMounted:!1,isLeaving:!1,isUnmounting:!1,leavingVNodes:new Map};return Ut(()=>{e.isMounted=!0}),Tl(()=>{e.isUnmounting=!0}),e}const ze=[Function,Array],Ca={mode:String,appear:Boolean,persisted:Boolean,onBeforeEnter:ze,onEnter:ze,onAfterEnter:ze,onEnterCancelled:ze,onBeforeLeave:ze,onLeave:ze,onAfterLeave:ze,onLeaveCancelled:ze,onBeforeAppear:ze,onAppear:ze,onAfterAppear:ze,onAppearCancelled:ze};function Sa(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 Qs(e,t,n,s,o){const{appear:r,mode:l,persisted:i=!1,onBeforeEnter:a,onEnter:c,onAfterEnter:f,onEnterCancelled:d,onBeforeLeave:g,onLeave:m,onAfterLeave:_,onLeaveCancelled:y,onBeforeAppear:T,onAppear:P,onAfterAppear:R,onAppearCancelled:A}=t,b=String(e.key),I=Sa(n,e),J=(V,X)=>{V&&Ze(V,s,9,X)},j=(V,X)=>{const te=X[1];J(V,X),q(V)?V.every(L=>L.length<=1)&&te():V.length<=1&&te()},re={mode:l,persisted:i,beforeEnter(V){let X=a;if(!n.isMounted)if(r)X=T||a;else return;V[Nt]&&V[Nt](!0);const te=I[b];te&&en(e,te)&&te.el[Nt]&&te.el[Nt](),J(X,[V])},enter(V){if(I[b]===e)return;let X=c,te=f,L=d;if(!n.isMounted)if(r)X=P||c,te=R||f,L=A||d;else return;let se=!1;V[vn]=G=>{se||(se=!0,G?J(L,[V]):J(te,[V]),re.delayedLeave&&re.delayedLeave(),V[vn]=void 0)};const Ce=V[vn].bind(null,!1);X?j(X,[V,Ce]):Ce()},leave(V,X){const te=String(e.key);if(V[vn]&&V[vn](!0),n.isUnmounting)return X();J(g,[V]);let L=!1;V[Nt]=Ce=>{L||(L=!0,X(),Ce?J(y,[V]):J(_,[V]),V[Nt]=void 0,I[te]===e&&delete I[te])};const se=V[Nt].bind(null,!1);I[te]=e,m?j(m,[V,se]):se()},clone(V){return Qs(V,t,n,s)}};return re}function Mn(e,t){e.shapeFlag&6&&e.component?(e.transition=t,Mn(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 _l(e,t=!1,n){let s=[],o=0;for(let r=0;r<e.length;r++){let l=e[r];const i=n==null?l.key:String(n)+String(l.key!=null?l.key:r);l.type===Ae?(l.patchFlag&128&&o++,s=s.concat(_l(l.children,t,i))):(t||l.type!==At)&&s.push(i!=null?qt(l,{key:i}):l)}if(o>1)for(let r=0;r<s.length;r++)s[r].patchFlag=-2;return s}function bl(e,t){return Z(e)?Re({name:e.name},t,{setup:e}):e}function wl(e){e.ids=[e.ids[0]+e.ids[2]+++"-",0,0]}function Bo(e,t){let n;return!!((n=Object.getOwnPropertyDescriptor(e,t))&&!n.configurable)}const rs=new WeakMap;function En(e,t,n,s,o=!1){if(q(e)){e.forEach((y,T)=>En(y,t&&(q(t)?t[T]:t),n,s,o));return}if(An(s)&&!o){s.shapeFlag&512&&s.type.__asyncResolved&&s.component.subTree.component&&En(e,t,n,s.component.subTree);return}const r=s.shapeFlag&4?Ss(s.component):s.el,l=o?null:r,{i,r:a}=e,c=t&&t.r,f=i.refs===pe?i.refs={}:i.refs,d=i.setupState,g=ie(d),m=d===pe?Ur:y=>Bo(f,y)?!1:ce(g,y),_=(y,T)=>!(T&&Bo(f,T));if(c!=null&&c!==a){if(Ho(t),xe(c))f[c]=null,m(c)&&(d[c]=null);else if(Le(c)){const y=t;_(c,y.k)&&(c.value=null),y.k&&(f[y.k]=null)}}if(Z(a))Hn(a,i,12,[l,f]);else{const y=xe(a),T=Le(a);if(y||T){const P=()=>{if(e.f){const R=y?m(a)?d[a]:f[a]:_()||!e.k?a.value:f[e.k];if(o)q(R)&&co(R,r);else if(q(R))R.includes(r)||R.push(r);else if(y)f[a]=[r],m(a)&&(d[a]=f[a]);else{const A=[r];_(a,e.k)&&(a.value=A),e.k&&(f[e.k]=A)}}else y?(f[a]=l,m(a)&&(d[a]=l)):T&&(_(a,e.k)&&(a.value=l),e.k&&(f[e.k]=l))};if(l){const R=()=>{P(),rs.delete(e)};R.id=-1,rs.set(e,R),Ie(R,n)}else Ho(e),P()}}}function Ho(e){const t=rs.get(e);t&&(t.flags|=8,rs.delete(e))}ms().requestIdleCallback;ms().cancelIdleCallback;const An=e=>!!e.type.__asyncLoader,xl=e=>e.type.__isKeepAlive;function Cl(e,t){El(e,"a",t)}function Sl(e,t){El(e,"da",t)}function El(e,t,n=$e){const s=e.__wdc||(e.__wdc=()=>{let o=n;for(;o;){if(o.isDeactivated)return;o=o.parent}return e()});if(bs(t,s,n),n){let o=n.parent;for(;o&&o.parent;)xl(o.parent.vnode)&&Ea(s,t,n,o),o=o.parent}}function Ea(e,t,n,s){const o=bs(t,e,s,!0);ws(()=>{co(s[t],o)},n)}function bs(e,t,n=$e,s=!1){if(n){const o=n[e]||(n[e]=[]),r=t.__weh||(t.__weh=(...l)=>{Ct();const i=Fn(n),a=Ze(t,n,e,l);return i(),St(),a});return s?o.unshift(r):o.push(r),r}}const Tt=e=>(t,n=$e)=>{(!Vn||e==="sp")&&bs(e,(...s)=>t(...s),n)},Aa=Tt("bm"),Ut=Tt("m"),Ta=Tt("bu"),Al=Tt("u"),Tl=Tt("bum"),ws=Tt("um"),Ra=Tt("sp"),Pa=Tt("rtg"),Oa=Tt("rtc");function ka(e,t=$e){bs("ec",e,t)}const Na="components";function $n(e,t){return Ma(Na,e,!0,t)||e}const Ia=Symbol.for("v-ndc");function Ma(e,t,n=!0,s=!1){const o=Ge||$e;if(o){const r=o.type;{const i=_c(r,!1);if(i&&(i===t||i===Be(t)||i===hs(Be(t))))return r}const l=Fo(o[e]||r[e],t)||Fo(o.appContext[e],t);return!l&&s?r:l}}function Fo(e,t){return e&&(e[t]||e[Be(t)]||e[hs(Be(t))])}function Ln(e,t,n,s){let o;const r=n,l=q(e);if(l||xe(e)){const i=l&&zt(e);let a=!1,c=!1;i&&(a=!qe(e),c=Et(e),e=ys(e)),o=new Array(e.length);for(let f=0,d=e.length;f<d;f++)o[f]=t(a?c?an(Xe(e[f])):Xe(e[f]):e[f],f,void 0,r)}else if(typeof e=="number"){o=new Array(e);for(let i=0;i<e;i++)o[i]=t(i+1,i,void 0,r)}else if(ue(e))if(e[Symbol.iterator])o=Array.from(e,(i,a)=>t(i,a,void 0,r));else{const i=Object.keys(e);o=new Array(i.length);for(let a=0,c=i.length;a<c;a++){const f=i[a];o[a]=t(e[f],f,a,r)}}else o=[];return o}const Ys=e=>e?ql(e)?Ss(e):Ys(e.parent):null,Tn=Re(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=>Ys(e.parent),$root:e=>Ys(e.root),$host:e=>e.ce,$emit:e=>e.emit,$options:e=>Pl(e),$forceUpdate:e=>e.f||(e.f=()=>{wo(e.update)}),$nextTick:e=>e.n||(e.n=bo.bind(e.proxy)),$watch:e=>va.bind(e)}),Is=(e,t)=>e!==pe&&!e.__isScriptSetup&&ce(e,t),$a={get({_:e},t){if(t==="__v_skip")return!0;const{ctx:n,setupState:s,data:o,props:r,accessCache:l,type:i,appContext:a}=e;if(t[0]!=="$"){const g=l[t];if(g!==void 0)switch(g){case 1:return s[t];case 2:return o[t];case 4:return n[t];case 3:return r[t]}else{if(Is(s,t))return l[t]=1,s[t];if(o!==pe&&ce(o,t))return l[t]=2,o[t];if(ce(r,t))return l[t]=3,r[t];if(n!==pe&&ce(n,t))return l[t]=4,n[t];Xs&&(l[t]=0)}}const c=Tn[t];let f,d;if(c)return t==="$attrs"&&Me(e.attrs,"get",""),c(e);if((f=i.__cssModules)&&(f=f[t]))return f;if(n!==pe&&ce(n,t))return l[t]=4,n[t];if(d=a.config.globalProperties,ce(d,t))return d[t]},set({_:e},t,n){const{data:s,setupState:o,ctx:r}=e;return Is(o,t)?(o[t]=n,!0):s!==pe&&ce(s,t)?(s[t]=n,!0):ce(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,props:r,type:l}},i){let a;return!!(n[i]||e!==pe&&i[0]!=="$"&&ce(e,i)||Is(t,i)||ce(r,i)||ce(s,i)||ce(Tn,i)||ce(o.config.globalProperties,i)||(a=l.__cssModules)&&a[i])},defineProperty(e,t,n){return n.get!=null?e._.accessCache[t]=0:ce(n,"value")&&this.set(e,t,n.value,null),Reflect.defineProperty(e,t,n)}};function jo(e){return q(e)?e.reduce((t,n)=>(t[n]=null,t),{}):e}let Xs=!0;function La(e){const t=Pl(e),n=e.proxy,s=e.ctx;Xs=!1,t.beforeCreate&&Go(t.beforeCreate,e,"bc");const{data:o,computed:r,methods:l,watch:i,provide:a,inject:c,created:f,beforeMount:d,mounted:g,beforeUpdate:m,updated:_,activated:y,deactivated:T,beforeDestroy:P,beforeUnmount:R,destroyed:A,unmounted:b,render:I,renderTracked:J,renderTriggered:j,errorCaptured:re,serverPrefetch:V,expose:X,inheritAttrs:te,components:L,directives:se,filters:Ce}=t;if(c&&Da(c,s,null),l)for(const U in l){const ne=l[U];Z(ne)&&(s[U]=ne.bind(n))}if(o){const U=o.call(n,n);ue(U)&&(e.data=hn(U))}if(Xs=!0,r)for(const U in r){const ne=r[U],gt=Z(ne)?ne.bind(n,n):Z(ne.get)?ne.get.bind(n,n):dt,Pt=!Z(ne)&&Z(ne.set)?ne.set.bind(n):dt,tt=Se({get:gt,set:Pt});Object.defineProperty(s,U,{enumerable:!0,configurable:!0,get:()=>tt.value,set:He=>tt.value=He})}if(i)for(const U in i)Rl(i[U],s,n,U);if(a){const U=Z(a)?a.call(n):a;Reflect.ownKeys(U).forEach(ne=>{Qn(ne,U[ne])})}f&&Go(f,e,"c");function k(U,ne){q(ne)?ne.forEach(gt=>U(gt.bind(n))):ne&&U(ne.bind(n))}if(k(Aa,d),k(Ut,g),k(Ta,m),k(Al,_),k(Cl,y),k(Sl,T),k(ka,re),k(Oa,J),k(Pa,j),k(Tl,R),k(ws,b),k(Ra,V),q(X))if(X.length){const U=e.exposed||(e.exposed={});X.forEach(ne=>{Object.defineProperty(U,ne,{get:()=>n[ne],set:gt=>n[ne]=gt,enumerable:!0})})}else e.exposed||(e.exposed={});I&&e.render===dt&&(e.render=I),te!=null&&(e.inheritAttrs=te),L&&(e.components=L),se&&(e.directives=se),V&&wl(e)}function Da(e,t,n=dt){q(e)&&(e=Zs(e));for(const s in e){const o=e[s];let r;ue(o)?"default"in o?r=Je(o.from||s,o.default,!0):r=Je(o.from||s):r=Je(o),Le(r)?Object.defineProperty(t,s,{enumerable:!0,configurable:!0,get:()=>r.value,set:l=>r.value=l}):t[s]=r}}function Go(e,t,n){Ze(q(e)?e.map(s=>s.bind(t.proxy)):e.bind(t.proxy),t,n)}function Rl(e,t,n,s){let o=s.includes(".")?ml(n,s):()=>n[s];if(xe(e)){const r=t[e];Z(r)&&rn(o,r)}else if(Z(e))rn(o,e.bind(n));else if(ue(e))if(q(e))e.forEach(r=>Rl(r,t,n,s));else{const r=Z(e.handler)?e.handler.bind(n):t[e.handler];Z(r)&&rn(o,r,e)}}function Pl(e){const t=e.type,{mixins:n,extends:s}=t,{mixins:o,optionsCache:r,config:{optionMergeStrategies:l}}=e.appContext,i=r.get(t);let a;return i?a=i:!o.length&&!n&&!s?a=t:(a={},o.length&&o.forEach(c=>ls(a,c,l,!0)),ls(a,t,l)),ue(t)&&r.set(t,a),a}function ls(e,t,n,s=!1){const{mixins:o,extends:r}=t;r&&ls(e,r,n,!0),o&&o.forEach(l=>ls(e,l,n,!0));for(const l in t)if(!(s&&l==="expose")){const i=Va[l]||n&&n[l];e[l]=i?i(e[l],t[l]):t[l]}return e}const Va={data:Ko,props:Wo,emits:Wo,methods:bn,computed:bn,beforeCreate:De,created:De,beforeMount:De,mounted:De,beforeUpdate:De,updated:De,beforeDestroy:De,beforeUnmount:De,destroyed:De,unmounted:De,activated:De,deactivated:De,errorCaptured:De,serverPrefetch:De,components:bn,directives:bn,watch:Ba,provide:Ko,inject:Ua};function Ko(e,t){return t?e?function(){return Re(Z(e)?e.call(this,this):e,Z(t)?t.call(this,this):t)}:t:e}function Ua(e,t){return bn(Zs(e),Zs(t))}function Zs(e){if(q(e)){const t={};for(let n=0;n<e.length;n++)t[e[n]]=e[n];return t}return e}function De(e,t){return e?[...new Set([].concat(e,t))]:t}function bn(e,t){return e?Re(Object.create(null),e,t):t}function Wo(e,t){return e?q(e)&&q(t)?[...new Set([...e,...t])]:Re(Object.create(null),jo(e),jo(t??{})):t}function Ba(e,t){if(!e)return t;if(!t)return e;const n=Re(Object.create(null),e);for(const s in t)n[s]=De(e[s],t[s]);return n}function Ol(){return{app:null,config:{isNativeTag:Ur,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 Ha=0;function Fa(e,t){return function(s,o=null){Z(s)||(s=Re({},s)),o!=null&&!ue(o)&&(o=null);const r=Ol(),l=new WeakSet,i=[];let a=!1;const c=r.app={_uid:Ha++,_component:s,_props:o,_container:null,_context:r,_instance:null,version:wc,get config(){return r.config},set config(f){},use(f,...d){return l.has(f)||(f&&Z(f.install)?(l.add(f),f.install(c,...d)):Z(f)&&(l.add(f),f(c,...d))),c},mixin(f){return r.mixins.includes(f)||r.mixins.push(f),c},component(f,d){return d?(r.components[f]=d,c):r.components[f]},directive(f,d){return d?(r.directives[f]=d,c):r.directives[f]},mount(f,d,g){if(!a){const m=c._ceVNode||ve(s,o);return m.appContext=r,g===!0?g="svg":g===!1&&(g=void 0),e(m,f,g),a=!0,c._container=f,f.__vue_app__=c,Ss(m.component)}},onUnmount(f){i.push(f)},unmount(){a&&(Ze(i,c._instance,16),e(null,c._container),delete c._container.__vue_app__)},provide(f,d){return r.provides[f]=d,c},runWithContext(f){const d=ln;ln=c;try{return f()}finally{ln=d}}};return c}}let ln=null;const ja=(e,t)=>t==="modelValue"||t==="model-value"?e.modelModifiers:e[`${t}Modifiers`]||e[`${Be(t)}Modifiers`]||e[`${Jt(t)}Modifiers`];function Ga(e,t,...n){if(e.isUnmounted)return;const s=e.vnode.props||pe;let o=n;const r=t.startsWith("update:"),l=r&&ja(s,t.slice(7));l&&(l.trim&&(o=n.map(f=>xe(f)?f.trim():f)),l.number&&(o=n.map(gs)));let i,a=s[i=Rs(t)]||s[i=Rs(Be(t))];!a&&r&&(a=s[i=Rs(Jt(t))]),a&&Ze(a,e,6,o);const c=s[i+"Once"];if(c){if(!e.emitted)e.emitted={};else if(e.emitted[i])return;e.emitted[i]=!0,Ze(c,e,6,o)}}const Ka=new WeakMap;function kl(e,t,n=!1){const s=n?Ka:t.emitsCache,o=s.get(e);if(o!==void 0)return o;const r=e.emits;let l={},i=!1;if(!Z(e)){const a=c=>{const f=kl(c,t,!0);f&&(i=!0,Re(l,f))};!n&&t.mixins.length&&t.mixins.forEach(a),e.extends&&a(e.extends),e.mixins&&e.mixins.forEach(a)}return!r&&!i?(ue(e)&&s.set(e,null),null):(q(r)?r.forEach(a=>l[a]=null):Re(l,r),ue(e)&&s.set(e,l),l)}function xs(e,t){return!e||!fs(t)?!1:(t=t.slice(2).replace(/Once$/,""),ce(e,t[0].toLowerCase()+t.slice(1))||ce(e,Jt(t))||ce(e,t))}function zo(e){const{type:t,vnode:n,proxy:s,withProxy:o,propsOptions:[r],slots:l,attrs:i,emit:a,render:c,renderCache:f,props:d,data:g,setupState:m,ctx:_,inheritAttrs:y}=e,T=os(e);let P,R;try{if(n.shapeFlag&4){const b=o||s,I=b;P=ct(c.call(I,b,f,d,m,g,_)),R=i}else{const b=t;P=ct(b.length>1?b(d,{attrs:i,slots:l,emit:a}):b(d,null)),R=t.props?i:Wa(i)}}catch(b){Rn.length=0,_s(b,e,1),P=ve(At)}let A=P;if(R&&y!==!1){const b=Object.keys(R),{shapeFlag:I}=A;b.length&&I&7&&(r&&b.some(ds)&&(R=za(R,r)),A=qt(A,R,!1,!0))}return n.dirs&&(A=qt(A,null,!1,!0),A.dirs=A.dirs?A.dirs.concat(n.dirs):n.dirs),n.transition&&Mn(A,n.transition),P=A,os(T),P}const Wa=e=>{let t;for(const n in e)(n==="class"||n==="style"||fs(n))&&((t||(t={}))[n]=e[n]);return t},za=(e,t)=>{const n={};for(const s in e)(!ds(s)||!(s.slice(9)in t))&&(n[s]=e[s]);return n};function qa(e,t,n){const{props:s,children:o,component:r}=e,{props:l,children:i,patchFlag:a}=t,c=r.emitsOptions;if(t.dirs||t.transition)return!0;if(n&&a>=0){if(a&1024)return!0;if(a&16)return s?qo(s,l,c):!!l;if(a&8){const f=t.dynamicProps;for(let d=0;d<f.length;d++){const g=f[d];if(Nl(l,s,g)&&!xs(c,g))return!0}}}else return(o||i)&&(!i||!i.$stable)?!0:s===l?!1:s?l?qo(s,l,c):!0:!!l;return!1}function qo(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(Nl(t,e,r)&&!xs(n,r))return!0}return!1}function Nl(e,t,n){const s=e[n],o=t[n];return n==="style"&&ue(s)&&ue(o)?!Dt(s,o):s!==o}function Ja({vnode:e,parent:t,suspense:n},s){for(;t;){const o=t.subTree;if(o.suspense&&o.suspense.activeBranch===e&&(o.suspense.vnode.el=o.el=s,e=o),o===e)(e=t.vnode).el=s,t=t.parent;else break}n&&n.activeBranch===e&&(n.vnode.el=s)}const Il={},Ml=()=>Object.create(Il),$l=e=>Object.getPrototypeOf(e)===Il;function Qa(e,t,n,s=!1){const o={},r=Ml();e.propsDefaults=Object.create(null),Ll(e,t,o,r);for(const l in e.propsOptions[0])l in o||(o[l]=void 0);n?e.props=s?o:il(o):e.type.props?e.props=o:e.props=r,e.attrs=r}function Ya(e,t,n,s){const{props:o,attrs:r,vnode:{patchFlag:l}}=e,i=ie(o),[a]=e.propsOptions;let c=!1;if((s||l>0)&&!(l&16)){if(l&8){const f=e.vnode.dynamicProps;for(let d=0;d<f.length;d++){let g=f[d];if(xs(e.emitsOptions,g))continue;const m=t[g];if(a)if(ce(r,g))m!==r[g]&&(r[g]=m,c=!0);else{const _=Be(g);o[_]=eo(a,i,_,m,e,!1)}else m!==r[g]&&(r[g]=m,c=!0)}}}else{Ll(e,t,o,r)&&(c=!0);let f;for(const d in i)(!t||!ce(t,d)&&((f=Jt(d))===d||!ce(t,f)))&&(a?n&&(n[d]!==void 0||n[f]!==void 0)&&(o[d]=eo(a,i,d,void 0,e,!0)):delete o[d]);if(r!==i)for(const d in r)(!t||!ce(t,d))&&(delete r[d],c=!0)}c&&bt(e.attrs,"set","")}function Ll(e,t,n,s){const[o,r]=e.propsOptions;let l=!1,i;if(t)for(let a in t){if(wn(a))continue;const c=t[a];let f;o&&ce(o,f=Be(a))?!r||!r.includes(f)?n[f]=c:(i||(i={}))[f]=c:xs(e.emitsOptions,a)||(!(a in s)||c!==s[a])&&(s[a]=c,l=!0)}if(r){const a=ie(n),c=i||pe;for(let f=0;f<r.length;f++){const d=r[f];n[d]=eo(o,a,d,c[d],e,!ce(c,d))}}return l}function eo(e,t,n,s,o,r){const l=e[n];if(l!=null){const i=ce(l,"default");if(i&&s===void 0){const a=l.default;if(l.type!==Function&&!l.skipFactory&&Z(a)){const{propsDefaults:c}=o;if(n in c)s=c[n];else{const f=Fn(o);s=c[n]=a.call(null,t),f()}}else s=a;o.ce&&o.ce._setProp(n,s)}l[0]&&(r&&!i?s=!1:l[1]&&(s===""||s===Jt(n))&&(s=!0))}return s}const Xa=new WeakMap;function Dl(e,t,n=!1){const s=n?Xa:t.propsCache,o=s.get(e);if(o)return o;const r=e.props,l={},i=[];let a=!1;if(!Z(e)){const f=d=>{a=!0;const[g,m]=Dl(d,t,!0);Re(l,g),m&&i.push(...m)};!n&&t.mixins.length&&t.mixins.forEach(f),e.extends&&f(e.extends),e.mixins&&e.mixins.forEach(f)}if(!r&&!a)return ue(e)&&s.set(e,nn),nn;if(q(r))for(let f=0;f<r.length;f++){const d=Be(r[f]);Jo(d)&&(l[d]=pe)}else if(r)for(const f in r){const d=Be(f);if(Jo(d)){const g=r[f],m=l[d]=q(g)||Z(g)?{type:g}:Re({},g),_=m.type;let y=!1,T=!0;if(q(_))for(let P=0;P<_.length;++P){const R=_[P],A=Z(R)&&R.name;if(A==="Boolean"){y=!0;break}else A==="String"&&(T=!1)}else y=Z(_)&&_.name==="Boolean";m[0]=y,m[1]=T,(y||ce(m,"default"))&&i.push(d)}}const c=[l,i];return ue(e)&&s.set(e,c),c}function Jo(e){return e[0]!=="$"&&!wn(e)}const xo=e=>e==="_"||e==="_ctx"||e==="$stable",Co=e=>q(e)?e.map(ct):[ct(e)],Za=(e,t,n)=>{if(t._n)return t;const s=ft((...o)=>Co(t(...o)),n);return s._c=!1,s},Vl=(e,t,n)=>{const s=e._ctx;for(const o in e){if(xo(o))continue;const r=e[o];if(Z(r))t[o]=Za(o,r,s);else if(r!=null){const l=Co(r);t[o]=()=>l}}},Ul=(e,t)=>{const n=Co(t);e.slots.default=()=>n},Bl=(e,t,n)=>{for(const s in t)(n||!xo(s))&&(e[s]=t[s])},ec=(e,t,n)=>{const s=e.slots=Ml();if(e.vnode.shapeFlag&32){const o=t._;o?(Bl(s,t,n),n&&jr(s,"_",o,!0)):Vl(t,s)}else t&&Ul(e,t)},tc=(e,t,n)=>{const{vnode:s,slots:o}=e;let r=!0,l=pe;if(s.shapeFlag&32){const i=t._;i?n&&i===1?r=!1:Bl(o,t,n):(r=!t.$stable,Vl(t,o)),l=t}else t&&(Ul(e,t),l={default:1});if(r)for(const i in o)!xo(i)&&l[i]==null&&delete o[i]},Ie=lc;function nc(e){return sc(e)}function sc(e,t){const n=ms();n.__VUE__=!0;const{insert:s,remove:o,patchProp:r,createElement:l,createText:i,createComment:a,setText:c,setElementText:f,parentNode:d,nextSibling:g,setScopeId:m=dt,insertStaticContent:_}=e,y=(p,h,v,w=null,S=null,x=null,M=void 0,N=null,O=!!h.dynamicChildren)=>{if(p===h)return;p&&!en(p,h)&&(w=C(p),He(p,S,x,!0),p=null),h.patchFlag===-2&&(O=!1,h.dynamicChildren=null);const{type:E,ref:Q,shapeFlag:D}=h;switch(E){case Cs:T(p,h,v,w);break;case At:P(p,h,v,w);break;case Xn:p==null&&R(h,v,w,M);break;case Ae:L(p,h,v,w,S,x,M,N,O);break;default:D&1?I(p,h,v,w,S,x,M,N,O):D&6?se(p,h,v,w,S,x,M,N,O):(D&64||D&128)&&E.process(p,h,v,w,S,x,M,N,O,K)}Q!=null&&S?En(Q,p&&p.ref,x,h||p,!h):Q==null&&p&&p.ref!=null&&En(p.ref,null,x,p,!0)},T=(p,h,v,w)=>{if(p==null)s(h.el=i(h.children),v,w);else{const S=h.el=p.el;h.children!==p.children&&c(S,h.children)}},P=(p,h,v,w)=>{p==null?s(h.el=a(h.children||""),v,w):h.el=p.el},R=(p,h,v,w)=>{[p.el,p.anchor]=_(p.children,h,v,w,p.el,p.anchor)},A=({el:p,anchor:h},v,w)=>{let S;for(;p&&p!==h;)S=g(p),s(p,v,w),p=S;s(h,v,w)},b=({el:p,anchor:h})=>{let v;for(;p&&p!==h;)v=g(p),o(p),p=v;o(h)},I=(p,h,v,w,S,x,M,N,O)=>{if(h.type==="svg"?M="svg":h.type==="math"&&(M="mathml"),p==null)J(h,v,w,S,x,M,N,O);else{const E=p.el&&p.el._isVueCE?p.el:null;try{E&&E._beginPatch(),V(p,h,S,x,M,N,O)}finally{E&&E._endPatch()}}},J=(p,h,v,w,S,x,M,N)=>{let O,E;const{props:Q,shapeFlag:D,transition:W,dirs:Y}=p;if(O=p.el=l(p.type,x,Q&&Q.is,Q),D&8?f(O,p.children):D&16&&re(p.children,O,null,w,S,Ms(p,x),M,N),Y&&Ht(p,null,w,"created"),j(O,p,p.scopeId,M,w),Q){for(const de in Q)de!=="value"&&!wn(de)&&r(O,de,null,Q[de],x,w);"value"in Q&&r(O,"value",null,Q.value,x),(E=Q.onVnodeBeforeMount)&&rt(E,w,p)}Y&&Ht(p,null,w,"beforeMount");const le=oc(S,W);le&&W.beforeEnter(O),s(O,h,v),((E=Q&&Q.onVnodeMounted)||le||Y)&&Ie(()=>{try{E&&rt(E,w,p),le&&W.enter(O),Y&&Ht(p,null,w,"mounted")}finally{}},S)},j=(p,h,v,w,S)=>{if(v&&m(p,v),w)for(let x=0;x<w.length;x++)m(p,w[x]);if(S){let x=S.subTree;if(h===x||jl(x.type)&&(x.ssContent===h||x.ssFallback===h)){const M=S.vnode;j(p,M,M.scopeId,M.slotScopeIds,S.parent)}}},re=(p,h,v,w,S,x,M,N,O=0)=>{for(let E=O;E<p.length;E++){const Q=p[E]=N?_t(p[E]):ct(p[E]);y(null,Q,h,v,w,S,x,M,N)}},V=(p,h,v,w,S,x,M)=>{const N=h.el=p.el;let{patchFlag:O,dynamicChildren:E,dirs:Q}=h;O|=p.patchFlag&16;const D=p.props||pe,W=h.props||pe;let Y;if(v&&Ft(v,!1),(Y=W.onVnodeBeforeUpdate)&&rt(Y,v,h,p),Q&&Ht(h,p,v,"beforeUpdate"),v&&Ft(v,!0),(D.innerHTML&&W.innerHTML==null||D.textContent&&W.textContent==null)&&f(N,""),E?X(p.dynamicChildren,E,N,v,w,Ms(h,S),x):M||ne(p,h,N,null,v,w,Ms(h,S),x,!1),O>0){if(O&16)te(N,D,W,v,S);else if(O&2&&D.class!==W.class&&r(N,"class",null,W.class,S),O&4&&r(N,"style",D.style,W.style,S),O&8){const le=h.dynamicProps;for(let de=0;de<le.length;de++){const ge=le[de],Ee=D[ge],ke=W[ge];(ke!==Ee||ge==="value")&&r(N,ge,Ee,ke,S,v)}}O&1&&p.children!==h.children&&f(N,h.children)}else!M&&E==null&&te(N,D,W,v,S);((Y=W.onVnodeUpdated)||Q)&&Ie(()=>{Y&&rt(Y,v,h,p),Q&&Ht(h,p,v,"updated")},w)},X=(p,h,v,w,S,x,M)=>{for(let N=0;N<h.length;N++){const O=p[N],E=h[N],Q=O.el&&(O.type===Ae||!en(O,E)||O.shapeFlag&198)?d(O.el):v;y(O,E,Q,null,w,S,x,M,!0)}},te=(p,h,v,w,S)=>{if(h!==v){if(h!==pe)for(const x in h)!wn(x)&&!(x in v)&&r(p,x,h[x],null,S,w);for(const x in v){if(wn(x))continue;const M=v[x],N=h[x];M!==N&&x!=="value"&&r(p,x,N,M,S,w)}"value"in v&&r(p,"value",h.value,v.value,S)}},L=(p,h,v,w,S,x,M,N,O)=>{const E=h.el=p?p.el:i(""),Q=h.anchor=p?p.anchor:i("");let{patchFlag:D,dynamicChildren:W,slotScopeIds:Y}=h;Y&&(N=N?N.concat(Y):Y),p==null?(s(E,v,w),s(Q,v,w),re(h.children||[],v,Q,S,x,M,N,O)):D>0&&D&64&&W&&p.dynamicChildren&&p.dynamicChildren.length===W.length?(X(p.dynamicChildren,W,v,S,x,M,N),(h.key!=null||S&&h===S.subTree)&&So(p,h,!0)):ne(p,h,v,Q,S,x,M,N,O)},se=(p,h,v,w,S,x,M,N,O)=>{h.slotScopeIds=N,p==null?h.shapeFlag&512?S.ctx.activate(h,v,w,M,O):Ce(h,v,w,S,x,M,O):G(p,h,O)},Ce=(p,h,v,w,S,x,M)=>{const N=p.component=hc(p,w,S);if(xl(p)&&(N.ctx.renderer=K),gc(N,!1,M),N.asyncDep){if(S&&S.registerDep(N,k,M),!p.el){const O=N.subTree=ve(At);P(null,O,h,v),p.placeholder=O.el}}else k(N,p,h,v,S,x,M)},G=(p,h,v)=>{const w=h.component=p.component;if(qa(p,h,v))if(w.asyncDep&&!w.asyncResolved){U(w,h,v);return}else w.next=h,w.update();else h.el=p.el,w.vnode=h},k=(p,h,v,w,S,x,M)=>{const N=()=>{if(p.isMounted){let{next:D,bu:W,u:Y,parent:le,vnode:de}=p;{const st=Hl(p);if(st){D&&(D.el=de.el,U(p,D,M)),st.asyncDep.then(()=>{Ie(()=>{p.isUnmounted||E()},S)});return}}let ge=D,Ee;Ft(p,!1),D?(D.el=de.el,U(p,D,M)):D=de,W&&Jn(W),(Ee=D.props&&D.props.onVnodeBeforeUpdate)&&rt(Ee,le,D,de),Ft(p,!0);const ke=zo(p),nt=p.subTree;p.subTree=ke,y(nt,ke,d(nt.el),C(nt),p,S,x),D.el=ke.el,ge===null&&Ja(p,ke.el),Y&&Ie(Y,S),(Ee=D.props&&D.props.onVnodeUpdated)&&Ie(()=>rt(Ee,le,D,de),S)}else{let D;const{el:W,props:Y}=h,{bm:le,m:de,parent:ge,root:Ee,type:ke}=p,nt=An(h);Ft(p,!1),le&&Jn(le),!nt&&(D=Y&&Y.onVnodeBeforeMount)&&rt(D,ge,h),Ft(p,!0);{Ee.ce&&Ee.ce._hasShadowRoot()&&Ee.ce._injectChildStyle(ke,p.parent?p.parent.type:void 0);const st=p.subTree=zo(p);y(null,st,v,w,p,S,x),h.el=st.el}if(de&&Ie(de,S),!nt&&(D=Y&&Y.onVnodeMounted)){const st=h;Ie(()=>rt(D,ge,st),S)}(h.shapeFlag&256||ge&&An(ge.vnode)&&ge.vnode.shapeFlag&256)&&p.a&&Ie(p.a,S),p.isMounted=!0,h=v=w=null}};p.scope.on();const O=p.effect=new zr(N);p.scope.off();const E=p.update=O.run.bind(O),Q=p.job=O.runIfDirty.bind(O);Q.i=p,Q.id=p.uid,O.scheduler=()=>wo(Q),Ft(p,!0),E()},U=(p,h,v)=>{h.component=p;const w=p.vnode.props;p.vnode=h,p.next=null,Ya(p,h.props,w,v),tc(p,h.children,v),Ct(),Do(p),St()},ne=(p,h,v,w,S,x,M,N,O=!1)=>{const E=p&&p.children,Q=p?p.shapeFlag:0,D=h.children,{patchFlag:W,shapeFlag:Y}=h;if(W>0){if(W&128){Pt(E,D,v,w,S,x,M,N,O);return}else if(W&256){gt(E,D,v,w,S,x,M,N,O);return}}Y&8?(Q&16&&We(E,S,x),D!==E&&f(v,D)):Q&16?Y&16?Pt(E,D,v,w,S,x,M,N,O):We(E,S,x,!0):(Q&8&&f(v,""),Y&16&&re(D,v,w,S,x,M,N,O))},gt=(p,h,v,w,S,x,M,N,O)=>{p=p||nn,h=h||nn;const E=p.length,Q=h.length,D=Math.min(E,Q);let W;for(W=0;W<D;W++){const Y=h[W]=O?_t(h[W]):ct(h[W]);y(p[W],Y,v,null,S,x,M,N,O)}E>Q?We(p,S,x,!0,!1,D):re(h,v,w,S,x,M,N,O,D)},Pt=(p,h,v,w,S,x,M,N,O)=>{let E=0;const Q=h.length;let D=p.length-1,W=Q-1;for(;E<=D&&E<=W;){const Y=p[E],le=h[E]=O?_t(h[E]):ct(h[E]);if(en(Y,le))y(Y,le,v,null,S,x,M,N,O);else break;E++}for(;E<=D&&E<=W;){const Y=p[D],le=h[W]=O?_t(h[W]):ct(h[W]);if(en(Y,le))y(Y,le,v,null,S,x,M,N,O);else break;D--,W--}if(E>D){if(E<=W){const Y=W+1,le=Y<Q?h[Y].el:w;for(;E<=W;)y(null,h[E]=O?_t(h[E]):ct(h[E]),v,le,S,x,M,N,O),E++}}else if(E>W)for(;E<=D;)He(p[E],S,x,!0),E++;else{const Y=E,le=E,de=new Map;for(E=le;E<=W;E++){const je=h[E]=O?_t(h[E]):ct(h[E]);je.key!=null&&de.set(je.key,E)}let ge,Ee=0;const ke=W-le+1;let nt=!1,st=0;const gn=new Array(ke);for(E=0;E<ke;E++)gn[E]=0;for(E=Y;E<=D;E++){const je=p[E];if(Ee>=ke){He(je,S,x,!0);continue}let ot;if(je.key!=null)ot=de.get(je.key);else for(ge=le;ge<=W;ge++)if(gn[ge-le]===0&&en(je,h[ge])){ot=ge;break}ot===void 0?He(je,S,x,!0):(gn[ot-le]=E+1,ot>=st?st=ot:nt=!0,y(je,h[ot],v,null,S,x,M,N,O),Ee++)}const Oo=nt?rc(gn):nn;for(ge=Oo.length-1,E=ke-1;E>=0;E--){const je=le+E,ot=h[je],ko=h[je+1],No=je+1<Q?ko.el||Fl(ko):w;gn[E]===0?y(null,ot,v,No,S,x,M,N,O):nt&&(ge<0||E!==Oo[ge]?tt(ot,v,No,2):ge--)}}},tt=(p,h,v,w,S=null)=>{const{el:x,type:M,transition:N,children:O,shapeFlag:E}=p;if(E&6){tt(p.component.subTree,h,v,w);return}if(E&128){p.suspense.move(h,v,w);return}if(E&64){M.move(p,h,v,K);return}if(M===Ae){s(x,h,v);for(let D=0;D<O.length;D++)tt(O[D],h,v,w);s(p.anchor,h,v);return}if(M===Xn){A(p,h,v);return}if(w!==2&&E&1&&N)if(w===0)N.beforeEnter(x),s(x,h,v),Ie(()=>N.enter(x),S);else{const{leave:D,delayLeave:W,afterLeave:Y}=N,le=()=>{p.ctx.isUnmounted?o(x):s(x,h,v)},de=()=>{x._isLeaving&&x[Nt](!0),D(x,()=>{le(),Y&&Y()})};W?W(x,le,de):de()}else s(x,h,v)},He=(p,h,v,w=!1,S=!1)=>{const{type:x,props:M,ref:N,children:O,dynamicChildren:E,shapeFlag:Q,patchFlag:D,dirs:W,cacheIndex:Y,memo:le}=p;if(D===-2&&(S=!1),N!=null&&(Ct(),En(N,null,v,p,!0),St()),Y!=null&&(h.renderCache[Y]=void 0),Q&256){h.ctx.deactivate(p);return}const de=Q&1&&W,ge=!An(p);let Ee;if(ge&&(Ee=M&&M.onVnodeBeforeUnmount)&&rt(Ee,h,p),Q&6)Bt(p.component,v,w);else{if(Q&128){p.suspense.unmount(v,w);return}de&&Ht(p,null,h,"beforeUnmount"),Q&64?p.type.remove(p,h,v,K,w):E&&!E.hasOnce&&(x!==Ae||D>0&&D&64)?We(E,h,v,!1,!0):(x===Ae&&D&384||!S&&Q&16)&&We(O,h,v),w&&Qt(p)}const ke=le!=null&&Y==null;(ge&&(Ee=M&&M.onVnodeUnmounted)||de||ke)&&Ie(()=>{Ee&&rt(Ee,h,p),de&&Ht(p,null,h,"unmounted"),ke&&(p.el=null)},v)},Qt=p=>{const{type:h,el:v,anchor:w,transition:S}=p;if(h===Ae){Yt(v,w);return}if(h===Xn){b(p);return}const x=()=>{o(v),S&&!S.persisted&&S.afterLeave&&S.afterLeave()};if(p.shapeFlag&1&&S&&!S.persisted){const{leave:M,delayLeave:N}=S,O=()=>M(v,x);N?N(p.el,x,O):O()}else x()},Yt=(p,h)=>{let v;for(;p!==h;)v=g(p),o(p),p=v;o(h)},Bt=(p,h,v)=>{const{bum:w,scope:S,job:x,subTree:M,um:N,m:O,a:E}=p;Qo(O),Qo(E),w&&Jn(w),S.stop(),x&&(x.flags|=8,He(M,p,h,v)),N&&Ie(N,h),Ie(()=>{p.isUnmounted=!0},h)},We=(p,h,v,w=!1,S=!1,x=0)=>{for(let M=x;M<p.length;M++)He(p[M],h,v,w,S)},C=p=>{if(p.shapeFlag&6)return C(p.component.subTree);if(p.shapeFlag&128)return p.suspense.next();const h=g(p.anchor||p.el),v=h&&h[vl];return v?g(v):h};let B=!1;const $=(p,h,v)=>{let w;p==null?h._vnode&&(He(h._vnode,null,null,!0),w=h._vnode.component):y(h._vnode||null,p,h,null,null,null,v),h._vnode=p,B||(B=!0,Do(w),dl(),B=!1)},K={p:y,um:He,m:tt,r:Qt,mt:Ce,mc:re,pc:ne,pbc:X,n:C,o:e};return{render:$,hydrate:void 0,createApp:Fa($)}}function Ms({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 Ft({effect:e,job:t},n){n?(e.flags|=32,t.flags|=4):(e.flags&=-33,t.flags&=-5)}function oc(e,t){return(!e||e&&!e.pendingBranch)&&t&&!t.persisted}function So(e,t,n=!1){const s=e.children,o=t.children;if(q(s)&&q(o))for(let r=0;r<s.length;r++){const l=s[r];let i=o[r];i.shapeFlag&1&&!i.dynamicChildren&&((i.patchFlag<=0||i.patchFlag===32)&&(i=o[r]=_t(o[r]),i.el=l.el),!n&&i.patchFlag!==-2&&So(l,i)),i.type===Cs&&(i.patchFlag===-1&&(i=o[r]=_t(i)),i.el=l.el),i.type===At&&!i.el&&(i.el=l.el)}}function rc(e){const t=e.slice(),n=[0];let s,o,r,l,i;const a=e.length;for(s=0;s<a;s++){const c=e[s];if(c!==0){if(o=n[n.length-1],e[o]<c){t[s]=o,n.push(s);continue}for(r=0,l=n.length-1;r<l;)i=r+l>>1,e[n[i]]<c?r=i+1:l=i;c<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 Hl(e){const t=e.subTree.component;if(t)return t.asyncDep&&!t.asyncResolved?t:Hl(t)}function Qo(e){if(e)for(let t=0;t<e.length;t++)e[t].flags|=8}function Fl(e){if(e.placeholder)return e.placeholder;const t=e.component;return t?Fl(t.subTree):null}const jl=e=>e.__isSuspense;function lc(e,t){t&&t.pendingBranch?q(e)?t.effects.push(...e):t.effects.push(e):ha(e)}const Ae=Symbol.for("v-fgt"),Cs=Symbol.for("v-txt"),At=Symbol.for("v-cmt"),Xn=Symbol.for("v-stc"),Rn=[];let Ke=null;function H(e=!1){Rn.push(Ke=e?null:[])}function ic(){Rn.pop(),Ke=Rn[Rn.length-1]||null}let Dn=1;function is(e,t=!1){Dn+=e,e<0&&Ke&&t&&(Ke.hasOnce=!0)}function Gl(e){return e.dynamicChildren=Dn>0?Ke||nn:null,ic(),Dn>0&&Ke&&Ke.push(e),e}function F(e,t,n,s,o,r){return Gl(u(e,t,n,s,o,r,!0))}function Kl(e,t,n,s,o){return Gl(ve(e,t,n,s,o,!0))}function as(e){return e?e.__v_isVNode===!0:!1}function en(e,t){return e.type===t.type&&e.key===t.key}const Wl=({key:e})=>e??null,Zn=({ref:e,ref_key:t,ref_for:n})=>(typeof e=="number"&&(e=""+e),e!=null?xe(e)||Le(e)||Z(e)?{i:Ge,r:e,k:t,f:!!n}:e:null);function u(e,t=null,n=null,s=0,o=null,r=e===Ae?0:1,l=!1,i=!1){const a={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&Wl(t),ref:t&&Zn(t),scopeId:hl,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:Ge};return i?(Eo(a,n),r&128&&e.normalize(a)):n&&(a.shapeFlag|=xe(n)?8:16),Dn>0&&!l&&Ke&&(a.patchFlag>0||r&6)&&a.patchFlag!==32&&Ke.push(a),a}const ve=ac;function ac(e,t=null,n=null,s=0,o=null,r=!1){if((!e||e===Ia)&&(e=At),as(e)){const i=qt(e,t,!0);return n&&Eo(i,n),Dn>0&&!r&&Ke&&(i.shapeFlag&6?Ke[Ke.indexOf(e)]=i:Ke.push(i)),i.patchFlag=-2,i}if(bc(e)&&(e=e.__vccOpts),t){t=cc(t);let{class:i,style:a}=t;i&&!xe(i)&&(t.class=be(i)),ue(a)&&(_o(a)&&!q(a)&&(a=Re({},a)),t.style=vs(a))}const l=xe(e)?1:jl(e)?128:ya(e)?64:ue(e)?4:Z(e)?2:0;return u(e,t,n,s,o,l,r,!0)}function cc(e){return e?_o(e)||$l(e)?Re({},e):e:null}function qt(e,t,n=!1,s=!1){const{props:o,ref:r,patchFlag:l,children:i,transition:a}=e,c=t?fc(o||{},t):o,f={__v_isVNode:!0,__v_skip:!0,type:e.type,props:c,key:c&&Wl(c),ref:t&&t.ref?n&&r?q(r)?r.concat(Zn(t)):[r,Zn(t)]:Zn(t):r,scopeId:e.scopeId,slotScopeIds:e.slotScopeIds,children:i,target:e.target,targetStart:e.targetStart,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:t&&e.type!==Ae?l===-1?16:l|16:l,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:a,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&qt(e.ssContent),ssFallback:e.ssFallback&&qt(e.ssFallback),placeholder:e.placeholder,el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce};return a&&s&&Mn(f,a.clone(f)),f}function he(e=" ",t=0){return ve(Cs,null,e,t)}function uc(e,t){const n=ve(Xn,null,e);return n.staticCount=t,n}function ye(e="",t=!1){return t?(H(),Kl(At,null,e)):ve(At,null,e)}function ct(e){return e==null||typeof e=="boolean"?ve(At):q(e)?ve(Ae,null,e.slice()):as(e)?_t(e):ve(Cs,null,String(e))}function _t(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:qt(e)}function Eo(e,t){let n=0;const{shapeFlag:s}=e;if(t==null)t=null;else if(q(t))n=16;else if(typeof t=="object")if(s&65){const o=t.default;o&&(o._c&&(o._d=!1),Eo(e,o()),o._c&&(o._d=!0));return}else{n=32;const o=t._;!o&&!$l(t)?t._ctx=Ge:o===3&&Ge&&(Ge.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else Z(t)?(t={default:t,_ctx:Ge},n=32):(t=String(t),s&64?(n=16,t=[he(t)]):n=8);e.children=t,e.shapeFlag|=n}function fc(...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=be([t.class,s.class]));else if(o==="style")t.style=vs([t.style,s.style]);else if(fs(o)){const r=t[o],l=s[o];l&&r!==l&&!(q(r)&&r.includes(l))?t[o]=r?[].concat(r,l):l:l==null&&r==null&&!ds(o)&&(t[o]=l)}else o!==""&&(t[o]=s[o])}return t}function rt(e,t,n,s=null){Ze(e,t,7,[n,s])}const dc=Ol();let pc=0;function hc(e,t,n){const s=e.type,o=(t?t.appContext:e.appContext)||dc,r={uid:pc++,vnode:e,type:s,parent:t,appContext:o,root:null,next:null,subTree:null,effect:null,update:null,job:null,scope:new Vi(!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:Dl(s,o),emitsOptions:kl(s,o),emit:null,emitted:null,propsDefaults:pe,inheritAttrs:s.inheritAttrs,ctx:pe,data:pe,props:pe,attrs:pe,slots:pe,refs:pe,setupState:pe,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=Ga.bind(null,r),e.ce&&e.ce(r),r}let $e=null;const zl=()=>$e||Ge;let cs,to;{const e=ms(),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)}};cs=t("__VUE_INSTANCE_SETTERS__",n=>$e=n),to=t("__VUE_SSR_SETTERS__",n=>Vn=n)}const Fn=e=>{const t=$e;return cs(e),e.scope.on(),()=>{e.scope.off(),cs(t)}},Yo=()=>{$e&&$e.scope.off(),cs(null)};function ql(e){return e.vnode.shapeFlag&4}let Vn=!1;function gc(e,t=!1,n=!1){t&&to(t);const{props:s,children:o}=e.vnode,r=ql(e);Qa(e,s,r,t),ec(e,o,n||t);const l=r?mc(e,t):void 0;return t&&to(!1),l}function mc(e,t){const n=e.type;e.accessCache=Object.create(null),e.proxy=new Proxy(e.ctx,$a);const{setup:s}=n;if(s){Ct();const o=e.setupContext=s.length>1?yc(e):null,r=Fn(e),l=Hn(s,e,0,[e.props,o]),i=Br(l);if(St(),r(),(i||e.sp)&&!An(e)&&wl(e),i){if(l.then(Yo,Yo),t)return l.then(a=>{Xo(e,a)}).catch(a=>{_s(a,e,0)});e.asyncDep=l}else Xo(e,l)}else Jl(e)}function Xo(e,t,n){Z(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:ue(t)&&(e.setupState=cl(t)),Jl(e)}function Jl(e,t,n){const s=e.type;e.render||(e.render=s.render||dt);{const o=Fn(e);Ct();try{La(e)}finally{St(),o()}}}const vc={get(e,t){return Me(e,"get",""),e[t]}};function yc(e){const t=n=>{e.exposed=n||{}};return{attrs:new Proxy(e.attrs,vc),slots:e.slots,emit:e.emit,expose:t}}function Ss(e){return e.exposed?e.exposeProxy||(e.exposeProxy=new Proxy(cl(oa(e.exposed)),{get(t,n){if(n in t)return t[n];if(n in Tn)return Tn[n](e)},has(t,n){return n in t||n in Tn}})):e.proxy}function _c(e,t=!0){return Z(e)?e.displayName||e.name:e.name||t&&e.__name}function bc(e){return Z(e)&&"__vccOpts"in e}const Se=(e,t)=>ca(e,t,Vn);function Ql(e,t,n){try{is(-1);const s=arguments.length;return s===2?ue(t)&&!q(t)?as(t)?ve(e,null,[t]):ve(e,t):ve(e,null,t):(s>3?n=Array.prototype.slice.call(arguments,2):s===3&&as(n)&&(n=[n]),ve(e,t,n))}finally{is(1)}}const wc="3.5.31";/**
|
|
14
|
-
* @vue/runtime-dom v3.5.31
|
|
15
|
-
* (c) 2018-present Yuxi (Evan) You and Vue contributors
|
|
16
|
-
* @license MIT
|
|
17
|
-
**/let no;const Zo=typeof window<"u"&&window.trustedTypes;if(Zo)try{no=Zo.createPolicy("vue",{createHTML:e=>e})}catch{}const Yl=no?e=>no.createHTML(e):e=>e,xc="http://www.w3.org/2000/svg",Cc="http://www.w3.org/1998/Math/MathML",yt=typeof document<"u"?document:null,er=yt&&yt.createElement("template"),Sc={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"?yt.createElementNS(xc,e):t==="mathml"?yt.createElementNS(Cc,e):n?yt.createElement(e,{is:n}):yt.createElement(e);return e==="select"&&s&&s.multiple!=null&&o.setAttribute("multiple",s.multiple),o},createText:e=>yt.createTextNode(e),createComment:e=>yt.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>yt.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{er.innerHTML=Yl(s==="svg"?`<svg>${e}</svg>`:s==="mathml"?`<math>${e}</math>`:e);const i=er.content;if(s==="svg"||s==="mathml"){const a=i.firstChild;for(;a.firstChild;)i.appendChild(a.firstChild);i.removeChild(a)}t.insertBefore(i,n)}return[l?l.nextSibling:t.firstChild,n?n.previousSibling:t.lastChild]}},Ot="transition",yn="animation",cn=Symbol("_vtc"),Xl={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},Ec=Re({},Ca,Xl),jt=(e,t=[])=>{q(e)?e.forEach(n=>n(...t)):e&&e(...t)},tr=e=>e?q(e)?e.some(t=>t.length>1):e.length>1:!1;function Ac(e){const t={};for(const L in e)L in Xl||(t[L]=e[L]);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:i=`${n}-enter-to`,appearFromClass:a=r,appearActiveClass:c=l,appearToClass:f=i,leaveFromClass:d=`${n}-leave-from`,leaveActiveClass:g=`${n}-leave-active`,leaveToClass:m=`${n}-leave-to`}=e,_=Tc(o),y=_&&_[0],T=_&&_[1],{onBeforeEnter:P,onEnter:R,onEnterCancelled:A,onLeave:b,onLeaveCancelled:I,onBeforeAppear:J=P,onAppear:j=R,onAppearCancelled:re=A}=t,V=(L,se,Ce,G)=>{L._enterCancelled=G,It(L,se?f:i),It(L,se?c:l),Ce&&Ce()},X=(L,se)=>{L._isLeaving=!1,It(L,d),It(L,m),It(L,g),se&&se()},te=L=>(se,Ce)=>{const G=L?j:R,k=()=>V(se,L,Ce);jt(G,[se,k]),nr(()=>{It(se,L?a:r),lt(se,L?f:i),tr(G)||sr(se,s,y,k)})};return Re(t,{onBeforeEnter(L){jt(P,[L]),lt(L,r),lt(L,l)},onBeforeAppear(L){jt(J,[L]),lt(L,a),lt(L,c)},onEnter:te(!1),onAppear:te(!0),onLeave(L,se){L._isLeaving=!0;const Ce=()=>X(L,se);lt(L,d),L._enterCancelled?(lt(L,g),so(L)):(so(L),lt(L,g)),nr(()=>{L._isLeaving&&(It(L,d),lt(L,m),tr(b)||sr(L,s,T,Ce))}),jt(b,[L,Ce])},onEnterCancelled(L){V(L,!1,void 0,!0),jt(A,[L])},onAppearCancelled(L){V(L,!0,void 0,!0),jt(re,[L])},onLeaveCancelled(L){X(L),jt(I,[L])}})}function Tc(e){if(e==null)return null;if(ue(e))return[$s(e.enter),$s(e.leave)];{const t=$s(e);return[t,t]}}function $s(e){return Oi(e)}function lt(e,t){t.split(/\s+/).forEach(n=>n&&e.classList.add(n)),(e[cn]||(e[cn]=new Set)).add(t)}function It(e,t){t.split(/\s+/).forEach(s=>s&&e.classList.remove(s));const n=e[cn];n&&(n.delete(t),n.size||(e[cn]=void 0))}function nr(e){requestAnimationFrame(()=>{requestAnimationFrame(e)})}let Rc=0;function sr(e,t,n,s){const o=e._endId=++Rc,r=()=>{o===e._endId&&s()};if(n!=null)return setTimeout(r,n);const{type:l,timeout:i,propCount:a}=Zl(e,t);if(!l)return s();const c=l+"end";let f=0;const d=()=>{e.removeEventListener(c,g),r()},g=m=>{m.target===e&&++f>=a&&d()};setTimeout(()=>{f<a&&d()},i+1),e.addEventListener(c,g)}function Zl(e,t){const n=window.getComputedStyle(e),s=_=>(n[_]||"").split(", "),o=s(`${Ot}Delay`),r=s(`${Ot}Duration`),l=or(o,r),i=s(`${yn}Delay`),a=s(`${yn}Duration`),c=or(i,a);let f=null,d=0,g=0;t===Ot?l>0&&(f=Ot,d=l,g=r.length):t===yn?c>0&&(f=yn,d=c,g=a.length):(d=Math.max(l,c),f=d>0?l>c?Ot:yn:null,g=f?f===Ot?r.length:a.length:0);const m=f===Ot&&/\b(?:transform|all)(?:,|$)/.test(s(`${Ot}Property`).toString());return{type:f,timeout:d,propCount:g,hasTransform:m}}function or(e,t){for(;e.length<t.length;)e=e.concat(e);return Math.max(...t.map((n,s)=>rr(n)+rr(e[s])))}function rr(e){return e==="auto"?0:Number(e.slice(0,-1).replace(",","."))*1e3}function so(e){return(e?e.ownerDocument:document).body.offsetHeight}function Pc(e,t,n){const s=e[cn];s&&(t=(t?[t,...s]:[...s]).join(" ")),t==null?e.removeAttribute("class"):n?e.setAttribute("class",t):e.className=t}const lr=Symbol("_vod"),Oc=Symbol("_vsh"),kc=Symbol(""),Nc=/(?:^|;)\s*display\s*:/;function Ic(e,t,n){const s=e.style,o=xe(n);let r=!1;if(n&&!o){if(t)if(xe(t))for(const l of t.split(";")){const i=l.slice(0,l.indexOf(":")).trim();n[i]==null&&es(s,i,"")}else for(const l in t)n[l]==null&&es(s,l,"");for(const l in n)l==="display"&&(r=!0),es(s,l,n[l])}else if(o){if(t!==n){const l=s[kc];l&&(n+=";"+l),s.cssText=n,r=Nc.test(n)}}else t&&e.removeAttribute("style");lr in e&&(e[lr]=r?s.display:"",e[Oc]&&(s.display="none"))}const ir=/\s*!important$/;function es(e,t,n){if(q(n))n.forEach(s=>es(e,t,s));else if(n==null&&(n=""),t.startsWith("--"))e.setProperty(t,n);else{const s=Mc(e,t);ir.test(n)?e.setProperty(Jt(s),n.replace(ir,""),"important"):e[s]=n}}const ar=["Webkit","Moz","ms"],Ls={};function Mc(e,t){const n=Ls[t];if(n)return n;let s=Be(t);if(s!=="filter"&&s in e)return Ls[t]=s;s=hs(s);for(let o=0;o<ar.length;o++){const r=ar[o]+s;if(r in e)return Ls[t]=r}return t}const cr="http://www.w3.org/1999/xlink";function ur(e,t,n,s,o,r=Li(t)){s&&t.startsWith("xlink:")?n==null?e.removeAttributeNS(cr,t.slice(6,t.length)):e.setAttributeNS(cr,t,n):n==null||r&&!Gr(n)?e.removeAttribute(t):e.setAttribute(t,r?"":ht(n)?String(n):n)}function fr(e,t,n,s,o){if(t==="innerHTML"||t==="textContent"){n!=null&&(e[t]=t==="innerHTML"?Yl(n):n);return}const r=e.tagName;if(t==="value"&&r!=="PROGRESS"&&!r.includes("-")){const i=r==="OPTION"?e.getAttribute("value")||"":e.value,a=n==null?e.type==="checkbox"?"on":"":String(n);(i!==a||!("_value"in e))&&(e.value=a),n==null&&e.removeAttribute(t),e._value=n;return}let l=!1;if(n===""||n==null){const i=typeof e[t];i==="boolean"?n=Gr(n):n==null&&i==="string"?(n="",l=!0):i==="number"&&(n=0,l=!0)}try{e[t]=n}catch{}l&&e.removeAttribute(o||t)}function xt(e,t,n,s){e.addEventListener(t,n,s)}function $c(e,t,n,s){e.removeEventListener(t,n,s)}const dr=Symbol("_vei");function Lc(e,t,n,s,o=null){const r=e[dr]||(e[dr]={}),l=r[t];if(s&&l)l.value=s;else{const[i,a]=Dc(t);if(s){const c=r[t]=Bc(s,o);xt(e,i,c,a)}else l&&($c(e,i,l,a),r[t]=void 0)}}const pr=/(?:Once|Passive|Capture)$/;function Dc(e){let t;if(pr.test(e)){t={};let s;for(;s=e.match(pr);)e=e.slice(0,e.length-s[0].length),t[s[0].toLowerCase()]=!0}return[e[2]===":"?e.slice(3):Jt(e.slice(2)),t]}let Ds=0;const Vc=Promise.resolve(),Uc=()=>Ds||(Vc.then(()=>Ds=0),Ds=Date.now());function Bc(e,t){const n=s=>{if(!s._vts)s._vts=Date.now();else if(s._vts<=n.attached)return;Ze(Hc(s,n.value),t,5,[s])};return n.value=e,n.attached=Uc(),n}function Hc(e,t){if(q(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 hr=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&e.charCodeAt(2)>96&&e.charCodeAt(2)<123,Fc=(e,t,n,s,o,r)=>{const l=o==="svg";t==="class"?Pc(e,s,l):t==="style"?Ic(e,n,s):fs(t)?ds(t)||Lc(e,t,n,s,r):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):jc(e,t,s,l))?(fr(e,t,s),!e.tagName.includes("-")&&(t==="value"||t==="checked"||t==="selected")&&ur(e,t,s,l,r,t!=="value")):e._isVueCE&&(Gc(e,t)||e._def.__asyncLoader&&(/[A-Z]/.test(t)||!xe(s)))?fr(e,Be(t),s,r,t):(t==="true-value"?e._trueValue=s:t==="false-value"&&(e._falseValue=s),ur(e,t,s,l))};function jc(e,t,n,s){if(s)return!!(t==="innerHTML"||t==="textContent"||t in e&&hr(t)&&Z(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 hr(t)&&xe(n)?!1:t in e}function Gc(e,t){const n=e._def.props;if(!n)return!1;const s=Be(t);return Array.isArray(n)?n.some(o=>Be(o)===s):Object.keys(n).some(o=>Be(o)===s)}const ei=new WeakMap,ti=new WeakMap,us=Symbol("_moveCb"),gr=Symbol("_enterCb"),Kc=e=>(delete e.props.mode,e),Wc=Kc({name:"TransitionGroup",props:Re({},Ec,{tag:String,moveClass:String}),setup(e,{slots:t}){const n=zl(),s=xa();let o,r;return Al(()=>{if(!o.length)return;const l=e.moveClass||`${e.name||"v"}-move`;if(!Yc(o[0].el,n.vnode.el,l)){o=[];return}o.forEach(qc),o.forEach(Jc);const i=o.filter(Qc);so(n.vnode.el),i.forEach(a=>{const c=a.el,f=c.style;lt(c,l),f.transform=f.webkitTransform=f.transitionDuration="";const d=c[us]=g=>{g&&g.target!==c||(!g||g.propertyName.endsWith("transform"))&&(c.removeEventListener("transitionend",d),c[us]=null,It(c,l))};c.addEventListener("transitionend",d)}),o=[]}),()=>{const l=ie(e),i=Ac(l);let a=l.tag||Ae;if(o=[],r)for(let c=0;c<r.length;c++){const f=r[c];f.el&&f.el instanceof Element&&(o.push(f),Mn(f,Qs(f,i,s,n)),ei.set(f,ni(f.el)))}r=t.default?_l(t.default()):[];for(let c=0;c<r.length;c++){const f=r[c];f.key!=null&&Mn(f,Qs(f,i,s,n))}return ve(a,null,r)}}}),zc=Wc;function qc(e){const t=e.el;t[us]&&t[us](),t[gr]&&t[gr]()}function Jc(e){ti.set(e,ni(e.el))}function Qc(e){const t=ei.get(e),n=ti.get(e),s=t.left-n.left,o=t.top-n.top;if(s||o){const r=e.el,l=r.style,i=r.getBoundingClientRect();let a=1,c=1;return r.offsetWidth&&(a=i.width/r.offsetWidth),r.offsetHeight&&(c=i.height/r.offsetHeight),(!Number.isFinite(a)||a===0)&&(a=1),(!Number.isFinite(c)||c===0)&&(c=1),Math.abs(a-1)<.01&&(a=1),Math.abs(c-1)<.01&&(c=1),l.transform=l.webkitTransform=`translate(${s/a}px,${o/c}px)`,l.transitionDuration="0s",e}}function ni(e){const t=e.getBoundingClientRect();return{left:t.left,top:t.top}}function Yc(e,t,n){const s=e.cloneNode(),o=e[cn];o&&o.forEach(i=>{i.split(/\s+/).forEach(a=>a&&s.classList.remove(a))}),n.split(/\s+/).forEach(i=>i&&s.classList.add(i)),s.style.display="none";const r=t.nodeType===1?t:t.parentNode;r.appendChild(s);const{hasTransform:l}=Zl(s);return r.removeChild(s),l}const Vt=e=>{const t=e.props["onUpdate:modelValue"]||!1;return q(t)?n=>Jn(t,n):t};function Xc(e){e.target.composing=!0}function mr(e){const t=e.target;t.composing&&(t.composing=!1,t.dispatchEvent(new Event("input")))}const Qe=Symbol("_assign");function vr(e,t,n){return t&&(e=e.trim()),n&&(e=gs(e)),e}const Ne={created(e,{modifiers:{lazy:t,trim:n,number:s}},o){e[Qe]=Vt(o);const r=s||o.props&&o.props.type==="number";xt(e,t?"change":"input",l=>{l.target.composing||e[Qe](vr(e.value,n,r))}),(n||r)&&xt(e,"change",()=>{e.value=vr(e.value,n,r)}),t||(xt(e,"compositionstart",Xc),xt(e,"compositionend",mr),xt(e,"change",mr))},mounted(e,{value:t}){e.value=t??""},beforeUpdate(e,{value:t,oldValue:n,modifiers:{lazy:s,trim:o,number:r}},l){if(e[Qe]=Vt(l),e.composing)return;const i=(r||e.type==="number")&&!/^0\d/.test(e.value)?gs(e.value):e.value,a=t??"";if(i===a)return;const c=e.getRootNode();(c instanceof Document||c instanceof ShadowRoot)&&c.activeElement===e&&e.type!=="range"&&(s&&t===n||o&&e.value.trim()===a)||(e.value=a)}},Zc={deep:!0,created(e,t,n){e[Qe]=Vt(n),xt(e,"change",()=>{const s=e._modelValue,o=un(e),r=e.checked,l=e[Qe];if(q(s)){const i=fo(s,o),a=i!==-1;if(r&&!a)l(s.concat(o));else if(!r&&a){const c=[...s];c.splice(i,1),l(c)}}else if(pn(s)){const i=new Set(s);r?i.add(o):i.delete(o),l(i)}else l(si(e,r))})},mounted:yr,beforeUpdate(e,t,n){e[Qe]=Vt(n),yr(e,t,n)}};function yr(e,{value:t,oldValue:n},s){e._modelValue=t;let o;if(q(t))o=fo(t,s.props.value)>-1;else if(pn(t))o=t.has(s.props.value);else{if(t===n)return;o=Dt(t,si(e,!0))}e.checked!==o&&(e.checked=o)}const eu={created(e,{value:t},n){e.checked=Dt(t,n.props.value),e[Qe]=Vt(n),xt(e,"change",()=>{e[Qe](un(e))})},beforeUpdate(e,{value:t,oldValue:n},s){e[Qe]=Vt(s),t!==n&&(e.checked=Dt(t,s.props.value))}},Pn={deep:!0,created(e,{value:t,modifiers:{number:n}},s){const o=pn(t);xt(e,"change",()=>{const r=Array.prototype.filter.call(e.options,l=>l.selected).map(l=>n?gs(un(l)):un(l));e[Qe](e.multiple?o?new Set(r):r:r[0]),e._assigning=!0,bo(()=>{e._assigning=!1})}),e[Qe]=Vt(s)},mounted(e,{value:t}){_r(e,t)},beforeUpdate(e,t,n){e[Qe]=Vt(n)},updated(e,{value:t}){e._assigning||_r(e,t)}};function _r(e,t){const n=e.multiple,s=q(t);if(!(n&&!s&&!pn(t))){for(let o=0,r=e.options.length;o<r;o++){const l=e.options[o],i=un(l);if(n)if(s){const a=typeof i;a==="string"||a==="number"?l.selected=t.some(c=>String(c)===String(i)):l.selected=fo(t,i)>-1}else l.selected=t.has(i);else if(Dt(un(l),t)){e.selectedIndex!==o&&(e.selectedIndex=o);return}}!n&&e.selectedIndex!==-1&&(e.selectedIndex=-1)}}function un(e){return"_value"in e?e._value:e.value}function si(e,t){const n=t?"_trueValue":"_falseValue";return n in e?e[n]:t}const tu={created(e,t,n){qn(e,t,n,null,"created")},mounted(e,t,n){qn(e,t,n,null,"mounted")},beforeUpdate(e,t,n,s){qn(e,t,n,s,"beforeUpdate")},updated(e,t,n,s){qn(e,t,n,s,"updated")}};function nu(e,t){switch(e){case"SELECT":return Pn;case"TEXTAREA":return Ne;default:switch(t){case"checkbox":return Zc;case"radio":return eu;default:return Ne}}}function qn(e,t,n,s,o){const l=nu(e.tagName,n.props&&n.props.type)[o];l&&l(e,t,n,s)}const su=["ctrl","shift","alt","meta"],ou={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)=>su.some(n=>e[`${n}Key`]&&!t.includes(n))},Es=(e,t)=>{if(!e)return e;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 i=ou[t[l]];if(i&&i(o,t))return}return e(o,...r)})},ru=Re({patchProp:Fc},Sc);let br;function lu(){return br||(br=nc(ru))}const iu=(...e)=>{const t=lu().createApp(...e),{mount:n}=t;return t.mount=s=>{const o=cu(s);if(!o)return;const r=t._component;!Z(r)&&!r.render&&!r.template&&(r.template=o.innerHTML),o.nodeType===1&&(o.textContent="");const l=n(o,!1,au(o));return o instanceof Element&&(o.removeAttribute("v-cloak"),o.setAttribute("data-v-app","")),l},t};function au(e){if(e instanceof SVGElement)return"svg";if(typeof MathMLElement=="function"&&e instanceof MathMLElement)return"mathml"}function cu(e){return xe(e)?document.querySelector(e):e}/*!
|
|
18
|
-
* vue-router v4.6.4
|
|
19
|
-
* (c) 2025 Eduardo San Martin Morote
|
|
20
|
-
* @license MIT
|
|
21
|
-
*/const tn=typeof document<"u";function oi(e){return typeof e=="object"||"displayName"in e||"props"in e||"__vccOpts"in e}function uu(e){return e.__esModule||e[Symbol.toStringTag]==="Module"||e.default&&oi(e.default)}const ae=Object.assign;function Vs(e,t){const n={};for(const s in t){const o=t[s];n[s]=et(o)?o.map(e):e(o)}return n}const On=()=>{},et=Array.isArray;function wr(e,t){const n={};for(const s in e)n[s]=s in t?t[s]:e[s];return n}const ri=/#/g,fu=/&/g,du=/\//g,pu=/=/g,hu=/\?/g,li=/\+/g,gu=/%5B/g,mu=/%5D/g,ii=/%5E/g,vu=/%60/g,ai=/%7B/g,yu=/%7C/g,ci=/%7D/g,_u=/%20/g;function Ao(e){return e==null?"":encodeURI(""+e).replace(yu,"|").replace(gu,"[").replace(mu,"]")}function bu(e){return Ao(e).replace(ai,"{").replace(ci,"}").replace(ii,"^")}function oo(e){return Ao(e).replace(li,"%2B").replace(_u,"+").replace(ri,"%23").replace(fu,"%26").replace(vu,"`").replace(ai,"{").replace(ci,"}").replace(ii,"^")}function wu(e){return oo(e).replace(pu,"%3D")}function xu(e){return Ao(e).replace(ri,"%23").replace(hu,"%3F")}function Cu(e){return xu(e).replace(du,"%2F")}function Un(e){if(e==null)return null;try{return decodeURIComponent(""+e)}catch{}return""+e}const Su=/\/$/,Eu=e=>e.replace(Su,"");function Us(e,t,n="/"){let s,o={},r="",l="";const i=t.indexOf("#");let a=t.indexOf("?");return a=i>=0&&a>i?-1:a,a>=0&&(s=t.slice(0,a),r=t.slice(a,i>0?i:t.length),o=e(r.slice(1))),i>=0&&(s=s||t.slice(0,i),l=t.slice(i,t.length)),s=Pu(s??t,n),{fullPath:s+r+l,path:s,query:o,hash:Un(l)}}function Au(e,t){const n=t.query?e(t.query):"";return t.path+(n&&"?")+n+(t.hash||"")}function xr(e,t){return!t||!e.toLowerCase().startsWith(t.toLowerCase())?e:e.slice(t.length)||"/"}function Tu(e,t,n){const s=t.matched.length-1,o=n.matched.length-1;return s>-1&&s===o&&fn(t.matched[s],n.matched[o])&&ui(t.params,n.params)&&e(t.query)===e(n.query)&&t.hash===n.hash}function fn(e,t){return(e.aliasOf||e)===(t.aliasOf||t)}function ui(e,t){if(Object.keys(e).length!==Object.keys(t).length)return!1;for(var n in e)if(!Ru(e[n],t[n]))return!1;return!0}function Ru(e,t){return et(e)?Cr(e,t):et(t)?Cr(t,e):(e==null?void 0:e.valueOf())===(t==null?void 0:t.valueOf())}function Cr(e,t){return et(t)?e.length===t.length&&e.every((n,s)=>n===t[s]):e.length===1&&e[0]===t}function Pu(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,i;for(l=0;l<s.length;l++)if(i=s[l],i!==".")if(i==="..")r>1&&r--;else break;return n.slice(0,r).join("/")+"/"+s.slice(l).join("/")}const kt={path:"/",name:void 0,params:{},query:{},hash:"",fullPath:"/",matched:[],meta:{},redirectedFrom:void 0};let ro=function(e){return e.pop="pop",e.push="push",e}({}),Bs=function(e){return e.back="back",e.forward="forward",e.unknown="",e}({});function Ou(e){if(!e)if(tn){const t=document.querySelector("base");e=t&&t.getAttribute("href")||"/",e=e.replace(/^\w+:\/\/[^\/]+/,"")}else e="/";return e[0]!=="/"&&e[0]!=="#"&&(e="/"+e),Eu(e)}const ku=/^[^#]+#/;function Nu(e,t){return e.replace(ku,"#")+t}function Iu(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 As=()=>({left:window.scrollX,top:window.scrollY});function Mu(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=Iu(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 Sr(e,t){return(history.state?history.state.position-t:-1)+e}const lo=new Map;function $u(e,t){lo.set(e,t)}function Lu(e){const t=lo.get(e);return lo.delete(e),t}function Du(e){return typeof e=="string"||e&&typeof e=="object"}function fi(e){return typeof e=="string"||typeof e=="symbol"}let we=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 di=Symbol("");we.MATCHER_NOT_FOUND+"",we.NAVIGATION_GUARD_REDIRECT+"",we.NAVIGATION_ABORTED+"",we.NAVIGATION_CANCELLED+"",we.NAVIGATION_DUPLICATED+"";function dn(e,t){return ae(new Error,{type:e,[di]:!0},t)}function vt(e,t){return e instanceof Error&&di in e&&(t==null||!!(e.type&t))}const Vu=["params","query","hash"];function Uu(e){if(typeof e=="string")return e;if(e.path!=null)return e.path;const t={};for(const n of Vu)n in e&&(t[n]=e[n]);return JSON.stringify(t,null,2)}function Bu(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(li," "),r=o.indexOf("="),l=Un(r<0?o:o.slice(0,r)),i=r<0?null:Un(o.slice(r+1));if(l in t){let a=t[l];et(a)||(a=t[l]=[a]),a.push(i)}else t[l]=i}return t}function Er(e){let t="";for(let n in e){const s=e[n];if(n=wu(n),s==null){s!==void 0&&(t+=(t.length?"&":"")+n);continue}(et(s)?s.map(o=>o&&oo(o)):[s&&oo(s)]).forEach(o=>{o!==void 0&&(t+=(t.length?"&":"")+n,o!=null&&(t+="="+o))})}return t}function Hu(e){const t={};for(const n in e){const s=e[n];s!==void 0&&(t[n]=et(s)?s.map(o=>o==null?null:""+o):s==null?s:""+s)}return t}const pi=Symbol(""),Ar=Symbol(""),Ts=Symbol(""),To=Symbol(""),io=Symbol("");function _n(){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 Fu(e,t,n){const s=()=>{e[t].delete(n)};ws(s),Sl(s),Cl(()=>{e[t].add(n)}),e[t].add(n)}function ju(e){const t=Je(pi,{}).value;t&&Fu(t,"leaveGuards",e)}function $t(e,t,n,s,o,r=l=>l()){const l=s&&(s.enterCallbacks[o]=s.enterCallbacks[o]||[]);return()=>new Promise((i,a)=>{const c=g=>{g===!1?a(dn(we.NAVIGATION_ABORTED,{from:n,to:t})):g instanceof Error?a(g):Du(g)?a(dn(we.NAVIGATION_GUARD_REDIRECT,{from:t,to:g})):(l&&s.enterCallbacks[o]===l&&typeof g=="function"&&l.push(g),i())},f=r(()=>e.call(s&&s.instances[o],t,n,c));let d=Promise.resolve(f);e.length<3&&(d=d.then(c)),d.catch(g=>a(g))})}function Hs(e,t,n,s,o=r=>r()){const r=[];for(const l of e)for(const i in l.components){let a=l.components[i];if(!(t!=="beforeRouteEnter"&&!l.instances[i]))if(oi(a)){const c=(a.__vccOpts||a)[t];c&&r.push($t(c,n,s,l,i,o))}else{let c=a();r.push(()=>c.then(f=>{if(!f)throw new Error(`Couldn't resolve component "${i}" at "${l.path}"`);const d=uu(f)?f.default:f;l.mods[i]=f,l.components[i]=d;const g=(d.__vccOpts||d)[t];return g&&$t(g,n,s,l,i,o)()}))}}return r}function Gu(e,t){const n=[],s=[],o=[],r=Math.max(t.matched.length,e.matched.length);for(let l=0;l<r;l++){const i=t.matched[l];i&&(e.matched.find(c=>fn(c,i))?s.push(i):n.push(i));const a=e.matched[l];a&&(t.matched.find(c=>fn(c,a))||o.push(a))}return[n,s,o]}/*!
|
|
22
|
-
* vue-router v4.6.4
|
|
23
|
-
* (c) 2025 Eduardo San Martin Morote
|
|
24
|
-
* @license MIT
|
|
25
|
-
*/let Ku=()=>location.protocol+"//"+location.host;function hi(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,i=o.slice(l);return i[0]!=="/"&&(i="/"+i),xr(i,"")}return xr(n,e)+s+o}function Wu(e,t,n,s){let o=[],r=[],l=null;const i=({state:g})=>{const m=hi(e,location),_=n.value,y=t.value;let T=0;if(g){if(n.value=m,t.value=g,l&&l===_){l=null;return}T=y?g.position-y.position:0}else s(m);o.forEach(P=>{P(n.value,_,{delta:T,type:ro.pop,direction:T?T>0?Bs.forward:Bs.back:Bs.unknown})})};function a(){l=n.value}function c(g){o.push(g);const m=()=>{const _=o.indexOf(g);_>-1&&o.splice(_,1)};return r.push(m),m}function f(){if(document.visibilityState==="hidden"){const{history:g}=window;if(!g.state)return;g.replaceState(ae({},g.state,{scroll:As()}),"")}}function d(){for(const g of r)g();r=[],window.removeEventListener("popstate",i),window.removeEventListener("pagehide",f),document.removeEventListener("visibilitychange",f)}return window.addEventListener("popstate",i),window.addEventListener("pagehide",f),document.addEventListener("visibilitychange",f),{pauseListeners:a,listen:c,destroy:d}}function Tr(e,t,n,s=!1,o=!1){return{back:e,current:t,forward:n,replaced:s,position:window.history.length,scroll:o?As():null}}function zu(e){const{history:t,location:n}=window,s={value:hi(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(a,c,f){const d=e.indexOf("#"),g=d>-1?(n.host&&document.querySelector("base")?e:e.slice(d))+a:Ku()+e+a;try{t[f?"replaceState":"pushState"](c,"",g),o.value=c}catch(m){console.error(m),n[f?"replace":"assign"](g)}}function l(a,c){r(a,ae({},t.state,Tr(o.value.back,a,o.value.forward,!0),c,{position:o.value.position}),!0),s.value=a}function i(a,c){const f=ae({},o.value,t.state,{forward:a,scroll:As()});r(f.current,f,!0),r(a,ae({},Tr(s.value,a,null),{position:f.position+1},c),!1),s.value=a}return{location:s,state:o,push:i,replace:l}}function qu(e){e=Ou(e);const t=zu(e),n=Wu(e,t.state,t.location,t.replace);function s(r,l=!0){l||n.pauseListeners(),history.go(r)}const o=ae({location:"",base:e,go:s,createHref:Nu.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 Kt=function(e){return e[e.Static=0]="Static",e[e.Param=1]="Param",e[e.Group=2]="Group",e}({});var Pe=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}(Pe||{});const Ju={type:Kt.Static,value:""},Qu=/[a-zA-Z0-9_]/;function Yu(e){if(!e)return[[]];if(e==="/")return[[Ju]];if(!e.startsWith("/"))throw new Error(`Invalid path "${e}"`);function t(m){throw new Error(`ERR (${n})/"${c}": ${m}`)}let n=Pe.Static,s=n;const o=[];let r;function l(){r&&o.push(r),r=[]}let i=0,a,c="",f="";function d(){c&&(n===Pe.Static?r.push({type:Kt.Static,value:c}):n===Pe.Param||n===Pe.ParamRegExp||n===Pe.ParamRegExpEnd?(r.length>1&&(a==="*"||a==="+")&&t(`A repeatable param (${c}) must be alone in its segment. eg: '/:ids+.`),r.push({type:Kt.Param,value:c,regexp:f,repeatable:a==="*"||a==="+",optional:a==="*"||a==="?"})):t("Invalid state to consume buffer"),c="")}function g(){c+=a}for(;i<e.length;){if(a=e[i++],a==="\\"&&n!==Pe.ParamRegExp){s=n,n=Pe.EscapeNext;continue}switch(n){case Pe.Static:a==="/"?(c&&d(),l()):a===":"?(d(),n=Pe.Param):g();break;case Pe.EscapeNext:g(),n=s;break;case Pe.Param:a==="("?n=Pe.ParamRegExp:Qu.test(a)?g():(d(),n=Pe.Static,a!=="*"&&a!=="?"&&a!=="+"&&i--);break;case Pe.ParamRegExp:a===")"?f[f.length-1]=="\\"?f=f.slice(0,-1)+a:n=Pe.ParamRegExpEnd:f+=a;break;case Pe.ParamRegExpEnd:d(),n=Pe.Static,a!=="*"&&a!=="?"&&a!=="+"&&i--,f="";break;default:t("Unknown state");break}}return n===Pe.ParamRegExp&&t(`Unfinished custom RegExp for param "${c}"`),d(),l(),o}const Rr="[^/]+?",Xu={sensitive:!1,strict:!1,start:!0,end:!0};var Ve=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}(Ve||{});const Zu=/[.+*?^${}()[\]/\\]/g;function ef(e,t){const n=ae({},Xu,t),s=[];let o=n.start?"^":"";const r=[];for(const c of e){const f=c.length?[]:[Ve.Root];n.strict&&!c.length&&(o+="/");for(let d=0;d<c.length;d++){const g=c[d];let m=Ve.Segment+(n.sensitive?Ve.BonusCaseSensitive:0);if(g.type===Kt.Static)d||(o+="/"),o+=g.value.replace(Zu,"\\$&"),m+=Ve.Static;else if(g.type===Kt.Param){const{value:_,repeatable:y,optional:T,regexp:P}=g;r.push({name:_,repeatable:y,optional:T});const R=P||Rr;if(R!==Rr){m+=Ve.BonusCustomRegExp;try{`${R}`}catch(b){throw new Error(`Invalid custom RegExp for param "${_}" (${R}): `+b.message)}}let A=y?`((?:${R})(?:/(?:${R}))*)`:`(${R})`;d||(A=T&&c.length<2?`(?:/${A})`:"/"+A),T&&(A+="?"),o+=A,m+=Ve.Dynamic,T&&(m+=Ve.BonusOptional),y&&(m+=Ve.BonusRepeatable),R===".*"&&(m+=Ve.BonusWildcard)}f.push(m)}s.push(f)}if(n.strict&&n.end){const c=s.length-1;s[c][s[c].length-1]+=Ve.BonusStrict}n.strict||(o+="/?"),n.end?o+="$":n.strict&&!o.endsWith("/")&&(o+="(?:/|$)");const l=new RegExp(o,n.sensitive?"":"i");function i(c){const f=c.match(l),d={};if(!f)return null;for(let g=1;g<f.length;g++){const m=f[g]||"",_=r[g-1];d[_.name]=m&&_.repeatable?m.split("/"):m}return d}function a(c){let f="",d=!1;for(const g of e){(!d||!f.endsWith("/"))&&(f+="/"),d=!1;for(const m of g)if(m.type===Kt.Static)f+=m.value;else if(m.type===Kt.Param){const{value:_,repeatable:y,optional:T}=m,P=_ in c?c[_]:"";if(et(P)&&!y)throw new Error(`Provided param "${_}" is an array but it is not repeatable (* or + modifiers)`);const R=et(P)?P.join("/"):P;if(!R)if(T)g.length<2&&(f.endsWith("/")?f=f.slice(0,-1):d=!0);else throw new Error(`Missing required param "${_}"`);f+=R}}return f||"/"}return{re:l,score:s,keys:r,parse:i,stringify:a}}function tf(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]===Ve.Static+Ve.Segment?-1:1:e.length>t.length?t.length===1&&t[0]===Ve.Static+Ve.Segment?1:-1:0}function gi(e,t){let n=0;const s=e.score,o=t.score;for(;n<s.length&&n<o.length;){const r=tf(s[n],o[n]);if(r)return r;n++}if(Math.abs(o.length-s.length)===1){if(Pr(s))return 1;if(Pr(o))return-1}return o.length-s.length}function Pr(e){const t=e[e.length-1];return e.length>0&&t[t.length-1]<0}const nf={strict:!1,end:!0,sensitive:!1};function sf(e,t,n){const s=ef(Yu(e.path),n),o=ae(s,{record:e,parent:t,children:[],alias:[]});return t&&!o.record.aliasOf==!t.record.aliasOf&&t.children.push(o),o}function of(e,t){const n=[],s=new Map;t=wr(nf,t);function o(d){return s.get(d)}function r(d,g,m){const _=!m,y=kr(d);y.aliasOf=m&&m.record;const T=wr(t,d),P=[y];if("alias"in d){const b=typeof d.alias=="string"?[d.alias]:d.alias;for(const I of b)P.push(kr(ae({},y,{components:m?m.record.components:y.components,path:I,aliasOf:m?m.record:y})))}let R,A;for(const b of P){const{path:I}=b;if(g&&I[0]!=="/"){const J=g.record.path,j=J[J.length-1]==="/"?"":"/";b.path=g.record.path+(I&&j+I)}if(R=sf(b,g,T),m?m.alias.push(R):(A=A||R,A!==R&&A.alias.push(R),_&&d.name&&!Nr(R)&&l(d.name)),mi(R)&&a(R),y.children){const J=y.children;for(let j=0;j<J.length;j++)r(J[j],R,m&&m.children[j])}m=m||R}return A?()=>{l(A)}:On}function l(d){if(fi(d)){const g=s.get(d);g&&(s.delete(d),n.splice(n.indexOf(g),1),g.children.forEach(l),g.alias.forEach(l))}else{const g=n.indexOf(d);g>-1&&(n.splice(g,1),d.record.name&&s.delete(d.record.name),d.children.forEach(l),d.alias.forEach(l))}}function i(){return n}function a(d){const g=af(d,n);n.splice(g,0,d),d.record.name&&!Nr(d)&&s.set(d.record.name,d)}function c(d,g){let m,_={},y,T;if("name"in d&&d.name){if(m=s.get(d.name),!m)throw dn(we.MATCHER_NOT_FOUND,{location:d});T=m.record.name,_=ae(Or(g.params,m.keys.filter(A=>!A.optional).concat(m.parent?m.parent.keys.filter(A=>A.optional):[]).map(A=>A.name)),d.params&&Or(d.params,m.keys.map(A=>A.name))),y=m.stringify(_)}else if(d.path!=null)y=d.path,m=n.find(A=>A.re.test(y)),m&&(_=m.parse(y),T=m.record.name);else{if(m=g.name?s.get(g.name):n.find(A=>A.re.test(g.path)),!m)throw dn(we.MATCHER_NOT_FOUND,{location:d,currentLocation:g});T=m.record.name,_=ae({},g.params,d.params),y=m.stringify(_)}const P=[];let R=m;for(;R;)P.unshift(R.record),R=R.parent;return{name:T,path:y,params:_,matched:P,meta:lf(P)}}e.forEach(d=>r(d));function f(){n.length=0,s.clear()}return{addRoute:r,resolve:c,removeRoute:l,clearRoutes:f,getRoutes:i,getRecordMatcher:o}}function Or(e,t){const n={};for(const s of t)s in e&&(n[s]=e[s]);return n}function kr(e){const t={path:e.path,redirect:e.redirect,name:e.name,meta:e.meta||{},aliasOf:e.aliasOf,beforeEnter:e.beforeEnter,props:rf(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 rf(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 Nr(e){for(;e;){if(e.record.aliasOf)return!0;e=e.parent}return!1}function lf(e){return e.reduce((t,n)=>ae(t,n.meta),{})}function af(e,t){let n=0,s=t.length;for(;n!==s;){const r=n+s>>1;gi(e,t[r])<0?s=r:n=r+1}const o=cf(e);return o&&(s=t.lastIndexOf(o,s-1)),s}function cf(e){let t=e;for(;t=t.parent;)if(mi(t)&&gi(e,t)===0)return t}function mi({record:e}){return!!(e.name||e.components&&Object.keys(e.components).length||e.redirect)}function Ir(e){const t=Je(Ts),n=Je(To),s=Se(()=>{const a=pt(e.to);return t.resolve(a)}),o=Se(()=>{const{matched:a}=s.value,{length:c}=a,f=a[c-1],d=n.matched;if(!f||!d.length)return-1;const g=d.findIndex(fn.bind(null,f));if(g>-1)return g;const m=Mr(a[c-2]);return c>1&&Mr(f)===m&&d[d.length-1].path!==m?d.findIndex(fn.bind(null,a[c-2])):g}),r=Se(()=>o.value>-1&&hf(n.params,s.value.params)),l=Se(()=>o.value>-1&&o.value===n.matched.length-1&&ui(n.params,s.value.params));function i(a={}){if(pf(a)){const c=t[pt(e.replace)?"replace":"push"](pt(e.to)).catch(On);return e.viewTransition&&typeof document<"u"&&"startViewTransition"in document&&document.startViewTransition(()=>c),c}return Promise.resolve()}return{route:s,href:Se(()=>s.value.href),isActive:r,isExactActive:l,navigate:i}}function uf(e){return e.length===1?e[0]:e}const ff=bl({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:Ir,setup(e,{slots:t}){const n=hn(Ir(e)),{options:s}=Je(Ts),o=Se(()=>({[$r(e.activeClass,s.linkActiveClass,"router-link-active")]:n.isActive,[$r(e.exactActiveClass,s.linkExactActiveClass,"router-link-exact-active")]:n.isExactActive}));return()=>{const r=t.default&&uf(t.default(n));return e.custom?r:Ql("a",{"aria-current":n.isExactActive?e.ariaCurrentValue:null,href:n.href,onClick:n.navigate,class:o.value},r)}}}),df=ff;function pf(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 hf(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(!et(o)||o.length!==s.length||s.some((r,l)=>r.valueOf()!==o[l].valueOf()))return!1}return!0}function Mr(e){return e?e.aliasOf?e.aliasOf.path:e.path:""}const $r=(e,t,n)=>e??t??n,gf=bl({name:"RouterView",inheritAttrs:!1,props:{name:{type:String,default:"default"},route:Object},compatConfig:{MODE:3},setup(e,{attrs:t,slots:n}){const s=Je(io),o=Se(()=>e.route||s.value),r=Je(Ar,0),l=Se(()=>{let c=pt(r);const{matched:f}=o.value;let d;for(;(d=f[c])&&!d.components;)c++;return c}),i=Se(()=>o.value.matched[l.value]);Qn(Ar,Se(()=>l.value+1)),Qn(pi,i),Qn(io,o);const a=ee();return rn(()=>[a.value,i.value,e.name],([c,f,d],[g,m,_])=>{f&&(f.instances[d]=c,m&&m!==f&&c&&c===g&&(f.leaveGuards.size||(f.leaveGuards=m.leaveGuards),f.updateGuards.size||(f.updateGuards=m.updateGuards))),c&&f&&(!m||!fn(f,m)||!g)&&(f.enterCallbacks[d]||[]).forEach(y=>y(c))},{flush:"post"}),()=>{const c=o.value,f=e.name,d=i.value,g=d&&d.components[f];if(!g)return Lr(n.default,{Component:g,route:c});const m=d.props[f],_=m?m===!0?c.params:typeof m=="function"?m(c):m:null,T=Ql(g,ae({},_,t,{onVnodeUnmounted:P=>{P.component.isUnmounted&&(d.instances[f]=null)},ref:a}));return Lr(n.default,{Component:T,route:c})||T}}});function Lr(e,t){if(!e)return null;const n=e(t);return n.length===1?n[0]:n}const mf=gf;function vf(e){const t=of(e.routes,e),n=e.parseQuery||Bu,s=e.stringifyQuery||Er,o=e.history,r=_n(),l=_n(),i=_n(),a=ra(kt);let c=kt;tn&&e.scrollBehavior&&"scrollRestoration"in history&&(history.scrollRestoration="manual");const f=Vs.bind(null,C=>""+C),d=Vs.bind(null,Cu),g=Vs.bind(null,Un);function m(C,B){let $,K;return fi(C)?($=t.getRecordMatcher(C),K=B):K=C,t.addRoute(K,$)}function _(C){const B=t.getRecordMatcher(C);B&&t.removeRoute(B)}function y(){return t.getRoutes().map(C=>C.record)}function T(C){return!!t.getRecordMatcher(C)}function P(C,B){if(B=ae({},B||a.value),typeof C=="string"){const v=Us(n,C,B.path),w=t.resolve({path:v.path},B),S=o.createHref(v.fullPath);return ae(v,w,{params:g(w.params),hash:Un(v.hash),redirectedFrom:void 0,href:S})}let $;if(C.path!=null)$=ae({},C,{path:Us(n,C.path,B.path).path});else{const v=ae({},C.params);for(const w in v)v[w]==null&&delete v[w];$=ae({},C,{params:d(v)}),B.params=d(B.params)}const K=t.resolve($,B),oe=C.hash||"";K.params=f(g(K.params));const p=Au(s,ae({},C,{hash:bu(oe),path:K.path})),h=o.createHref(p);return ae({fullPath:p,hash:oe,query:s===Er?Hu(C.query):C.query||{}},K,{redirectedFrom:void 0,href:h})}function R(C){return typeof C=="string"?Us(n,C,a.value.path):ae({},C)}function A(C,B){if(c!==C)return dn(we.NAVIGATION_CANCELLED,{from:B,to:C})}function b(C){return j(C)}function I(C){return b(ae(R(C),{replace:!0}))}function J(C,B){const $=C.matched[C.matched.length-1];if($&&$.redirect){const{redirect:K}=$;let oe=typeof K=="function"?K(C,B):K;return typeof oe=="string"&&(oe=oe.includes("?")||oe.includes("#")?oe=R(oe):{path:oe},oe.params={}),ae({query:C.query,hash:C.hash,params:oe.path!=null?{}:C.params},oe)}}function j(C,B){const $=c=P(C),K=a.value,oe=C.state,p=C.force,h=C.replace===!0,v=J($,K);if(v)return j(ae(R(v),{state:typeof v=="object"?ae({},oe,v.state):oe,force:p,replace:h}),B||$);const w=$;w.redirectedFrom=B;let S;return!p&&Tu(s,K,$)&&(S=dn(we.NAVIGATION_DUPLICATED,{to:w,from:K}),tt(K,K,!0,!1)),(S?Promise.resolve(S):X(w,K)).catch(x=>vt(x)?vt(x,we.NAVIGATION_GUARD_REDIRECT)?x:Pt(x):ne(x,w,K)).then(x=>{if(x){if(vt(x,we.NAVIGATION_GUARD_REDIRECT))return j(ae({replace:h},R(x.to),{state:typeof x.to=="object"?ae({},oe,x.to.state):oe,force:p}),B||w)}else x=L(w,K,!0,h,oe);return te(w,K,x),x})}function re(C,B){const $=A(C,B);return $?Promise.reject($):Promise.resolve()}function V(C){const B=Yt.values().next().value;return B&&typeof B.runWithContext=="function"?B.runWithContext(C):C()}function X(C,B){let $;const[K,oe,p]=Gu(C,B);$=Hs(K.reverse(),"beforeRouteLeave",C,B);for(const v of K)v.leaveGuards.forEach(w=>{$.push($t(w,C,B))});const h=re.bind(null,C,B);return $.push(h),We($).then(()=>{$=[];for(const v of r.list())$.push($t(v,C,B));return $.push(h),We($)}).then(()=>{$=Hs(oe,"beforeRouteUpdate",C,B);for(const v of oe)v.updateGuards.forEach(w=>{$.push($t(w,C,B))});return $.push(h),We($)}).then(()=>{$=[];for(const v of p)if(v.beforeEnter)if(et(v.beforeEnter))for(const w of v.beforeEnter)$.push($t(w,C,B));else $.push($t(v.beforeEnter,C,B));return $.push(h),We($)}).then(()=>(C.matched.forEach(v=>v.enterCallbacks={}),$=Hs(p,"beforeRouteEnter",C,B,V),$.push(h),We($))).then(()=>{$=[];for(const v of l.list())$.push($t(v,C,B));return $.push(h),We($)}).catch(v=>vt(v,we.NAVIGATION_CANCELLED)?v:Promise.reject(v))}function te(C,B,$){i.list().forEach(K=>V(()=>K(C,B,$)))}function L(C,B,$,K,oe){const p=A(C,B);if(p)return p;const h=B===kt,v=tn?history.state:{};$&&(K||h?o.replace(C.fullPath,ae({scroll:h&&v&&v.scroll},oe)):o.push(C.fullPath,oe)),a.value=C,tt(C,B,$,h),Pt()}let se;function Ce(){se||(se=o.listen((C,B,$)=>{if(!Bt.listening)return;const K=P(C),oe=J(K,Bt.currentRoute.value);if(oe){j(ae(oe,{replace:!0,force:!0}),K).catch(On);return}c=K;const p=a.value;tn&&$u(Sr(p.fullPath,$.delta),As()),X(K,p).catch(h=>vt(h,we.NAVIGATION_ABORTED|we.NAVIGATION_CANCELLED)?h:vt(h,we.NAVIGATION_GUARD_REDIRECT)?(j(ae(R(h.to),{force:!0}),K).then(v=>{vt(v,we.NAVIGATION_ABORTED|we.NAVIGATION_DUPLICATED)&&!$.delta&&$.type===ro.pop&&o.go(-1,!1)}).catch(On),Promise.reject()):($.delta&&o.go(-$.delta,!1),ne(h,K,p))).then(h=>{h=h||L(K,p,!1),h&&($.delta&&!vt(h,we.NAVIGATION_CANCELLED)?o.go(-$.delta,!1):$.type===ro.pop&&vt(h,we.NAVIGATION_ABORTED|we.NAVIGATION_DUPLICATED)&&o.go(-1,!1)),te(K,p,h)}).catch(On)}))}let G=_n(),k=_n(),U;function ne(C,B,$){Pt(C);const K=k.list();return K.length?K.forEach(oe=>oe(C,B,$)):console.error(C),Promise.reject(C)}function gt(){return U&&a.value!==kt?Promise.resolve():new Promise((C,B)=>{G.add([C,B])})}function Pt(C){return U||(U=!C,Ce(),G.list().forEach(([B,$])=>C?$(C):B()),G.reset()),C}function tt(C,B,$,K){const{scrollBehavior:oe}=e;if(!tn||!oe)return Promise.resolve();const p=!$&&Lu(Sr(C.fullPath,0))||(K||!$)&&history.state&&history.state.scroll||null;return bo().then(()=>oe(C,B,p)).then(h=>h&&Mu(h)).catch(h=>ne(h,C,B))}const He=C=>o.go(C);let Qt;const Yt=new Set,Bt={currentRoute:a,listening:!0,addRoute:m,removeRoute:_,clearRoutes:t.clearRoutes,hasRoute:T,getRoutes:y,resolve:P,options:e,push:b,replace:I,go:He,back:()=>He(-1),forward:()=>He(1),beforeEach:r.add,beforeResolve:l.add,afterEach:i.add,onError:k.add,isReady:gt,install(C){C.component("RouterLink",df),C.component("RouterView",mf),C.config.globalProperties.$router=Bt,Object.defineProperty(C.config.globalProperties,"$route",{enumerable:!0,get:()=>pt(a)}),tn&&!Qt&&a.value===kt&&(Qt=!0,b(o.location).catch(K=>{}));const B={};for(const K in kt)Object.defineProperty(B,K,{get:()=>a.value[K],enumerable:!0});C.provide(Ts,Bt),C.provide(To,il(B)),C.provide(io,a);const $=C.unmount;Yt.add(C),C.unmount=function(){Yt.delete(C),Yt.size<1&&(c=kt,se&&se(),se=null,a.value=kt,Qt=!1,U=!1),$()}}};function We(C){return C.reduce((B,$)=>B.then(()=>V($)),Promise.resolve())}return Bt}function jn(){return Je(Ts)}function vi(e){return Je(To)}const Oe=hn({mode:null,user:null,remoteBaseUrl:"",token:""});function Ro(){return ts(Oe)}function Po(e){Oe.mode=e,typeof localStorage<"u"&&localStorage.setItem("pac_proxy_mode",e)}function yi(){if(typeof localStorage<"u"){const e=localStorage.getItem("pac_proxy_mode");(e==="local"||e==="remote")&&(Oe.mode=e);const t=localStorage.getItem("pac_proxy_token");t&&(Oe.token=t);const n=localStorage.getItem("pac_proxy_remote_base_url");if(n&&typeof n=="string"&&(Oe.remoteBaseUrl=n),Oe.mode==="remote"&&Oe.token)try{const s=JSON.parse(atob(Oe.token.split(".")[1]));Oe.user={username:s.username}}catch{}}return Oe.mode}function _i(e){Oe.user=e}function bi(e){Oe.remoteBaseUrl=e||"",typeof localStorage<"u"&&(e?localStorage.setItem("pac_proxy_remote_base_url",e):localStorage.removeItem("pac_proxy_remote_base_url"))}function wi(e){Oe.token=e,typeof localStorage<"u"&&(e?localStorage.setItem("pac_proxy_token",e):localStorage.removeItem("pac_proxy_token"))}function yf(){return Oe.token||typeof localStorage<"u"&&localStorage.getItem("pac_proxy_token")}function _f(){Oe.token="",Oe.user=null,Oe.remoteBaseUrl="",Oe.mode=null,typeof localStorage<"u"&&(localStorage.removeItem("pac_proxy_token"),localStorage.removeItem("pac_proxy_mode"),localStorage.removeItem("pac_proxy_remote_base_url"))}const bf=()=>{const e=yf(),t={"Content-Type":"application/json"};return e&&(t.Authorization="Bearer "+e),t};async function fe(e,t={}){const n=await fetch("/api/local"+e,{...t,headers:{"Content-Type":"application/json",...t.headers}});if(!n.ok)throw new Error((await n.json().catch(()=>({}))).error||n.statusText);return n.json()}async function Fs(e,t,n={}){const s=(e||"").trim().replace(/\/$/,"");if(!s)throw new Error("未配置远程服务器地址。请在 packages/node-cli/.env 中配置 REMOTE_SERVER_URL(填 node-server 的地址,例如 http://127.0.0.1:3000),重启 node-cli 后重新登录。");const o=s+"/api"+t,r=await fetch(o,{...n,headers:{...bf(),...n.headers}});if(!r.ok)throw new Error((await r.json().catch(()=>({}))).error||r.statusText);return r.json()}function xi(e,t){const n={getProxy:()=>fe("/proxy"),setProxy:s=>fe("/proxy",{method:"PUT",body:JSON.stringify(s)})};return e==="local"?{...n,getPacRules:()=>fe("/pac-rules"),setPacRules:s=>fe("/pac-rules",{method:"PUT",body:JSON.stringify(s)}),getConfig:()=>fe("/config")}:{...n,getPacRules:()=>Fs(t,"/pac-rules"),setPacRules:async s=>{await Fs(t,"/pac-rules",{method:"PUT",body:JSON.stringify(s)}),await fe("/pac-rules",{method:"PUT",body:JSON.stringify(s)})},getConfig:()=>Fs(t,"/config")}}const Lt=hn([]);let Ci=0;function wf(){return Lt}function _e(e,t="success",n=2500){const s=++Ci;Lt.push({id:s,msg:e,type:t}),setTimeout(()=>{const o=Lt.findIndex(r=>r.id===s);o>=0&&Lt.splice(o,1)},n)}function Dr(e){return new Promise(t=>{const n=++Ci;Lt.push({id:n,msg:e,type:"confirm",resolve:t})})}function Vr(e,t){const n=Lt.findIndex(s=>s.id===e);n>=0&&(Lt[n].resolve(t),Lt.splice(n,1))}const Rt=(e,t)=>{const n=e.__vccOpts||e;for(const[s,o]of t)n[s]=o;return n},xf={class:"toast-container"},Cf={key:0,class:"toast-confirm-mask"},Sf={class:"toast-confirm"},Ef={class:"toast-confirm-msg"},Af={class:"toast-confirm-actions"},Tf=["onClick"],Rf=["onClick"],Pf={class:"toast-icon"},Of={key:0,viewBox:"0 0 20 20",fill:"currentColor"},kf={key:1,viewBox:"0 0 20 20",fill:"currentColor"},Nf={key:2,viewBox:"0 0 20 20",fill:"currentColor"},If={class:"toast-msg"},Mf={__name:"Toast",setup(e){const t=wf();return(n,s)=>(H(),Kl(wa,{to:"body"},[u("div",xf,[ve(zc,{name:"toast"},{default:ft(()=>[(H(!0),F(Ae,null,Ln(pt(t),o=>(H(),F(Ae,{key:o.id},[o.type==="confirm"?(H(),F("div",Cf,[u("div",Sf,[u("p",Ef,z(o.msg),1),u("div",Af,[u("button",{class:"tc-btn cancel",onClick:r=>pt(Vr)(o.id,!1)},"取消",8,Tf),u("button",{class:"tc-btn ok",onClick:r=>pt(Vr)(o.id,!0)},"确定",8,Rf)])])])):(H(),F("div",{key:1,class:be(["toast",o.type])},[u("span",Pf,[o.type==="success"?(H(),F("svg",Of,[...s[0]||(s[0]=[u("path",{"fill-rule":"evenodd",d:"M16.707 5.293a1 1 0 010 1.414l-8 8a1 1 0 01-1.414 0l-4-4a1 1 0 011.414-1.414L8 12.586l7.293-7.293a1 1 0 011.414 0z","clip-rule":"evenodd"},null,-1)])])):o.type==="error"?(H(),F("svg",kf,[...s[1]||(s[1]=[u("path",{"fill-rule":"evenodd",d:"M10 18a8 8 0 100-16 8 8 0 000 16zM8.707 7.293a1 1 0 00-1.414 1.414L8.586 10l-1.293 1.293a1 1 0 101.414 1.414L10 11.414l1.293 1.293a1 1 0 001.414-1.414L11.414 10l1.293-1.293a1 1 0 00-1.414-1.414L10 8.586 8.707 7.293z","clip-rule":"evenodd"},null,-1)])])):(H(),F("svg",Nf,[...s[2]||(s[2]=[u("path",{"fill-rule":"evenodd",d:"M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-7-4a1 1 0 11-2 0 1 1 0 012 0zM9 9a1 1 0 000 2v3a1 1 0 001 1h1a1 1 0 100-2v-3a1 1 0 00-1-1H9z","clip-rule":"evenodd"},null,-1)])]))]),u("span",If,z(o.msg),1)],2))],64))),128))]),_:1})])]))}},$f=Rt(Mf,[["__scopeId","data-v-5cf00320"]]),Lf={class:"app-layout"},Df={key:0,class:"sidebar"},Vf={class:"side-nav"},Uf={class:"sidebar-footer"},Bf={key:0,class:"topbar"},Hf={class:"topbar-left"},Ff={class:"page-title"},jf={key:0,class:"topbar-right"},Gf={class:"username"},Kf={class:"main"},Wf={__name:"App",setup(e){const t=vi(),n=jn(),s=Ro(),o=Se(()=>s.mode||"local"),r=Se(()=>o.value==="remote"),l=Se(()=>s.user),i=Se(()=>o.value==="local"?"本地模式":"远程模式"),a=Se(()=>t.path!=="/"),c=Se(()=>t.path!=="/"&&!t.path.startsWith("/login")&&!t.path.startsWith("/register")),f=Se(()=>t.path==="/"||t.path.startsWith("/login")||t.path.startsWith("/register")),d={"/console/proxy":"代理设置","/console/shadowsocks":"Shadowsocks","/console/pac-rules":"PAC 规则","/console/traffic":"流量记录"},g=Se(()=>d[t.path]||"");async function m(){try{const _=await fe("/config");await fe("/config",{method:"PUT",body:JSON.stringify({..._,mode:"local"})})}catch{}_f(),n.push("/")}return(_,y)=>{const T=$n("router-link"),P=$n("router-view");return H(),F(Ae,null,[u("div",Lf,[c.value?(H(),F("aside",Df,[y[5]||(y[5]=u("div",{class:"sidebar-logo"},[u("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2"},[u("circle",{cx:"12",cy:"12",r:"10"}),u("path",{d:"M12 8v4l3 3"})]),u("span",null,"PAC Proxy")],-1)),u("nav",Vf,[ve(T,{to:"/console/proxy","active-class":"active"},{default:ft(()=>[...y[0]||(y[0]=[u("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2"},[u("rect",{x:"2",y:"3",width:"20",height:"14",rx:"2"}),u("path",{d:"M8 21h8M12 17v4"})],-1),he(" 代理设置 ",-1)])]),_:1}),ve(T,{to:"/console/shadowsocks","active-class":"active"},{default:ft(()=>[...y[1]||(y[1]=[u("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2"},[u("rect",{x:"3",y:"11",width:"18",height:"11",rx:"2"}),u("path",{d:"M7 11V7a5 5 0 0110 0v4"})],-1),he(" Shadowsocks ",-1)])]),_:1}),ve(T,{to:"/console/pac-rules","active-class":"active"},{default:ft(()=>[...y[2]||(y[2]=[u("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2"},[u("path",{d:"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2"}),u("rect",{x:"9",y:"3",width:"6",height:"4",rx:"1"}),u("path",{d:"M9 12h6M9 16h4"})],-1),he(" PAC 规则 ",-1)])]),_:1}),ve(T,{to:"/console/traffic","active-class":"active"},{default:ft(()=>[...y[3]||(y[3]=[u("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2"},[u("path",{d:"M22 12h-4l-3 9L9 3l-3 9H2"})],-1),he(" 流量记录 ",-1)])]),_:1})]),u("div",Uf,[u("span",{class:be(["mode-badge",o.value])},z(i.value),3),ve(T,{to:"/",class:"switch-mode-link"},{default:ft(()=>[...y[4]||(y[4]=[he("切换模式",-1)])]),_:1})])])):ye("",!0),u("div",{class:be(["content-wrap",{"content-standalone":f.value}])},[a.value?(H(),F("header",Bf,[u("div",Hf,[u("span",Ff,z(g.value),1)]),r.value&&l.value?(H(),F("div",jf,[u("span",Gf,z(l.value.username),1),u("button",{type:"button",class:"logout-btn",onClick:m},"退出登录")])):ye("",!0)])):ye("",!0),u("main",Kf,[ve(P)])],2)]),ve($f)],64)}}},zf=Rt(Wf,[["__scopeId","data-v-ee1bb6ce"]]),qf={class:"mode-select"},Jf={class:"card"},Qf={class:"options"},Yf={__name:"ModeSelect",setup(e){const t=jn();async function n(s){if(Po(s),s==="local"){try{const o=await fe("/config");await fe("/config",{method:"PUT",body:JSON.stringify({...o,mode:"local"})})}catch{}t.push("/console")}else t.push("/login")}return(s,o)=>(H(),F("div",qf,[u("div",Jf,[o[4]||(o[4]=u("h1",null,"选择运行模式",-1)),o[5]||(o[5]=u("p",{class:"desc"},"请选择控制台使用方式,选择后可随时在设置中切换。",-1)),u("div",Qf,[u("button",{class:"option local",onClick:o[0]||(o[0]=r=>n("local"))},[...o[2]||(o[2]=[u("span",{class:"title"},"本地模式",-1),u("span",{class:"sub"},"无需登录,配置保存在本机,由 node-cli 维护",-1)])]),u("button",{class:"option remote",onClick:o[1]||(o[1]=r=>n("remote"))},[...o[3]||(o[3]=[u("span",{class:"title"},"远程模式",-1),u("span",{class:"sub"},"需注册/登录,配置与数据保存在云端",-1)])])])])]))}},Xf=Rt(Yf,[["__scopeId","data-v-b465f762"]]),Zf={class:"auth-page"},ed={class:"card"},td={class:"field"},nd={class:"field"},sd={key:0,class:"error"},od=["disabled"],rd={class:"footer"},ld={__name:"Login",setup(e){const t=jn(),n=ee(""),s=ee(""),o=ee(""),r=ee(""),l=ee(!1);Ut(async()=>{try{const a=await fetch("/api/local/remote-server-url"),{url:c}=await a.json();n.value=c||""}catch{n.value=""}});async function i(){if(r.value="",!n.value){r.value="请在 node-cli 目录下的 .env 中配置 REMOTE_SERVER_URL";return}l.value=!0;try{const a=n.value.replace(/\/$/,""),c=await fetch(a+"/api/auth/login",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({username:s.value,password:o.value})}),f=await c.json().catch(()=>({}));if(!c.ok)throw new Error(f.error||"登录失败");Po("remote"),bi(a),wi(f.token),_i(f.user||{username:s.value});try{const d=await fe("/config");await fe("/config",{method:"PUT",body:JSON.stringify({...d,mode:"remote"})});const g=await fetch(a+"/api/pac-rules",{headers:{Authorization:"Bearer "+f.token}}).then(m=>m.json()).catch(()=>[]);Array.isArray(g)&&await fe("/pac-rules",{method:"PUT",body:JSON.stringify(g)})}catch{}t.push("/console")}catch(a){r.value=a.message}finally{l.value=!1}}return(a,c)=>{const f=$n("router-link");return H(),F("div",Zf,[u("div",ed,[c[6]||(c[6]=u("h1",null,"登录",-1)),c[7]||(c[7]=u("p",{class:"desc"},"远程模式需登录后使用云端配置。",-1)),u("form",{onSubmit:Es(i,["prevent"]),class:"form"},[u("div",td,[c[2]||(c[2]=u("label",null,"用户名",-1)),Te(u("input",{"onUpdate:modelValue":c[0]||(c[0]=d=>s.value=d),type:"text",required:""},null,512),[[Ne,s.value]])]),u("div",nd,[c[3]||(c[3]=u("label",null,"密码",-1)),Te(u("input",{"onUpdate:modelValue":c[1]||(c[1]=d=>o.value=d),type:"password",required:""},null,512),[[Ne,o.value]])]),r.value?(H(),F("p",sd,z(r.value),1)):ye("",!0),u("button",{type:"submit",class:"btn primary",disabled:l.value},"登录",8,od)],32),u("p",rd,[c[5]||(c[5]=he("还没有账号? ",-1)),ve(f,{to:"/register"},{default:ft(()=>[...c[4]||(c[4]=[he("注册",-1)])]),_:1})])])])}}},id=Rt(ld,[["__scopeId","data-v-d4d57b91"]]),ad={class:"auth-page"},cd={class:"card"},ud={class:"field"},fd={class:"field"},dd={key:0,class:"error"},pd={key:1,class:"success"},hd=["disabled"],gd={class:"footer"},md={__name:"Register",setup(e){const t=jn(),n=ee(""),s=ee(""),o=ee(""),r=ee(""),l=ee(""),i=ee(!1);Ut(async()=>{try{const c=await fetch("/api/local/remote-server-url"),{url:f}=await c.json();n.value=f||""}catch{n.value=""}});async function a(){if(r.value="",l.value="",!n.value){r.value="请在 node-cli 目录下的 .env 中配置 REMOTE_SERVER_URL";return}i.value=!0;try{const c=n.value.replace(/\/$/,""),f=await fetch(c+"/api/auth/register",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({username:s.value,password:o.value})}),d=await f.json().catch(()=>({}));if(!f.ok)throw new Error(d.error||"注册失败");l.value="注册成功,正在自动登录…";const g=await fetch(c+"/api/auth/login",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({username:s.value,password:o.value})}),m=await g.json().catch(()=>({}));if(!g.ok)throw new Error(m.error||"自动登录失败");Po("remote"),bi(c),wi(m.token),_i(m.user||{username:s.value}),l.value="注册成功,已自动登录";try{const _=await fe("/config");await fe("/config",{method:"PUT",body:JSON.stringify({..._,mode:"remote"})});const y=await fetch(c+"/api/pac-rules",{headers:{Authorization:"Bearer "+m.token}}).then(T=>T.json()).catch(()=>[]);Array.isArray(y)&&await fe("/pac-rules",{method:"PUT",body:JSON.stringify(y)})}catch{}t.push("/console")}catch(c){r.value=c.message}finally{i.value=!1}}return(c,f)=>{const d=$n("router-link");return H(),F("div",ad,[u("div",cd,[f[6]||(f[6]=u("h1",null,"注册",-1)),f[7]||(f[7]=u("p",{class:"desc"},"注册后可在远程模式下同步配置。",-1)),u("form",{onSubmit:Es(a,["prevent"]),class:"form"},[u("div",ud,[f[2]||(f[2]=u("label",null,"用户名",-1)),Te(u("input",{"onUpdate:modelValue":f[0]||(f[0]=g=>s.value=g),type:"text",required:""},null,512),[[Ne,s.value]])]),u("div",fd,[f[3]||(f[3]=u("label",null,"密码",-1)),Te(u("input",{"onUpdate:modelValue":f[1]||(f[1]=g=>o.value=g),type:"password",required:""},null,512),[[Ne,o.value]])]),r.value?(H(),F("p",dd,z(r.value),1)):ye("",!0),l.value?(H(),F("p",pd,z(l.value),1)):ye("",!0),u("button",{type:"submit",class:"btn primary",disabled:i.value},"注册",8,hd)],32),u("p",gd,[f[5]||(f[5]=he("已有账号? ",-1)),ve(d,{to:"/login"},{default:ft(()=>[...f[4]||(f[4]=[he("登录",-1)])]),_:1})])])])}}},vd=Rt(md,[["__scopeId","data-v-a1c8458c"]]),yd={class:"proxy-settings"},_d={class:"card"},bd={class:"mode-cards"},wd=["onClick","disabled"],xd=["innerHTML"],Cd={class:"mode-label"},Sd={class:"mode-desc"},Ed={key:0,class:"ca-download"},Ad={class:"card"},Td={class:"field"},Rd={key:0,class:"upstream-managed"},Pd={class:"row"},Od={class:"field"},kd={class:"field"},Nd={class:"actions"},Id=["disabled"],Md={key:0,class:"btn-spinner"},$d={key:0,class:"card status-card"},Ld={class:"status-line"},Dd={key:0,class:"status-port"},Vd={key:0,class:"hint"},Ud={key:1,class:"hint error"},Bd={key:2,class:"hint"},Hd={key:3,class:"hint"},Fd="/api/local/ca-cert",jd={__name:"ProxySettings",setup(e){const t=Ro();jn();function n(){return xi(t.mode,t.remoteBaseUrl)}const s=ee(!1),o=ee(1080),r=[{key:"global",label:"全局代理",desc:"所有流量走上游代理",icon:'<svg viewBox="0 0 20 20" fill="currentColor"><path fill-rule="evenodd" d="M10 18a8 8 0 100-16 8 8 0 000 16zM4.332 8.027a6.012 6.012 0 011.912-2.706C6.512 5.73 6.974 6 7.5 6A1.5 1.5 0 019 7.5V8a2 2 0 004 0 2 2 0 011.523-1.943A5.977 5.977 0 0116 10c0 .34-.028.675-.083 1H15a2 2 0 00-2 2v2.197A5.973 5.973 0 0110 16v-2a2 2 0 00-2-2 2 2 0 01-2-2 2 2 0 00-1.668-1.973z" clip-rule="evenodd"/></svg>'},{key:"pac",label:"PAC 代理",desc:"按规则智能分流",icon:'<svg viewBox="0 0 20 20" fill="currentColor"><path d="M5 3a2 2 0 00-2 2v2a2 2 0 002 2h2a2 2 0 002-2V5a2 2 0 00-2-2H5zM5 11a2 2 0 00-2 2v2a2 2 0 002 2h2a2 2 0 002-2v-2a2 2 0 00-2-2H5zM11 5a2 2 0 012-2h2a2 2 0 012 2v2a2 2 0 01-2 2h-2a2 2 0 01-2-2V5zM14 11a1 1 0 011 1v1h1a1 1 0 110 2h-1v1a1 1 0 11-2 0v-1h-1a1 1 0 110-2h1v-1a1 1 0 011-1z"/></svg>'},{key:"mitm",label:"抓包代理",desc:"解密 HTTPS 流量",icon:'<svg viewBox="0 0 20 20" fill="currentColor"><path fill-rule="evenodd" d="M8 4a4 4 0 100 8 4 4 0 000-8zM2 8a6 6 0 1110.89 3.476l4.817 4.817a1 1 0 01-1.414 1.414l-4.816-4.816A6 6 0 012 8z" clip-rule="evenodd"/></svg>'},{key:"clear",label:"清除代理",desc:"恢复直连",icon:'<svg viewBox="0 0 20 20" fill="currentColor"><path fill-rule="evenodd" d="M4.293 4.293a1 1 0 011.414 0L10 8.586l4.293-4.293a1 1 0 111.414 1.414L11.414 10l4.293 4.293a1 1 0 01-1.414 1.414L10 11.414l-4.293 4.293a1 1 0 01-1.414-1.414L8.586 10 4.293 5.707a1 1 0 010-1.414z" clip-rule="evenodd"/></svg>'}],l=ee({enabled:!1,mode:"pac",upstream:"socks5://127.0.0.1:1080",httpPort:5175,httpsPort:5176,applySystemProxy:!0}),i=ee(!1),a=ee(null);async function c(){try{const m=await fetch("/api/local/proxy-status");a.value=await m.json()}catch{a.value={running:!1,port:null}}}function f(){return{enabled:!!l.value.enabled,mode:l.value.mode||"pac",upstream:String(l.value.upstream??"").trim()||"socks5://127.0.0.1:1080",httpPort:Number(l.value.httpPort)||5175,httpsPort:Number(l.value.httpsPort)||5176,applySystemProxy:l.value.applySystemProxy!==!1}}async function d(m){if(!i.value){m==="clear"?(l.value.enabled=!1,l.value.applySystemProxy=!0):(l.value.enabled=!0,l.value.mode=m,l.value.applySystemProxy=!0),i.value=!0;try{const _=f();if(await fe("/proxy",{method:"PUT",body:JSON.stringify(_)}),t.mode==="remote")try{const T=await n().getPacRules();await fe("/pac-rules",{method:"PUT",body:JSON.stringify(T)})}catch{}await c(),_e(m==="clear"?"已清除系统代理设置":`已切换至${{global:"全局代理",pac:"PAC 代理",mitm:"抓包代理",clear:"已清除代理"}[m]}`,"success")}catch(_){_e("操作失败:"+_.message,"error")}finally{i.value=!1}}}Ut(async()=>{try{const[m,_]=await Promise.all([fe("/proxy"),fetch("/api/local/sslocal").then(y=>y.json()).catch(()=>({}))]);if(l.value={...l.value,...m},s.value=_.enabled===!0,o.value=_.localPort||1080,t.mode==="remote")try{const y=await n().getPacRules();await fe("/pac-rules",{method:"PUT",body:JSON.stringify(y)})}catch{}await c()}catch{}});async function g(){i.value=!0;try{const m=f();if(await fe("/proxy",{method:"PUT",body:JSON.stringify(m)}),t.mode==="remote")try{const _=await n().getPacRules();await fe("/pac-rules",{method:"PUT",body:JSON.stringify(_)})}catch{}await c(),_e("设置已保存","success")}catch(m){_e("保存失败:"+m.message,"error")}finally{i.value=!1}}return(m,_)=>{const y=$n("router-link");return H(),F("div",yd,[u("div",_d,[_[5]||(_[5]=u("h3",null,"代理模式",-1)),_[6]||(_[6]=u("p",{class:"desc"},"一键设置本机系统代理(支持 macOS、Windows、Linux GNOME)。",-1)),u("div",bd,[(H(),F(Ae,null,Ln(r,T=>u("button",{key:T.key,class:be(["mode-card",{active:l.value.enabled&&l.value.mode===T.key,clear:T.key==="clear","active-clear":!l.value.enabled&&T.key==="clear"}]),onClick:P=>d(T.key),disabled:i.value,type:"button"},[u("span",{class:"mode-icon",innerHTML:T.icon},null,8,xd),u("span",Cd,z(T.label),1),u("span",Sd,z(T.desc),1)],10,wd)),64))]),l.value.enabled&&l.value.mode==="mitm"?(H(),F("div",Ed,[_[3]||(_[3]=u("span",{class:"ca-label"},"CA 证书(用于解密 HTTPS,需安装到系统/浏览器信任):",-1)),u("a",{class:"btn btn-ca",href:Fd,download:"pac-proxy-ca.crt",target:"_blank",rel:"noopener"},"下载 CA 证书"),_[4]||(_[4]=u("p",{class:"ca-hint"},"仅限本机抓包使用,请勿安装到他人设备或生产环境。",-1))])):ye("",!0)]),u("div",Ad,[_[12]||(_[12]=u("h3",null,"上游代理与端口",-1)),_[13]||(_[13]=u("p",{class:"desc"},[he("上游代理地址(如 "),u("code",null,"socks5://127.0.0.1:1080"),he(" 或 "),u("code",null,"http://proxy.example.com"),he(")。本地模式下可将 SOCKS5 转为 HTTP 代理并按规则执行策略。")],-1)),u("div",Td,[_[9]||(_[9]=u("label",null,"上游代理地址",-1)),s.value?(H(),F("div",Rd,[_[8]||(_[8]=u("svg",{viewBox:"0 0 20 20",fill:"currentColor"},[u("path",{"fill-rule":"evenodd",d:"M5 9V7a5 5 0 0110 0v2a2 2 0 012 2v5a2 2 0 01-2 2H5a2 2 0 01-2-2v-5a2 2 0 012-2zm8-2v2H7V7a3 3 0 016 0z","clip-rule":"evenodd"})],-1)),he(" 由 Shadowsocks 托管(socks5://127.0.0.1:"+z(o.value)+") ",1),ve(y,{to:"/console/shadowsocks"},{default:ft(()=>[..._[7]||(_[7]=[he("管理",-1)])]),_:1})])):Te((H(),F("input",{key:1,"onUpdate:modelValue":_[0]||(_[0]=T=>l.value.upstream=T),placeholder:"socks5://127.0.0.1:1080"},null,512)),[[Ne,l.value.upstream]])]),u("div",Pd,[u("div",Od,[_[10]||(_[10]=u("label",null,"HTTP 代理端口",-1)),Te(u("input",{"onUpdate:modelValue":_[1]||(_[1]=T=>l.value.httpPort=T),type:"number",min:"1",max:"65535"},null,512),[[Ne,l.value.httpPort,void 0,{number:!0}]])]),u("div",kd,[_[11]||(_[11]=u("label",null,"HTTPS 代理端口",-1)),Te(u("input",{"onUpdate:modelValue":_[2]||(_[2]=T=>l.value.httpsPort=T),type:"number",min:"1",max:"65535"},null,512),[[Ne,l.value.httpsPort,void 0,{number:!0}]])])]),u("div",Nd,[u("button",{class:"btn primary",onClick:g,disabled:i.value},[i.value?(H(),F("span",Md)):ye("",!0),he(" "+z(i.value?"保存中…":"保存设置"),1)],8,Id)])]),a.value!==null?(H(),F("div",$d,[_[16]||(_[16]=u("h3",null,"代理状态",-1)),u("p",Ld,[u("span",{class:be(["status-dot",a.value.running?"on":"off"])},null,2),u("span",{class:be(a.value.running?"status-on":"status-off")},z(a.value.running?"运行中":"已关闭"),3),a.value.running?(H(),F("span",Dd,"端口 "+z(a.value.port),1)):ye("",!0)]),a.value.running&&l.value.applySystemProxy&&a.value.systemProxyOk!==!1?(H(),F("p",Vd," 已尝试自动设置"+z(l.value.mode==="pac"?" PAC 代理":l.value.mode==="mitm"?"抓包代理":"系统代理")+"(127.0.0.1:"+z(a.value.port)+")。 ",1)):a.value.running&&l.value.applySystemProxy&&a.value.systemProxyError?(H(),F("p",Ud," 自动设置系统代理失败:"+z(a.value.systemProxyError)+" 请手动在「系统设置 → 网络 → 代理」中设置。 ",1)):a.value.running?(H(),F("p",Bd,[_[14]||(_[14]=he(" 请将系统或浏览器的 HTTP/HTTPS 代理设置为 ",-1)),u("strong",null,"127.0.0.1:"+z(a.value.port),1),_[15]||(_[15]=he("。 ",-1))])):l.value.enabled?(H(),F("p",Hd," 保存后若仍显示已关闭,请查看终端是否有端口占用报错。 ")):ye("",!0)])):ye("",!0)])}}},Gd=Rt(jd,[["__scopeId","data-v-44d33970"]]),Kd={class:"pac-rules"},Wd={class:"card"},zd={class:"card-header"},qd={key:0,class:"rule-count"},Jd={key:0,class:"desc"},Qd={key:1,class:"desc"},Yd={class:"toolbar"},Xd=["disabled"],Zd=["disabled"],ep={class:"search-wrap"},tp={class:"table-wrap"},np={class:"table"},sp={class:"pattern-cell"},op={class:"priority-cell"},rp={class:"ops-cell"},lp=["onClick"],ip=["onClick"],ap={key:0},cp={key:1},up={colspan:"4",class:"empty"},fp={class:"modal-content"},dp={class:"field"},pp={class:"field"},hp={class:"action-toggle"},gp={class:"field"},mp={class:"modal-actions"},vp=["disabled"],yp={__name:"PacRules",setup(e){const t=Ro();function n(){return xi(t.mode,t.remoteBaseUrl)}const s=ee([]),o=ee(null),r=ee({pattern:"",action:"proxy",priority:0}),l=ee(!1),i=ee(""),a=ee(null),c=Se(()=>[...s.value].sort((A,b)=>(b.priority??0)-(A.priority??0))),f=Se(()=>{const A=i.value.trim().toLowerCase();return A?c.value.filter(b=>b.pattern.toLowerCase().includes(A)):c.value});Ut(d);async function d(){try{if(s.value=await n().getPacRules(),Array.isArray(s.value)||(s.value=[]),t.mode==="remote")try{await fe("/pac-rules",{method:"PUT",body:JSON.stringify(s.value)})}catch{}}catch{s.value=[]}}function g(A=null){A?r.value={id:A.id,pattern:A.pattern,action:A.action||"proxy",priority:A.priority??0}:r.value={pattern:"",action:"proxy",priority:0},o.value=!0}async function m(){const{id:A,pattern:b,action:I,priority:J}=r.value;if(!b.trim()){_e("请填写 URL 匹配字符","error");return}l.value=!0;try{let j=[...s.value];if(A){const re=j.findIndex(V=>V.id===A);re>=0&&(j[re]={...j[re],pattern:b.trim(),action:I,priority:J})}else{if(j.find(V=>V.pattern.trim()===b.trim())){_e(`规则「${b.trim()}」已存在`,"error"),l.value=!1;return}j.push({id:String(Date.now()),pattern:b.trim(),action:I||"proxy",priority:Number(J)||0})}await n().setPacRules(j),s.value=j,o.value=null,_e(A?"规则已更新":"规则已添加","success")}catch(j){_e("保存失败:"+j.message,"error")}finally{l.value=!1}}async function _(A){if(!await Dr(`确定删除规则「${A.pattern}」?`))return;const I=s.value.filter(J=>J.id!==A.id);try{await n().setPacRules(I),s.value=I,_e("规则已删除","success")}catch(J){_e("删除失败:"+J.message,"error")}}async function y(){if(s.value.length)try{await navigator.clipboard.writeText(s.value.map(A=>(A.pattern||"").trim()).filter(Boolean).join(`
|
|
26
|
-
`)),_e("已复制到剪贴板","success")}catch(A){_e("复制失败:"+A.message,"error")}}function T(){if(!s.value.length)return;const A=new Blob([JSON.stringify(s.value,null,2)],{type:"application/json"}),b=URL.createObjectURL(A),I=document.createElement("a");I.href=b,I.download=`pac-rules-${new Date().toISOString().slice(0,10)}.json`,I.click(),URL.revokeObjectURL(b)}function P(){var A;(A=a.value)==null||A.click()}async function R(A){var I;const b=(I=A.target.files)==null?void 0:I[0];if(b){A.target.value="";try{const J=await b.text(),j=JSON.parse(J);if(!Array.isArray(j)){_e("文件格式错误,需为规则数组","error");return}if(!await Dr(`导入 ${j.length} 条规则,将与现有规则合并(相同 pattern 会覆盖)。确定继续?`))return;const V=[...s.value];for(const X of j){if(!X.pattern)continue;const te=V.findIndex(se=>se.pattern===X.pattern),L={id:X.id||String(Date.now()+Math.random()),pattern:X.pattern,action:X.action||"proxy",priority:Number(X.priority)||0};te>=0?V[te]=L:V.push(L)}await n().setPacRules(V),s.value=V,_e(`已导入 ${j.length} 条规则`,"success")}catch(J){_e("导入失败:"+J.message,"error")}}}return(A,b)=>(H(),F("div",Kd,[u("div",Wd,[u("div",zd,[u("div",null,[u("h3",null,[b[8]||(b[8]=he("PAC 规则 ",-1)),s.value.length?(H(),F("span",qd,z(s.value.length),1)):ye("",!0)]),pt(t).mode==="remote"?(H(),F("p",Jd,"远程模式下规则保存在云端,PAC 模式时由本机按云端规则执行。")):(H(),F("p",Qd,"按优先级从高到低匹配,命中后选择「代理」或「直连」。"))])]),u("div",Yd,[u("button",{class:"btn primary",onClick:b[0]||(b[0]=I=>g())},[...b[9]||(b[9]=[u("svg",{viewBox:"0 0 20 20",fill:"currentColor"},[u("path",{"fill-rule":"evenodd",d:"M10 3a1 1 0 011 1v5h5a1 1 0 110 2h-5v5a1 1 0 11-2 0v-5H4a1 1 0 110-2h5V4a1 1 0 011-1z","clip-rule":"evenodd"})],-1),he(" 新增规则 ",-1)])]),u("button",{class:"btn",onClick:P,title:"导入 JSON"},[...b[10]||(b[10]=[u("svg",{viewBox:"0 0 20 20",fill:"currentColor"},[u("path",{"fill-rule":"evenodd",d:"M3 17a1 1 0 011-1h12a1 1 0 110 2H4a1 1 0 01-1-1zM6.293 6.707a1 1 0 010-1.414l3-3a1 1 0 011.414 0l3 3a1 1 0 01-1.414 1.414L11 5.414V13a1 1 0 11-2 0V5.414L7.707 6.707a1 1 0 01-1.414 0z","clip-rule":"evenodd"})],-1),he(" 导入 ",-1)])]),u("button",{class:"btn",onClick:T,disabled:!s.value.length,title:"导出 JSON"},[...b[11]||(b[11]=[u("svg",{viewBox:"0 0 20 20",fill:"currentColor"},[u("path",{"fill-rule":"evenodd",d:"M3 17a1 1 0 011-1h12a1 1 0 110 2H4a1 1 0 01-1-1zm3.293-7.707a1 1 0 011.414 0L9 10.586V3a1 1 0 112 0v7.586l1.293-1.293a1 1 0 111.414 1.414l-3 3a1 1 0 01-1.414 0l-3-3a1 1 0 010-1.414z","clip-rule":"evenodd"})],-1),he(" 导出 ",-1)])],8,Xd),u("button",{class:"btn",onClick:y,disabled:!s.value.length,title:"复制规则"},[...b[12]||(b[12]=[u("svg",{viewBox:"0 0 20 20",fill:"currentColor"},[u("path",{d:"M8 3a1 1 0 011-1h2a1 1 0 110 2H9a1 1 0 01-1-1z"}),u("path",{d:"M6 3a2 2 0 00-2 2v11a2 2 0 002 2h8a2 2 0 002-2V5a2 2 0 00-2-2 3 3 0 01-3 3H9a3 3 0 01-3-3z"})],-1),he(" 复制 ",-1)])],8,Zd),u("div",ep,[b[13]||(b[13]=u("svg",{class:"search-icon",viewBox:"0 0 20 20",fill:"currentColor"},[u("path",{"fill-rule":"evenodd",d:"M8 4a4 4 0 100 8 4 4 0 000-8zM2 8a6 6 0 1110.89 3.476l4.817 4.817a1 1 0 01-1.414 1.414l-4.816-4.816A6 6 0 012 8z","clip-rule":"evenodd"})],-1)),Te(u("input",{class:"search-input","onUpdate:modelValue":b[1]||(b[1]=I=>i.value=I),placeholder:"搜索规则…"},null,512),[[Ne,i.value]])])]),u("div",tp,[u("table",np,[b[17]||(b[17]=u("thead",null,[u("tr",null,[u("th",null,"URL 匹配字符"),u("th",null,"动作"),u("th",null,"优先级"),u("th",null,"操作")])],-1)),u("tbody",null,[(H(!0),F(Ae,null,Ln(f.value,I=>(H(),F("tr",{key:I.id},[u("td",sp,z(I.pattern),1),u("td",null,[u("span",{class:be(["action-badge",I.action])},z(I.action==="proxy"?"代理":"直连"),3)]),u("td",op,z(I.priority),1),u("td",rp,[u("button",{class:"icon-btn",onClick:J=>g(I),title:"编辑"},[...b[14]||(b[14]=[u("svg",{viewBox:"0 0 20 20",fill:"currentColor"},[u("path",{d:"M13.586 3.586a2 2 0 112.828 2.828l-.793.793-2.828-2.828.793-.793zM11.379 5.793L3 14.172V17h2.828l8.38-8.379-2.83-2.828z"})],-1)])],8,lp),u("button",{class:"icon-btn danger",onClick:J=>_(I),title:"删除"},[...b[15]||(b[15]=[u("svg",{viewBox:"0 0 20 20",fill:"currentColor"},[u("path",{"fill-rule":"evenodd",d:"M9 2a1 1 0 00-.894.553L7.382 4H4a1 1 0 000 2v10a2 2 0 002 2h8a2 2 0 002-2V6a1 1 0 100-2h-3.382l-.724-1.447A1 1 0 0011 2H9zM7 8a1 1 0 012 0v6a1 1 0 11-2 0V8zm5-1a1 1 0 00-1 1v6a1 1 0 102 0V8a1 1 0 00-1-1z","clip-rule":"evenodd"})],-1)])],8,ip)])]))),128)),s.value.length?f.value.length?ye("",!0):(H(),F("tr",cp,[u("td",up,"未找到匹配「"+z(i.value)+"」的规则",1)])):(H(),F("tr",ap,[...b[16]||(b[16]=[u("td",{colspan:"4",class:"empty"},"暂无规则,点击「新增规则」开始添加",-1)])]))])])])]),o.value?(H(),F("div",{key:0,class:"modal",onClick:b[7]||(b[7]=Es(I=>o.value=null,["self"]))},[u("div",fp,[u("h3",null,z(r.value.id?"编辑规则":"新增规则"),1),u("div",dp,[b[18]||(b[18]=u("label",null,"URL 匹配字符",-1)),Te(u("input",{"onUpdate:modelValue":b[2]||(b[2]=I=>r.value.pattern=I),placeholder:"例如 *.google.com",autofocus:""},null,512),[[Ne,r.value.pattern]])]),u("div",pp,[b[19]||(b[19]=u("label",null,"动作",-1)),u("div",hp,[u("button",{type:"button",class:be(["toggle-opt",{active:r.value.action==="proxy"}]),onClick:b[3]||(b[3]=I=>r.value.action="proxy")},"代理",2),u("button",{type:"button",class:be(["toggle-opt",{active:r.value.action==="direct"}]),onClick:b[4]||(b[4]=I=>r.value.action="direct")},"直连",2)])]),u("div",gp,[b[20]||(b[20]=u("label",null,"优先级(数字越大越优先)",-1)),Te(u("input",{"onUpdate:modelValue":b[5]||(b[5]=I=>r.value.priority=I),type:"number"},null,512),[[Ne,r.value.priority,void 0,{number:!0}]])]),u("div",mp,[u("button",{class:"btn",onClick:b[6]||(b[6]=I=>o.value=null)},"取消"),u("button",{class:"btn primary",onClick:m,disabled:l.value},"保存",8,vp)])])])):ye("",!0),u("input",{ref_key:"fileInput",ref:a,type:"file",accept:".json",style:{display:"none"},onChange:R},null,544)]))}},_p=Rt(yp,[["__scopeId","data-v-abe2d935"]]),bp={class:"traffic-page"},wp={key:0,class:"card"},xp={class:"toolbar"},Cp={class:"auto-refresh"},Sp=["title"],Ep=["disabled"],Ap={key:0,class:"record-count"},Tp={class:"table-wrap"},Rp={class:"table"},Pp={class:"time-cell"},Op=["title"],kp={key:0},Np={key:1,class:"card capture-card"},Ip={class:"toolbar"},Mp=["title"],$p=["disabled"],Lp={class:"table-wrap"},Dp={class:"table capture-table"},Vp=["onClick"],Up={class:"time-cell"},Bp=["title"],Hp=["onClick"],Fp={key:0},jp={key:0,class:"pagination"},Gp={class:"pagination-info"},Kp=["disabled"],Wp=["disabled"],zp={key:3,class:"drawer"},qp={class:"drawer-tabs"},Jp={class:"drawer-body"},Qp={class:"drawer-url-section"},Yp={class:"drawer-url-head"},Xp={class:"drawer-url"},Zp={class:"detail-section"},eh={class:"headers-pre"},th={class:"detail-section"},nh={class:"body-pre"},sh={class:"detail-section"},oh={class:"headers-pre"},rh={class:"detail-section"},lh={class:"body-pre"},js=50,ih={__name:"Traffic",setup(e){const t=ee([]),n=ee(!1),s=ee(!1),o=ee(!1);let r=null;const l=ee([]),i=ee(0),a=ee(0),c=ee({q:"",method:"",status:"",type:"",sort:"time",order:"desc"});let f=null;const d=ee(null),g=ee("request"),m=ee(!1),_=vi();function y(G){return G?new Date(G).toLocaleString("zh-CN",{hour12:!1}):"-"}function T(G){return!G||typeof G!="object"?"":Object.entries(G).map(([k,U])=>`${k}: ${U}`).join(`
|
|
27
|
-
`)}function P(G){if(G==null||G==="")return"(空)";const k=typeof G=="string"?G:String(G);try{return JSON.stringify(JSON.parse(k),null,2)}catch{return k}}function R(G){return G>=200&&G<300?"status-2xx":G>=300&&G<400?"status-3xx":G>=400&&G<500?"status-4xx":G>=500?"status-5xx":""}async function A(){try{const k=await(await fetch("/api/local/proxy")).json();s.value=(k.mode||"")==="mitm"}catch{s.value=!1}}async function b(){n.value=!0;try{const G=await fetch("/api/local/traffic");t.value=await G.json(),Array.isArray(t.value)||(t.value=[])}catch{t.value=[]}finally{n.value=!1}}function I(){o.value=!o.value,o.value?(r=setInterval(b,5e3),_e("自动刷新已开启(每 5 秒)","info")):(clearInterval(r),r=null,_e("自动刷新已关闭","info"))}function J(){f&&clearTimeout(f),f=setTimeout(j,300)}async function j(){n.value=!0;try{const G=new URLSearchParams;c.value.q&&G.set("q",c.value.q),c.value.method&&G.set("method",c.value.method);const k=String(c.value.status??"").trim();k!==""&&!Number.isNaN(Number(k))&&G.set("status",k),c.value.type&&G.set("type",c.value.type),G.set("sort",c.value.sort),G.set("order",c.value.order),G.set("limit",String(js)),G.set("offset",String(a.value));const ne=await(await fetch("/api/local/capture?"+G.toString())).json();l.value=ne.list||[],i.value=ne.total??0}catch{l.value=[],i.value=0}finally{n.value=!1}}function re(){a.value=Math.max(0,a.value-js),j()}function V(){a.value+=js,j()}function X(){c.value.order=c.value.order==="desc"?"asc":"desc",j()}function te(G){d.value=G,g.value="request"}function L(){d.value=null}async function se(){var G;if((G=d.value)!=null&&G.url)try{await navigator.clipboard.writeText(d.value.url),m.value=!0,setTimeout(()=>{m.value=!1},1500)}catch{_e("复制失败","error")}}async function Ce(){await A(),s.value?(a.value=0,await j()):await b()}return Ut(Ce),ws(()=>{r&&clearInterval(r)}),rn(()=>_.path,G=>{G==="/console/traffic"&&Ce()}),(G,k)=>(H(),F("div",bp,[s.value?(H(),F("div",Np,[k[17]||(k[17]=u("div",{class:"capture-banner"},[u("svg",{viewBox:"0 0 20 20",fill:"currentColor"},[u("path",{"fill-rule":"evenodd",d:"M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-7-4a1 1 0 11-2 0 1 1 0 012 0zM9 9a1 1 0 000 2v3a1 1 0 001 1h1a1 1 0 100-2v-3a1 1 0 00-1-1H9z","clip-rule":"evenodd"})]),he(" 当前为抓包代理,可查看解密后的请求与响应。 ")],-1)),u("div",Ip,[Te(u("input",{"onUpdate:modelValue":k[0]||(k[0]=U=>c.value.q=U),type:"text",placeholder:"搜索 URL…",class:"search-input",onInput:J},null,544),[[Ne,c.value.q]]),Te(u("select",{"onUpdate:modelValue":k[1]||(k[1]=U=>c.value.method=U),class:"filter-select",onChange:j},[...k[12]||(k[12]=[u("option",{value:""},"全部方法",-1),u("option",null,"GET",-1),u("option",null,"POST",-1),u("option",null,"PUT",-1),u("option",null,"PATCH",-1),u("option",null,"DELETE",-1),u("option",null,"HEAD",-1),u("option",null,"OPTIONS",-1)])],544),[[Pn,c.value.method]]),Te(u("input",{"onUpdate:modelValue":k[2]||(k[2]=U=>c.value.status=U),type:"text",placeholder:"状态码",class:"status-input",onInput:J},null,544),[[Ne,c.value.status]]),Te(u("select",{"onUpdate:modelValue":k[3]||(k[3]=U=>c.value.type=U),class:"filter-select",onChange:j},[...k[13]||(k[13]=[u("option",{value:""},"全部类型",-1),u("option",null,"document",-1),u("option",null,"xhr",-1),u("option",null,"script",-1),u("option",null,"stylesheet",-1),u("option",null,"image",-1),u("option",null,"font",-1),u("option",null,"other",-1)])],544),[[Pn,c.value.type]]),Te(u("select",{"onUpdate:modelValue":k[4]||(k[4]=U=>c.value.sort=U),class:"filter-select",onChange:j},[...k[14]||(k[14]=[u("option",{value:"time"},"按时间",-1),u("option",{value:"method"},"按方法",-1),u("option",{value:"status"},"按状态",-1),u("option",{value:"url"},"按 URL",-1)])],544),[[Pn,c.value.sort]]),u("button",{type:"button",class:"sort-order-btn",onClick:X,title:c.value.order==="desc"?"倒序":"正序"},z(c.value.order==="desc"?"↓":"↑"),9,Mp),u("button",{class:"btn",onClick:j,disabled:n.value},"刷新",8,$p)]),u("div",Lp,[u("table",Dp,[k[16]||(k[16]=u("thead",null,[u("tr",null,[u("th",null,"时间"),u("th",null,"方法"),u("th",null,"URL"),u("th",null,"状态"),u("th",null,"类型"),u("th")])],-1)),u("tbody",null,[(H(!0),F(Ae,null,Ln(l.value,U=>(H(),F("tr",{key:U.id,onClick:ne=>te(U),class:"row-clickable"},[u("td",Up,z(y(U.time)),1),u("td",null,[u("span",{class:be(["method-tag",U.method])},z(U.method),3)]),u("td",{class:"url-cell",title:U.url},z(U.url),9,Bp),u("td",null,[u("span",{class:be(["status-tag",R(U.statusCode)])},z(U.statusCode),3)]),u("td",null,z(U.type),1),u("td",null,[u("button",{type:"button",class:"btn-link",onClick:Es(ne=>te(U),["stop"])},"详情",8,Hp)])],8,Vp))),128)),!l.value.length&&!n.value?(H(),F("tr",Fp,[...k[15]||(k[15]=[u("td",{colspan:"6",class:"empty"},"暂无抓包记录,请通过抓包代理访问网页。",-1)])])):ye("",!0)])])]),i.value>0?(H(),F("div",jp,[u("span",Gp,"共 "+z(i.value)+" 条",1),u("button",{class:"btn small",disabled:a.value<=0,onClick:re},"上一页",8,Kp),u("button",{class:"btn small",disabled:a.value+l.value.length>=i.value,onClick:V},"下一页",8,Wp)])):ye("",!0)])):(H(),F("div",wp,[u("div",xp,[u("div",Cp,[u("button",{type:"button",class:be(["toggle-btn",{on:o.value}]),onClick:I,title:o.value?"关闭自动刷新":"开启自动刷新(每 5 秒)"},[...k[7]||(k[7]=[u("span",{class:"toggle-knob"},null,-1)])],10,Sp),k[8]||(k[8]=u("span",{class:"toggle-label"},"自动刷新",-1))]),u("button",{class:"btn",onClick:b,disabled:n.value},[...k[9]||(k[9]=[u("svg",{viewBox:"0 0 20 20",fill:"currentColor"},[u("path",{"fill-rule":"evenodd",d:"M4 2a1 1 0 011 1v2.101a7.002 7.002 0 0111.601 2.566 1 1 0 11-1.885.666A5.002 5.002 0 005.999 7H9a1 1 0 010 2H4a1 1 0 01-1-1V3a1 1 0 011-1zm.008 9.057a1 1 0 011.276.61A5.002 5.002 0 0014.001 13H11a1 1 0 110-2h5a1 1 0 011 1v5a1 1 0 11-2 0v-2.101a7.002 7.002 0 01-11.601-2.566 1 1 0 01.61-1.276z","clip-rule":"evenodd"})],-1),he(" 刷新 ",-1)])],8,Ep),t.value.length?(H(),F("span",Ap,z(t.value.length)+" 条记录",1)):ye("",!0)]),u("div",Tp,[u("table",Rp,[k[11]||(k[11]=u("thead",null,[u("tr",null,[u("th",null,"时间"),u("th",null,"类型"),u("th",null,"方法"),u("th",null,"URL / 主机"),u("th",null,"动作")])],-1)),u("tbody",null,[(H(!0),F(Ae,null,Ln(t.value,U=>(H(),F("tr",{key:U.time+(U.url||"")},[u("td",Pp,z(y(U.time)),1),u("td",null,z(U.type),1),u("td",null,[u("span",{class:be(["method-tag",U.method])},z(U.method),3)]),u("td",{class:"url-cell",title:U.url},z(U.url),9,Op),u("td",null,[u("span",{class:be(["action-badge",U.action])},z(U.action==="proxy"?"代理":"直连"),3)])]))),128)),!t.value.length&&!n.value?(H(),F("tr",kp,[...k[10]||(k[10]=[u("td",{colspan:"5",class:"empty"},"暂无记录,请确保代理已开启并有流量经过。",-1)])])):ye("",!0)])])])])),d.value?(H(),F("div",{key:2,class:"drawer-mask",onClick:L})):ye("",!0),d.value?(H(),F("div",zp,[u("div",{class:"drawer-header"},[k[18]||(k[18]=u("span",{class:"drawer-title"},"请求详情",-1)),u("button",{type:"button",class:"drawer-close",onClick:L},"×")]),u("div",qp,[u("button",{type:"button",class:be({active:g.value==="request"}),onClick:k[5]||(k[5]=U=>g.value="request")},"请求",2),u("button",{type:"button",class:be({active:g.value==="response"}),onClick:k[6]||(k[6]=U=>g.value="response")},"响应",2)]),u("div",Jp,[u("div",Qp,[u("div",Yp,[u("span",{class:be(["drawer-method-tag",d.value.method])},z(d.value.method),3),u("button",{type:"button",class:"btn-copy-url",onClick:se},z(m.value?"已复制":"复制 URL"),1)]),u("pre",Xp,z(d.value.url),1)]),g.value==="request"?(H(),F(Ae,{key:0},[u("div",Zp,[k[19]||(k[19]=u("h4",null,"Request Headers",-1)),u("pre",eh,z(T(d.value.requestHeaders)),1)]),u("div",th,[k[20]||(k[20]=u("h4",null,"Request Body",-1)),u("pre",nh,z(P(d.value.requestBody)),1)])],64)):(H(),F(Ae,{key:1},[u("div",sh,[k[21]||(k[21]=u("h4",null,"Response Headers",-1)),u("pre",oh,z(T(d.value.responseHeaders)),1)]),u("div",rh,[k[22]||(k[22]=u("h4",null,"Response Body",-1)),u("pre",lh,z(P(d.value.responseBody)),1)])],64))])])):ye("",!0)]))}},ah=Rt(ih,[["__scopeId","data-v-4331eb78"]]),ch={class:"shadowsocks-page"},uh={class:"card"},fh={class:"enable-row"},dh=["disabled"],ph={class:"card"},hh={class:"fields"},gh={class:"field field-wide"},mh={class:"field"},vh={class:"field field-wide"},yh={class:"password-wrap"},_h=["type"],bh={key:0,viewBox:"0 0 20 20",fill:"currentColor"},wh={key:1,viewBox:"0 0 20 20",fill:"currentColor"},xh={class:"field"},Ch={class:"field"},Sh={class:"actions"},Eh=["disabled"],Ah={key:0,class:"btn-spinner"},Th={class:"card status-card"},Rh={class:"status-header"},Ph={class:"status-actions"},Oh=["disabled"],kh=["disabled"],Nh=["disabled"],Ih={class:"status-line"},Mh={key:0,class:"status-pid"},$h={key:1,class:"status-port"},Lh={key:0,class:"status-error"},Dh={class:"log-section"},Vh={class:"log-count"},Uh={key:0,class:"log-pre"},Bh={__name:"Shadowsocks",setup(e){const t=ee({enabled:!1,server:"",serverPort:8388,localPort:1080,password:"",method:"aes-256-gcm",timeout:300}),n=ee({running:!1,pid:null,error:null,logs:[]}),s=ee(!1),o=ee(!1),r=ee(!1),l=ee(!1),i=ee(!1);async function a(){try{const _=await fe("/sslocal");t.value={...t.value,..._},i.value=!1}catch{}}ju(()=>{if(i.value)return confirm("有未保存的更改,离开后将丢失。确定离开吗?")});async function c(){try{const _=await fe("/sslocal-status");n.value=_}catch{}}Ut(async()=>{await Promise.all([a(),c()]),rn(t,()=>{i.value=!0},{deep:!0})});async function f(){s.value=!0;try{await fe("/sslocal",{method:"PUT",body:JSON.stringify(t.value)}),i.value=!1,await c(),_e("设置已保存","success")}catch(_){_e("保存失败:"+_.message,"error")}finally{s.value=!1}}async function d(){t.value.enabled=!t.value.enabled,await f()}async function g(){o.value=!0;try{const _=await fe("/sslocal/start",{method:"POST"});n.value=_,_e("sslocal 已启动","success")}catch(_){_e("启动失败:"+_.message,"error"),await c()}finally{o.value=!1}}async function m(){o.value=!0;try{await fe("/sslocal/stop",{method:"POST"}),await c(),_e("sslocal 已停止","info")}catch(_){_e("停止失败:"+_.message,"error")}finally{o.value=!1}}return(_,y)=>{var T;return H(),F("div",ch,[u("div",uh,[u("div",fh,[y[8]||(y[8]=u("div",null,[u("h3",null,"Shadowsocks (sslocal)"),u("p",{class:"desc"},"启用后将自动管理 sslocal 进程,并将其 SOCKS5 输出作为上游代理。")],-1)),u("button",{type:"button",class:be(["toggle-btn",{on:t.value.enabled}]),onClick:d,disabled:s.value},[...y[7]||(y[7]=[u("span",{class:"toggle-knob"},null,-1)])],10,dh)])]),u("div",ph,[y[17]||(y[17]=u("h3",null,"服务器配置",-1)),u("div",hh,[u("div",gh,[y[9]||(y[9]=u("label",null,"服务器地址",-1)),Te(u("input",{"onUpdate:modelValue":y[0]||(y[0]=P=>t.value.server=P),placeholder:"example.com 或 1.2.3.4"},null,512),[[Ne,t.value.server]])]),u("div",mh,[y[10]||(y[10]=u("label",null,"服务器端口",-1)),Te(u("input",{"onUpdate:modelValue":y[1]||(y[1]=P=>t.value.serverPort=P),type:"number",min:"1",max:"65535"},null,512),[[Ne,t.value.serverPort,void 0,{number:!0}]])]),u("div",vh,[y[13]||(y[13]=u("label",null,"密码",-1)),u("div",yh,[Te(u("input",{"onUpdate:modelValue":y[2]||(y[2]=P=>t.value.password=P),type:r.value?"text":"password",placeholder:"密码"},null,8,_h),[[tu,t.value.password]]),u("button",{type:"button",class:"eye-btn",onClick:y[3]||(y[3]=P=>r.value=!r.value),tabindex:"-1"},[r.value?(H(),F("svg",wh,[...y[12]||(y[12]=[u("path",{"fill-rule":"evenodd",d:"M3.707 2.293a1 1 0 00-1.414 1.414l14 14a1 1 0 001.414-1.414l-1.473-1.473A10.014 10.014 0 0019.542 10C18.268 5.943 14.478 3 10 3a9.958 9.958 0 00-4.512 1.074l-1.78-1.781zm4.261 4.26l1.514 1.515a2.003 2.003 0 012.45 2.45l1.514 1.514a4 4 0 00-5.478-5.478z","clip-rule":"evenodd"},null,-1),u("path",{d:"M12.454 16.697L9.75 13.992a4 4 0 01-3.742-3.741L2.335 6.578A9.98 9.98 0 00.458 10c1.274 4.057 5.064 7 9.542 7 .847 0 1.669-.105 2.454-.303z"},null,-1)])])):(H(),F("svg",bh,[...y[11]||(y[11]=[u("path",{d:"M10 12a2 2 0 100-4 2 2 0 000 4z"},null,-1),u("path",{"fill-rule":"evenodd",d:"M.458 10C1.732 5.943 5.522 3 10 3s8.268 2.943 9.542 7c-1.274 4.057-5.064 7-9.542 7S1.732 14.057.458 10zM14 10a4 4 0 11-8 0 4 4 0 018 0z","clip-rule":"evenodd"},null,-1)])]))])])]),u("div",xh,[y[15]||(y[15]=u("label",null,"加密方式",-1)),Te(u("select",{"onUpdate:modelValue":y[4]||(y[4]=P=>t.value.method=P)},[...y[14]||(y[14]=[uc('<optgroup label="AEAD(推荐)" data-v-2f9daaee><option value="aes-128-gcm" data-v-2f9daaee>aes-128-gcm</option><option value="aes-256-gcm" data-v-2f9daaee>aes-256-gcm</option><option value="chacha20-ietf-poly1305" data-v-2f9daaee>chacha20-ietf-poly1305</option><option value="xchacha20-ietf-poly1305" data-v-2f9daaee>xchacha20-ietf-poly1305</option></optgroup><optgroup label="AEAD 2022" data-v-2f9daaee><option value="2022-blake3-aes-128-gcm" data-v-2f9daaee>2022-blake3-aes-128-gcm</option><option value="2022-blake3-aes-256-gcm" data-v-2f9daaee>2022-blake3-aes-256-gcm</option><option value="2022-blake3-chacha20-poly1305" data-v-2f9daaee>2022-blake3-chacha20-poly1305</option></optgroup><optgroup label="流加密(不推荐)" data-v-2f9daaee><option value="aes-128-cfb" data-v-2f9daaee>aes-128-cfb</option><option value="aes-192-cfb" data-v-2f9daaee>aes-192-cfb</option><option value="aes-256-cfb" data-v-2f9daaee>aes-256-cfb</option><option value="aes-128-ctr" data-v-2f9daaee>aes-128-ctr</option><option value="aes-192-ctr" data-v-2f9daaee>aes-192-ctr</option><option value="aes-256-ctr" data-v-2f9daaee>aes-256-ctr</option><option value="camellia-128-cfb" data-v-2f9daaee>camellia-128-cfb</option><option value="camellia-192-cfb" data-v-2f9daaee>camellia-192-cfb</option><option value="camellia-256-cfb" data-v-2f9daaee>camellia-256-cfb</option><option value="chacha20-ietf" data-v-2f9daaee>chacha20-ietf</option><option value="chacha20" data-v-2f9daaee>chacha20</option><option value="salsa20" data-v-2f9daaee>salsa20</option><option value="rc4-md5" data-v-2f9daaee>rc4-md5</option><option value="bf-cfb" data-v-2f9daaee>bf-cfb</option><option value="cast5-cfb" data-v-2f9daaee>cast5-cfb</option><option value="des-cfb" data-v-2f9daaee>des-cfb</option><option value="idea-cfb" data-v-2f9daaee>idea-cfb</option><option value="rc2-cfb" data-v-2f9daaee>rc2-cfb</option><option value="seed-cfb" data-v-2f9daaee>seed-cfb</option><option value="none" data-v-2f9daaee>none(不加密)</option><option value="plain" data-v-2f9daaee>plain(不加密)</option></optgroup>',3)])],512),[[Pn,t.value.method]])]),u("div",Ch,[y[16]||(y[16]=u("label",null,"本地 SOCKS5 端口",-1)),Te(u("input",{"onUpdate:modelValue":y[5]||(y[5]=P=>t.value.localPort=P),type:"number",min:"1",max:"65535"},null,512),[[Ne,t.value.localPort,void 0,{number:!0}]])])]),u("div",Sh,[u("button",{class:"btn primary",onClick:f,disabled:s.value},[s.value?(H(),F("span",Ah)):ye("",!0),he(" "+z(s.value?"保存中…":"保存设置"),1)],8,Eh)])]),u("div",Th,[u("div",Rh,[y[19]||(y[19]=u("h3",null,"运行状态",-1)),u("div",Ph,[u("button",{class:"btn",onClick:g,disabled:o.value||n.value.running},"启动",8,Oh),u("button",{class:"btn danger",onClick:m,disabled:o.value||!n.value.running},"停止",8,kh),u("button",{class:"btn icon-only",onClick:c,disabled:o.value,title:"刷新状态"},[...y[18]||(y[18]=[u("svg",{viewBox:"0 0 20 20",fill:"currentColor"},[u("path",{"fill-rule":"evenodd",d:"M4 2a1 1 0 011 1v2.101a7.002 7.002 0 0111.601 2.566 1 1 0 11-1.885.666A5.002 5.002 0 005.999 7H9a1 1 0 010 2H4a1 1 0 01-1-1V3a1 1 0 011-1zm.008 9.057a1 1 0 011.276.61A5.002 5.002 0 0014.001 13H11a1 1 0 110-2h5a1 1 0 011 1v5a1 1 0 11-2 0v-2.101a7.002 7.002 0 01-11.601-2.566 1 1 0 01.61-1.276z","clip-rule":"evenodd"})],-1)])],8,Nh)])]),u("p",Ih,[u("span",{class:be(["status-dot",n.value.running?"on":"off"])},null,2),u("span",{class:be(n.value.running?"status-on":"status-off")},z(n.value.running?"运行中":"已停止"),3),n.value.running&&n.value.pid?(H(),F("span",Mh,"PID "+z(n.value.pid),1)):ye("",!0),n.value.running?(H(),F("span",$h,"→ socks5://127.0.0.1:"+z(t.value.localPort),1)):ye("",!0)]),n.value.error?(H(),F("p",Lh,z(n.value.error),1)):ye("",!0),u("div",Dh,[u("button",{type:"button",class:"log-toggle",onClick:y[6]||(y[6]=P=>l.value=!l.value)},[(H(),F("svg",{viewBox:"0 0 20 20",fill:"currentColor",style:vs({transform:l.value?"rotate(90deg)":"none"})},[...y[20]||(y[20]=[u("path",{"fill-rule":"evenodd",d:"M7.293 14.707a1 1 0 010-1.414L10.586 10 7.293 6.707a1 1 0 011.414-1.414l4 4a1 1 0 010 1.414l-4 4a1 1 0 01-1.414 0z","clip-rule":"evenodd"},null,-1)])],4)),y[21]||(y[21]=he(" 最近日志 ",-1)),u("span",Vh,z(((T=n.value.logs)==null?void 0:T.length)??0)+" 行",1)]),l.value?(H(),F("pre",Uh,z((n.value.logs||[]).join(`
|
|
28
|
-
`)||"(暂无日志)"),1)):ye("",!0)])])])}}},Hh=Rt(Bh,[["__scopeId","data-v-2f9daaee"]]),Fh=[{path:"/",name:"ModeSelect",component:Xf,meta:{title:"选择模式"}},{path:"/login",name:"Login",component:id,meta:{title:"登录"}},{path:"/register",name:"Register",component:vd,meta:{title:"注册"}},{path:"/console",redirect:"/console/traffic"},{path:"/console/traffic",name:"Traffic",component:ah,meta:{title:"流量记录"}},{path:"/console/proxy",name:"ProxySettings",component:Gd,meta:{title:"代理设置"}},{path:"/console/pac-rules",name:"PacRules",component:_p,meta:{title:"PAC 规则"}},{path:"/console/shadowsocks",name:"Shadowsocks",component:Hh,meta:{title:"Shadowsocks"}}],Si=vf({history:qu(),routes:Fh});Si.beforeEach((e,t,n)=>{const s=yi();e.path!=="/"&&!e.path.startsWith("/login")&&!e.path.startsWith("/register")&&!s?n("/"):n()});yi();const Ei=iu(zf);Ei.use(Si);Ei.mount("#app");
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
.toast-container[data-v-5cf00320]{position:fixed;top:1.25rem;right:1.25rem;z-index:9999;display:flex;flex-direction:column;gap:.5rem;pointer-events:none}.toast[data-v-5cf00320]{display:flex;align-items:center;gap:.5rem;padding:.65rem 1rem;border-radius:8px;font-size:.9rem;font-weight:500;box-shadow:0 4px 12px #00000026;pointer-events:auto;max-width:320px}.toast.success[data-v-5cf00320]{background:#f0fdf4;color:#166534;border:1px solid #bbf7d0}.toast.error[data-v-5cf00320]{background:#fef2f2;color:#991b1b;border:1px solid #fecaca}.toast.info[data-v-5cf00320]{background:#eff6ff;color:#1e40af;border:1px solid #bfdbfe}.toast-icon[data-v-5cf00320]{flex-shrink:0;width:1.1rem;height:1.1rem;display:flex}.toast-icon svg[data-v-5cf00320]{width:100%;height:100%}.toast-msg[data-v-5cf00320]{line-height:1.4}.toast-confirm-mask[data-v-5cf00320]{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000059;display:flex;align-items:center;justify-content:center;z-index:10000;pointer-events:auto}.toast-confirm[data-v-5cf00320]{background:#fff;border-radius:10px;padding:1.5rem;min-width:280px;max-width:360px;box-shadow:0 8px 24px #0000002e}.toast-confirm-msg[data-v-5cf00320]{font-size:.95rem;color:#0f172a;margin-bottom:1.25rem;line-height:1.5}.toast-confirm-actions[data-v-5cf00320]{display:flex;gap:.75rem;justify-content:flex-end}.tc-btn[data-v-5cf00320]{padding:.45rem 1rem;border-radius:6px;font-size:.9rem;cursor:pointer;border:none;font-weight:500}.tc-btn.cancel[data-v-5cf00320]{background:#f1f5f9;color:#475569}.tc-btn.cancel[data-v-5cf00320]:hover{background:#e2e8f0}.tc-btn.ok[data-v-5cf00320]{background:#2563eb;color:#fff}.tc-btn.ok[data-v-5cf00320]:hover{background:#1d4ed8}.toast-enter-active[data-v-5cf00320]{animation:toast-in-5cf00320 .22s ease}.toast-leave-active[data-v-5cf00320]{animation:toast-out-5cf00320 .18s ease forwards}@keyframes toast-in-5cf00320{0%{opacity:0;transform:translate(1rem)}to{opacity:1;transform:translate(0)}}@keyframes toast-out-5cf00320{0%{opacity:1;transform:translate(0)}to{opacity:0;transform:translate(1rem)}}.app-layout[data-v-ee1bb6ce]{min-height:100vh;display:flex}.sidebar[data-v-ee1bb6ce]{position:fixed;left:0;top:0;bottom:0;width:200px;background:var(--bg-sidebar);display:flex;flex-direction:column;z-index:20}.sidebar-logo[data-v-ee1bb6ce]{display:flex;align-items:center;gap:.6rem;padding:1.25rem 1.25rem 1rem;color:#fff;font-weight:700;font-size:1rem;border-bottom:1px solid rgba(255,255,255,.08)}.sidebar-logo svg[data-v-ee1bb6ce]{width:1.25rem;height:1.25rem;flex-shrink:0;color:#60a5fa}.side-nav[data-v-ee1bb6ce]{flex:1;display:flex;flex-direction:column;padding:.75rem 0}.side-nav a[data-v-ee1bb6ce]{display:flex;align-items:center;gap:.6rem;color:var(--text-sidebar-muted);padding:.6rem 1.25rem;font-size:.9rem;border-left:3px solid transparent;transition:background .15s,color .15s;text-decoration:none}.side-nav a svg[data-v-ee1bb6ce]{width:1rem;height:1rem;flex-shrink:0}.side-nav a[data-v-ee1bb6ce]:hover{background:var(--bg-sidebar-hover);color:var(--text-sidebar);text-decoration:none}.side-nav a.active[data-v-ee1bb6ce]{background:#2563eb40;color:#93c5fd;border-left-color:#3b82f6}.sidebar-footer[data-v-ee1bb6ce]{padding:1rem 1.25rem;border-top:1px solid rgba(255,255,255,.08);display:flex;align-items:center;justify-content:space-between}.mode-badge[data-v-ee1bb6ce]{font-size:.75rem;padding:.2rem .5rem;border-radius:4px;font-weight:500}.mode-badge.local[data-v-ee1bb6ce]{background:#dbeafe26;color:#93c5fd}.mode-badge.remote[data-v-ee1bb6ce]{background:#e9d5ff26;color:#c4b5fd}.switch-mode-link[data-v-ee1bb6ce]{font-size:.78rem;color:var(--text-sidebar-muted);text-decoration:none}.switch-mode-link[data-v-ee1bb6ce]:hover{color:var(--text-sidebar);text-decoration:none}.content-wrap[data-v-ee1bb6ce]{margin-left:200px;flex:1;display:flex;flex-direction:column;min-height:100vh}.content-standalone[data-v-ee1bb6ce]{margin-left:0}.topbar[data-v-ee1bb6ce]{position:sticky;top:0;height:52px;display:flex;align-items:center;justify-content:space-between;padding:0 1.5rem;background:var(--bg-card);border-bottom:1px solid var(--border);z-index:10}.topbar-left .page-title[data-v-ee1bb6ce]{font-weight:600;font-size:.95rem;color:var(--text-primary)}.topbar-right[data-v-ee1bb6ce]{display:flex;align-items:center;gap:.75rem}.username[data-v-ee1bb6ce]{font-size:.875rem;color:var(--text-secondary)}.logout-btn[data-v-ee1bb6ce]{font-size:.85rem;color:var(--text-secondary);background:none;border:none;cursor:pointer;padding:.25rem 0}.logout-btn[data-v-ee1bb6ce]:hover{color:var(--btn-primary)}.main[data-v-ee1bb6ce]{flex:1;padding:1.5rem}.mode-select[data-v-b465f762]{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--bg-main);padding:2rem}.card[data-v-b465f762]{background:var(--bg-card);border-radius:12px;padding:2.5rem;max-width:480px;width:100%;box-shadow:0 1px 3px #00000014}.card h1[data-v-b465f762]{font-size:1.5rem;margin-bottom:.5rem}.desc[data-v-b465f762]{color:var(--text-secondary);font-size:.95rem;margin-bottom:1.5rem}.options[data-v-b465f762]{display:flex;flex-direction:column;gap:1rem}.option[data-v-b465f762]{padding:1.25rem 1.5rem;border:2px solid var(--border);border-radius:var(--radius);background:#fff;text-align:left;transition:border-color .2s,background .2s}.option[data-v-b465f762]:hover{border-color:var(--btn-primary);background:#f8fafc}.option .title[data-v-b465f762]{display:block;font-weight:600;margin-bottom:.25rem}.option .sub[data-v-b465f762]{font-size:.9rem;color:var(--text-secondary)}.auth-page[data-v-d4d57b91]{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:2rem}.card[data-v-d4d57b91]{background:var(--bg-card);border-radius:12px;padding:2rem;max-width:400px;width:100%;box-shadow:0 1px 3px #00000014}.card h1[data-v-d4d57b91]{font-size:1.5rem;margin-bottom:.5rem}.desc[data-v-d4d57b91]{color:var(--text-secondary);font-size:.9rem;margin-bottom:1.5rem}.form[data-v-d4d57b91]{display:flex;flex-direction:column;gap:1rem}.field label[data-v-d4d57b91]{display:block;font-size:.9rem;margin-bottom:.35rem;color:var(--text-secondary)}.field input[data-v-d4d57b91]{width:100%;padding:.6rem .75rem;border:1px solid var(--border);border-radius:var(--radius)}.error[data-v-d4d57b91]{color:#dc2626;font-size:.9rem}.btn.primary[data-v-d4d57b91]{background:var(--btn-primary);color:#fff;padding:.65rem 1rem;font-weight:500}.btn.primary[data-v-d4d57b91]:hover:not(:disabled){background:var(--btn-primary-hover)}.btn.primary[data-v-d4d57b91]:disabled{opacity:.6;cursor:not-allowed}.footer[data-v-d4d57b91]{margin-top:1rem;font-size:.9rem;color:var(--text-secondary)}.auth-page[data-v-a1c8458c]{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:2rem}.card[data-v-a1c8458c]{background:var(--bg-card);border-radius:12px;padding:2rem;max-width:400px;width:100%;box-shadow:0 1px 3px #00000014}.card h1[data-v-a1c8458c]{font-size:1.5rem;margin-bottom:.5rem}.desc[data-v-a1c8458c]{color:var(--text-secondary);font-size:.9rem;margin-bottom:1.5rem}.form[data-v-a1c8458c]{display:flex;flex-direction:column;gap:1rem}.field label[data-v-a1c8458c]{display:block;font-size:.9rem;margin-bottom:.35rem;color:var(--text-secondary)}.field input[data-v-a1c8458c]{width:100%;padding:.6rem .75rem;border:1px solid var(--border);border-radius:var(--radius)}.error[data-v-a1c8458c]{color:#dc2626;font-size:.9rem}.success[data-v-a1c8458c]{color:#16a34a;font-size:.9rem}.btn.primary[data-v-a1c8458c]{background:var(--btn-primary);color:#fff;padding:.65rem 1rem;font-weight:500}.btn.primary[data-v-a1c8458c]:hover:not(:disabled){background:var(--btn-primary-hover)}.btn.primary[data-v-a1c8458c]:disabled{opacity:.6;cursor:not-allowed}.footer[data-v-a1c8458c]{margin-top:1rem;font-size:.9rem;color:var(--text-secondary)}.proxy-settings[data-v-44d33970]{display:flex;flex-direction:column;gap:1.25rem}.card[data-v-44d33970]{background:var(--bg-card);border-radius:var(--radius);padding:1.5rem;box-shadow:0 1px 3px #0000000f}.card h3[data-v-44d33970]{font-size:.95rem;font-weight:600;margin-bottom:.35rem}.desc[data-v-44d33970]{color:var(--text-secondary);font-size:.875rem;margin-bottom:1.25rem;line-height:1.5}.desc code[data-v-44d33970]{background:#f1f5f9;padding:.1rem .3rem;border-radius:4px;font-size:.82rem}.mode-cards[data-v-44d33970]{display:grid;grid-template-columns:repeat(4,1fr);gap:.75rem}.mode-card[data-v-44d33970]{display:flex;flex-direction:column;align-items:center;gap:.35rem;padding:1rem .5rem;border:1.5px solid var(--border);border-radius:var(--radius);background:var(--bg-card);cursor:pointer;transition:border-color .15s,background .15s,box-shadow .15s;text-align:center}.mode-card[data-v-44d33970]:hover:not(:disabled){border-color:var(--btn-primary);background:#f8fafc}.mode-card.active[data-v-44d33970]{border-color:var(--btn-primary);background:#eff6ff;box-shadow:0 0 0 3px #2563eb1a}.mode-card.active-clear[data-v-44d33970]{border-color:#94a3b8;background:#f8fafc;box-shadow:0 0 0 3px #94a3b826}.mode-card[data-v-44d33970]:disabled{opacity:.55;cursor:not-allowed}.mode-icon[data-v-44d33970]{width:1.5rem;height:1.5rem;color:var(--text-secondary)}.mode-icon[data-v-44d33970] svg{width:100%;height:100%}.mode-card.active .mode-icon[data-v-44d33970]{color:var(--btn-primary)}.mode-card.active-clear .mode-icon[data-v-44d33970]{color:#64748b}.mode-label[data-v-44d33970]{font-size:.875rem;font-weight:600;color:var(--text-primary)}.mode-desc[data-v-44d33970]{font-size:.78rem;color:var(--text-secondary);line-height:1.3}.ca-download[data-v-44d33970]{margin-top:1rem;padding-top:1rem;border-top:1px solid var(--border)}.ca-label[data-v-44d33970]{display:block;font-size:.875rem;color:var(--text-secondary);margin-bottom:.5rem}.btn-ca[data-v-44d33970]{display:inline-block;padding:.4rem .8rem;font-size:.875rem;background:var(--btn-primary);color:#fff;border-radius:var(--radius);text-decoration:none;margin-bottom:.5rem}.btn-ca[data-v-44d33970]:hover{background:var(--btn-primary-hover);text-decoration:none}.ca-hint[data-v-44d33970]{font-size:.82rem;color:var(--text-secondary);margin:0}.field[data-v-44d33970]{margin-bottom:1rem}.field label[data-v-44d33970]{display:block;font-size:.875rem;margin-bottom:.35rem;color:var(--text-secondary)}.field input[data-v-44d33970]{width:100%;padding:.5rem .75rem;border:1px solid var(--border);border-radius:var(--radius);font-size:.9rem}.upstream-managed[data-v-44d33970]{display:flex;align-items:center;gap:.5rem;padding:.5rem .75rem;background:#eff6ff;border:1px solid #bfdbfe;border-radius:var(--radius);font-size:.875rem;color:#1e40af}.upstream-managed svg[data-v-44d33970]{width:1rem;height:1rem;flex-shrink:0}.upstream-managed a[data-v-44d33970]{color:#2563eb;font-size:.82rem;margin-left:auto}.row[data-v-44d33970]{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.actions[data-v-44d33970]{margin-top:.5rem}.btn.primary[data-v-44d33970]{display:inline-flex;align-items:center;gap:.4rem;background:var(--btn-primary);color:#fff;padding:.5rem 1.25rem;font-size:.9rem;border:none;border-radius:var(--radius);cursor:pointer;transition:background .15s}.btn.primary[data-v-44d33970]:hover:not(:disabled){background:var(--btn-primary-hover)}.btn.primary[data-v-44d33970]:disabled{opacity:.6;cursor:not-allowed}.btn-spinner[data-v-44d33970]{width:.85rem;height:.85rem;border:2px solid rgba(255,255,255,.4);border-top-color:#fff;border-radius:50%;animation:spin-44d33970 .6s linear infinite;flex-shrink:0}@keyframes spin-44d33970{to{transform:rotate(360deg)}}.status-card .status-line[data-v-44d33970]{display:flex;align-items:center;gap:.5rem;margin-bottom:.5rem}.status-dot[data-v-44d33970]{width:8px;height:8px;border-radius:50%;flex-shrink:0}.status-dot.on[data-v-44d33970]{background:var(--switch-on);box-shadow:0 0 0 3px #22c55e33;animation:pulse-44d33970 2s ease-in-out infinite}.status-dot.off[data-v-44d33970]{background:#cbd5e1}@keyframes pulse-44d33970{0%,to{box-shadow:0 0 0 3px #22c55e33}50%{box-shadow:0 0 0 5px #22c55e14}}.status-on[data-v-44d33970]{color:var(--switch-on);font-weight:600;font-size:.9rem}.status-off[data-v-44d33970]{color:var(--text-secondary);font-size:.9rem}.status-port[data-v-44d33970]{color:var(--text-secondary);font-size:.875rem}.hint[data-v-44d33970]{font-size:.875rem;color:var(--text-secondary);margin-top:.25rem;line-height:1.5}.hint strong[data-v-44d33970]{color:var(--text-primary)}.hint.error[data-v-44d33970]{color:#dc2626}.pac-rules[data-v-abe2d935]{display:flex;flex-direction:column;gap:1.25rem}.card[data-v-abe2d935]{background:var(--bg-card);border-radius:var(--radius);padding:1.5rem;box-shadow:0 1px 3px #0000000f}.card-header[data-v-abe2d935]{margin-bottom:1rem}.card-header h3[data-v-abe2d935]{font-size:.95rem;font-weight:600;display:flex;align-items:center;gap:.5rem;margin-bottom:.25rem}.rule-count[data-v-abe2d935]{display:inline-flex;align-items:center;justify-content:center;background:#e0e7ff;color:#3730a3;font-size:.75rem;font-weight:600;min-width:1.4rem;height:1.4rem;padding:0 .35rem;border-radius:999px}.desc[data-v-abe2d935]{color:var(--text-secondary);font-size:.875rem;line-height:1.5}.toolbar[data-v-abe2d935]{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;margin-bottom:1rem}.btn[data-v-abe2d935]{display:inline-flex;align-items:center;gap:.35rem;padding:.45rem .85rem;font-size:.875rem;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-card);cursor:pointer;color:var(--text-primary);transition:background .15s,border-color .15s;white-space:nowrap}.btn svg[data-v-abe2d935]{width:.9rem;height:.9rem;flex-shrink:0}.btn[data-v-abe2d935]:hover:not(:disabled){background:#f1f5f9;border-color:#cbd5e1}.btn[data-v-abe2d935]:disabled{opacity:.5;cursor:not-allowed}.btn.primary[data-v-abe2d935]{background:var(--btn-primary);color:#fff;border-color:var(--btn-primary)}.btn.primary[data-v-abe2d935]:hover:not(:disabled){background:var(--btn-primary-hover);border-color:var(--btn-primary-hover)}.search-wrap[data-v-abe2d935]{position:relative;margin-left:auto}.search-icon[data-v-abe2d935]{position:absolute;left:.6rem;top:50%;transform:translateY(-50%);width:.9rem;height:.9rem;color:var(--text-secondary);pointer-events:none}.search-input[data-v-abe2d935]{padding:.45rem .75rem .45rem 2rem;border:1px solid var(--border);border-radius:var(--radius);font-size:.875rem;min-width:180px}.table-wrap[data-v-abe2d935]{overflow-x:auto}.table[data-v-abe2d935]{width:100%;border-collapse:collapse}.table th[data-v-abe2d935],.table td[data-v-abe2d935]{padding:.6rem .75rem;text-align:left;border-bottom:1px solid var(--border)}.table th[data-v-abe2d935]{font-weight:600;color:var(--text-secondary);font-size:.82rem;text-transform:uppercase;letter-spacing:.03em}.table tbody tr[data-v-abe2d935]:hover{background:#f8fafc}.table .empty[data-v-abe2d935]{color:var(--text-secondary);text-align:center;padding:2rem;font-size:.9rem}.pattern-cell[data-v-abe2d935]{font-family:Menlo,Consolas,monospace;font-size:.875rem}.priority-cell[data-v-abe2d935]{color:var(--text-secondary);font-size:.875rem}.action-badge[data-v-abe2d935]{display:inline-block;padding:.15rem .5rem;border-radius:999px;font-size:.78rem;font-weight:500}.action-badge.proxy[data-v-abe2d935]{background:#dbeafe;color:#1d4ed8}.action-badge.direct[data-v-abe2d935]{background:#f1f5f9;color:#475569}.ops-cell[data-v-abe2d935]{white-space:nowrap}.icon-btn[data-v-abe2d935]{display:inline-flex;align-items:center;justify-content:center;width:1.75rem;height:1.75rem;border:none;border-radius:6px;background:transparent;cursor:pointer;color:var(--text-secondary);transition:background .15s,color .15s;margin-right:.25rem}.icon-btn svg[data-v-abe2d935]{width:.9rem;height:.9rem}.icon-btn[data-v-abe2d935]:hover{background:#f1f5f9;color:var(--text-primary)}.icon-btn.danger[data-v-abe2d935]:hover{background:#fee2e2;color:#dc2626}.modal[data-v-abe2d935]{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;display:flex;align-items:center;justify-content:center;z-index:100}.modal-content[data-v-abe2d935]{background:var(--bg-card);border-radius:var(--radius);padding:1.5rem;min-width:360px;max-width:440px;width:100%;box-shadow:0 8px 24px #00000026}.modal-content h3[data-v-abe2d935]{font-size:1rem;font-weight:600;margin-bottom:1.25rem}.field[data-v-abe2d935]{margin-bottom:1rem}.field label[data-v-abe2d935]{display:block;font-size:.875rem;margin-bottom:.35rem;color:var(--text-secondary)}.field input[data-v-abe2d935]{width:100%;padding:.5rem .75rem;border:1px solid var(--border);border-radius:var(--radius);font-size:.9rem}.action-toggle[data-v-abe2d935]{display:flex;gap:0;border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.toggle-opt[data-v-abe2d935]{flex:1;padding:.45rem 0;font-size:.875rem;border:none;background:transparent;cursor:pointer;color:var(--text-secondary);transition:background .15s,color .15s}.toggle-opt[data-v-abe2d935]:first-child{border-right:1px solid var(--border)}.toggle-opt.active[data-v-abe2d935]{background:var(--btn-primary);color:#fff}.modal-actions[data-v-abe2d935]{display:flex;gap:.75rem;justify-content:flex-end;margin-top:1.25rem}.traffic-page[data-v-4331eb78]{display:flex;flex-direction:column;gap:1.25rem}.card[data-v-4331eb78]{background:var(--bg-card);border-radius:var(--radius);padding:1.5rem;box-shadow:0 1px 3px #0000000f}.capture-card[data-v-4331eb78]{padding:1rem 1.5rem}.capture-banner[data-v-4331eb78]{display:flex;align-items:center;gap:.5rem;background:#eff6ff;color:#1e40af;padding:.5rem .75rem;border-radius:var(--radius);font-size:.875rem;margin-bottom:1rem}.capture-banner svg[data-v-4331eb78]{width:1rem;height:1rem;flex-shrink:0}.toolbar[data-v-4331eb78]{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;margin-bottom:1rem}.auto-refresh[data-v-4331eb78]{display:flex;align-items:center;gap:.5rem}.toggle-btn[data-v-4331eb78]{width:36px;height:20px;border-radius:10px;background:var(--switch-off);padding:2px;border:none;cursor:pointer;transition:background .2s;position:relative}.toggle-btn.on[data-v-4331eb78]{background:var(--switch-on)}.toggle-knob[data-v-4331eb78]{display:block;width:16px;height:16px;border-radius:50%;background:#fff;transition:transform .2s;box-shadow:0 1px 3px #0003}.toggle-btn.on .toggle-knob[data-v-4331eb78]{transform:translate(16px)}.toggle-label[data-v-4331eb78]{font-size:.875rem;color:var(--text-secondary)}.record-count[data-v-4331eb78]{font-size:.82rem;color:var(--text-secondary);margin-left:auto}.btn[data-v-4331eb78]{display:inline-flex;align-items:center;gap:.35rem;padding:.45rem .85rem;font-size:.875rem;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-card);cursor:pointer;color:var(--text-primary);transition:background .15s}.btn svg[data-v-4331eb78]{width:.9rem;height:.9rem}.btn[data-v-4331eb78]:hover:not(:disabled){background:#f1f5f9}.btn[data-v-4331eb78]:disabled{opacity:.5;cursor:not-allowed}.btn.small[data-v-4331eb78]{padding:.35rem .75rem;font-size:.82rem}.toolbar .search-input[data-v-4331eb78],.toolbar .filter-select[data-v-4331eb78],.toolbar .status-input[data-v-4331eb78],.toolbar .sort-order-btn[data-v-4331eb78]{height:2.1rem;padding:0 .6rem;border:1px solid var(--border);border-radius:var(--radius);font-size:.875rem;background:#fff}.toolbar .search-input[data-v-4331eb78]{min-width:160px}.toolbar .filter-select[data-v-4331eb78]{min-width:6rem;cursor:pointer}.toolbar .status-input[data-v-4331eb78]{width:72px}.toolbar .sort-order-btn[data-v-4331eb78]{width:2.1rem;padding:0;cursor:pointer;background:#f8fafc}.table-wrap[data-v-4331eb78]{overflow-x:auto}.table[data-v-4331eb78]{width:100%;border-collapse:collapse}.table th[data-v-4331eb78],.table td[data-v-4331eb78]{padding:.55rem .75rem;text-align:left;border-bottom:1px solid var(--border)}.table th[data-v-4331eb78]{font-weight:600;color:var(--text-secondary);font-size:.82rem;text-transform:uppercase;letter-spacing:.03em}.table tbody tr[data-v-4331eb78]:hover{background:#f8fafc}.table .empty[data-v-4331eb78]{color:var(--text-secondary);text-align:center;padding:2rem;font-size:.9rem}.time-cell[data-v-4331eb78]{font-size:.82rem;color:var(--text-secondary);white-space:nowrap}.url-cell[data-v-4331eb78]{max-width:320px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.875rem}.action-badge[data-v-4331eb78]{display:inline-block;padding:.15rem .5rem;border-radius:999px;font-size:.78rem;font-weight:500}.action-badge.proxy[data-v-4331eb78]{background:#dbeafe;color:#1d4ed8}.action-badge.direct[data-v-4331eb78]{background:#f1f5f9;color:#475569}.row-clickable[data-v-4331eb78]{cursor:pointer}.method-tag[data-v-4331eb78]{font-size:.78rem;padding:.15rem .4rem;border-radius:4px;font-weight:500}.method-tag.GET[data-v-4331eb78]{background:#dbeafe;color:#1d4ed8}.method-tag.POST[data-v-4331eb78]{background:#d1fae5;color:#047857}.method-tag.PUT[data-v-4331eb78]{background:#fef3c7;color:#b45309}.method-tag.DELETE[data-v-4331eb78]{background:#fee2e2;color:#b91c1c}.method-tag.HEAD[data-v-4331eb78],.method-tag.OPTIONS[data-v-4331eb78]{background:#f1f5f9;color:#64748b}.method-tag.PATCH[data-v-4331eb78]{background:#fce7f3;color:#9d174d}.status-tag[data-v-4331eb78]{font-size:.82rem;padding:.15rem .4rem;border-radius:4px;font-weight:500}.status-2xx[data-v-4331eb78]{background:#d1fae5;color:#047857}.status-3xx[data-v-4331eb78]{background:#e0e7ff;color:#3730a3}.status-4xx[data-v-4331eb78]{background:#fee2e2;color:#b91c1c}.status-5xx[data-v-4331eb78]{background:#fecaca;color:#991b1b}.btn-link[data-v-4331eb78]{background:none;border:none;color:var(--btn-primary);cursor:pointer;font-size:.875rem;padding:0}.btn-link[data-v-4331eb78]:hover{text-decoration:underline}.pagination[data-v-4331eb78]{margin-top:1rem;display:flex;align-items:center;gap:.75rem}.pagination-info[data-v-4331eb78]{font-size:.875rem;color:var(--text-secondary)}.drawer-mask[data-v-4331eb78]{position:fixed;top:0;right:0;bottom:0;left:0;background:#0000004d;z-index:100}.drawer[data-v-4331eb78]{position:fixed;top:0;right:0;width:min(560px,100vw);height:100vh;background:var(--bg-card);box-shadow:-2px 0 16px #0000001f;z-index:101;display:flex;flex-direction:column;overflow:hidden}.drawer-header[data-v-4331eb78]{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.25rem;border-bottom:1px solid var(--border);flex-shrink:0}.drawer-title[data-v-4331eb78]{font-size:.95rem;font-weight:600}.drawer-close[data-v-4331eb78]{width:2rem;height:2rem;border:none;background:none;font-size:1.5rem;line-height:1;cursor:pointer;color:var(--text-secondary);border-radius:6px}.drawer-close[data-v-4331eb78]:hover{background:#f1f5f9;color:var(--text-primary)}.drawer-url-section[data-v-4331eb78]{margin-bottom:1.25rem;padding-bottom:1rem;border-bottom:1px solid var(--border)}.drawer-url-head[data-v-4331eb78]{display:flex;align-items:center;justify-content:space-between;gap:.5rem;margin-bottom:.35rem}.drawer-method-tag[data-v-4331eb78]{font-size:.78rem;font-weight:600;padding:.15rem .4rem;border-radius:4px}.btn-copy-url[data-v-4331eb78]{padding:.3rem .6rem;font-size:.82rem;border:1px solid var(--border);border-radius:var(--radius);background:#f1f5f9;cursor:pointer}.btn-copy-url[data-v-4331eb78]:hover{background:#e2e8f0}.drawer-url[data-v-4331eb78]{margin:0;padding:.5rem .6rem;background:#f8fafc;border-radius:var(--radius);font-size:.82rem;line-height:1.4;white-space:pre-wrap;word-break:break-all;max-height:5rem;overflow:auto}.drawer-tabs[data-v-4331eb78]{display:flex;gap:.25rem;padding:.5rem 1rem;border-bottom:1px solid var(--border);flex-shrink:0}.drawer-tabs button[data-v-4331eb78]{padding:.4rem .75rem;font-size:.875rem;border:none;background:none;border-radius:var(--radius);cursor:pointer;color:var(--text-secondary)}.drawer-tabs button.active[data-v-4331eb78]{background:var(--btn-primary);color:#fff}.drawer-body[data-v-4331eb78]{flex:1;overflow:auto;padding:1rem 1.25rem}.detail-section[data-v-4331eb78]{margin-bottom:1.25rem}.detail-section h4[data-v-4331eb78]{font-size:.82rem;margin-bottom:.35rem;color:var(--text-secondary);font-weight:600;text-transform:uppercase;letter-spacing:.03em}.headers-pre[data-v-4331eb78],.body-pre[data-v-4331eb78]{margin:0;padding:.75rem;background:#f8fafc;border-radius:var(--radius);font-size:.8rem;line-height:1.4;overflow-x:auto;white-space:pre-wrap;word-break:break-all;max-height:280px;overflow-y:auto}.shadowsocks-page[data-v-2f9daaee]{display:flex;flex-direction:column;gap:1.25rem}.card[data-v-2f9daaee]{background:var(--bg-card);border-radius:var(--radius);padding:1.5rem;box-shadow:0 1px 3px #0000000f}.card h3[data-v-2f9daaee]{font-size:.95rem;font-weight:600;margin-bottom:.35rem}.desc[data-v-2f9daaee]{color:var(--text-secondary);font-size:.875rem;line-height:1.5}.enable-row[data-v-2f9daaee]{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}.toggle-btn[data-v-2f9daaee]{flex-shrink:0;width:44px;height:24px;border-radius:12px;background:var(--switch-off);padding:2px;border:none;cursor:pointer;transition:background .2s;margin-top:.2rem}.toggle-btn.on[data-v-2f9daaee]{background:var(--switch-on)}.toggle-btn[data-v-2f9daaee]:disabled{opacity:.5;cursor:not-allowed}.toggle-knob[data-v-2f9daaee]{display:block;width:20px;height:20px;border-radius:50%;background:#fff;transition:transform .2s;box-shadow:0 1px 3px #0003}.toggle-btn.on .toggle-knob[data-v-2f9daaee]{transform:translate(20px)}.fields[data-v-2f9daaee]{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-bottom:1rem}.field-wide[data-v-2f9daaee]{grid-column:span 2}.field label[data-v-2f9daaee]{display:block;font-size:.875rem;margin-bottom:.35rem;color:var(--text-secondary)}.field input[data-v-2f9daaee],.field select[data-v-2f9daaee]{width:100%;padding:.5rem .75rem;border:1px solid var(--border);border-radius:var(--radius);font-size:.9rem}.password-wrap[data-v-2f9daaee]{position:relative}.password-wrap input[data-v-2f9daaee]{padding-right:2.5rem}.eye-btn[data-v-2f9daaee]{position:absolute;right:.5rem;top:50%;transform:translateY(-50%);background:none;border:none;cursor:pointer;color:var(--text-secondary);padding:.2rem;display:flex;align-items:center}.eye-btn svg[data-v-2f9daaee]{width:1rem;height:1rem}.eye-btn[data-v-2f9daaee]:hover{color:var(--text-primary)}.actions[data-v-2f9daaee]{margin-top:.25rem}.btn[data-v-2f9daaee]{display:inline-flex;align-items:center;gap:.35rem;padding:.45rem .85rem;font-size:.875rem;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-card);cursor:pointer;color:var(--text-primary);transition:background .15s}.btn[data-v-2f9daaee]:hover:not(:disabled){background:#f1f5f9}.btn[data-v-2f9daaee]:disabled{opacity:.5;cursor:not-allowed}.btn.primary[data-v-2f9daaee]{background:var(--btn-primary);color:#fff;border-color:var(--btn-primary)}.btn.primary[data-v-2f9daaee]:hover:not(:disabled){background:var(--btn-primary-hover);border-color:var(--btn-primary-hover)}.btn.danger[data-v-2f9daaee]{color:#dc2626;border-color:#fecaca}.btn.danger[data-v-2f9daaee]:hover:not(:disabled){background:#fef2f2}.btn.icon-only[data-v-2f9daaee]{padding:.45rem}.btn.icon-only svg[data-v-2f9daaee]{width:.9rem;height:.9rem}.btn-spinner[data-v-2f9daaee]{width:.85rem;height:.85rem;border:2px solid rgba(255,255,255,.4);border-top-color:#fff;border-radius:50%;animation:spin-2f9daaee .6s linear infinite;flex-shrink:0}@keyframes spin-2f9daaee{to{transform:rotate(360deg)}}.status-header[data-v-2f9daaee]{display:flex;align-items:center;justify-content:space-between;margin-bottom:.75rem}.status-header h3[data-v-2f9daaee]{margin-bottom:0}.status-actions[data-v-2f9daaee]{display:flex;gap:.5rem}.status-line[data-v-2f9daaee]{display:flex;align-items:center;gap:.5rem;margin-bottom:.35rem}.status-dot[data-v-2f9daaee]{width:8px;height:8px;border-radius:50%;flex-shrink:0}.status-dot.on[data-v-2f9daaee]{background:var(--switch-on);box-shadow:0 0 0 3px #22c55e33;animation:pulse-2f9daaee 2s ease-in-out infinite}.status-dot.off[data-v-2f9daaee]{background:#cbd5e1}@keyframes pulse-2f9daaee{0%,to{box-shadow:0 0 0 3px #22c55e33}50%{box-shadow:0 0 0 5px #22c55e14}}.status-on[data-v-2f9daaee]{color:var(--switch-on);font-weight:600;font-size:.9rem}.status-off[data-v-2f9daaee]{color:var(--text-secondary);font-size:.9rem}.status-pid[data-v-2f9daaee],.status-port[data-v-2f9daaee]{font-size:.82rem;color:var(--text-secondary)}.status-error[data-v-2f9daaee]{font-size:.875rem;color:#dc2626;margin-top:.35rem}.log-section[data-v-2f9daaee]{margin-top:1rem;border-top:1px solid var(--border);padding-top:.75rem}.log-toggle[data-v-2f9daaee]{display:flex;align-items:center;gap:.35rem;background:none;border:none;cursor:pointer;font-size:.875rem;color:var(--text-secondary);padding:0}.log-toggle svg[data-v-2f9daaee]{width:.9rem;height:.9rem;transition:transform .15s}.log-toggle[data-v-2f9daaee]:hover{color:var(--text-primary)}.log-count[data-v-2f9daaee]{font-size:.78rem;background:#f1f5f9;padding:.1rem .4rem;border-radius:999px}.log-pre[data-v-2f9daaee]{margin-top:.75rem;padding:.75rem;background:#0f172a;color:#94a3b8;border-radius:var(--radius);font-size:.78rem;line-height:1.5;max-height:240px;overflow-y:auto;white-space:pre-wrap;word-break:break-all}:root{--bg-sidebar: #1e293b;--bg-sidebar-hover: #334155;--bg-sidebar-active: #2563eb;--text-sidebar: #e2e8f0;--text-sidebar-muted: #94a3b8;--bg-main: #f8fafc;--bg-card: #ffffff;--text-primary: #0f172a;--text-secondary: #64748b;--border: #e2e8f0;--switch-on: #22c55e;--switch-off: #cbd5e1;--btn-primary: #2563eb;--btn-primary-hover: #1d4ed8;--radius: 8px;--font: -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif}*{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font);background:var(--bg-main);color:var(--text-primary);line-height:1.5;min-height:100vh}#app{min-height:100vh;display:flex;flex-direction:column}button{font-family:inherit;cursor:pointer;border:none;border-radius:var(--radius)}input,select{font-family:inherit;border-radius:var(--radius);outline:none;transition:border-color .15s}input:focus,select:focus{border-color:var(--btn-primary);box-shadow:0 0 0 3px #2563eb1f}a{color:var(--btn-primary);text-decoration:none}a:hover{text-decoration:underline}
|