From 55c40c4601a2dbdfd1d2c9861ab0cc4446c917b9 Mon Sep 17 00:00:00 2001 From: Rogee Date: Tue, 16 Dec 2025 17:59:53 +0800 Subject: [PATCH] feat: add super backend --- .gitignore | 1 + .../superadmin/dist/assets/index-CFAqJvax.js | 30 - frontend/superadmin/dist/index.html | 3 +- frontend/superadmin/package-lock.json | 1150 +++++++++++++++++ frontend/superadmin/package.json | 7 +- frontend/superadmin/postcss.config.js | 7 + frontend/superadmin/src/App.vue | 44 +- frontend/superadmin/src/api.ts | 30 +- frontend/superadmin/src/auth.ts | 18 + frontend/superadmin/src/main.ts | 11 +- frontend/superadmin/src/router.ts | 14 +- frontend/superadmin/src/styles.css | 4 + .../superadmin/src/views/DashboardPage.vue | 19 - frontend/superadmin/src/views/LoginPage.vue | 62 + frontend/superadmin/src/views/RolesPage.vue | 76 -- frontend/superadmin/src/views/TenantsPage.vue | 196 ++- frontend/superadmin/tailwind.config.js | 9 + 17 files changed, 1490 insertions(+), 191 deletions(-) delete mode 100644 frontend/superadmin/dist/assets/index-CFAqJvax.js create mode 100644 frontend/superadmin/postcss.config.js create mode 100644 frontend/superadmin/src/auth.ts create mode 100644 frontend/superadmin/src/styles.css delete mode 100644 frontend/superadmin/src/views/DashboardPage.vue create mode 100644 frontend/superadmin/src/views/LoginPage.vue delete mode 100644 frontend/superadmin/src/views/RolesPage.vue create mode 100644 frontend/superadmin/tailwind.config.js diff --git a/.gitignore b/.gitignore index 5737fdc..3dd2275 100644 --- a/.gitignore +++ b/.gitignore @@ -27,3 +27,4 @@ go.work.sum # Dependency directories (remove the comment below to include it) # vendor/ node_modules/ +dist/ diff --git a/frontend/superadmin/dist/assets/index-CFAqJvax.js b/frontend/superadmin/dist/assets/index-CFAqJvax.js deleted file mode 100644 index 88f05fc..0000000 --- a/frontend/superadmin/dist/assets/index-CFAqJvax.js +++ /dev/null @@ -1,30 +0,0 @@ -(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const r of document.querySelectorAll('link[rel="modulepreload"]'))s(r);new MutationObserver(r=>{for(const o of r)if(o.type==="childList")for(const i of o.addedNodes)i.tagName==="LINK"&&i.rel==="modulepreload"&&s(i)}).observe(document,{childList:!0,subtree:!0});function n(r){const o={};return r.integrity&&(o.integrity=r.integrity),r.referrerPolicy&&(o.referrerPolicy=r.referrerPolicy),r.crossOrigin==="use-credentials"?o.credentials="include":r.crossOrigin==="anonymous"?o.credentials="omit":o.credentials="same-origin",o}function s(r){if(r.ep)return;r.ep=!0;const o=n(r);fetch(r.href,o)}})();/** -* @vue/shared v3.5.25 -* (c) 2018-present Yuxi (Evan) You and Vue contributors -* @license MIT -**/function er(e){const t=Object.create(null);for(const n of e.split(","))t[n]=1;return n=>n in t}const te={},jt=[],rt=()=>{},Ho=()=>!1,Qn=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&(e.charCodeAt(2)>122||e.charCodeAt(2)<97),tr=e=>e.startsWith("onUpdate:"),ye=Object.assign,nr=(e,t)=>{const n=e.indexOf(t);n>-1&&e.splice(n,1)},Tl=Object.prototype.hasOwnProperty,Q=(e,t)=>Tl.call(e,t),H=Array.isArray,Ht=e=>Yn(e)==="[object Map]",ko=e=>Yn(e)==="[object Set]",k=e=>typeof e=="function",ae=e=>typeof e=="string",St=e=>typeof e=="symbol",oe=e=>e!==null&&typeof e=="object",Vo=e=>(oe(e)||k(e))&&k(e.then)&&k(e.catch),qo=Object.prototype.toString,Yn=e=>qo.call(e),Pl=e=>Yn(e).slice(8,-1),$o=e=>Yn(e)==="[object Object]",sr=e=>ae(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,rn=er(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),Zn=e=>{const t=Object.create(null);return(n=>t[n]||(t[n]=e(n)))},Nl=/-\w/g,je=Zn(e=>e.replace(Nl,t=>t.slice(1).toUpperCase())),Il=/\B([A-Z])/g,Ft=Zn(e=>e.replace(Il,"-$1").toLowerCase()),es=Zn(e=>e.charAt(0).toUpperCase()+e.slice(1)),ms=Zn(e=>e?`on${es(e)}`:""),xt=(e,t)=>!Object.is(e,t),Dn=(e,...t)=>{for(let n=0;n{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,writable:s,value:n})},rr=e=>{const t=parseFloat(e);return isNaN(t)?e:t};let Tr;const ts=()=>Tr||(Tr=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});function or(e){if(H(e)){const t={};for(let n=0;n{if(n){const s=n.split(Fl);s.length>1&&(t[s[0].trim()]=s[1].trim())}}),t}function ir(e){let t="";if(ae(e))t=e;else if(H(e))for(let n=0;n!!(e&&e.__v_isRef===!0),bt=e=>ae(e)?e:e==null?"":H(e)||oe(e)&&(e.toString===qo||!k(e.toString))?Go(e)?bt(e.value):JSON.stringify(e,zo,2):String(e),zo=(e,t)=>Go(t)?zo(e,t.value):Ht(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((n,[s,r],o)=>(n[gs(s,o)+" =>"]=r,n),{})}:ko(t)?{[`Set(${t.size})`]:[...t.values()].map(n=>gs(n))}:St(t)?gs(t):oe(t)&&!H(t)&&!$o(t)?String(t):t,gs=(e,t="")=>{var n;return St(e)?`Symbol(${(n=e.description)!=null?n:t})`:e};/** -* @vue/reactivity v3.5.25 -* (c) 2018-present Yuxi (Evan) You and Vue contributors -* @license MIT -**/let Se;class jl{constructor(t=!1){this.detached=t,this._active=!0,this._on=0,this.effects=[],this.cleanups=[],this._isPaused=!1,this.parent=Se,!t&&Se&&(this.index=(Se.scopes||(Se.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;t0&&--this._on===0&&(Se=this.prevScope,this.prevScope=void 0)}stop(t){if(this._active){this._active=!1;let n,s;for(n=0,s=this.effects.length;n0)return;if(ln){let t=ln;for(ln=void 0;t;){const n=t.next;t.next=void 0,t.flags&=-9,t=n}}let e;for(;on;){let t=on;for(on=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 Yo(e){for(let t=e.deps;t;t=t.nextDep)t.version=-1,t.prevActiveLink=t.dep.activeLink,t.dep.activeLink=t}function Zo(e){let t,n=e.depsTail,s=n;for(;s;){const r=s.prevDep;s.version===-1?(s===n&&(n=r),ar(s),kl(s)):t=s,s.dep.activeLink=s.prevActiveLink,s.prevActiveLink=void 0,s=r}e.deps=t,e.depsTail=n}function Ds(e){for(let t=e.deps;t;t=t.nextDep)if(t.dep.version!==t.version||t.dep.computed&&(ei(t.dep.computed)||t.dep.version!==t.version))return!0;return!!e._dirty}function ei(e){if(e.flags&4&&!(e.flags&16)||(e.flags&=-17,e.globalVersion===mn)||(e.globalVersion=mn,!e.isSSR&&e.flags&128&&(!e.deps&&!e._dirty||!Ds(e))))return;e.flags|=2;const t=e.dep,n=se,s=$e;se=e,$e=!0;try{Yo(e);const r=e.fn(e._value);(t.version===0||xt(r,e._value))&&(e.flags|=128,e._value=r,t.version++)}catch(r){throw t.version++,r}finally{se=n,$e=s,Zo(e),e.flags&=-3}}function ar(e,t=!1){const{dep:n,prevSub:s,nextSub:r}=e;if(s&&(s.nextSub=r,e.prevSub=void 0),r&&(r.prevSub=s,e.nextSub=void 0),n.subs===e&&(n.subs=s,!s&&n.computed)){n.computed.flags&=-5;for(let o=n.computed.deps;o;o=o.nextDep)ar(o,!0)}!t&&!--n.sc&&n.map&&n.map.delete(n.key)}function kl(e){const{prevDep:t,nextDep:n}=e;t&&(t.nextDep=n,e.prevDep=void 0),n&&(n.prevDep=t,e.nextDep=void 0)}let $e=!0;const ti=[];function ht(){ti.push($e),$e=!1}function pt(){const e=ti.pop();$e=e===void 0?!0:e}function Pr(e){const{cleanup:t}=e;if(e.cleanup=void 0,t){const n=se;se=void 0;try{t()}finally{se=n}}}let mn=0;class Vl{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 ur{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(!se||!$e||se===this.computed)return;let n=this.activeLink;if(n===void 0||n.sub!==se)n=this.activeLink=new Vl(se,this),se.deps?(n.prevDep=se.depsTail,se.depsTail.nextDep=n,se.depsTail=n):se.deps=se.depsTail=n,ni(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=se.depsTail,n.nextDep=void 0,se.depsTail.nextDep=n,se.depsTail=n,se.deps===n&&(se.deps=s)}return n}trigger(t){this.version++,mn++,this.notify(t)}notify(t){lr();try{for(let n=this.subs;n;n=n.prevSub)n.sub.notify()&&n.sub.dep.notify()}finally{cr()}}}function ni(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)ni(s)}const n=e.dep.subs;n!==e&&(e.prevSub=n,n&&(n.nextSub=e)),e.dep.subs=e}}const Fs=new WeakMap,Pt=Symbol(""),Ls=Symbol(""),gn=Symbol("");function he(e,t,n){if($e&&se){let s=Fs.get(e);s||Fs.set(e,s=new Map);let r=s.get(n);r||(s.set(n,r=new ur),r.map=s,r.key=n),r.track()}}function ut(e,t,n,s,r,o){const i=Fs.get(e);if(!i){mn++;return}const l=c=>{c&&c.trigger()};if(lr(),t==="clear")i.forEach(l);else{const c=H(e),u=c&&sr(n);if(c&&n==="length"){const a=Number(s);i.forEach((f,p)=>{(p==="length"||p===gn||!St(p)&&p>=a)&&l(f)})}else switch((n!==void 0||i.has(void 0))&&l(i.get(n)),u&&l(i.get(gn)),t){case"add":c?u&&l(i.get("length")):(l(i.get(Pt)),Ht(e)&&l(i.get(Ls)));break;case"delete":c||(l(i.get(Pt)),Ht(e)&&l(i.get(Ls)));break;case"set":Ht(e)&&l(i.get(Pt));break}}cr()}function Lt(e){const t=X(e);return t===e?t:(he(t,"iterate",gn),Be(e)?t:t.map(Ke))}function ns(e){return he(e=X(e),"iterate",gn),e}function _t(e,t){return mt(e)?Nt(e)?$t(Ke(t)):$t(t):Ke(t)}const ql={__proto__:null,[Symbol.iterator](){return bs(this,Symbol.iterator,e=>_t(this,e))},concat(...e){return Lt(this).concat(...e.map(t=>H(t)?Lt(t):t))},entries(){return bs(this,"entries",e=>(e[1]=_t(this,e[1]),e))},every(e,t){return lt(this,"every",e,t,void 0,arguments)},filter(e,t){return lt(this,"filter",e,t,n=>n.map(s=>_t(this,s)),arguments)},find(e,t){return lt(this,"find",e,t,n=>_t(this,n),arguments)},findIndex(e,t){return lt(this,"findIndex",e,t,void 0,arguments)},findLast(e,t){return lt(this,"findLast",e,t,n=>_t(this,n),arguments)},findLastIndex(e,t){return lt(this,"findLastIndex",e,t,void 0,arguments)},forEach(e,t){return lt(this,"forEach",e,t,void 0,arguments)},includes(...e){return _s(this,"includes",e)},indexOf(...e){return _s(this,"indexOf",e)},join(e){return Lt(this).join(e)},lastIndexOf(...e){return _s(this,"lastIndexOf",e)},map(e,t){return lt(this,"map",e,t,void 0,arguments)},pop(){return Zt(this,"pop")},push(...e){return Zt(this,"push",e)},reduce(e,...t){return Nr(this,"reduce",e,t)},reduceRight(e,...t){return Nr(this,"reduceRight",e,t)},shift(){return Zt(this,"shift")},some(e,t){return lt(this,"some",e,t,void 0,arguments)},splice(...e){return Zt(this,"splice",e)},toReversed(){return Lt(this).toReversed()},toSorted(e){return Lt(this).toSorted(e)},toSpliced(...e){return Lt(this).toSpliced(...e)},unshift(...e){return Zt(this,"unshift",e)},values(){return bs(this,"values",e=>_t(this,e))}};function bs(e,t,n){const s=ns(e),r=s[t]();return s!==e&&!Be(e)&&(r._next=r.next,r.next=()=>{const o=r._next();return o.done||(o.value=n(o.value)),o}),r}const $l=Array.prototype;function lt(e,t,n,s,r,o){const i=ns(e),l=i!==e&&!Be(e),c=i[t];if(c!==$l[t]){const f=c.apply(e,o);return l?Ke(f):f}let u=n;i!==e&&(l?u=function(f,p){return n.call(this,_t(e,f),p,e)}:n.length>2&&(u=function(f,p){return n.call(this,f,p,e)}));const a=c.call(i,u,s);return l&&r?r(a):a}function Nr(e,t,n,s){const r=ns(e);let o=n;return r!==e&&(Be(e)?n.length>3&&(o=function(i,l,c){return n.call(this,i,l,c,e)}):o=function(i,l,c){return n.call(this,i,_t(e,l),c,e)}),r[t](o,...s)}function _s(e,t,n){const s=X(e);he(s,"iterate",gn);const r=s[t](...n);return(r===-1||r===!1)&&hr(n[0])?(n[0]=X(n[0]),s[t](...n)):r}function Zt(e,t,n=[]){ht(),lr();const s=X(e)[t].apply(e,n);return cr(),pt(),s}const Kl=er("__proto__,__v_isRef,__isVue"),si=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!=="arguments"&&e!=="caller").map(e=>Symbol[e]).filter(St));function Wl(e){St(e)||(e=String(e));const t=X(this);return he(t,"has",e),t.hasOwnProperty(e)}class ri{constructor(t=!1,n=!1){this._isReadonly=t,this._isShallow=n}get(t,n,s){if(n==="__v_skip")return t.__v_skip;const r=this._isReadonly,o=this._isShallow;if(n==="__v_isReactive")return!r;if(n==="__v_isReadonly")return r;if(n==="__v_isShallow")return o;if(n==="__v_raw")return s===(r?o?nc:ci:o?li:ii).get(t)||Object.getPrototypeOf(t)===Object.getPrototypeOf(s)?t:void 0;const i=H(t);if(!r){let c;if(i&&(c=ql[n]))return c;if(n==="hasOwnProperty")return Wl}const l=Reflect.get(t,n,ge(t)?t:s);if((St(n)?si.has(n):Kl(n))||(r||he(t,"get",n),o))return l;if(ge(l)){const c=i&&sr(n)?l:l.value;return r&&oe(c)?Us(c):c}return oe(l)?r?Us(l):ss(l):l}}class oi extends ri{constructor(t=!1){super(!1,t)}set(t,n,s,r){let o=t[n];const i=H(t)&&sr(n);if(!this._isShallow){const u=mt(o);if(!Be(s)&&!mt(s)&&(o=X(o),s=X(s)),!i&&ge(o)&&!ge(s))return u||(o.value=s),!0}const l=i?Number(n)e,Tn=e=>Reflect.getPrototypeOf(e);function Ql(e,t,n){return function(...s){const r=this.__v_raw,o=X(r),i=Ht(o),l=e==="entries"||e===Symbol.iterator&&i,c=e==="keys"&&i,u=r[e](...s),a=n?Ms:t?$t:Ke;return!t&&he(o,"iterate",c?Ls:Pt),{next(){const{value:f,done:p}=u.next();return p?{value:f,done:p}:{value:l?[a(f[0]),a(f[1])]:a(f),done:p}},[Symbol.iterator](){return this}}}}function Pn(e){return function(...t){return e==="delete"?!1:e==="clear"?void 0:this}}function Yl(e,t){const n={get(r){const o=this.__v_raw,i=X(o),l=X(r);e||(xt(r,l)&&he(i,"get",r),he(i,"get",l));const{has:c}=Tn(i),u=t?Ms:e?$t:Ke;if(c.call(i,r))return u(o.get(r));if(c.call(i,l))return u(o.get(l));o!==i&&o.get(r)},get size(){const r=this.__v_raw;return!e&&he(X(r),"iterate",Pt),r.size},has(r){const o=this.__v_raw,i=X(o),l=X(r);return e||(xt(r,l)&&he(i,"has",r),he(i,"has",l)),r===l?o.has(r):o.has(r)||o.has(l)},forEach(r,o){const i=this,l=i.__v_raw,c=X(l),u=t?Ms:e?$t:Ke;return!e&&he(c,"iterate",Pt),l.forEach((a,f)=>r.call(o,u(a),u(f),i))}};return ye(n,e?{add:Pn("add"),set:Pn("set"),delete:Pn("delete"),clear:Pn("clear")}:{add(r){!t&&!Be(r)&&!mt(r)&&(r=X(r));const o=X(this);return Tn(o).has.call(o,r)||(o.add(r),ut(o,"add",r,r)),this},set(r,o){!t&&!Be(o)&&!mt(o)&&(o=X(o));const i=X(this),{has:l,get:c}=Tn(i);let u=l.call(i,r);u||(r=X(r),u=l.call(i,r));const a=c.call(i,r);return i.set(r,o),u?xt(o,a)&&ut(i,"set",r,o):ut(i,"add",r,o),this},delete(r){const o=X(this),{has:i,get:l}=Tn(o);let c=i.call(o,r);c||(r=X(r),c=i.call(o,r)),l&&l.call(o,r);const u=o.delete(r);return c&&ut(o,"delete",r,void 0),u},clear(){const r=X(this),o=r.size!==0,i=r.clear();return o&&ut(r,"clear",void 0,void 0),i}}),["keys","values","entries",Symbol.iterator].forEach(r=>{n[r]=Ql(r,e,t)}),n}function fr(e,t){const n=Yl(e,t);return(s,r,o)=>r==="__v_isReactive"?!e:r==="__v_isReadonly"?e:r==="__v_raw"?s:Reflect.get(Q(n,r)&&r in s?n:s,r,o)}const Zl={get:fr(!1,!1)},ec={get:fr(!1,!0)},tc={get:fr(!0,!1)};const ii=new WeakMap,li=new WeakMap,ci=new WeakMap,nc=new WeakMap;function sc(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function rc(e){return e.__v_skip||!Object.isExtensible(e)?0:sc(Pl(e))}function ss(e){return mt(e)?e:dr(e,!1,zl,Zl,ii)}function ai(e){return dr(e,!1,Xl,ec,li)}function Us(e){return dr(e,!0,Jl,tc,ci)}function dr(e,t,n,s,r){if(!oe(e)||e.__v_raw&&!(t&&e.__v_isReactive))return e;const o=rc(e);if(o===0)return e;const i=r.get(e);if(i)return i;const l=new Proxy(e,o===2?s:n);return r.set(e,l),l}function Nt(e){return mt(e)?Nt(e.__v_raw):!!(e&&e.__v_isReactive)}function mt(e){return!!(e&&e.__v_isReadonly)}function Be(e){return!!(e&&e.__v_isShallow)}function hr(e){return e?!!e.__v_raw:!1}function X(e){const t=e&&e.__v_raw;return t?X(t):e}function oc(e){return!Q(e,"__v_skip")&&Object.isExtensible(e)&&Ko(e,"__v_skip",!0),e}const Ke=e=>oe(e)?ss(e):e,$t=e=>oe(e)?Us(e):e;function ge(e){return e?e.__v_isRef===!0:!1}function yn(e){return ui(e,!1)}function ic(e){return ui(e,!0)}function ui(e,t){return ge(e)?e:new lc(e,t)}class lc{constructor(t,n){this.dep=new ur,this.__v_isRef=!0,this.__v_isShallow=!1,this._rawValue=n?t:X(t),this._value=n?t:Ke(t),this.__v_isShallow=n}get value(){return this.dep.track(),this._value}set value(t){const n=this._rawValue,s=this.__v_isShallow||Be(t)||mt(t);t=s?t:X(t),xt(t,n)&&(this._rawValue=t,this._value=s?t:Ke(t),this.dep.trigger())}}function kt(e){return ge(e)?e.value:e}const cc={get:(e,t,n)=>t==="__v_raw"?e:kt(Reflect.get(e,t,n)),set:(e,t,n,s)=>{const r=e[t];return ge(r)&&!ge(n)?(r.value=n,!0):Reflect.set(e,t,n,s)}};function fi(e){return Nt(e)?e:new Proxy(e,cc)}class ac{constructor(t,n,s){this.fn=t,this.setter=n,this._value=void 0,this.dep=new ur(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=mn-1,this.next=void 0,this.effect=this,this.__v_isReadonly=!n,this.isSSR=s}notify(){if(this.flags|=16,!(this.flags&8)&&se!==this)return Qo(this,!0),!0}get value(){const t=this.dep.track();return ei(this),t&&(t.version=this.dep.version),this._value}set value(t){this.setter&&this.setter(t)}}function uc(e,t,n=!1){let s,r;return k(e)?s=e:(s=e.get,r=e.set),new ac(s,r,n)}const Nn={},kn=new WeakMap;let Ot;function fc(e,t=!1,n=Ot){if(n){let s=kn.get(n);s||kn.set(n,s=[]),s.push(e)}}function dc(e,t,n=te){const{immediate:s,deep:r,once:o,scheduler:i,augmentJob:l,call:c}=n,u=P=>r?P:Be(P)||r===!1||r===0?ft(P,1):ft(P);let a,f,p,y,g=!1,R=!1;if(ge(e)?(f=()=>e.value,g=Be(e)):Nt(e)?(f=()=>u(e),g=!0):H(e)?(R=!0,g=e.some(P=>Nt(P)||Be(P)),f=()=>e.map(P=>{if(ge(P))return P.value;if(Nt(P))return u(P);if(k(P))return c?c(P,2):P()})):k(e)?t?f=c?()=>c(e,2):e:f=()=>{if(p){ht();try{p()}finally{pt()}}const P=Ot;Ot=a;try{return c?c(e,3,[y]):e(y)}finally{Ot=P}}:f=rt,t&&r){const P=f,q=r===!0?1/0:r;f=()=>ft(P(),q)}const S=Hl(),C=()=>{a.stop(),S&&S.active&&nr(S.effects,a)};if(o&&t){const P=t;t=(...q)=>{P(...q),C()}}let N=R?new Array(e.length).fill(Nn):Nn;const D=P=>{if(!(!(a.flags&1)||!a.dirty&&!P))if(t){const q=a.run();if(r||g||(R?q.some((re,K)=>xt(re,N[K])):xt(q,N))){p&&p();const re=Ot;Ot=a;try{const K=[q,N===Nn?void 0:R&&N[0]===Nn?[]:N,y];N=q,c?c(t,3,K):t(...K)}finally{Ot=re}}}else a.run()};return l&&l(D),a=new Jo(f),a.scheduler=i?()=>i(D,!1):D,y=P=>fc(P,!1,a),p=a.onStop=()=>{const P=kn.get(a);if(P){if(c)c(P,4);else for(const q of P)q();kn.delete(a)}},t?s?D(!0):N=a.run():i?i(D.bind(null,!0),!0):a.run(),C.pause=a.pause.bind(a),C.resume=a.resume.bind(a),C.stop=C,C}function ft(e,t=1/0,n){if(t<=0||!oe(e)||e.__v_skip||(n=n||new Map,(n.get(e)||0)>=t))return e;if(n.set(e,t),t--,ge(e))ft(e.value,t,n);else if(H(e))for(let s=0;s{ft(s,t,n)});else if($o(e)){for(const s in e)ft(e[s],t,n);for(const s of Object.getOwnPropertySymbols(e))Object.prototype.propertyIsEnumerable.call(e,s)&&ft(e[s],t,n)}return e}/** -* @vue/runtime-core v3.5.25 -* (c) 2018-present Yuxi (Evan) You and Vue contributors -* @license MIT -**/function Rn(e,t,n,s){try{return s?e(...s):e()}catch(r){rs(r,t,n)}}function ot(e,t,n,s){if(k(e)){const r=Rn(e,t,n,s);return r&&Vo(r)&&r.catch(o=>{rs(o,t,n)}),r}if(H(e)){const r=[];for(let o=0;o>>1,r=Ee[s],o=bn(r);o=bn(n)?Ee.push(e):Ee.splice(pc(t),0,e),e.flags|=1,pi()}}function pi(){Vn||(Vn=di.then(gi))}function mc(e){H(e)?Vt.push(...e):Et&&e.id===-1?Et.splice(Mt+1,0,e):e.flags&1||(Vt.push(e),e.flags|=1),pi()}function Ir(e,t,n=nt+1){for(;nbn(n)-bn(s));if(Vt.length=0,Et){Et.push(...t);return}for(Et=t,Mt=0;Mte.id==null?e.flags&2?-1:1/0:e.id;function gi(e){try{for(nt=0;nt{s._d&&Wn(-1);const o=qn(t);let i;try{i=e(...r)}finally{qn(o),s._d&&Wn(1)}return i};return s._n=!0,s._c=!0,s._d=!0,s}function bi(e,t){if(De===null)return e;const n=cs(De),s=e.dirs||(e.dirs=[]);for(let r=0;re.__isTeleport,bc=Symbol("_leaveCb");function mr(e,t){e.shapeFlag&6&&e.component?(e.transition=t,mr(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 xn(e,t){return k(e)?ye({name:e.name},t,{setup:e}):e}function _i(e){e.ids=[e.ids[0]+e.ids[2]+++"-",0,0]}const $n=new WeakMap;function cn(e,t,n,s,r=!1){if(H(e)){e.forEach((g,R)=>cn(g,t&&(H(t)?t[R]:t),n,s,r));return}if(an(s)&&!r){s.shapeFlag&512&&s.type.__asyncResolved&&s.component.subTree.component&&cn(e,t,n,s.component.subTree);return}const o=s.shapeFlag&4?cs(s.component):s.el,i=r?null:o,{i:l,r:c}=e,u=t&&t.r,a=l.refs===te?l.refs={}:l.refs,f=l.setupState,p=X(f),y=f===te?Ho:g=>Q(p,g);if(u!=null&&u!==c){if(Dr(t),ae(u))a[u]=null,y(u)&&(f[u]=null);else if(ge(u)){u.value=null;const g=t;g.k&&(a[g.k]=null)}}if(k(c))Rn(c,l,12,[i,a]);else{const g=ae(c),R=ge(c);if(g||R){const S=()=>{if(e.f){const C=g?y(c)?f[c]:a[c]:c.value;if(r)H(C)&&nr(C,o);else if(H(C))C.includes(o)||C.push(o);else if(g)a[c]=[o],y(c)&&(f[c]=a[c]);else{const N=[o];c.value=N,e.k&&(a[e.k]=N)}}else g?(a[c]=i,y(c)&&(f[c]=i)):R&&(c.value=i,e.k&&(a[e.k]=i))};if(i){const C=()=>{S(),$n.delete(e)};C.id=-1,$n.set(e,C),Ie(C,n)}else Dr(e),S()}}}function Dr(e){const t=$n.get(e);t&&(t.flags|=8,$n.delete(e))}ts().requestIdleCallback;ts().cancelIdleCallback;const an=e=>!!e.type.__asyncLoader,Ei=e=>e.type.__isKeepAlive;function _c(e,t){wi(e,"a",t)}function Ec(e,t){wi(e,"da",t)}function wi(e,t,n=pe){const s=e.__wdc||(e.__wdc=()=>{let r=n;for(;r;){if(r.isDeactivated)return;r=r.parent}return e()});if(os(t,s,n),n){let r=n.parent;for(;r&&r.parent;)Ei(r.parent.vnode)&&wc(s,t,n,r),r=r.parent}}function wc(e,t,n,s){const r=os(t,e,s,!0);Ri(()=>{nr(s[t],r)},n)}function os(e,t,n=pe,s=!1){if(n){const r=n[e]||(n[e]=[]),o=t.__weh||(t.__weh=(...i)=>{ht();const l=Sn(n),c=ot(t,n,e,i);return l(),pt(),c});return s?r.unshift(o):r.push(o),o}}const gt=e=>(t,n=pe)=>{(!En||e==="sp")&&os(e,(...s)=>t(...s),n)},Rc=gt("bm"),gr=gt("m"),xc=gt("bu"),Sc=gt("u"),Ac=gt("bum"),Ri=gt("um"),vc=gt("sp"),Oc=gt("rtg"),Cc=gt("rtc");function Tc(e,t=pe){os("ec",e,t)}const Pc="components";function Fr(e,t){return Ic(Pc,e,!0,t)||e}const Nc=Symbol.for("v-ndc");function Ic(e,t,n=!0,s=!1){const r=De||pe;if(r){const o=r.type;{const l=Ra(o,!1);if(l&&(l===t||l===je(t)||l===es(je(t))))return o}const i=Lr(r[e]||o[e],t)||Lr(r.appContext[e],t);return!i&&s?o:i}}function Lr(e,t){return e&&(e[t]||e[je(t)]||e[es(je(t))])}function Dc(e,t,n,s){let r;const o=n,i=H(e);if(i||ae(e)){const l=i&&Nt(e);let c=!1,u=!1;l&&(c=!Be(e),u=mt(e),e=ns(e)),r=new Array(e.length);for(let a=0,f=e.length;at(l,c,void 0,o));else{const l=Object.keys(e);r=new Array(l.length);for(let c=0,u=l.length;ce?ki(e)?cs(e):js(e.parent):null,un=ye(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=>js(e.parent),$root:e=>js(e.root),$host:e=>e.ce,$emit:e=>e.emit,$options:e=>Si(e),$forceUpdate:e=>e.f||(e.f=()=>{pr(e.update)}),$nextTick:e=>e.n||(e.n=hi.bind(e.proxy)),$watch:e=>$c.bind(e)}),Es=(e,t)=>e!==te&&!e.__isScriptSetup&&Q(e,t),Fc={get({_:e},t){if(t==="__v_skip")return!0;const{ctx:n,setupState:s,data:r,props:o,accessCache:i,type:l,appContext:c}=e;if(t[0]!=="$"){const p=i[t];if(p!==void 0)switch(p){case 1:return s[t];case 2:return r[t];case 4:return n[t];case 3:return o[t]}else{if(Es(s,t))return i[t]=1,s[t];if(r!==te&&Q(r,t))return i[t]=2,r[t];if(Q(o,t))return i[t]=3,o[t];if(n!==te&&Q(n,t))return i[t]=4,n[t];Hs&&(i[t]=0)}}const u=un[t];let a,f;if(u)return t==="$attrs"&&he(e.attrs,"get",""),u(e);if((a=l.__cssModules)&&(a=a[t]))return a;if(n!==te&&Q(n,t))return i[t]=4,n[t];if(f=c.config.globalProperties,Q(f,t))return f[t]},set({_:e},t,n){const{data:s,setupState:r,ctx:o}=e;return Es(r,t)?(r[t]=n,!0):s!==te&&Q(s,t)?(s[t]=n,!0):Q(e.props,t)||t[0]==="$"&&t.slice(1)in e?!1:(o[t]=n,!0)},has({_:{data:e,setupState:t,accessCache:n,ctx:s,appContext:r,props:o,type:i}},l){let c;return!!(n[l]||e!==te&&l[0]!=="$"&&Q(e,l)||Es(t,l)||Q(o,l)||Q(s,l)||Q(un,l)||Q(r.config.globalProperties,l)||(c=i.__cssModules)&&c[l])},defineProperty(e,t,n){return n.get!=null?e._.accessCache[t]=0:Q(n,"value")&&this.set(e,t,n.value,null),Reflect.defineProperty(e,t,n)}};function Mr(e){return H(e)?e.reduce((t,n)=>(t[n]=null,t),{}):e}let Hs=!0;function Lc(e){const t=Si(e),n=e.proxy,s=e.ctx;Hs=!1,t.beforeCreate&&Ur(t.beforeCreate,e,"bc");const{data:r,computed:o,methods:i,watch:l,provide:c,inject:u,created:a,beforeMount:f,mounted:p,beforeUpdate:y,updated:g,activated:R,deactivated:S,beforeDestroy:C,beforeUnmount:N,destroyed:D,unmounted:P,render:q,renderTracked:re,renderTriggered:K,errorCaptured:we,serverPrefetch:Ce,expose:Te,inheritAttrs:He,components:Le,directives:de,filters:Pe}=t;if(u&&Mc(u,s,null),i)for(const z in i){const $=i[z];k($)&&(s[z]=$.bind(n))}if(r){const z=r.call(n,n);oe(z)&&(e.data=ss(z))}if(Hs=!0,o)for(const z in o){const $=o[z],Me=k($)?$.bind(n,n):k($.get)?$.get.bind(n,n):rt,ze=!k($)&&k($.set)?$.set.bind(n):rt,ue=qe({get:Me,set:ze});Object.defineProperty(s,z,{enumerable:!0,configurable:!0,get:()=>ue.value,set:le=>ue.value=le})}if(l)for(const z in l)xi(l[z],s,n,z);if(c){const z=k(c)?c.call(n):c;Reflect.ownKeys(z).forEach($=>{Fn($,z[$])})}a&&Ur(a,e,"c");function Y(z,$){H($)?$.forEach(Me=>z(Me.bind(n))):$&&z($.bind(n))}if(Y(Rc,f),Y(gr,p),Y(xc,y),Y(Sc,g),Y(_c,R),Y(Ec,S),Y(Tc,we),Y(Cc,re),Y(Oc,K),Y(Ac,N),Y(Ri,P),Y(vc,Ce),H(Te))if(Te.length){const z=e.exposed||(e.exposed={});Te.forEach($=>{Object.defineProperty(z,$,{get:()=>n[$],set:Me=>n[$]=Me,enumerable:!0})})}else e.exposed||(e.exposed={});q&&e.render===rt&&(e.render=q),He!=null&&(e.inheritAttrs=He),Le&&(e.components=Le),de&&(e.directives=de),Ce&&_i(e)}function Mc(e,t,n=rt){H(e)&&(e=ks(e));for(const s in e){const r=e[s];let o;oe(r)?"default"in r?o=dt(r.from||s,r.default,!0):o=dt(r.from||s):o=dt(r),ge(o)?Object.defineProperty(t,s,{enumerable:!0,configurable:!0,get:()=>o.value,set:i=>o.value=i}):t[s]=o}}function Ur(e,t,n){ot(H(e)?e.map(s=>s.bind(t.proxy)):e.bind(t.proxy),t,n)}function xi(e,t,n,s){let r=s.includes(".")?Oi(n,s):()=>n[s];if(ae(e)){const o=t[e];k(o)&&Ln(r,o)}else if(k(e))Ln(r,e.bind(n));else if(oe(e))if(H(e))e.forEach(o=>xi(o,t,n,s));else{const o=k(e.handler)?e.handler.bind(n):t[e.handler];k(o)&&Ln(r,o,e)}}function Si(e){const t=e.type,{mixins:n,extends:s}=t,{mixins:r,optionsCache:o,config:{optionMergeStrategies:i}}=e.appContext,l=o.get(t);let c;return l?c=l:!r.length&&!n&&!s?c=t:(c={},r.length&&r.forEach(u=>Kn(c,u,i,!0)),Kn(c,t,i)),oe(t)&&o.set(t,c),c}function Kn(e,t,n,s=!1){const{mixins:r,extends:o}=t;o&&Kn(e,o,n,!0),r&&r.forEach(i=>Kn(e,i,n,!0));for(const i in t)if(!(s&&i==="expose")){const l=Uc[i]||n&&n[i];e[i]=l?l(e[i],t[i]):t[i]}return e}const Uc={data:Br,props:jr,emits:jr,methods:sn,computed:sn,beforeCreate:be,created:be,beforeMount:be,mounted:be,beforeUpdate:be,updated:be,beforeDestroy:be,beforeUnmount:be,destroyed:be,unmounted:be,activated:be,deactivated:be,errorCaptured:be,serverPrefetch:be,components:sn,directives:sn,watch:jc,provide:Br,inject:Bc};function Br(e,t){return t?e?function(){return ye(k(e)?e.call(this,this):e,k(t)?t.call(this,this):t)}:t:e}function Bc(e,t){return sn(ks(e),ks(t))}function ks(e){if(H(e)){const t={};for(let n=0;n1)return n&&k(t)?t.call(s&&s.proxy):t}}const Vc=Symbol.for("v-scx"),qc=()=>dt(Vc);function Ln(e,t,n){return vi(e,t,n)}function vi(e,t,n=te){const{immediate:s,deep:r,flush:o,once:i}=n,l=ye({},n),c=t&&s||!t&&o!=="post";let u;if(En){if(o==="sync"){const y=qc();u=y.__watcherHandles||(y.__watcherHandles=[])}else if(!c){const y=()=>{};return y.stop=rt,y.resume=rt,y.pause=rt,y}}const a=pe;l.call=(y,g,R)=>ot(y,a,g,R);let f=!1;o==="post"?l.scheduler=y=>{Ie(y,a&&a.suspense)}:o!=="sync"&&(f=!0,l.scheduler=(y,g)=>{g?y():pr(y)}),l.augmentJob=y=>{t&&(y.flags|=4),f&&(y.flags|=2,a&&(y.id=a.uid,y.i=a))};const p=dc(e,t,l);return En&&(u?u.push(p):c&&p()),p}function $c(e,t,n){const s=this.proxy,r=ae(e)?e.includes(".")?Oi(s,e):()=>s[e]:e.bind(s,s);let o;k(t)?o=t:(o=t.handler,n=t);const i=Sn(this),l=vi(r,o.bind(s),n);return i(),l}function Oi(e,t){const n=t.split(".");return()=>{let s=e;for(let r=0;rt==="modelValue"||t==="model-value"?e.modelModifiers:e[`${t}Modifiers`]||e[`${je(t)}Modifiers`]||e[`${Ft(t)}Modifiers`];function Wc(e,t,...n){if(e.isUnmounted)return;const s=e.vnode.props||te;let r=n;const o=t.startsWith("update:"),i=o&&Kc(s,t.slice(7));i&&(i.trim&&(r=n.map(a=>ae(a)?a.trim():a)),i.number&&(r=n.map(rr)));let l,c=s[l=ms(t)]||s[l=ms(je(t))];!c&&o&&(c=s[l=ms(Ft(t))]),c&&ot(c,e,6,r);const u=s[l+"Once"];if(u){if(!e.emitted)e.emitted={};else if(e.emitted[l])return;e.emitted[l]=!0,ot(u,e,6,r)}}const Gc=new WeakMap;function Ci(e,t,n=!1){const s=n?Gc:t.emitsCache,r=s.get(e);if(r!==void 0)return r;const o=e.emits;let i={},l=!1;if(!k(e)){const c=u=>{const a=Ci(u,t,!0);a&&(l=!0,ye(i,a))};!n&&t.mixins.length&&t.mixins.forEach(c),e.extends&&c(e.extends),e.mixins&&e.mixins.forEach(c)}return!o&&!l?(oe(e)&&s.set(e,null),null):(H(o)?o.forEach(c=>i[c]=null):ye(i,o),oe(e)&&s.set(e,i),i)}function is(e,t){return!e||!Qn(t)?!1:(t=t.slice(2).replace(/Once$/,""),Q(e,t[0].toLowerCase()+t.slice(1))||Q(e,Ft(t))||Q(e,t))}function Hr(e){const{type:t,vnode:n,proxy:s,withProxy:r,propsOptions:[o],slots:i,attrs:l,emit:c,render:u,renderCache:a,props:f,data:p,setupState:y,ctx:g,inheritAttrs:R}=e,S=qn(e);let C,N;try{if(n.shapeFlag&4){const P=r||s,q=P;C=st(u.call(q,P,a,f,y,p,g)),N=l}else{const P=t;C=st(P.length>1?P(f,{attrs:l,slots:i,emit:c}):P(f,null)),N=t.props?l:zc(l)}}catch(P){fn.length=0,rs(P,e,1),C=Ae(Kt)}let D=C;if(N&&R!==!1){const P=Object.keys(N),{shapeFlag:q}=D;P.length&&q&7&&(o&&P.some(tr)&&(N=Jc(N,o)),D=Wt(D,N,!1,!0))}return n.dirs&&(D=Wt(D,null,!1,!0),D.dirs=D.dirs?D.dirs.concat(n.dirs):n.dirs),n.transition&&mr(D,n.transition),C=D,qn(S),C}const zc=e=>{let t;for(const n in e)(n==="class"||n==="style"||Qn(n))&&((t||(t={}))[n]=e[n]);return t},Jc=(e,t)=>{const n={};for(const s in e)(!tr(s)||!(s.slice(9)in t))&&(n[s]=e[s]);return n};function Xc(e,t,n){const{props:s,children:r,component:o}=e,{props:i,children:l,patchFlag:c}=t,u=o.emitsOptions;if(t.dirs||t.transition)return!0;if(n&&c>=0){if(c&1024)return!0;if(c&16)return s?kr(s,i,u):!!i;if(c&8){const a=t.dynamicProps;for(let f=0;fObject.create(Ti),Ni=e=>Object.getPrototypeOf(e)===Ti;function Yc(e,t,n,s=!1){const r={},o=Pi();e.propsDefaults=Object.create(null),Ii(e,t,r,o);for(const i in e.propsOptions[0])i in r||(r[i]=void 0);n?e.props=s?r:ai(r):e.type.props?e.props=r:e.props=o,e.attrs=o}function Zc(e,t,n,s){const{props:r,attrs:o,vnode:{patchFlag:i}}=e,l=X(r),[c]=e.propsOptions;let u=!1;if((s||i>0)&&!(i&16)){if(i&8){const a=e.vnode.dynamicProps;for(let f=0;f{c=!0;const[p,y]=Di(f,t,!0);ye(i,p),y&&l.push(...y)};!n&&t.mixins.length&&t.mixins.forEach(a),e.extends&&a(e.extends),e.mixins&&e.mixins.forEach(a)}if(!o&&!c)return oe(e)&&s.set(e,jt),jt;if(H(o))for(let a=0;ae==="_"||e==="_ctx"||e==="$stable",br=e=>H(e)?e.map(st):[st(e)],ta=(e,t,n)=>{if(t._n)return t;const s=Bs((...r)=>br(t(...r)),n);return s._c=!1,s},Fi=(e,t,n)=>{const s=e._ctx;for(const r in e){if(yr(r))continue;const o=e[r];if(k(o))t[r]=ta(r,o,s);else if(o!=null){const i=br(o);t[r]=()=>i}}},Li=(e,t)=>{const n=br(t);e.slots.default=()=>n},Mi=(e,t,n)=>{for(const s in t)(n||!yr(s))&&(e[s]=t[s])},na=(e,t,n)=>{const s=e.slots=Pi();if(e.vnode.shapeFlag&32){const r=t._;r?(Mi(s,t,n),n&&Ko(s,"_",r,!0)):Fi(t,s)}else t&&Li(e,t)},sa=(e,t,n)=>{const{vnode:s,slots:r}=e;let o=!0,i=te;if(s.shapeFlag&32){const l=t._;l?n&&l===1?o=!1:Mi(r,t,n):(o=!t.$stable,Fi(t,r)),i=t}else t&&(Li(e,t),i={default:1});if(o)for(const l in r)!yr(l)&&i[l]==null&&delete r[l]},Ie=ca;function ra(e){return oa(e)}function oa(e,t){const n=ts();n.__VUE__=!0;const{insert:s,remove:r,patchProp:o,createElement:i,createText:l,createComment:c,setText:u,setElementText:a,parentNode:f,nextSibling:p,setScopeId:y=rt,insertStaticContent:g}=e,R=(d,h,m,E=null,x=null,_=null,T=void 0,O=null,v=!!h.dynamicChildren)=>{if(d===h)return;d&&!en(d,h)&&(E=w(d),le(d,x,_,!0),d=null),h.patchFlag===-2&&(v=!1,h.dynamicChildren=null);const{type:A,ref:B,shapeFlag:F}=h;switch(A){case ls:S(d,h,m,E);break;case Kt:C(d,h,m,E);break;case Rs:d==null&&N(h,m,E,T);break;case Ve:Le(d,h,m,E,x,_,T,O,v);break;default:F&1?q(d,h,m,E,x,_,T,O,v):F&6?de(d,h,m,E,x,_,T,O,v):(F&64||F&128)&&A.process(d,h,m,E,x,_,T,O,v,M)}B!=null&&x?cn(B,d&&d.ref,_,h||d,!h):B==null&&d&&d.ref!=null&&cn(d.ref,null,_,d,!0)},S=(d,h,m,E)=>{if(d==null)s(h.el=l(h.children),m,E);else{const x=h.el=d.el;h.children!==d.children&&u(x,h.children)}},C=(d,h,m,E)=>{d==null?s(h.el=c(h.children||""),m,E):h.el=d.el},N=(d,h,m,E)=>{[d.el,d.anchor]=g(d.children,h,m,E,d.el,d.anchor)},D=({el:d,anchor:h},m,E)=>{let x;for(;d&&d!==h;)x=p(d),s(d,m,E),d=x;s(h,m,E)},P=({el:d,anchor:h})=>{let m;for(;d&&d!==h;)m=p(d),r(d),d=m;r(h)},q=(d,h,m,E,x,_,T,O,v)=>{if(h.type==="svg"?T="svg":h.type==="math"&&(T="mathml"),d==null)re(h,m,E,x,_,T,O,v);else{const A=d.el&&d.el._isVueCE?d.el:null;try{A&&A._beginPatch(),Ce(d,h,x,_,T,O,v)}finally{A&&A._endPatch()}}},re=(d,h,m,E,x,_,T,O)=>{let v,A;const{props:B,shapeFlag:F,transition:U,dirs:j}=d;if(v=d.el=i(d.type,_,B&&B.is,B),F&8?a(v,d.children):F&16&&we(d.children,v,null,E,x,ws(d,_),T,O),j&&At(d,null,E,"created"),K(v,d,d.scopeId,T,E),B){for(const ne in B)ne!=="value"&&!rn(ne)&&o(v,ne,null,B[ne],_,E);"value"in B&&o(v,"value",null,B.value,_),(A=B.onVnodeBeforeMount)&&et(A,E,d)}j&&At(d,null,E,"beforeMount");const G=ia(x,U);G&&U.beforeEnter(v),s(v,h,m),((A=B&&B.onVnodeMounted)||G||j)&&Ie(()=>{A&&et(A,E,d),G&&U.enter(v),j&&At(d,null,E,"mounted")},x)},K=(d,h,m,E,x)=>{if(m&&y(d,m),E)for(let _=0;_{for(let A=v;A{const O=h.el=d.el;let{patchFlag:v,dynamicChildren:A,dirs:B}=h;v|=d.patchFlag&16;const F=d.props||te,U=h.props||te;let j;if(m&&vt(m,!1),(j=U.onVnodeBeforeUpdate)&&et(j,m,h,d),B&&At(h,d,m,"beforeUpdate"),m&&vt(m,!0),(F.innerHTML&&U.innerHTML==null||F.textContent&&U.textContent==null)&&a(O,""),A?Te(d.dynamicChildren,A,O,m,E,ws(h,x),_):T||$(d,h,O,null,m,E,ws(h,x),_,!1),v>0){if(v&16)He(O,F,U,m,x);else if(v&2&&F.class!==U.class&&o(O,"class",null,U.class,x),v&4&&o(O,"style",F.style,U.style,x),v&8){const G=h.dynamicProps;for(let ne=0;ne{j&&et(j,m,h,d),B&&At(h,d,m,"updated")},E)},Te=(d,h,m,E,x,_,T)=>{for(let O=0;O{if(h!==m){if(h!==te)for(const _ in h)!rn(_)&&!(_ in m)&&o(d,_,h[_],null,x,E);for(const _ in m){if(rn(_))continue;const T=m[_],O=h[_];T!==O&&_!=="value"&&o(d,_,O,T,x,E)}"value"in m&&o(d,"value",h.value,m.value,x)}},Le=(d,h,m,E,x,_,T,O,v)=>{const A=h.el=d?d.el:l(""),B=h.anchor=d?d.anchor:l("");let{patchFlag:F,dynamicChildren:U,slotScopeIds:j}=h;j&&(O=O?O.concat(j):j),d==null?(s(A,m,E),s(B,m,E),we(h.children||[],m,B,x,_,T,O,v)):F>0&&F&64&&U&&d.dynamicChildren?(Te(d.dynamicChildren,U,m,x,_,T,O),(h.key!=null||x&&h===x.subTree)&&Ui(d,h,!0)):$(d,h,m,B,x,_,T,O,v)},de=(d,h,m,E,x,_,T,O,v)=>{h.slotScopeIds=O,d==null?h.shapeFlag&512?x.ctx.activate(h,m,E,T,v):Pe(h,m,E,x,_,T,v):it(d,h,v)},Pe=(d,h,m,E,x,_,T)=>{const O=d.component=ga(d,E,x);if(Ei(d)&&(O.ctx.renderer=M),ba(O,!1,T),O.asyncDep){if(x&&x.registerDep(O,Y,T),!d.el){const v=O.subTree=Ae(Kt);C(null,v,h,m),d.placeholder=v.el}}else Y(O,d,h,m,x,_,T)},it=(d,h,m)=>{const E=h.component=d.component;if(Xc(d,h,m))if(E.asyncDep&&!E.asyncResolved){z(E,h,m);return}else E.next=h,E.update();else h.el=d.el,E.vnode=h},Y=(d,h,m,E,x,_,T)=>{const O=()=>{if(d.isMounted){let{next:F,bu:U,u:j,parent:G,vnode:ne}=d;{const Ye=Bi(d);if(Ye){F&&(F.el=ne.el,z(d,F,T)),Ye.asyncDep.then(()=>{d.isUnmounted||O()});return}}let Z=F,Re;vt(d,!1),F?(F.el=ne.el,z(d,F,T)):F=ne,U&&Dn(U),(Re=F.props&&F.props.onVnodeBeforeUpdate)&&et(Re,G,F,ne),vt(d,!0);const xe=Hr(d),Qe=d.subTree;d.subTree=xe,R(Qe,xe,f(Qe.el),w(Qe),d,x,_),F.el=xe.el,Z===null&&Qc(d,xe.el),j&&Ie(j,x),(Re=F.props&&F.props.onVnodeUpdated)&&Ie(()=>et(Re,G,F,ne),x)}else{let F;const{el:U,props:j}=h,{bm:G,m:ne,parent:Z,root:Re,type:xe}=d,Qe=an(h);vt(d,!1),G&&Dn(G),!Qe&&(F=j&&j.onVnodeBeforeMount)&&et(F,Z,h),vt(d,!0);{Re.ce&&Re.ce._def.shadowRoot!==!1&&Re.ce._injectChildStyle(xe);const Ye=d.subTree=Hr(d);R(null,Ye,m,E,d,x,_),h.el=Ye.el}if(ne&&Ie(ne,x),!Qe&&(F=j&&j.onVnodeMounted)){const Ye=h;Ie(()=>et(F,Z,Ye),x)}(h.shapeFlag&256||Z&&an(Z.vnode)&&Z.vnode.shapeFlag&256)&&d.a&&Ie(d.a,x),d.isMounted=!0,h=m=E=null}};d.scope.on();const v=d.effect=new Jo(O);d.scope.off();const A=d.update=v.run.bind(v),B=d.job=v.runIfDirty.bind(v);B.i=d,B.id=d.uid,v.scheduler=()=>pr(B),vt(d,!0),A()},z=(d,h,m)=>{h.component=d;const E=d.vnode.props;d.vnode=h,d.next=null,Zc(d,h.props,E,m),sa(d,h.children,m),ht(),Ir(d),pt()},$=(d,h,m,E,x,_,T,O,v=!1)=>{const A=d&&d.children,B=d?d.shapeFlag:0,F=h.children,{patchFlag:U,shapeFlag:j}=h;if(U>0){if(U&128){ze(A,F,m,E,x,_,T,O,v);return}else if(U&256){Me(A,F,m,E,x,_,T,O,v);return}}j&8?(B&16&&Ue(A,x,_),F!==A&&a(m,F)):B&16?j&16?ze(A,F,m,E,x,_,T,O,v):Ue(A,x,_,!0):(B&8&&a(m,""),j&16&&we(F,m,E,x,_,T,O,v))},Me=(d,h,m,E,x,_,T,O,v)=>{d=d||jt,h=h||jt;const A=d.length,B=h.length,F=Math.min(A,B);let U;for(U=0;UB?Ue(d,x,_,!0,!1,F):we(h,m,E,x,_,T,O,v,F)},ze=(d,h,m,E,x,_,T,O,v)=>{let A=0;const B=h.length;let F=d.length-1,U=B-1;for(;A<=F&&A<=U;){const j=d[A],G=h[A]=v?wt(h[A]):st(h[A]);if(en(j,G))R(j,G,m,null,x,_,T,O,v);else break;A++}for(;A<=F&&A<=U;){const j=d[F],G=h[U]=v?wt(h[U]):st(h[U]);if(en(j,G))R(j,G,m,null,x,_,T,O,v);else break;F--,U--}if(A>F){if(A<=U){const j=U+1,G=jU)for(;A<=F;)le(d[A],x,_,!0),A++;else{const j=A,G=A,ne=new Map;for(A=G;A<=U;A++){const Ne=h[A]=v?wt(h[A]):st(h[A]);Ne.key!=null&&ne.set(Ne.key,A)}let Z,Re=0;const xe=U-G+1;let Qe=!1,Ye=0;const Yt=new Array(xe);for(A=0;A=xe){le(Ne,x,_,!0);continue}let Ze;if(Ne.key!=null)Ze=ne.get(Ne.key);else for(Z=G;Z<=U;Z++)if(Yt[Z-G]===0&&en(Ne,h[Z])){Ze=Z;break}Ze===void 0?le(Ne,x,_,!0):(Yt[Ze-G]=A+1,Ze>=Ye?Ye=Ze:Qe=!0,R(Ne,h[Ze],m,null,x,_,T,O,v),Re++)}const vr=Qe?la(Yt):jt;for(Z=vr.length-1,A=xe-1;A>=0;A--){const Ne=G+A,Ze=h[Ne],Or=h[Ne+1],Cr=Ne+1{const{el:_,type:T,transition:O,children:v,shapeFlag:A}=d;if(A&6){ue(d.component.subTree,h,m,E);return}if(A&128){d.suspense.move(h,m,E);return}if(A&64){T.move(d,h,m,M);return}if(T===Ve){s(_,h,m);for(let F=0;FO.enter(_),x);else{const{leave:F,delayLeave:U,afterLeave:j}=O,G=()=>{d.ctx.isUnmounted?r(_):s(_,h,m)},ne=()=>{_._isLeaving&&_[bc](!0),F(_,()=>{G(),j&&j()})};U?U(_,G,ne):ne()}else s(_,h,m)},le=(d,h,m,E=!1,x=!1)=>{const{type:_,props:T,ref:O,children:v,dynamicChildren:A,shapeFlag:B,patchFlag:F,dirs:U,cacheIndex:j}=d;if(F===-2&&(x=!1),O!=null&&(ht(),cn(O,null,m,d,!0),pt()),j!=null&&(h.renderCache[j]=void 0),B&256){h.ctx.deactivate(d);return}const G=B&1&&U,ne=!an(d);let Z;if(ne&&(Z=T&&T.onVnodeBeforeUnmount)&&et(Z,h,d),B&6)Xe(d.component,m,E);else{if(B&128){d.suspense.unmount(m,E);return}G&&At(d,null,h,"beforeUnmount"),B&64?d.type.remove(d,h,m,M,E):A&&!A.hasOnce&&(_!==Ve||F>0&&F&64)?Ue(A,h,m,!1,!0):(_===Ve&&F&384||!x&&B&16)&&Ue(v,h,m),E&&Je(d)}(ne&&(Z=T&&T.onVnodeUnmounted)||G)&&Ie(()=>{Z&&et(Z,h,d),G&&At(d,null,h,"unmounted")},m)},Je=d=>{const{type:h,el:m,anchor:E,transition:x}=d;if(h===Ve){ke(m,E);return}if(h===Rs){P(d);return}const _=()=>{r(m),x&&!x.persisted&&x.afterLeave&&x.afterLeave()};if(d.shapeFlag&1&&x&&!x.persisted){const{leave:T,delayLeave:O}=x,v=()=>T(m,_);O?O(d.el,_,v):v()}else _()},ke=(d,h)=>{let m;for(;d!==h;)m=p(d),r(d),d=m;r(h)},Xe=(d,h,m)=>{const{bum:E,scope:x,job:_,subTree:T,um:O,m:v,a:A}=d;qr(v),qr(A),E&&Dn(E),x.stop(),_&&(_.flags|=8,le(T,d,h,m)),O&&Ie(O,h),Ie(()=>{d.isUnmounted=!0},h)},Ue=(d,h,m,E=!1,x=!1,_=0)=>{for(let T=_;T{if(d.shapeFlag&6)return w(d.component.subTree);if(d.shapeFlag&128)return d.suspense.next();const h=p(d.anchor||d.el),m=h&&h[gc];return m?p(m):h};let L=!1;const I=(d,h,m)=>{d==null?h._vnode&&le(h._vnode,null,null,!0):R(h._vnode||null,d,h,null,null,null,m),h._vnode=d,L||(L=!0,Ir(),mi(),L=!1)},M={p:R,um:le,m:ue,r:Je,mt:Pe,mc:we,pc:$,pbc:Te,n:w,o:e};return{render:I,hydrate:void 0,createApp:kc(I)}}function ws({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 vt({effect:e,job:t},n){n?(e.flags|=32,t.flags|=4):(e.flags&=-33,t.flags&=-5)}function ia(e,t){return(!e||e&&!e.pendingBranch)&&t&&!t.persisted}function Ui(e,t,n=!1){const s=e.children,r=t.children;if(H(s)&&H(r))for(let o=0;o>1,e[n[l]]0&&(t[s]=n[o-1]),n[o]=s)}}for(o=n.length,i=n[o-1];o-- >0;)n[o]=i,i=t[i];return n}function Bi(e){const t=e.subTree.component;if(t)return t.asyncDep&&!t.asyncResolved?t:Bi(t)}function qr(e){if(e)for(let t=0;te.__isSuspense;function ca(e,t){t&&t.pendingBranch?H(e)?t.effects.push(...e):t.effects.push(e):mc(e)}const Ve=Symbol.for("v-fgt"),ls=Symbol.for("v-txt"),Kt=Symbol.for("v-cmt"),Rs=Symbol.for("v-stc"),fn=[];let Fe=null;function dn(e=!1){fn.push(Fe=e?null:[])}function aa(){fn.pop(),Fe=fn[fn.length-1]||null}let _n=1;function Wn(e,t=!1){_n+=e,e<0&&Fe&&t&&(Fe.hasOnce=!0)}function ua(e){return e.dynamicChildren=_n>0?Fe||jt:null,aa(),_n>0&&Fe&&Fe.push(e),e}function hn(e,t,n,s,r,o){return ua(ee(e,t,n,s,r,o,!0))}function Gn(e){return e?e.__v_isVNode===!0:!1}function en(e,t){return e.type===t.type&&e.key===t.key}const Hi=({key:e})=>e??null,Mn=({ref:e,ref_key:t,ref_for:n})=>(typeof e=="number"&&(e=""+e),e!=null?ae(e)||ge(e)||k(e)?{i:De,r:e,k:t,f:!!n}:e:null);function ee(e,t=null,n=null,s=0,r=null,o=e===Ve?0:1,i=!1,l=!1){const c={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&Hi(t),ref:t&&Mn(t),scopeId:yi,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:o,patchFlag:s,dynamicProps:r,dynamicChildren:null,appContext:null,ctx:De};return l?(_r(c,n),o&128&&e.normalize(c)):n&&(c.shapeFlag|=ae(n)?8:16),_n>0&&!i&&Fe&&(c.patchFlag>0||o&6)&&c.patchFlag!==32&&Fe.push(c),c}const Ae=fa;function fa(e,t=null,n=null,s=0,r=null,o=!1){if((!e||e===Nc)&&(e=Kt),Gn(e)){const l=Wt(e,t,!0);return n&&_r(l,n),_n>0&&!o&&Fe&&(l.shapeFlag&6?Fe[Fe.indexOf(e)]=l:Fe.push(l)),l.patchFlag=-2,l}if(xa(e)&&(e=e.__vccOpts),t){t=da(t);let{class:l,style:c}=t;l&&!ae(l)&&(t.class=ir(l)),oe(c)&&(hr(c)&&!H(c)&&(c=ye({},c)),t.style=or(c))}const i=ae(e)?1:ji(e)?128:yc(e)?64:oe(e)?4:k(e)?2:0;return ee(e,t,n,s,r,i,o,!0)}function da(e){return e?hr(e)||Ni(e)?ye({},e):e:null}function Wt(e,t,n=!1,s=!1){const{props:r,ref:o,patchFlag:i,children:l,transition:c}=e,u=t?ha(r||{},t):r,a={__v_isVNode:!0,__v_skip:!0,type:e.type,props:u,key:u&&Hi(u),ref:t&&t.ref?n&&o?H(o)?o.concat(Mn(t)):[o,Mn(t)]:Mn(t):o,scopeId:e.scopeId,slotScopeIds:e.slotScopeIds,children:l,target:e.target,targetStart:e.targetStart,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:t&&e.type!==Ve?i===-1?16:i|16:i,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:c,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&Wt(e.ssContent),ssFallback:e.ssFallback&&Wt(e.ssFallback),placeholder:e.placeholder,el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce};return c&&s&&mr(a,c.clone(a)),a}function qs(e=" ",t=0){return Ae(ls,null,e,t)}function st(e){return e==null||typeof e=="boolean"?Ae(Kt):H(e)?Ae(Ve,null,e.slice()):Gn(e)?wt(e):Ae(ls,null,String(e))}function wt(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:Wt(e)}function _r(e,t){let n=0;const{shapeFlag:s}=e;if(t==null)t=null;else if(H(t))n=16;else if(typeof t=="object")if(s&65){const r=t.default;r&&(r._c&&(r._d=!1),_r(e,r()),r._c&&(r._d=!0));return}else{n=32;const r=t._;!r&&!Ni(t)?t._ctx=De:r===3&&De&&(De.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else k(t)?(t={default:t,_ctx:De},n=32):(t=String(t),s&64?(n=16,t=[qs(t)]):n=8);e.children=t,e.shapeFlag|=n}function ha(...e){const t={};for(let n=0;npe||De;let zn,$s;{const e=ts(),t=(n,s)=>{let r;return(r=e[n])||(r=e[n]=[]),r.push(s),o=>{r.length>1?r.forEach(i=>i(o)):r[0](o)}};zn=t("__VUE_INSTANCE_SETTERS__",n=>pe=n),$s=t("__VUE_SSR_SETTERS__",n=>En=n)}const Sn=e=>{const t=pe;return zn(e),e.scope.on(),()=>{e.scope.off(),zn(t)}},$r=()=>{pe&&pe.scope.off(),zn(null)};function ki(e){return e.vnode.shapeFlag&4}let En=!1;function ba(e,t=!1,n=!1){t&&$s(t);const{props:s,children:r}=e.vnode,o=ki(e);Yc(e,s,o,t),na(e,r,n||t);const i=o?_a(e,t):void 0;return t&&$s(!1),i}function _a(e,t){const n=e.type;e.accessCache=Object.create(null),e.proxy=new Proxy(e.ctx,Fc);const{setup:s}=n;if(s){ht();const r=e.setupContext=s.length>1?wa(e):null,o=Sn(e),i=Rn(s,e,0,[e.props,r]),l=Vo(i);if(pt(),o(),(l||e.sp)&&!an(e)&&_i(e),l){if(i.then($r,$r),t)return i.then(c=>{Kr(e,c)}).catch(c=>{rs(c,e,0)});e.asyncDep=i}else Kr(e,i)}else Vi(e)}function Kr(e,t,n){k(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:oe(t)&&(e.setupState=fi(t)),Vi(e)}function Vi(e,t,n){const s=e.type;e.render||(e.render=s.render||rt);{const r=Sn(e);ht();try{Lc(e)}finally{pt(),r()}}}const Ea={get(e,t){return he(e,"get",""),e[t]}};function wa(e){const t=n=>{e.exposed=n||{}};return{attrs:new Proxy(e.attrs,Ea),slots:e.slots,emit:e.emit,expose:t}}function cs(e){return e.exposed?e.exposeProxy||(e.exposeProxy=new Proxy(fi(oc(e.exposed)),{get(t,n){if(n in t)return t[n];if(n in un)return un[n](e)},has(t,n){return n in t||n in un}})):e.proxy}function Ra(e,t=!0){return k(e)?e.displayName||e.name:e.name||t&&e.__name}function xa(e){return k(e)&&"__vccOpts"in e}const qe=(e,t)=>uc(e,t,En);function qi(e,t,n){try{Wn(-1);const s=arguments.length;return s===2?oe(t)&&!H(t)?Gn(t)?Ae(e,null,[t]):Ae(e,t):Ae(e,null,t):(s>3?n=Array.prototype.slice.call(arguments,2):s===3&&Gn(n)&&(n=[n]),Ae(e,t,n))}finally{Wn(1)}}const Sa="3.5.25";/** -* @vue/runtime-dom v3.5.25 -* (c) 2018-present Yuxi (Evan) You and Vue contributors -* @license MIT -**/let Ks;const Wr=typeof window<"u"&&window.trustedTypes;if(Wr)try{Ks=Wr.createPolicy("vue",{createHTML:e=>e})}catch{}const $i=Ks?e=>Ks.createHTML(e):e=>e,Aa="http://www.w3.org/2000/svg",va="http://www.w3.org/1998/Math/MathML",at=typeof document<"u"?document:null,Gr=at&&at.createElement("template"),Oa={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 r=t==="svg"?at.createElementNS(Aa,e):t==="mathml"?at.createElementNS(va,e):n?at.createElement(e,{is:n}):at.createElement(e);return e==="select"&&s&&s.multiple!=null&&r.setAttribute("multiple",s.multiple),r},createText:e=>at.createTextNode(e),createComment:e=>at.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>at.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,n,s,r,o){const i=n?n.previousSibling:t.lastChild;if(r&&(r===o||r.nextSibling))for(;t.insertBefore(r.cloneNode(!0),n),!(r===o||!(r=r.nextSibling)););else{Gr.innerHTML=$i(s==="svg"?`${e}`:s==="mathml"?`${e}`:e);const l=Gr.content;if(s==="svg"||s==="mathml"){const c=l.firstChild;for(;c.firstChild;)l.appendChild(c.firstChild);l.removeChild(c)}t.insertBefore(l,n)}return[i?i.nextSibling:t.firstChild,n?n.previousSibling:t.lastChild]}},Ca=Symbol("_vtc");function Ta(e,t,n){const s=e[Ca];s&&(t=(t?[t,...s]:[...s]).join(" ")),t==null?e.removeAttribute("class"):n?e.setAttribute("class",t):e.className=t}const zr=Symbol("_vod"),Pa=Symbol("_vsh"),Na=Symbol(""),Ia=/(?:^|;)\s*display\s*:/;function Da(e,t,n){const s=e.style,r=ae(n);let o=!1;if(n&&!r){if(t)if(ae(t))for(const i of t.split(";")){const l=i.slice(0,i.indexOf(":")).trim();n[l]==null&&Un(s,l,"")}else for(const i in t)n[i]==null&&Un(s,i,"");for(const i in n)i==="display"&&(o=!0),Un(s,i,n[i])}else if(r){if(t!==n){const i=s[Na];i&&(n+=";"+i),s.cssText=n,o=Ia.test(n)}}else t&&e.removeAttribute("style");zr in e&&(e[zr]=o?s.display:"",e[Pa]&&(s.display="none"))}const Jr=/\s*!important$/;function Un(e,t,n){if(H(n))n.forEach(s=>Un(e,t,s));else if(n==null&&(n=""),t.startsWith("--"))e.setProperty(t,n);else{const s=Fa(e,t);Jr.test(n)?e.setProperty(Ft(s),n.replace(Jr,""),"important"):e[s]=n}}const Xr=["Webkit","Moz","ms"],xs={};function Fa(e,t){const n=xs[t];if(n)return n;let s=je(t);if(s!=="filter"&&s in e)return xs[t]=s;s=es(s);for(let r=0;rSs||(Ba.then(()=>Ss=0),Ss=Date.now());function Ha(e,t){const n=s=>{if(!s._vts)s._vts=Date.now();else if(s._vts<=n.attached)return;ot(ka(s,n.value),t,5,[s])};return n.value=e,n.attached=ja(),n}function ka(e,t){if(H(t)){const n=e.stopImmediatePropagation;return e.stopImmediatePropagation=()=>{n.call(e),e._stopped=!0},t.map(s=>r=>!r._stopped&&s&&s(r))}else return t}const no=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&e.charCodeAt(2)>96&&e.charCodeAt(2)<123,Va=(e,t,n,s,r,o)=>{const i=r==="svg";t==="class"?Ta(e,s,i):t==="style"?Da(e,n,s):Qn(t)?tr(t)||Ma(e,t,n,s,o):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):qa(e,t,s,i))?(Zr(e,t,s),!e.tagName.includes("-")&&(t==="value"||t==="checked"||t==="selected")&&Yr(e,t,s,i,o,t!=="value")):e._isVueCE&&(/[A-Z]/.test(t)||!ae(s))?Zr(e,je(t),s,o,t):(t==="true-value"?e._trueValue=s:t==="false-value"&&(e._falseValue=s),Yr(e,t,s,i))};function qa(e,t,n,s){if(s)return!!(t==="innerHTML"||t==="textContent"||t in e&&no(t)&&k(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 r=e.tagName;if(r==="IMG"||r==="VIDEO"||r==="CANVAS"||r==="SOURCE")return!1}return no(t)&&ae(n)?!1:t in e}const so=e=>{const t=e.props["onUpdate:modelValue"]||!1;return H(t)?n=>Dn(t,n):t};function $a(e){e.target.composing=!0}function ro(e){const t=e.target;t.composing&&(t.composing=!1,t.dispatchEvent(new Event("input")))}const As=Symbol("_assign");function oo(e,t,n){return t&&(e=e.trim()),n&&(e=rr(e)),e}const Ki={created(e,{modifiers:{lazy:t,trim:n,number:s}},r){e[As]=so(r);const o=s||r.props&&r.props.type==="number";Ut(e,t?"change":"input",i=>{i.target.composing||e[As](oo(e.value,n,o))}),(n||o)&&Ut(e,"change",()=>{e.value=oo(e.value,n,o)}),t||(Ut(e,"compositionstart",$a),Ut(e,"compositionend",ro),Ut(e,"change",ro))},mounted(e,{value:t}){e.value=t??""},beforeUpdate(e,{value:t,oldValue:n,modifiers:{lazy:s,trim:r,number:o}},i){if(e[As]=so(i),e.composing)return;const l=(o||e.type==="number")&&!/^0\d/.test(e.value)?rr(e.value):e.value,c=t??"";l!==c&&(document.activeElement===e&&e.type!=="range"&&(s&&t===n||r&&e.value.trim()===c)||(e.value=c))}},Ka=ye({patchProp:Va},Oa);let io;function Wa(){return io||(io=ra(Ka))}const Ga=((...e)=>{const t=Wa().createApp(...e),{mount:n}=t;return t.mount=s=>{const r=Ja(s);if(!r)return;const o=t._component;!k(o)&&!o.render&&!o.template&&(o.template=r.innerHTML),r.nodeType===1&&(r.textContent="");const i=n(r,!1,za(r));return r instanceof Element&&(r.removeAttribute("v-cloak"),r.setAttribute("data-v-app","")),i},t});function za(e){if(e instanceof SVGElement)return"svg";if(typeof MathMLElement=="function"&&e instanceof MathMLElement)return"mathml"}function Ja(e){return ae(e)?document.querySelector(e):e}function Wi(e,t){return function(){return e.apply(t,arguments)}}const{toString:Xa}=Object.prototype,{getPrototypeOf:Er}=Object,{iterator:as,toStringTag:Gi}=Symbol,us=(e=>t=>{const n=Xa.call(t);return e[n]||(e[n]=n.slice(8,-1).toLowerCase())})(Object.create(null)),Ge=e=>(e=e.toLowerCase(),t=>us(t)===e),fs=e=>t=>typeof t===e,{isArray:Xt}=Array,Gt=fs("undefined");function An(e){return e!==null&&!Gt(e)&&e.constructor!==null&&!Gt(e.constructor)&&ve(e.constructor.isBuffer)&&e.constructor.isBuffer(e)}const zi=Ge("ArrayBuffer");function Qa(e){let t;return typeof ArrayBuffer<"u"&&ArrayBuffer.isView?t=ArrayBuffer.isView(e):t=e&&e.buffer&&zi(e.buffer),t}const Ya=fs("string"),ve=fs("function"),Ji=fs("number"),vn=e=>e!==null&&typeof e=="object",Za=e=>e===!0||e===!1,Bn=e=>{if(us(e)!=="object")return!1;const t=Er(e);return(t===null||t===Object.prototype||Object.getPrototypeOf(t)===null)&&!(Gi in e)&&!(as in e)},eu=e=>{if(!vn(e)||An(e))return!1;try{return Object.keys(e).length===0&&Object.getPrototypeOf(e)===Object.prototype}catch{return!1}},tu=Ge("Date"),nu=Ge("File"),su=Ge("Blob"),ru=Ge("FileList"),ou=e=>vn(e)&&ve(e.pipe),iu=e=>{let t;return e&&(typeof FormData=="function"&&e instanceof FormData||ve(e.append)&&((t=us(e))==="formdata"||t==="object"&&ve(e.toString)&&e.toString()==="[object FormData]"))},lu=Ge("URLSearchParams"),[cu,au,uu,fu]=["ReadableStream","Request","Response","Headers"].map(Ge),du=e=>e.trim?e.trim():e.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"");function On(e,t,{allOwnKeys:n=!1}={}){if(e===null||typeof e>"u")return;let s,r;if(typeof e!="object"&&(e=[e]),Xt(e))for(s=0,r=e.length;s0;)if(r=n[s],t===r.toLowerCase())return r;return null}const Ct=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:global,Qi=e=>!Gt(e)&&e!==Ct;function Ws(){const{caseless:e,skipUndefined:t}=Qi(this)&&this||{},n={},s=(r,o)=>{const i=e&&Xi(n,o)||o;Bn(n[i])&&Bn(r)?n[i]=Ws(n[i],r):Bn(r)?n[i]=Ws({},r):Xt(r)?n[i]=r.slice():(!t||!Gt(r))&&(n[i]=r)};for(let r=0,o=arguments.length;r(On(t,(r,o)=>{n&&ve(r)?e[o]=Wi(r,n):e[o]=r},{allOwnKeys:s}),e),pu=e=>(e.charCodeAt(0)===65279&&(e=e.slice(1)),e),mu=(e,t,n,s)=>{e.prototype=Object.create(t.prototype,s),e.prototype.constructor=e,Object.defineProperty(e,"super",{value:t.prototype}),n&&Object.assign(e.prototype,n)},gu=(e,t,n,s)=>{let r,o,i;const l={};if(t=t||{},e==null)return t;do{for(r=Object.getOwnPropertyNames(e),o=r.length;o-- >0;)i=r[o],(!s||s(i,e,t))&&!l[i]&&(t[i]=e[i],l[i]=!0);e=n!==!1&&Er(e)}while(e&&(!n||n(e,t))&&e!==Object.prototype);return t},yu=(e,t,n)=>{e=String(e),(n===void 0||n>e.length)&&(n=e.length),n-=t.length;const s=e.indexOf(t,n);return s!==-1&&s===n},bu=e=>{if(!e)return null;if(Xt(e))return e;let t=e.length;if(!Ji(t))return null;const n=new Array(t);for(;t-- >0;)n[t]=e[t];return n},_u=(e=>t=>e&&t instanceof e)(typeof Uint8Array<"u"&&Er(Uint8Array)),Eu=(e,t)=>{const s=(e&&e[as]).call(e);let r;for(;(r=s.next())&&!r.done;){const o=r.value;t.call(e,o[0],o[1])}},wu=(e,t)=>{let n;const s=[];for(;(n=e.exec(t))!==null;)s.push(n);return s},Ru=Ge("HTMLFormElement"),xu=e=>e.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,function(n,s,r){return s.toUpperCase()+r}),lo=(({hasOwnProperty:e})=>(t,n)=>e.call(t,n))(Object.prototype),Su=Ge("RegExp"),Yi=(e,t)=>{const n=Object.getOwnPropertyDescriptors(e),s={};On(n,(r,o)=>{let i;(i=t(r,o,e))!==!1&&(s[o]=i||r)}),Object.defineProperties(e,s)},Au=e=>{Yi(e,(t,n)=>{if(ve(e)&&["arguments","caller","callee"].indexOf(n)!==-1)return!1;const s=e[n];if(ve(s)){if(t.enumerable=!1,"writable"in t){t.writable=!1;return}t.set||(t.set=()=>{throw Error("Can not rewrite read-only method '"+n+"'")})}})},vu=(e,t)=>{const n={},s=r=>{r.forEach(o=>{n[o]=!0})};return Xt(e)?s(e):s(String(e).split(t)),n},Ou=()=>{},Cu=(e,t)=>e!=null&&Number.isFinite(e=+e)?e:t;function Tu(e){return!!(e&&ve(e.append)&&e[Gi]==="FormData"&&e[as])}const Pu=e=>{const t=new Array(10),n=(s,r)=>{if(vn(s)){if(t.indexOf(s)>=0)return;if(An(s))return s;if(!("toJSON"in s)){t[r]=s;const o=Xt(s)?[]:{};return On(s,(i,l)=>{const c=n(i,r+1);!Gt(c)&&(o[l]=c)}),t[r]=void 0,o}}return s};return n(e,0)},Nu=Ge("AsyncFunction"),Iu=e=>e&&(vn(e)||ve(e))&&ve(e.then)&&ve(e.catch),Zi=((e,t)=>e?setImmediate:t?((n,s)=>(Ct.addEventListener("message",({source:r,data:o})=>{r===Ct&&o===n&&s.length&&s.shift()()},!1),r=>{s.push(r),Ct.postMessage(n,"*")}))(`axios@${Math.random()}`,[]):n=>setTimeout(n))(typeof setImmediate=="function",ve(Ct.postMessage)),Du=typeof queueMicrotask<"u"?queueMicrotask.bind(Ct):typeof process<"u"&&process.nextTick||Zi,Fu=e=>e!=null&&ve(e[as]),b={isArray:Xt,isArrayBuffer:zi,isBuffer:An,isFormData:iu,isArrayBufferView:Qa,isString:Ya,isNumber:Ji,isBoolean:Za,isObject:vn,isPlainObject:Bn,isEmptyObject:eu,isReadableStream:cu,isRequest:au,isResponse:uu,isHeaders:fu,isUndefined:Gt,isDate:tu,isFile:nu,isBlob:su,isRegExp:Su,isFunction:ve,isStream:ou,isURLSearchParams:lu,isTypedArray:_u,isFileList:ru,forEach:On,merge:Ws,extend:hu,trim:du,stripBOM:pu,inherits:mu,toFlatObject:gu,kindOf:us,kindOfTest:Ge,endsWith:yu,toArray:bu,forEachEntry:Eu,matchAll:wu,isHTMLForm:Ru,hasOwnProperty:lo,hasOwnProp:lo,reduceDescriptors:Yi,freezeMethods:Au,toObjectSet:vu,toCamelCase:xu,noop:Ou,toFiniteNumber:Cu,findKey:Xi,global:Ct,isContextDefined:Qi,isSpecCompliantForm:Tu,toJSONObject:Pu,isAsyncFn:Nu,isThenable:Iu,setImmediate:Zi,asap:Du,isIterable:Fu};function V(e,t,n,s,r){Error.call(this),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=new Error().stack,this.message=e,this.name="AxiosError",t&&(this.code=t),n&&(this.config=n),s&&(this.request=s),r&&(this.response=r,this.status=r.status?r.status:null)}b.inherits(V,Error,{toJSON:function(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:b.toJSONObject(this.config),code:this.code,status:this.status}}});const el=V.prototype,tl={};["ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION","ECONNABORTED","ETIMEDOUT","ERR_NETWORK","ERR_FR_TOO_MANY_REDIRECTS","ERR_DEPRECATED","ERR_BAD_RESPONSE","ERR_BAD_REQUEST","ERR_CANCELED","ERR_NOT_SUPPORT","ERR_INVALID_URL"].forEach(e=>{tl[e]={value:e}});Object.defineProperties(V,tl);Object.defineProperty(el,"isAxiosError",{value:!0});V.from=(e,t,n,s,r,o)=>{const i=Object.create(el);b.toFlatObject(e,i,function(a){return a!==Error.prototype},u=>u!=="isAxiosError");const l=e&&e.message?e.message:"Error",c=t==null&&e?e.code:t;return V.call(i,l,c,n,s,r),e&&i.cause==null&&Object.defineProperty(i,"cause",{value:e,configurable:!0}),i.name=e&&e.name||"Error",o&&Object.assign(i,o),i};const Lu=null;function Gs(e){return b.isPlainObject(e)||b.isArray(e)}function nl(e){return b.endsWith(e,"[]")?e.slice(0,-2):e}function co(e,t,n){return e?e.concat(t).map(function(r,o){return r=nl(r),!n&&o?"["+r+"]":r}).join(n?".":""):t}function Mu(e){return b.isArray(e)&&!e.some(Gs)}const Uu=b.toFlatObject(b,{},null,function(t){return/^is[A-Z]/.test(t)});function ds(e,t,n){if(!b.isObject(e))throw new TypeError("target must be an object");t=t||new FormData,n=b.toFlatObject(n,{metaTokens:!0,dots:!1,indexes:!1},!1,function(R,S){return!b.isUndefined(S[R])});const s=n.metaTokens,r=n.visitor||a,o=n.dots,i=n.indexes,c=(n.Blob||typeof Blob<"u"&&Blob)&&b.isSpecCompliantForm(t);if(!b.isFunction(r))throw new TypeError("visitor must be a function");function u(g){if(g===null)return"";if(b.isDate(g))return g.toISOString();if(b.isBoolean(g))return g.toString();if(!c&&b.isBlob(g))throw new V("Blob is not supported. Use a Buffer instead.");return b.isArrayBuffer(g)||b.isTypedArray(g)?c&&typeof Blob=="function"?new Blob([g]):Buffer.from(g):g}function a(g,R,S){let C=g;if(g&&!S&&typeof g=="object"){if(b.endsWith(R,"{}"))R=s?R:R.slice(0,-2),g=JSON.stringify(g);else if(b.isArray(g)&&Mu(g)||(b.isFileList(g)||b.endsWith(R,"[]"))&&(C=b.toArray(g)))return R=nl(R),C.forEach(function(D,P){!(b.isUndefined(D)||D===null)&&t.append(i===!0?co([R],P,o):i===null?R:R+"[]",u(D))}),!1}return Gs(g)?!0:(t.append(co(S,R,o),u(g)),!1)}const f=[],p=Object.assign(Uu,{defaultVisitor:a,convertValue:u,isVisitable:Gs});function y(g,R){if(!b.isUndefined(g)){if(f.indexOf(g)!==-1)throw Error("Circular reference detected in "+R.join("."));f.push(g),b.forEach(g,function(C,N){(!(b.isUndefined(C)||C===null)&&r.call(t,C,b.isString(N)?N.trim():N,R,p))===!0&&y(C,R?R.concat(N):[N])}),f.pop()}}if(!b.isObject(e))throw new TypeError("data must be an object");return y(e),t}function ao(e){const t={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+","%00":"\0"};return encodeURIComponent(e).replace(/[!'()~]|%20|%00/g,function(s){return t[s]})}function wr(e,t){this._pairs=[],e&&ds(e,this,t)}const sl=wr.prototype;sl.append=function(t,n){this._pairs.push([t,n])};sl.toString=function(t){const n=t?function(s){return t.call(this,s,ao)}:ao;return this._pairs.map(function(r){return n(r[0])+"="+n(r[1])},"").join("&")};function Bu(e){return encodeURIComponent(e).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+")}function rl(e,t,n){if(!t)return e;const s=n&&n.encode||Bu;b.isFunction(n)&&(n={serialize:n});const r=n&&n.serialize;let o;if(r?o=r(t,n):o=b.isURLSearchParams(t)?t.toString():new wr(t,n).toString(s),o){const i=e.indexOf("#");i!==-1&&(e=e.slice(0,i)),e+=(e.indexOf("?")===-1?"?":"&")+o}return e}class uo{constructor(){this.handlers=[]}use(t,n,s){return this.handlers.push({fulfilled:t,rejected:n,synchronous:s?s.synchronous:!1,runWhen:s?s.runWhen:null}),this.handlers.length-1}eject(t){this.handlers[t]&&(this.handlers[t]=null)}clear(){this.handlers&&(this.handlers=[])}forEach(t){b.forEach(this.handlers,function(s){s!==null&&t(s)})}}const ol={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},ju=typeof URLSearchParams<"u"?URLSearchParams:wr,Hu=typeof FormData<"u"?FormData:null,ku=typeof Blob<"u"?Blob:null,Vu={isBrowser:!0,classes:{URLSearchParams:ju,FormData:Hu,Blob:ku},protocols:["http","https","file","blob","url","data"]},Rr=typeof window<"u"&&typeof document<"u",zs=typeof navigator=="object"&&navigator||void 0,qu=Rr&&(!zs||["ReactNative","NativeScript","NS"].indexOf(zs.product)<0),$u=typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope&&typeof self.importScripts=="function",Ku=Rr&&window.location.href||"http://localhost",Wu=Object.freeze(Object.defineProperty({__proto__:null,hasBrowserEnv:Rr,hasStandardBrowserEnv:qu,hasStandardBrowserWebWorkerEnv:$u,navigator:zs,origin:Ku},Symbol.toStringTag,{value:"Module"})),me={...Wu,...Vu};function Gu(e,t){return ds(e,new me.classes.URLSearchParams,{visitor:function(n,s,r,o){return me.isNode&&b.isBuffer(n)?(this.append(s,n.toString("base64")),!1):o.defaultVisitor.apply(this,arguments)},...t})}function zu(e){return b.matchAll(/\w+|\[(\w*)]/g,e).map(t=>t[0]==="[]"?"":t[1]||t[0])}function Ju(e){const t={},n=Object.keys(e);let s;const r=n.length;let o;for(s=0;s=n.length;return i=!i&&b.isArray(r)?r.length:i,c?(b.hasOwnProp(r,i)?r[i]=[r[i],s]:r[i]=s,!l):((!r[i]||!b.isObject(r[i]))&&(r[i]=[]),t(n,s,r[i],o)&&b.isArray(r[i])&&(r[i]=Ju(r[i])),!l)}if(b.isFormData(e)&&b.isFunction(e.entries)){const n={};return b.forEachEntry(e,(s,r)=>{t(zu(s),r,n,0)}),n}return null}function Xu(e,t,n){if(b.isString(e))try{return(t||JSON.parse)(e),b.trim(e)}catch(s){if(s.name!=="SyntaxError")throw s}return(n||JSON.stringify)(e)}const Cn={transitional:ol,adapter:["xhr","http","fetch"],transformRequest:[function(t,n){const s=n.getContentType()||"",r=s.indexOf("application/json")>-1,o=b.isObject(t);if(o&&b.isHTMLForm(t)&&(t=new FormData(t)),b.isFormData(t))return r?JSON.stringify(il(t)):t;if(b.isArrayBuffer(t)||b.isBuffer(t)||b.isStream(t)||b.isFile(t)||b.isBlob(t)||b.isReadableStream(t))return t;if(b.isArrayBufferView(t))return t.buffer;if(b.isURLSearchParams(t))return n.setContentType("application/x-www-form-urlencoded;charset=utf-8",!1),t.toString();let l;if(o){if(s.indexOf("application/x-www-form-urlencoded")>-1)return Gu(t,this.formSerializer).toString();if((l=b.isFileList(t))||s.indexOf("multipart/form-data")>-1){const c=this.env&&this.env.FormData;return ds(l?{"files[]":t}:t,c&&new c,this.formSerializer)}}return o||r?(n.setContentType("application/json",!1),Xu(t)):t}],transformResponse:[function(t){const n=this.transitional||Cn.transitional,s=n&&n.forcedJSONParsing,r=this.responseType==="json";if(b.isResponse(t)||b.isReadableStream(t))return t;if(t&&b.isString(t)&&(s&&!this.responseType||r)){const i=!(n&&n.silentJSONParsing)&&r;try{return JSON.parse(t,this.parseReviver)}catch(l){if(i)throw l.name==="SyntaxError"?V.from(l,V.ERR_BAD_RESPONSE,this,null,this.response):l}}return t}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,env:{FormData:me.classes.FormData,Blob:me.classes.Blob},validateStatus:function(t){return t>=200&&t<300},headers:{common:{Accept:"application/json, text/plain, */*","Content-Type":void 0}}};b.forEach(["delete","get","head","post","put","patch"],e=>{Cn.headers[e]={}});const Qu=b.toObjectSet(["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"]),Yu=e=>{const t={};let n,s,r;return e&&e.split(` -`).forEach(function(i){r=i.indexOf(":"),n=i.substring(0,r).trim().toLowerCase(),s=i.substring(r+1).trim(),!(!n||t[n]&&Qu[n])&&(n==="set-cookie"?t[n]?t[n].push(s):t[n]=[s]:t[n]=t[n]?t[n]+", "+s:s)}),t},fo=Symbol("internals");function tn(e){return e&&String(e).trim().toLowerCase()}function jn(e){return e===!1||e==null?e:b.isArray(e)?e.map(jn):String(e)}function Zu(e){const t=Object.create(null),n=/([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g;let s;for(;s=n.exec(e);)t[s[1]]=s[2];return t}const ef=e=>/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(e.trim());function vs(e,t,n,s,r){if(b.isFunction(s))return s.call(this,t,n);if(r&&(t=n),!!b.isString(t)){if(b.isString(s))return t.indexOf(s)!==-1;if(b.isRegExp(s))return s.test(t)}}function tf(e){return e.trim().toLowerCase().replace(/([a-z\d])(\w*)/g,(t,n,s)=>n.toUpperCase()+s)}function nf(e,t){const n=b.toCamelCase(" "+t);["get","set","has"].forEach(s=>{Object.defineProperty(e,s+n,{value:function(r,o,i){return this[s].call(this,t,r,o,i)},configurable:!0})})}let Oe=class{constructor(t){t&&this.set(t)}set(t,n,s){const r=this;function o(l,c,u){const a=tn(c);if(!a)throw new Error("header name must be a non-empty string");const f=b.findKey(r,a);(!f||r[f]===void 0||u===!0||u===void 0&&r[f]!==!1)&&(r[f||c]=jn(l))}const i=(l,c)=>b.forEach(l,(u,a)=>o(u,a,c));if(b.isPlainObject(t)||t instanceof this.constructor)i(t,n);else if(b.isString(t)&&(t=t.trim())&&!ef(t))i(Yu(t),n);else if(b.isObject(t)&&b.isIterable(t)){let l={},c,u;for(const a of t){if(!b.isArray(a))throw TypeError("Object iterator must return a key-value pair");l[u=a[0]]=(c=l[u])?b.isArray(c)?[...c,a[1]]:[c,a[1]]:a[1]}i(l,n)}else t!=null&&o(n,t,s);return this}get(t,n){if(t=tn(t),t){const s=b.findKey(this,t);if(s){const r=this[s];if(!n)return r;if(n===!0)return Zu(r);if(b.isFunction(n))return n.call(this,r,s);if(b.isRegExp(n))return n.exec(r);throw new TypeError("parser must be boolean|regexp|function")}}}has(t,n){if(t=tn(t),t){const s=b.findKey(this,t);return!!(s&&this[s]!==void 0&&(!n||vs(this,this[s],s,n)))}return!1}delete(t,n){const s=this;let r=!1;function o(i){if(i=tn(i),i){const l=b.findKey(s,i);l&&(!n||vs(s,s[l],l,n))&&(delete s[l],r=!0)}}return b.isArray(t)?t.forEach(o):o(t),r}clear(t){const n=Object.keys(this);let s=n.length,r=!1;for(;s--;){const o=n[s];(!t||vs(this,this[o],o,t,!0))&&(delete this[o],r=!0)}return r}normalize(t){const n=this,s={};return b.forEach(this,(r,o)=>{const i=b.findKey(s,o);if(i){n[i]=jn(r),delete n[o];return}const l=t?tf(o):String(o).trim();l!==o&&delete n[o],n[l]=jn(r),s[l]=!0}),this}concat(...t){return this.constructor.concat(this,...t)}toJSON(t){const n=Object.create(null);return b.forEach(this,(s,r)=>{s!=null&&s!==!1&&(n[r]=t&&b.isArray(s)?s.join(", "):s)}),n}[Symbol.iterator](){return Object.entries(this.toJSON())[Symbol.iterator]()}toString(){return Object.entries(this.toJSON()).map(([t,n])=>t+": "+n).join(` -`)}getSetCookie(){return this.get("set-cookie")||[]}get[Symbol.toStringTag](){return"AxiosHeaders"}static from(t){return t instanceof this?t:new this(t)}static concat(t,...n){const s=new this(t);return n.forEach(r=>s.set(r)),s}static accessor(t){const s=(this[fo]=this[fo]={accessors:{}}).accessors,r=this.prototype;function o(i){const l=tn(i);s[l]||(nf(r,i),s[l]=!0)}return b.isArray(t)?t.forEach(o):o(t),this}};Oe.accessor(["Content-Type","Content-Length","Accept","Accept-Encoding","User-Agent","Authorization"]);b.reduceDescriptors(Oe.prototype,({value:e},t)=>{let n=t[0].toUpperCase()+t.slice(1);return{get:()=>e,set(s){this[n]=s}}});b.freezeMethods(Oe);function Os(e,t){const n=this||Cn,s=t||n,r=Oe.from(s.headers);let o=s.data;return b.forEach(e,function(l){o=l.call(n,o,r.normalize(),t?t.status:void 0)}),r.normalize(),o}function ll(e){return!!(e&&e.__CANCEL__)}function Qt(e,t,n){V.call(this,e??"canceled",V.ERR_CANCELED,t,n),this.name="CanceledError"}b.inherits(Qt,V,{__CANCEL__:!0});function cl(e,t,n){const s=n.config.validateStatus;!n.status||!s||s(n.status)?e(n):t(new V("Request failed with status code "+n.status,[V.ERR_BAD_REQUEST,V.ERR_BAD_RESPONSE][Math.floor(n.status/100)-4],n.config,n.request,n))}function sf(e){const t=/^([-+\w]{1,25})(:?\/\/|:)/.exec(e);return t&&t[1]||""}function rf(e,t){e=e||10;const n=new Array(e),s=new Array(e);let r=0,o=0,i;return t=t!==void 0?t:1e3,function(c){const u=Date.now(),a=s[o];i||(i=u),n[r]=c,s[r]=u;let f=o,p=0;for(;f!==r;)p+=n[f++],f=f%e;if(r=(r+1)%e,r===o&&(o=(o+1)%e),u-i{n=a,r=null,o&&(clearTimeout(o),o=null),e(...u)};return[(...u)=>{const a=Date.now(),f=a-n;f>=s?i(u,a):(r=u,o||(o=setTimeout(()=>{o=null,i(r)},s-f)))},()=>r&&i(r)]}const Jn=(e,t,n=3)=>{let s=0;const r=rf(50,250);return of(o=>{const i=o.loaded,l=o.lengthComputable?o.total:void 0,c=i-s,u=r(c),a=i<=l;s=i;const f={loaded:i,total:l,progress:l?i/l:void 0,bytes:c,rate:u||void 0,estimated:u&&l&&a?(l-i)/u:void 0,event:o,lengthComputable:l!=null,[t?"download":"upload"]:!0};e(f)},n)},ho=(e,t)=>{const n=e!=null;return[s=>t[0]({lengthComputable:n,total:e,loaded:s}),t[1]]},po=e=>(...t)=>b.asap(()=>e(...t)),lf=me.hasStandardBrowserEnv?((e,t)=>n=>(n=new URL(n,me.origin),e.protocol===n.protocol&&e.host===n.host&&(t||e.port===n.port)))(new URL(me.origin),me.navigator&&/(msie|trident)/i.test(me.navigator.userAgent)):()=>!0,cf=me.hasStandardBrowserEnv?{write(e,t,n,s,r,o,i){if(typeof document>"u")return;const l=[`${e}=${encodeURIComponent(t)}`];b.isNumber(n)&&l.push(`expires=${new Date(n).toUTCString()}`),b.isString(s)&&l.push(`path=${s}`),b.isString(r)&&l.push(`domain=${r}`),o===!0&&l.push("secure"),b.isString(i)&&l.push(`SameSite=${i}`),document.cookie=l.join("; ")},read(e){if(typeof document>"u")return null;const t=document.cookie.match(new RegExp("(?:^|; )"+e+"=([^;]*)"));return t?decodeURIComponent(t[1]):null},remove(e){this.write(e,"",Date.now()-864e5,"/")}}:{write(){},read(){return null},remove(){}};function af(e){return/^([a-z][a-z\d+\-.]*:)?\/\//i.test(e)}function uf(e,t){return t?e.replace(/\/?\/$/,"")+"/"+t.replace(/^\/+/,""):e}function al(e,t,n){let s=!af(t);return e&&(s||n==!1)?uf(e,t):t}const mo=e=>e instanceof Oe?{...e}:e;function Dt(e,t){t=t||{};const n={};function s(u,a,f,p){return b.isPlainObject(u)&&b.isPlainObject(a)?b.merge.call({caseless:p},u,a):b.isPlainObject(a)?b.merge({},a):b.isArray(a)?a.slice():a}function r(u,a,f,p){if(b.isUndefined(a)){if(!b.isUndefined(u))return s(void 0,u,f,p)}else return s(u,a,f,p)}function o(u,a){if(!b.isUndefined(a))return s(void 0,a)}function i(u,a){if(b.isUndefined(a)){if(!b.isUndefined(u))return s(void 0,u)}else return s(void 0,a)}function l(u,a,f){if(f in t)return s(u,a);if(f in e)return s(void 0,u)}const c={url:o,method:o,data:o,baseURL:i,transformRequest:i,transformResponse:i,paramsSerializer:i,timeout:i,timeoutMessage:i,withCredentials:i,withXSRFToken:i,adapter:i,responseType:i,xsrfCookieName:i,xsrfHeaderName:i,onUploadProgress:i,onDownloadProgress:i,decompress:i,maxContentLength:i,maxBodyLength:i,beforeRedirect:i,transport:i,httpAgent:i,httpsAgent:i,cancelToken:i,socketPath:i,responseEncoding:i,validateStatus:l,headers:(u,a,f)=>r(mo(u),mo(a),f,!0)};return b.forEach(Object.keys({...e,...t}),function(a){const f=c[a]||r,p=f(e[a],t[a],a);b.isUndefined(p)&&f!==l||(n[a]=p)}),n}const ul=e=>{const t=Dt({},e);let{data:n,withXSRFToken:s,xsrfHeaderName:r,xsrfCookieName:o,headers:i,auth:l}=t;if(t.headers=i=Oe.from(i),t.url=rl(al(t.baseURL,t.url,t.allowAbsoluteUrls),e.params,e.paramsSerializer),l&&i.set("Authorization","Basic "+btoa((l.username||"")+":"+(l.password?unescape(encodeURIComponent(l.password)):""))),b.isFormData(n)){if(me.hasStandardBrowserEnv||me.hasStandardBrowserWebWorkerEnv)i.setContentType(void 0);else if(b.isFunction(n.getHeaders)){const c=n.getHeaders(),u=["content-type","content-length"];Object.entries(c).forEach(([a,f])=>{u.includes(a.toLowerCase())&&i.set(a,f)})}}if(me.hasStandardBrowserEnv&&(s&&b.isFunction(s)&&(s=s(t)),s||s!==!1&&lf(t.url))){const c=r&&o&&cf.read(o);c&&i.set(r,c)}return t},ff=typeof XMLHttpRequest<"u",df=ff&&function(e){return new Promise(function(n,s){const r=ul(e);let o=r.data;const i=Oe.from(r.headers).normalize();let{responseType:l,onUploadProgress:c,onDownloadProgress:u}=r,a,f,p,y,g;function R(){y&&y(),g&&g(),r.cancelToken&&r.cancelToken.unsubscribe(a),r.signal&&r.signal.removeEventListener("abort",a)}let S=new XMLHttpRequest;S.open(r.method.toUpperCase(),r.url,!0),S.timeout=r.timeout;function C(){if(!S)return;const D=Oe.from("getAllResponseHeaders"in S&&S.getAllResponseHeaders()),q={data:!l||l==="text"||l==="json"?S.responseText:S.response,status:S.status,statusText:S.statusText,headers:D,config:e,request:S};cl(function(K){n(K),R()},function(K){s(K),R()},q),S=null}"onloadend"in S?S.onloadend=C:S.onreadystatechange=function(){!S||S.readyState!==4||S.status===0&&!(S.responseURL&&S.responseURL.indexOf("file:")===0)||setTimeout(C)},S.onabort=function(){S&&(s(new V("Request aborted",V.ECONNABORTED,e,S)),S=null)},S.onerror=function(P){const q=P&&P.message?P.message:"Network Error",re=new V(q,V.ERR_NETWORK,e,S);re.event=P||null,s(re),S=null},S.ontimeout=function(){let P=r.timeout?"timeout of "+r.timeout+"ms exceeded":"timeout exceeded";const q=r.transitional||ol;r.timeoutErrorMessage&&(P=r.timeoutErrorMessage),s(new V(P,q.clarifyTimeoutError?V.ETIMEDOUT:V.ECONNABORTED,e,S)),S=null},o===void 0&&i.setContentType(null),"setRequestHeader"in S&&b.forEach(i.toJSON(),function(P,q){S.setRequestHeader(q,P)}),b.isUndefined(r.withCredentials)||(S.withCredentials=!!r.withCredentials),l&&l!=="json"&&(S.responseType=r.responseType),u&&([p,g]=Jn(u,!0),S.addEventListener("progress",p)),c&&S.upload&&([f,y]=Jn(c),S.upload.addEventListener("progress",f),S.upload.addEventListener("loadend",y)),(r.cancelToken||r.signal)&&(a=D=>{S&&(s(!D||D.type?new Qt(null,e,S):D),S.abort(),S=null)},r.cancelToken&&r.cancelToken.subscribe(a),r.signal&&(r.signal.aborted?a():r.signal.addEventListener("abort",a)));const N=sf(r.url);if(N&&me.protocols.indexOf(N)===-1){s(new V("Unsupported protocol "+N+":",V.ERR_BAD_REQUEST,e));return}S.send(o||null)})},hf=(e,t)=>{const{length:n}=e=e?e.filter(Boolean):[];if(t||n){let s=new AbortController,r;const o=function(u){if(!r){r=!0,l();const a=u instanceof Error?u:this.reason;s.abort(a instanceof V?a:new Qt(a instanceof Error?a.message:a))}};let i=t&&setTimeout(()=>{i=null,o(new V(`timeout ${t} of ms exceeded`,V.ETIMEDOUT))},t);const l=()=>{e&&(i&&clearTimeout(i),i=null,e.forEach(u=>{u.unsubscribe?u.unsubscribe(o):u.removeEventListener("abort",o)}),e=null)};e.forEach(u=>u.addEventListener("abort",o));const{signal:c}=s;return c.unsubscribe=()=>b.asap(l),c}},pf=function*(e,t){let n=e.byteLength;if(n{const r=mf(e,t);let o=0,i,l=c=>{i||(i=!0,s&&s(c))};return new ReadableStream({async pull(c){try{const{done:u,value:a}=await r.next();if(u){l(),c.close();return}let f=a.byteLength;if(n){let p=o+=f;n(p)}c.enqueue(new Uint8Array(a))}catch(u){throw l(u),u}},cancel(c){return l(c),r.return()}},{highWaterMark:2})},yo=64*1024,{isFunction:In}=b,yf=(({Request:e,Response:t})=>({Request:e,Response:t}))(b.global),{ReadableStream:bo,TextEncoder:_o}=b.global,Eo=(e,...t)=>{try{return!!e(...t)}catch{return!1}},bf=e=>{e=b.merge.call({skipUndefined:!0},yf,e);const{fetch:t,Request:n,Response:s}=e,r=t?In(t):typeof fetch=="function",o=In(n),i=In(s);if(!r)return!1;const l=r&&In(bo),c=r&&(typeof _o=="function"?(g=>R=>g.encode(R))(new _o):async g=>new Uint8Array(await new n(g).arrayBuffer())),u=o&&l&&Eo(()=>{let g=!1;const R=new n(me.origin,{body:new bo,method:"POST",get duplex(){return g=!0,"half"}}).headers.has("Content-Type");return g&&!R}),a=i&&l&&Eo(()=>b.isReadableStream(new s("").body)),f={stream:a&&(g=>g.body)};r&&["text","arrayBuffer","blob","formData","stream"].forEach(g=>{!f[g]&&(f[g]=(R,S)=>{let C=R&&R[g];if(C)return C.call(R);throw new V(`Response type '${g}' is not supported`,V.ERR_NOT_SUPPORT,S)})});const p=async g=>{if(g==null)return 0;if(b.isBlob(g))return g.size;if(b.isSpecCompliantForm(g))return(await new n(me.origin,{method:"POST",body:g}).arrayBuffer()).byteLength;if(b.isArrayBufferView(g)||b.isArrayBuffer(g))return g.byteLength;if(b.isURLSearchParams(g)&&(g=g+""),b.isString(g))return(await c(g)).byteLength},y=async(g,R)=>{const S=b.toFiniteNumber(g.getContentLength());return S??p(R)};return async g=>{let{url:R,method:S,data:C,signal:N,cancelToken:D,timeout:P,onDownloadProgress:q,onUploadProgress:re,responseType:K,headers:we,withCredentials:Ce="same-origin",fetchOptions:Te}=ul(g),He=t||fetch;K=K?(K+"").toLowerCase():"text";let Le=hf([N,D&&D.toAbortSignal()],P),de=null;const Pe=Le&&Le.unsubscribe&&(()=>{Le.unsubscribe()});let it;try{if(re&&u&&S!=="get"&&S!=="head"&&(it=await y(we,C))!==0){let ue=new n(R,{method:"POST",body:C,duplex:"half"}),le;if(b.isFormData(C)&&(le=ue.headers.get("content-type"))&&we.setContentType(le),ue.body){const[Je,ke]=ho(it,Jn(po(re)));C=go(ue.body,yo,Je,ke)}}b.isString(Ce)||(Ce=Ce?"include":"omit");const Y=o&&"credentials"in n.prototype,z={...Te,signal:Le,method:S.toUpperCase(),headers:we.normalize().toJSON(),body:C,duplex:"half",credentials:Y?Ce:void 0};de=o&&new n(R,z);let $=await(o?He(de,Te):He(R,z));const Me=a&&(K==="stream"||K==="response");if(a&&(q||Me&&Pe)){const ue={};["status","statusText","headers"].forEach(Xe=>{ue[Xe]=$[Xe]});const le=b.toFiniteNumber($.headers.get("content-length")),[Je,ke]=q&&ho(le,Jn(po(q),!0))||[];$=new s(go($.body,yo,Je,()=>{ke&&ke(),Pe&&Pe()}),ue)}K=K||"text";let ze=await f[b.findKey(f,K)||"text"]($,g);return!Me&&Pe&&Pe(),await new Promise((ue,le)=>{cl(ue,le,{data:ze,headers:Oe.from($.headers),status:$.status,statusText:$.statusText,config:g,request:de})})}catch(Y){throw Pe&&Pe(),Y&&Y.name==="TypeError"&&/Load failed|fetch/i.test(Y.message)?Object.assign(new V("Network Error",V.ERR_NETWORK,g,de),{cause:Y.cause||Y}):V.from(Y,Y&&Y.code,g,de)}}},_f=new Map,fl=e=>{let t=e&&e.env||{};const{fetch:n,Request:s,Response:r}=t,o=[s,r,n];let i=o.length,l=i,c,u,a=_f;for(;l--;)c=o[l],u=a.get(c),u===void 0&&a.set(c,u=l?new Map:bf(t)),a=u;return u};fl();const xr={http:Lu,xhr:df,fetch:{get:fl}};b.forEach(xr,(e,t)=>{if(e){try{Object.defineProperty(e,"name",{value:t})}catch{}Object.defineProperty(e,"adapterName",{value:t})}});const wo=e=>`- ${e}`,Ef=e=>b.isFunction(e)||e===null||e===!1;function wf(e,t){e=b.isArray(e)?e:[e];const{length:n}=e;let s,r;const o={};for(let i=0;i`adapter ${c} `+(u===!1?"is not supported by the environment":"is not available in the build"));let l=n?i.length>1?`since : -`+i.map(wo).join(` -`):" "+wo(i[0]):"as no adapter specified";throw new V("There is no suitable adapter to dispatch the request "+l,"ERR_NOT_SUPPORT")}return r}const dl={getAdapter:wf,adapters:xr};function Cs(e){if(e.cancelToken&&e.cancelToken.throwIfRequested(),e.signal&&e.signal.aborted)throw new Qt(null,e)}function Ro(e){return Cs(e),e.headers=Oe.from(e.headers),e.data=Os.call(e,e.transformRequest),["post","put","patch"].indexOf(e.method)!==-1&&e.headers.setContentType("application/x-www-form-urlencoded",!1),dl.getAdapter(e.adapter||Cn.adapter,e)(e).then(function(s){return Cs(e),s.data=Os.call(e,e.transformResponse,s),s.headers=Oe.from(s.headers),s},function(s){return ll(s)||(Cs(e),s&&s.response&&(s.response.data=Os.call(e,e.transformResponse,s.response),s.response.headers=Oe.from(s.response.headers))),Promise.reject(s)})}const hl="1.13.2",hs={};["object","boolean","number","function","string","symbol"].forEach((e,t)=>{hs[e]=function(s){return typeof s===e||"a"+(t<1?"n ":" ")+e}});const xo={};hs.transitional=function(t,n,s){function r(o,i){return"[Axios v"+hl+"] Transitional option '"+o+"'"+i+(s?". "+s:"")}return(o,i,l)=>{if(t===!1)throw new V(r(i," has been removed"+(n?" in "+n:"")),V.ERR_DEPRECATED);return n&&!xo[i]&&(xo[i]=!0,console.warn(r(i," has been deprecated since v"+n+" and will be removed in the near future"))),t?t(o,i,l):!0}};hs.spelling=function(t){return(n,s)=>(console.warn(`${s} is likely a misspelling of ${t}`),!0)};function Rf(e,t,n){if(typeof e!="object")throw new V("options must be an object",V.ERR_BAD_OPTION_VALUE);const s=Object.keys(e);let r=s.length;for(;r-- >0;){const o=s[r],i=t[o];if(i){const l=e[o],c=l===void 0||i(l,o,e);if(c!==!0)throw new V("option "+o+" must be "+c,V.ERR_BAD_OPTION_VALUE);continue}if(n!==!0)throw new V("Unknown option "+o,V.ERR_BAD_OPTION)}}const Hn={assertOptions:Rf,validators:hs},tt=Hn.validators;let It=class{constructor(t){this.defaults=t||{},this.interceptors={request:new uo,response:new uo}}async request(t,n){try{return await this._request(t,n)}catch(s){if(s instanceof Error){let r={};Error.captureStackTrace?Error.captureStackTrace(r):r=new Error;const o=r.stack?r.stack.replace(/^.+\n/,""):"";try{s.stack?o&&!String(s.stack).endsWith(o.replace(/^.+\n.+\n/,""))&&(s.stack+=` -`+o):s.stack=o}catch{}}throw s}}_request(t,n){typeof t=="string"?(n=n||{},n.url=t):n=t||{},n=Dt(this.defaults,n);const{transitional:s,paramsSerializer:r,headers:o}=n;s!==void 0&&Hn.assertOptions(s,{silentJSONParsing:tt.transitional(tt.boolean),forcedJSONParsing:tt.transitional(tt.boolean),clarifyTimeoutError:tt.transitional(tt.boolean)},!1),r!=null&&(b.isFunction(r)?n.paramsSerializer={serialize:r}:Hn.assertOptions(r,{encode:tt.function,serialize:tt.function},!0)),n.allowAbsoluteUrls!==void 0||(this.defaults.allowAbsoluteUrls!==void 0?n.allowAbsoluteUrls=this.defaults.allowAbsoluteUrls:n.allowAbsoluteUrls=!0),Hn.assertOptions(n,{baseUrl:tt.spelling("baseURL"),withXsrfToken:tt.spelling("withXSRFToken")},!0),n.method=(n.method||this.defaults.method||"get").toLowerCase();let i=o&&b.merge(o.common,o[n.method]);o&&b.forEach(["delete","get","head","post","put","patch","common"],g=>{delete o[g]}),n.headers=Oe.concat(i,o);const l=[];let c=!0;this.interceptors.request.forEach(function(R){typeof R.runWhen=="function"&&R.runWhen(n)===!1||(c=c&&R.synchronous,l.unshift(R.fulfilled,R.rejected))});const u=[];this.interceptors.response.forEach(function(R){u.push(R.fulfilled,R.rejected)});let a,f=0,p;if(!c){const g=[Ro.bind(this),void 0];for(g.unshift(...l),g.push(...u),p=g.length,a=Promise.resolve(n);f{if(!s._listeners)return;let o=s._listeners.length;for(;o-- >0;)s._listeners[o](r);s._listeners=null}),this.promise.then=r=>{let o;const i=new Promise(l=>{s.subscribe(l),o=l}).then(r);return i.cancel=function(){s.unsubscribe(o)},i},t(function(o,i,l){s.reason||(s.reason=new Qt(o,i,l),n(s.reason))})}throwIfRequested(){if(this.reason)throw this.reason}subscribe(t){if(this.reason){t(this.reason);return}this._listeners?this._listeners.push(t):this._listeners=[t]}unsubscribe(t){if(!this._listeners)return;const n=this._listeners.indexOf(t);n!==-1&&this._listeners.splice(n,1)}toAbortSignal(){const t=new AbortController,n=s=>{t.abort(s)};return this.subscribe(n),t.signal.unsubscribe=()=>this.unsubscribe(n),t.signal}static source(){let t;return{token:new pl(function(r){t=r}),cancel:t}}};function Sf(e){return function(n){return e.apply(null,n)}}function Af(e){return b.isObject(e)&&e.isAxiosError===!0}const Js={Continue:100,SwitchingProtocols:101,Processing:102,EarlyHints:103,Ok:200,Created:201,Accepted:202,NonAuthoritativeInformation:203,NoContent:204,ResetContent:205,PartialContent:206,MultiStatus:207,AlreadyReported:208,ImUsed:226,MultipleChoices:300,MovedPermanently:301,Found:302,SeeOther:303,NotModified:304,UseProxy:305,Unused:306,TemporaryRedirect:307,PermanentRedirect:308,BadRequest:400,Unauthorized:401,PaymentRequired:402,Forbidden:403,NotFound:404,MethodNotAllowed:405,NotAcceptable:406,ProxyAuthenticationRequired:407,RequestTimeout:408,Conflict:409,Gone:410,LengthRequired:411,PreconditionFailed:412,PayloadTooLarge:413,UriTooLong:414,UnsupportedMediaType:415,RangeNotSatisfiable:416,ExpectationFailed:417,ImATeapot:418,MisdirectedRequest:421,UnprocessableEntity:422,Locked:423,FailedDependency:424,TooEarly:425,UpgradeRequired:426,PreconditionRequired:428,TooManyRequests:429,RequestHeaderFieldsTooLarge:431,UnavailableForLegalReasons:451,InternalServerError:500,NotImplemented:501,BadGateway:502,ServiceUnavailable:503,GatewayTimeout:504,HttpVersionNotSupported:505,VariantAlsoNegotiates:506,InsufficientStorage:507,LoopDetected:508,NotExtended:510,NetworkAuthenticationRequired:511,WebServerIsDown:521,ConnectionTimedOut:522,OriginIsUnreachable:523,TimeoutOccurred:524,SslHandshakeFailed:525,InvalidSslCertificate:526};Object.entries(Js).forEach(([e,t])=>{Js[t]=e});function ml(e){const t=new It(e),n=Wi(It.prototype.request,t);return b.extend(n,It.prototype,t,{allOwnKeys:!0}),b.extend(n,t,null,{allOwnKeys:!0}),n.create=function(r){return ml(Dt(e,r))},n}const ce=ml(Cn);ce.Axios=It;ce.CanceledError=Qt;ce.CancelToken=xf;ce.isCancel=ll;ce.VERSION=hl;ce.toFormData=ds;ce.AxiosError=V;ce.Cancel=ce.CanceledError;ce.all=function(t){return Promise.all(t)};ce.spread=Sf;ce.isAxiosError=Af;ce.mergeConfig=Dt;ce.AxiosHeaders=Oe;ce.formToJSON=e=>il(b.isHTMLForm(e)?new FormData(e):e);ce.getAdapter=dl.getAdapter;ce.HttpStatusCode=Js;ce.default=ce;const{Axios:Qd,AxiosError:Yd,CanceledError:Zd,isCancel:eh,CancelToken:th,VERSION:nh,all:sh,Cancel:rh,isAxiosError:oh,spread:ih,toFormData:lh,AxiosHeaders:ch,HttpStatusCode:ah,formToJSON:uh,getAdapter:fh,mergeConfig:dh}=ce,Xn=ce.create({baseURL:"/super/v1"});function vf(e){const t=e.trim();if(!t){delete Xn.defaults.headers.common.Authorization;return}Xn.defaults.headers.common.Authorization=`Bearer ${t}`}const Of={style:{display:"flex",gap:"12px",padding:"12px 16px","border-bottom":"1px solid #eee"}},Cf=xn({__name:"App",setup(e){const t=yn("");function n(){vf(t.value)}return(s,r)=>{const o=Fr("router-link"),i=Fr("router-view");return dn(),hn(Ve,null,[ee("header",Of,[r[3]||(r[3]=ee("strong",null,"Super Admin",-1)),Ae(o,{to:"/"},{default:Bs(()=>[...r[1]||(r[1]=[qs("统计",-1)])]),_:1}),Ae(o,{to:"/tenants"},{default:Bs(()=>[...r[2]||(r[2]=[qs("租户",-1)])]),_:1}),r[4]||(r[4]=ee("span",{style:{flex:"1"}},null,-1)),bi(ee("input",{"onUpdate:modelValue":r[0]||(r[0]=l=>t.value=l),placeholder:"Bearer token(可选)",style:{width:"320px"}},null,512),[[Ki,t.value]]),ee("button",{onClick:n},"应用")]),Ae(i)],64)}}});/*! - * vue-router v4.6.4 - * (c) 2025 Eduardo San Martin Morote - * @license MIT - */const Bt=typeof document<"u";function gl(e){return typeof e=="object"||"displayName"in e||"props"in e||"__vccOpts"in e}function Tf(e){return e.__esModule||e[Symbol.toStringTag]==="Module"||e.default&&gl(e.default)}const J=Object.assign;function Ts(e,t){const n={};for(const s in t){const r=t[s];n[s]=We(r)?r.map(e):e(r)}return n}const pn=()=>{},We=Array.isArray;function So(e,t){const n={};for(const s in e)n[s]=s in t?t[s]:e[s];return n}const yl=/#/g,Pf=/&/g,Nf=/\//g,If=/=/g,Df=/\?/g,bl=/\+/g,Ff=/%5B/g,Lf=/%5D/g,_l=/%5E/g,Mf=/%60/g,El=/%7B/g,Uf=/%7C/g,wl=/%7D/g,Bf=/%20/g;function Sr(e){return e==null?"":encodeURI(""+e).replace(Uf,"|").replace(Ff,"[").replace(Lf,"]")}function jf(e){return Sr(e).replace(El,"{").replace(wl,"}").replace(_l,"^")}function Xs(e){return Sr(e).replace(bl,"%2B").replace(Bf,"+").replace(yl,"%23").replace(Pf,"%26").replace(Mf,"`").replace(El,"{").replace(wl,"}").replace(_l,"^")}function Hf(e){return Xs(e).replace(If,"%3D")}function kf(e){return Sr(e).replace(yl,"%23").replace(Df,"%3F")}function Vf(e){return kf(e).replace(Nf,"%2F")}function wn(e){if(e==null)return null;try{return decodeURIComponent(""+e)}catch{}return""+e}const qf=/\/$/,$f=e=>e.replace(qf,"");function Ps(e,t,n="/"){let s,r={},o="",i="";const l=t.indexOf("#");let c=t.indexOf("?");return c=l>=0&&c>l?-1:c,c>=0&&(s=t.slice(0,c),o=t.slice(c,l>0?l:t.length),r=e(o.slice(1))),l>=0&&(s=s||t.slice(0,l),i=t.slice(l,t.length)),s=zf(s??t,n),{fullPath:s+o+i,path:s,query:r,hash:wn(i)}}function Kf(e,t){const n=t.query?e(t.query):"";return t.path+(n&&"?")+n+(t.hash||"")}function Ao(e,t){return!t||!e.toLowerCase().startsWith(t.toLowerCase())?e:e.slice(t.length)||"/"}function Wf(e,t,n){const s=t.matched.length-1,r=n.matched.length-1;return s>-1&&s===r&&zt(t.matched[s],n.matched[r])&&Rl(t.params,n.params)&&e(t.query)===e(n.query)&&t.hash===n.hash}function zt(e,t){return(e.aliasOf||e)===(t.aliasOf||t)}function Rl(e,t){if(Object.keys(e).length!==Object.keys(t).length)return!1;for(var n in e)if(!Gf(e[n],t[n]))return!1;return!0}function Gf(e,t){return We(e)?vo(e,t):We(t)?vo(t,e):(e==null?void 0:e.valueOf())===(t==null?void 0:t.valueOf())}function vo(e,t){return We(t)?e.length===t.length&&e.every((n,s)=>n===t[s]):e.length===1&&e[0]===t}function zf(e,t){if(e.startsWith("/"))return e;if(!e)return t;const n=t.split("/"),s=e.split("/"),r=s[s.length-1];(r===".."||r===".")&&s.push("");let o=n.length-1,i,l;for(i=0;i1&&o--;else break;return n.slice(0,o).join("/")+"/"+s.slice(i).join("/")}const yt={path:"/",name:void 0,params:{},query:{},hash:"",fullPath:"/",matched:[],meta:{},redirectedFrom:void 0};let Qs=(function(e){return e.pop="pop",e.push="push",e})({}),Ns=(function(e){return e.back="back",e.forward="forward",e.unknown="",e})({});function Jf(e){if(!e)if(Bt){const t=document.querySelector("base");e=t&&t.getAttribute("href")||"/",e=e.replace(/^\w+:\/\/[^\/]+/,"")}else e="/";return e[0]!=="/"&&e[0]!=="#"&&(e="/"+e),$f(e)}const Xf=/^[^#]+#/;function Qf(e,t){return e.replace(Xf,"#")+t}function Yf(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 ps=()=>({left:window.scrollX,top:window.scrollY});function Zf(e){let t;if("el"in e){const n=e.el,s=typeof n=="string"&&n.startsWith("#"),r=typeof n=="string"?s?document.getElementById(n.slice(1)):document.querySelector(n):n;if(!r)return;t=Yf(r,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 Oo(e,t){return(history.state?history.state.position-t:-1)+e}const Ys=new Map;function ed(e,t){Ys.set(e,t)}function td(e){const t=Ys.get(e);return Ys.delete(e),t}function nd(e){return typeof e=="string"||e&&typeof e=="object"}function xl(e){return typeof e=="string"||typeof e=="symbol"}let ie=(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 Sl=Symbol("");ie.MATCHER_NOT_FOUND+"",ie.NAVIGATION_GUARD_REDIRECT+"",ie.NAVIGATION_ABORTED+"",ie.NAVIGATION_CANCELLED+"",ie.NAVIGATION_DUPLICATED+"";function Jt(e,t){return J(new Error,{type:e,[Sl]:!0},t)}function ct(e,t){return e instanceof Error&&Sl in e&&(t==null||!!(e.type&t))}const sd=["params","query","hash"];function rd(e){if(typeof e=="string")return e;if(e.path!=null)return e.path;const t={};for(const n of sd)n in e&&(t[n]=e[n]);return JSON.stringify(t,null,2)}function od(e){const t={};if(e===""||e==="?")return t;const n=(e[0]==="?"?e.slice(1):e).split("&");for(let s=0;sr&&Xs(r)):[s&&Xs(s)]).forEach(r=>{r!==void 0&&(t+=(t.length?"&":"")+n,r!=null&&(t+="="+r))})}return t}function id(e){const t={};for(const n in e){const s=e[n];s!==void 0&&(t[n]=We(s)?s.map(r=>r==null?null:""+r):s==null?s:""+s)}return t}const ld=Symbol(""),To=Symbol(""),Ar=Symbol(""),Al=Symbol(""),Zs=Symbol("");function nn(){let e=[];function t(s){return e.push(s),()=>{const r=e.indexOf(s);r>-1&&e.splice(r,1)}}function n(){e=[]}return{add:t,list:()=>e.slice(),reset:n}}function Rt(e,t,n,s,r,o=i=>i()){const i=s&&(s.enterCallbacks[r]=s.enterCallbacks[r]||[]);return()=>new Promise((l,c)=>{const u=p=>{p===!1?c(Jt(ie.NAVIGATION_ABORTED,{from:n,to:t})):p instanceof Error?c(p):nd(p)?c(Jt(ie.NAVIGATION_GUARD_REDIRECT,{from:t,to:p})):(i&&s.enterCallbacks[r]===i&&typeof p=="function"&&i.push(p),l())},a=o(()=>e.call(s&&s.instances[r],t,n,u));let f=Promise.resolve(a);e.length<3&&(f=f.then(u)),f.catch(p=>c(p))})}function Is(e,t,n,s,r=o=>o()){const o=[];for(const i of e)for(const l in i.components){let c=i.components[l];if(!(t!=="beforeRouteEnter"&&!i.instances[l]))if(gl(c)){const u=(c.__vccOpts||c)[t];u&&o.push(Rt(u,n,s,i,l,r))}else{let u=c();o.push(()=>u.then(a=>{if(!a)throw new Error(`Couldn't resolve component "${l}" at "${i.path}"`);const f=Tf(a)?a.default:a;i.mods[l]=a,i.components[l]=f;const p=(f.__vccOpts||f)[t];return p&&Rt(p,n,s,i,l,r)()}))}}return o}function cd(e,t){const n=[],s=[],r=[],o=Math.max(t.matched.length,e.matched.length);for(let i=0;izt(u,l))?s.push(l):n.push(l));const c=e.matched[i];c&&(t.matched.find(u=>zt(u,c))||r.push(c))}return[n,s,r]}/*! - * vue-router v4.6.4 - * (c) 2025 Eduardo San Martin Morote - * @license MIT - */let ad=()=>location.protocol+"//"+location.host;function vl(e,t){const{pathname:n,search:s,hash:r}=t,o=e.indexOf("#");if(o>-1){let i=r.includes(e.slice(o))?e.slice(o).length:1,l=r.slice(i);return l[0]!=="/"&&(l="/"+l),Ao(l,"")}return Ao(n,e)+s+r}function ud(e,t,n,s){let r=[],o=[],i=null;const l=({state:p})=>{const y=vl(e,location),g=n.value,R=t.value;let S=0;if(p){if(n.value=y,t.value=p,i&&i===g){i=null;return}S=R?p.position-R.position:0}else s(y);r.forEach(C=>{C(n.value,g,{delta:S,type:Qs.pop,direction:S?S>0?Ns.forward:Ns.back:Ns.unknown})})};function c(){i=n.value}function u(p){r.push(p);const y=()=>{const g=r.indexOf(p);g>-1&&r.splice(g,1)};return o.push(y),y}function a(){if(document.visibilityState==="hidden"){const{history:p}=window;if(!p.state)return;p.replaceState(J({},p.state,{scroll:ps()}),"")}}function f(){for(const p of o)p();o=[],window.removeEventListener("popstate",l),window.removeEventListener("pagehide",a),document.removeEventListener("visibilitychange",a)}return window.addEventListener("popstate",l),window.addEventListener("pagehide",a),document.addEventListener("visibilitychange",a),{pauseListeners:c,listen:u,destroy:f}}function Po(e,t,n,s=!1,r=!1){return{back:e,current:t,forward:n,replaced:s,position:window.history.length,scroll:r?ps():null}}function fd(e){const{history:t,location:n}=window,s={value:vl(e,n)},r={value:t.state};r.value||o(s.value,{back:null,current:s.value,forward:null,position:t.length-1,replaced:!0,scroll:null},!0);function o(c,u,a){const f=e.indexOf("#"),p=f>-1?(n.host&&document.querySelector("base")?e:e.slice(f))+c:ad()+e+c;try{t[a?"replaceState":"pushState"](u,"",p),r.value=u}catch(y){console.error(y),n[a?"replace":"assign"](p)}}function i(c,u){o(c,J({},t.state,Po(r.value.back,c,r.value.forward,!0),u,{position:r.value.position}),!0),s.value=c}function l(c,u){const a=J({},r.value,t.state,{forward:c,scroll:ps()});o(a.current,a,!0),o(c,J({},Po(s.value,c,null),{position:a.position+1},u),!1),s.value=c}return{location:s,state:r,push:l,replace:i}}function dd(e){e=Jf(e);const t=fd(e),n=ud(e,t.state,t.location,t.replace);function s(o,i=!0){i||n.pauseListeners(),history.go(o)}const r=J({location:"",base:e,go:s,createHref:Qf.bind(null,e)},t,n);return Object.defineProperty(r,"location",{enumerable:!0,get:()=>t.location.value}),Object.defineProperty(r,"state",{enumerable:!0,get:()=>t.state.value}),r}let Tt=(function(e){return e[e.Static=0]="Static",e[e.Param=1]="Param",e[e.Group=2]="Group",e})({});var fe=(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})(fe||{});const hd={type:Tt.Static,value:""},pd=/[a-zA-Z0-9_]/;function md(e){if(!e)return[[]];if(e==="/")return[[hd]];if(!e.startsWith("/"))throw new Error(`Invalid path "${e}"`);function t(y){throw new Error(`ERR (${n})/"${u}": ${y}`)}let n=fe.Static,s=n;const r=[];let o;function i(){o&&r.push(o),o=[]}let l=0,c,u="",a="";function f(){u&&(n===fe.Static?o.push({type:Tt.Static,value:u}):n===fe.Param||n===fe.ParamRegExp||n===fe.ParamRegExpEnd?(o.length>1&&(c==="*"||c==="+")&&t(`A repeatable param (${u}) must be alone in its segment. eg: '/:ids+.`),o.push({type:Tt.Param,value:u,regexp:a,repeatable:c==="*"||c==="+",optional:c==="*"||c==="?"})):t("Invalid state to consume buffer"),u="")}function p(){u+=c}for(;lt.length?t.length===1&&t[0]===_e.Static+_e.Segment?1:-1:0}function Ol(e,t){let n=0;const s=e.score,r=t.score;for(;n0&&t[t.length-1]<0}const Ed={strict:!1,end:!0,sensitive:!1};function wd(e,t,n){const s=bd(md(e.path),n),r=J(s,{record:e,parent:t,children:[],alias:[]});return t&&!r.record.aliasOf==!t.record.aliasOf&&t.children.push(r),r}function Rd(e,t){const n=[],s=new Map;t=So(Ed,t);function r(f){return s.get(f)}function o(f,p,y){const g=!y,R=Fo(f);R.aliasOf=y&&y.record;const S=So(t,f),C=[R];if("alias"in f){const P=typeof f.alias=="string"?[f.alias]:f.alias;for(const q of P)C.push(Fo(J({},R,{components:y?y.record.components:R.components,path:q,aliasOf:y?y.record:R})))}let N,D;for(const P of C){const{path:q}=P;if(p&&q[0]!=="/"){const re=p.record.path,K=re[re.length-1]==="/"?"":"/";P.path=p.record.path+(q&&K+q)}if(N=wd(P,p,S),y?y.alias.push(N):(D=D||N,D!==N&&D.alias.push(N),g&&f.name&&!Lo(N)&&i(f.name)),Cl(N)&&c(N),R.children){const re=R.children;for(let K=0;K{i(D)}:pn}function i(f){if(xl(f)){const p=s.get(f);p&&(s.delete(f),n.splice(n.indexOf(p),1),p.children.forEach(i),p.alias.forEach(i))}else{const p=n.indexOf(f);p>-1&&(n.splice(p,1),f.record.name&&s.delete(f.record.name),f.children.forEach(i),f.alias.forEach(i))}}function l(){return n}function c(f){const p=Ad(f,n);n.splice(p,0,f),f.record.name&&!Lo(f)&&s.set(f.record.name,f)}function u(f,p){let y,g={},R,S;if("name"in f&&f.name){if(y=s.get(f.name),!y)throw Jt(ie.MATCHER_NOT_FOUND,{location:f});S=y.record.name,g=J(Do(p.params,y.keys.filter(D=>!D.optional).concat(y.parent?y.parent.keys.filter(D=>D.optional):[]).map(D=>D.name)),f.params&&Do(f.params,y.keys.map(D=>D.name))),R=y.stringify(g)}else if(f.path!=null)R=f.path,y=n.find(D=>D.re.test(R)),y&&(g=y.parse(R),S=y.record.name);else{if(y=p.name?s.get(p.name):n.find(D=>D.re.test(p.path)),!y)throw Jt(ie.MATCHER_NOT_FOUND,{location:f,currentLocation:p});S=y.record.name,g=J({},p.params,f.params),R=y.stringify(g)}const C=[];let N=y;for(;N;)C.unshift(N.record),N=N.parent;return{name:S,path:R,params:g,matched:C,meta:Sd(C)}}e.forEach(f=>o(f));function a(){n.length=0,s.clear()}return{addRoute:o,resolve:u,removeRoute:i,clearRoutes:a,getRoutes:l,getRecordMatcher:r}}function Do(e,t){const n={};for(const s of t)s in e&&(n[s]=e[s]);return n}function Fo(e){const t={path:e.path,redirect:e.redirect,name:e.name,meta:e.meta||{},aliasOf:e.aliasOf,beforeEnter:e.beforeEnter,props:xd(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 xd(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 Lo(e){for(;e;){if(e.record.aliasOf)return!0;e=e.parent}return!1}function Sd(e){return e.reduce((t,n)=>J(t,n.meta),{})}function Ad(e,t){let n=0,s=t.length;for(;n!==s;){const o=n+s>>1;Ol(e,t[o])<0?s=o:n=o+1}const r=vd(e);return r&&(s=t.lastIndexOf(r,s-1)),s}function vd(e){let t=e;for(;t=t.parent;)if(Cl(t)&&Ol(e,t)===0)return t}function Cl({record:e}){return!!(e.name||e.components&&Object.keys(e.components).length||e.redirect)}function Mo(e){const t=dt(Ar),n=dt(Al),s=qe(()=>{const c=kt(e.to);return t.resolve(c)}),r=qe(()=>{const{matched:c}=s.value,{length:u}=c,a=c[u-1],f=n.matched;if(!a||!f.length)return-1;const p=f.findIndex(zt.bind(null,a));if(p>-1)return p;const y=Uo(c[u-2]);return u>1&&Uo(a)===y&&f[f.length-1].path!==y?f.findIndex(zt.bind(null,c[u-2])):p}),o=qe(()=>r.value>-1&&Nd(n.params,s.value.params)),i=qe(()=>r.value>-1&&r.value===n.matched.length-1&&Rl(n.params,s.value.params));function l(c={}){if(Pd(c)){const u=t[kt(e.replace)?"replace":"push"](kt(e.to)).catch(pn);return e.viewTransition&&typeof document<"u"&&"startViewTransition"in document&&document.startViewTransition(()=>u),u}return Promise.resolve()}return{route:s,href:qe(()=>s.value.href),isActive:o,isExactActive:i,navigate:l}}function Od(e){return e.length===1?e[0]:e}const Cd=xn({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:Mo,setup(e,{slots:t}){const n=ss(Mo(e)),{options:s}=dt(Ar),r=qe(()=>({[Bo(e.activeClass,s.linkActiveClass,"router-link-active")]:n.isActive,[Bo(e.exactActiveClass,s.linkExactActiveClass,"router-link-exact-active")]:n.isExactActive}));return()=>{const o=t.default&&Od(t.default(n));return e.custom?o:qi("a",{"aria-current":n.isExactActive?e.ariaCurrentValue:null,href:n.href,onClick:n.navigate,class:r.value},o)}}}),Td=Cd;function Pd(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 Nd(e,t){for(const n in t){const s=t[n],r=e[n];if(typeof s=="string"){if(s!==r)return!1}else if(!We(r)||r.length!==s.length||s.some((o,i)=>o.valueOf()!==r[i].valueOf()))return!1}return!0}function Uo(e){return e?e.aliasOf?e.aliasOf.path:e.path:""}const Bo=(e,t,n)=>e??t??n,Id=xn({name:"RouterView",inheritAttrs:!1,props:{name:{type:String,default:"default"},route:Object},compatConfig:{MODE:3},setup(e,{attrs:t,slots:n}){const s=dt(Zs),r=qe(()=>e.route||s.value),o=dt(To,0),i=qe(()=>{let u=kt(o);const{matched:a}=r.value;let f;for(;(f=a[u])&&!f.components;)u++;return u}),l=qe(()=>r.value.matched[i.value]);Fn(To,qe(()=>i.value+1)),Fn(ld,l),Fn(Zs,r);const c=yn();return Ln(()=>[c.value,l.value,e.name],([u,a,f],[p,y,g])=>{a&&(a.instances[f]=u,y&&y!==a&&u&&u===p&&(a.leaveGuards.size||(a.leaveGuards=y.leaveGuards),a.updateGuards.size||(a.updateGuards=y.updateGuards))),u&&a&&(!y||!zt(a,y)||!p)&&(a.enterCallbacks[f]||[]).forEach(R=>R(u))},{flush:"post"}),()=>{const u=r.value,a=e.name,f=l.value,p=f&&f.components[a];if(!p)return jo(n.default,{Component:p,route:u});const y=f.props[a],g=y?y===!0?u.params:typeof y=="function"?y(u):y:null,S=qi(p,J({},g,t,{onVnodeUnmounted:C=>{C.component.isUnmounted&&(f.instances[a]=null)},ref:c}));return jo(n.default,{Component:S,route:u})||S}}});function jo(e,t){if(!e)return null;const n=e(t);return n.length===1?n[0]:n}const Dd=Id;function Fd(e){const t=Rd(e.routes,e),n=e.parseQuery||od,s=e.stringifyQuery||Co,r=e.history,o=nn(),i=nn(),l=nn(),c=ic(yt);let u=yt;Bt&&e.scrollBehavior&&"scrollRestoration"in history&&(history.scrollRestoration="manual");const a=Ts.bind(null,w=>""+w),f=Ts.bind(null,Vf),p=Ts.bind(null,wn);function y(w,L){let I,M;return xl(w)?(I=t.getRecordMatcher(w),M=L):M=w,t.addRoute(M,I)}function g(w){const L=t.getRecordMatcher(w);L&&t.removeRoute(L)}function R(){return t.getRoutes().map(w=>w.record)}function S(w){return!!t.getRecordMatcher(w)}function C(w,L){if(L=J({},L||c.value),typeof w=="string"){const m=Ps(n,w,L.path),E=t.resolve({path:m.path},L),x=r.createHref(m.fullPath);return J(m,E,{params:p(E.params),hash:wn(m.hash),redirectedFrom:void 0,href:x})}let I;if(w.path!=null)I=J({},w,{path:Ps(n,w.path,L.path).path});else{const m=J({},w.params);for(const E in m)m[E]==null&&delete m[E];I=J({},w,{params:f(m)}),L.params=f(L.params)}const M=t.resolve(I,L),W=w.hash||"";M.params=a(p(M.params));const d=Kf(s,J({},w,{hash:jf(W),path:M.path})),h=r.createHref(d);return J({fullPath:d,hash:W,query:s===Co?id(w.query):w.query||{}},M,{redirectedFrom:void 0,href:h})}function N(w){return typeof w=="string"?Ps(n,w,c.value.path):J({},w)}function D(w,L){if(u!==w)return Jt(ie.NAVIGATION_CANCELLED,{from:L,to:w})}function P(w){return K(w)}function q(w){return P(J(N(w),{replace:!0}))}function re(w,L){const I=w.matched[w.matched.length-1];if(I&&I.redirect){const{redirect:M}=I;let W=typeof M=="function"?M(w,L):M;return typeof W=="string"&&(W=W.includes("?")||W.includes("#")?W=N(W):{path:W},W.params={}),J({query:w.query,hash:w.hash,params:W.path!=null?{}:w.params},W)}}function K(w,L){const I=u=C(w),M=c.value,W=w.state,d=w.force,h=w.replace===!0,m=re(I,M);if(m)return K(J(N(m),{state:typeof m=="object"?J({},W,m.state):W,force:d,replace:h}),L||I);const E=I;E.redirectedFrom=L;let x;return!d&&Wf(s,M,I)&&(x=Jt(ie.NAVIGATION_DUPLICATED,{to:E,from:M}),ue(M,M,!0,!1)),(x?Promise.resolve(x):Te(E,M)).catch(_=>ct(_)?ct(_,ie.NAVIGATION_GUARD_REDIRECT)?_:ze(_):$(_,E,M)).then(_=>{if(_){if(ct(_,ie.NAVIGATION_GUARD_REDIRECT))return K(J({replace:h},N(_.to),{state:typeof _.to=="object"?J({},W,_.to.state):W,force:d}),L||E)}else _=Le(E,M,!0,h,W);return He(E,M,_),_})}function we(w,L){const I=D(w,L);return I?Promise.reject(I):Promise.resolve()}function Ce(w){const L=ke.values().next().value;return L&&typeof L.runWithContext=="function"?L.runWithContext(w):w()}function Te(w,L){let I;const[M,W,d]=cd(w,L);I=Is(M.reverse(),"beforeRouteLeave",w,L);for(const m of M)m.leaveGuards.forEach(E=>{I.push(Rt(E,w,L))});const h=we.bind(null,w,L);return I.push(h),Ue(I).then(()=>{I=[];for(const m of o.list())I.push(Rt(m,w,L));return I.push(h),Ue(I)}).then(()=>{I=Is(W,"beforeRouteUpdate",w,L);for(const m of W)m.updateGuards.forEach(E=>{I.push(Rt(E,w,L))});return I.push(h),Ue(I)}).then(()=>{I=[];for(const m of d)if(m.beforeEnter)if(We(m.beforeEnter))for(const E of m.beforeEnter)I.push(Rt(E,w,L));else I.push(Rt(m.beforeEnter,w,L));return I.push(h),Ue(I)}).then(()=>(w.matched.forEach(m=>m.enterCallbacks={}),I=Is(d,"beforeRouteEnter",w,L,Ce),I.push(h),Ue(I))).then(()=>{I=[];for(const m of i.list())I.push(Rt(m,w,L));return I.push(h),Ue(I)}).catch(m=>ct(m,ie.NAVIGATION_CANCELLED)?m:Promise.reject(m))}function He(w,L,I){l.list().forEach(M=>Ce(()=>M(w,L,I)))}function Le(w,L,I,M,W){const d=D(w,L);if(d)return d;const h=L===yt,m=Bt?history.state:{};I&&(M||h?r.replace(w.fullPath,J({scroll:h&&m&&m.scroll},W)):r.push(w.fullPath,W)),c.value=w,ue(w,L,I,h),ze()}let de;function Pe(){de||(de=r.listen((w,L,I)=>{if(!Xe.listening)return;const M=C(w),W=re(M,Xe.currentRoute.value);if(W){K(J(W,{replace:!0,force:!0}),M).catch(pn);return}u=M;const d=c.value;Bt&&ed(Oo(d.fullPath,I.delta),ps()),Te(M,d).catch(h=>ct(h,ie.NAVIGATION_ABORTED|ie.NAVIGATION_CANCELLED)?h:ct(h,ie.NAVIGATION_GUARD_REDIRECT)?(K(J(N(h.to),{force:!0}),M).then(m=>{ct(m,ie.NAVIGATION_ABORTED|ie.NAVIGATION_DUPLICATED)&&!I.delta&&I.type===Qs.pop&&r.go(-1,!1)}).catch(pn),Promise.reject()):(I.delta&&r.go(-I.delta,!1),$(h,M,d))).then(h=>{h=h||Le(M,d,!1),h&&(I.delta&&!ct(h,ie.NAVIGATION_CANCELLED)?r.go(-I.delta,!1):I.type===Qs.pop&&ct(h,ie.NAVIGATION_ABORTED|ie.NAVIGATION_DUPLICATED)&&r.go(-1,!1)),He(M,d,h)}).catch(pn)}))}let it=nn(),Y=nn(),z;function $(w,L,I){ze(w);const M=Y.list();return M.length?M.forEach(W=>W(w,L,I)):console.error(w),Promise.reject(w)}function Me(){return z&&c.value!==yt?Promise.resolve():new Promise((w,L)=>{it.add([w,L])})}function ze(w){return z||(z=!w,Pe(),it.list().forEach(([L,I])=>w?I(w):L()),it.reset()),w}function ue(w,L,I,M){const{scrollBehavior:W}=e;if(!Bt||!W)return Promise.resolve();const d=!I&&td(Oo(w.fullPath,0))||(M||!I)&&history.state&&history.state.scroll||null;return hi().then(()=>W(w,L,d)).then(h=>h&&Zf(h)).catch(h=>$(h,w,L))}const le=w=>r.go(w);let Je;const ke=new Set,Xe={currentRoute:c,listening:!0,addRoute:y,removeRoute:g,clearRoutes:t.clearRoutes,hasRoute:S,getRoutes:R,resolve:C,options:e,push:P,replace:q,go:le,back:()=>le(-1),forward:()=>le(1),beforeEach:o.add,beforeResolve:i.add,afterEach:l.add,onError:Y.add,isReady:Me,install(w){w.component("RouterLink",Td),w.component("RouterView",Dd),w.config.globalProperties.$router=Xe,Object.defineProperty(w.config.globalProperties,"$route",{enumerable:!0,get:()=>kt(c)}),Bt&&!Je&&c.value===yt&&(Je=!0,P(r.location).catch(M=>{}));const L={};for(const M in yt)Object.defineProperty(L,M,{get:()=>c.value[M],enumerable:!0});w.provide(Ar,Xe),w.provide(Al,ai(L)),w.provide(Zs,c);const I=w.unmount;ke.add(w),w.unmount=function(){ke.delete(w),ke.size<1&&(u=yt,de&&de(),de=null,c.value=yt,Je=!1,z=!1),I()}}};function Ue(w){return w.reduce((L,I)=>L.then(()=>Ce(I)),Promise.resolve())}return Xe}const Ld={style:{padding:"16px"}},Md={style:{"margin-top":"12px",background:"#f7f7f7",padding:"12px","border-radius":"8px"}},Ud=xn({__name:"DashboardPage",setup(e){const t=yn(null);return gr(async()=>{const n=await Xn.get("/statistics");t.value=n.data}),(n,s)=>(dn(),hn("main",Ld,[s[0]||(s[0]=ee("h1",{style:{"font-size":"18px","font-weight":"600"}},"统计",-1)),ee("pre",Md,bt(t.value),1)]))}}),Bd={style:{padding:"16px"}},jd={style:{"margin-top":"12px",display:"flex",gap:"8px"}},Hd={style:{"margin-top":"12px",width:"100%","border-collapse":"collapse"}},kd={style:{"border-bottom":"1px solid #f2f2f2",padding:"8px"}},Vd={style:{"border-bottom":"1px solid #f2f2f2",padding:"8px"}},qd={style:{"border-bottom":"1px solid #f2f2f2",padding:"8px"}},$d={style:{"border-bottom":"1px solid #f2f2f2",padding:"8px"}},Kd={style:{"border-bottom":"1px solid #f2f2f2",padding:"8px"}},Wd={style:{"border-bottom":"1px solid #f2f2f2",padding:"8px"}},Gd=xn({__name:"TenantsPage",setup(e){const t=yn(""),n=yn([]);async function s(){const r=await Xn.get("/tenants",{params:{page:1,limit:50,keyword:t.value}});n.value=r.data.items||[]}return gr(s),(r,o)=>(dn(),hn("main",Bd,[o[2]||(o[2]=ee("h1",{style:{"font-size":"18px","font-weight":"600"}},"租户",-1)),ee("div",jd,[bi(ee("input",{"onUpdate:modelValue":o[0]||(o[0]=i=>t.value=i),placeholder:"keyword"},null,512),[[Ki,t.value]]),ee("button",{onClick:s},"查询")]),ee("table",Hd,[o[1]||(o[1]=ee("thead",null,[ee("tr",null,[ee("th",{style:{"text-align":"left","border-bottom":"1px solid #eee",padding:"8px"}},"ID"),ee("th",{style:{"text-align":"left","border-bottom":"1px solid #eee",padding:"8px"}},"Code"),ee("th",{style:{"text-align":"left","border-bottom":"1px solid #eee",padding:"8px"}},"Name"),ee("th",{style:{"text-align":"left","border-bottom":"1px solid #eee",padding:"8px"}},"Admins"),ee("th",{style:{"text-align":"left","border-bottom":"1px solid #eee",padding:"8px"}},"Admin Expire At(max)"),ee("th",{style:{"text-align":"left","border-bottom":"1px solid #eee",padding:"8px"}},"Status")])],-1)),ee("tbody",null,[(dn(!0),hn(Ve,null,Dc(n.value,i=>(dn(),hn("tr",{key:i.id},[ee("td",kd,bt(i.id),1),ee("td",Vd,bt(i.tenant_code),1),ee("td",qd,bt(i.name),1),ee("td",$d,bt(i.admin_count),1),ee("td",Kd,bt(i.admin_expire_at||"-"),1),ee("td",Wd,bt(i.status),1)]))),128))])])]))}}),zd=Fd({history:dd("/super/"),routes:[{path:"/",component:Ud},{path:"/tenants",component:Gd},{path:"/:pathMatch(.*)*",redirect:"/"}]});Ga(Cf).use(zd).mount("#app"); diff --git a/frontend/superadmin/dist/index.html b/frontend/superadmin/dist/index.html index e450a8c..98d8d8a 100644 --- a/frontend/superadmin/dist/index.html +++ b/frontend/superadmin/dist/index.html @@ -4,7 +4,8 @@ QuyUn Super Admin - + +
diff --git a/frontend/superadmin/package-lock.json b/frontend/superadmin/package-lock.json index f9c57c6..9571090 100644 --- a/frontend/superadmin/package-lock.json +++ b/frontend/superadmin/package-lock.json @@ -8,17 +8,36 @@ "name": "@quyun/superadmin", "version": "0.0.0", "dependencies": { + "@primevue/themes": "^4.4.1", "axios": "^1.7.9", + "primeicons": "^7.0.0", + "primevue": "^4.4.1", "vue": "^3.5.13", "vue-router": "^4.5.0" }, "devDependencies": { "@types/node": "^22.10.2", "@vitejs/plugin-vue": "^5.2.1", + "autoprefixer": "^10.4.20", + "postcss": "^8.4.49", + "tailwindcss": "^3.4.16", "typescript": "^5.7.2", "vite": "^6.0.3" } }, + "node_modules/@alloc/quick-lru": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/@alloc/quick-lru/-/quick-lru-5.2.0.tgz", + "integrity": "sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/@babel/helper-string-parser": { "version": "7.27.1", "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz", @@ -507,12 +526,163 @@ "node": ">=18" } }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.13", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz", + "integrity": "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.0", + "@jridgewell/trace-mapping": "^0.3.24" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, "node_modules/@jridgewell/sourcemap-codec": { "version": "1.5.5", "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz", "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==", "license": "MIT" }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.31", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz", + "integrity": "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@primeuix/styled": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/@primeuix/styled/-/styled-0.7.4.tgz", + "integrity": "sha512-QSO/NpOQg8e9BONWRBx9y8VGMCMYz0J/uKfNJEya/RGEu7ARx0oYW0ugI1N3/KB1AAvyGxzKBzGImbwg0KUiOQ==", + "license": "MIT", + "dependencies": { + "@primeuix/utils": "^0.6.1" + }, + "engines": { + "node": ">=12.11.0" + } + }, + "node_modules/@primeuix/styles": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@primeuix/styles/-/styles-2.0.2.tgz", + "integrity": "sha512-LNtkJsTonNHF5ag+9s3+zQzm00+LRmffw68QRIHy6S/dam1JpdrrAnUzNYlWbaY7aE2EkZvQmx7Np7+PyHn+ow==", + "license": "MIT", + "dependencies": { + "@primeuix/styled": "^0.7.4" + } + }, + "node_modules/@primeuix/themes": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@primeuix/themes/-/themes-2.0.2.tgz", + "integrity": "sha512-prwQvA3tDGBz8yWSUenaJUttEMCEvPvxwOfFhDPmSe1vwsfVKL2Nmh5eZvtPFQnxmIOPsHZS7zc0/L3CzJ83Eg==", + "license": "MIT", + "dependencies": { + "@primeuix/styled": "^0.7.4" + } + }, + "node_modules/@primeuix/utils": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/@primeuix/utils/-/utils-0.6.3.tgz", + "integrity": "sha512-/SLNQSKQ73WbBIsflKVqbpVjCfFYvQO3Sf1LMheXyxh8JqxO4M63dzP56wwm9OPGuCQ6MYOd2AHgZXz+g7PZcg==", + "license": "MIT", + "engines": { + "node": ">=12.11.0" + } + }, + "node_modules/@primevue/core": { + "version": "4.5.3", + "resolved": "https://registry.npmjs.org/@primevue/core/-/core-4.5.3.tgz", + "integrity": "sha512-mYrrVwsMc41GR12xQ1G/qQEP3Iu35L56TnY2Yuzz57TCYDCe3dGVvj1eS4k10Fs0oQ3qsKLg5k/8UNDh7uWJVA==", + "license": "MIT", + "dependencies": { + "@primeuix/styled": "^0.7.4", + "@primeuix/utils": "^0.6.2" + }, + "engines": { + "node": ">=12.11.0" + }, + "peerDependencies": { + "vue": "^3.5.0" + } + }, + "node_modules/@primevue/icons": { + "version": "4.5.3", + "resolved": "https://registry.npmjs.org/@primevue/icons/-/icons-4.5.3.tgz", + "integrity": "sha512-apCmY/u7bas9AA1cXZ6G+n5Izpl2V/8i3740uzPFXzEw946V+BSalfkPpjGqjmtO/qGPCF2acTa1+3qK//hQWw==", + "license": "MIT", + "dependencies": { + "@primeuix/utils": "^0.6.2", + "@primevue/core": "4.5.3" + }, + "engines": { + "node": ">=12.11.0" + } + }, + "node_modules/@primevue/themes": { + "version": "4.5.3", + "resolved": "https://registry.npmjs.org/@primevue/themes/-/themes-4.5.3.tgz", + "integrity": "sha512-h5z4BVQkKkqv9sHjrPc742Oej58v4LOgrTm2btjCMwG+277faAg/o0+YimmQT24/iXbtmc5Lt+yh4d/yOVJtRA==", + "license": "MIT", + "dependencies": { + "@primeuix/styled": "^0.7.4", + "@primeuix/themes": "^2.0.2" + }, + "engines": { + "node": ">=12.11.0" + } + }, "node_modules/@rollup/rollup-android-arm-eabi": { "version": "4.53.3", "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.53.3.tgz", @@ -958,12 +1128,90 @@ "integrity": "sha512-AbOPdQQnAnzs58H2FrrDxYj/TJfmeS2jdfEEhgiKINy+bnOANmVizIEgq1r+C5zsbs6l1CCQxtcj71rwNQ4jWg==", "license": "MIT" }, + "node_modules/any-promise": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", + "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==", + "dev": true, + "license": "MIT" + }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dev": true, + "license": "ISC", + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/anymatch/node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/arg": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz", + "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==", + "dev": true, + "license": "MIT" + }, "node_modules/asynckit": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", "license": "MIT" }, + "node_modules/autoprefixer": { + "version": "10.4.23", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.23.tgz", + "integrity": "sha512-YYTXSFulfwytnjAPlw8QHncHJmlvFKtczb8InXaAx9Q0LbfDnfEYDE55omerIJKihhmU61Ft+cAOSzQVaBUmeA==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/autoprefixer" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "browserslist": "^4.28.1", + "caniuse-lite": "^1.0.30001760", + "fraction.js": "^5.3.4", + "picocolors": "^1.1.1", + "postcss-value-parser": "^4.2.0" + }, + "bin": { + "autoprefixer": "bin/autoprefixer" + }, + "engines": { + "node": "^10 || ^12 || >=14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, "node_modules/axios": { "version": "1.13.2", "resolved": "https://registry.npmjs.org/axios/-/axios-1.13.2.tgz", @@ -975,6 +1223,76 @@ "proxy-from-env": "^1.1.0" } }, + "node_modules/baseline-browser-mapping": { + "version": "2.9.7", + "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.9.7.tgz", + "integrity": "sha512-k9xFKplee6KIio3IDbwj+uaCLpqzOwakOgmqzPezM0sFJlFKcg30vk2wOiAJtkTSfx0SSQDSe8q+mWA/fSH5Zg==", + "dev": true, + "license": "Apache-2.0", + "bin": { + "baseline-browser-mapping": "dist/cli.js" + } + }, + "node_modules/binary-extensions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", + "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/braces": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "dev": true, + "license": "MIT", + "dependencies": { + "fill-range": "^7.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/browserslist": { + "version": "4.28.1", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.28.1.tgz", + "integrity": "sha512-ZC5Bd0LgJXgwGqUknZY/vkUQ04r8NXnJZ3yYi4vDmSiZmC/pdSN0NbNRPxZpbtO4uAfDUAFffO8IZoM3Gj8IkA==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "baseline-browser-mapping": "^2.9.0", + "caniuse-lite": "^1.0.30001759", + "electron-to-chromium": "^1.5.263", + "node-releases": "^2.0.27", + "update-browserslist-db": "^1.2.0" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, "node_modules/call-bind-apply-helpers": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", @@ -988,6 +1306,75 @@ "node": ">= 0.4" } }, + "node_modules/camelcase-css": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz", + "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001760", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001760.tgz", + "integrity": "sha512-7AAMPcueWELt1p3mi13HR/LHH0TJLT11cnwDJEs3xA4+CK/PLKeO9Kl1oru24htkyUKtkGCvAx4ohB0Ttry8Dw==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "CC-BY-4.0" + }, + "node_modules/chokidar": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", + "dev": true, + "license": "MIT", + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/chokidar/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, "node_modules/combined-stream": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", @@ -1000,6 +1387,29 @@ "node": ">= 0.8" } }, + "node_modules/commander": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", + "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "dev": true, + "license": "MIT", + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "node": ">=4" + } + }, "node_modules/csstype": { "version": "3.2.3", "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.2.3.tgz", @@ -1015,6 +1425,20 @@ "node": ">=0.4.0" } }, + "node_modules/didyoumean": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz", + "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==", + "dev": true, + "license": "Apache-2.0" + }, + "node_modules/dlv": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz", + "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==", + "dev": true, + "license": "MIT" + }, "node_modules/dunder-proto": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", @@ -1029,6 +1453,13 @@ "node": ">= 0.4" } }, + "node_modules/electron-to-chromium": { + "version": "1.5.267", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.267.tgz", + "integrity": "sha512-0Drusm6MVRXSOJpGbaSVgcQsuB4hEkMpHXaVstcPmhu5LIedxs1xNK/nIxmQIU/RPC0+1/o0AVZfBTkTNJOdUw==", + "dev": true, + "license": "ISC" + }, "node_modules/entities": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", @@ -1128,12 +1559,62 @@ "@esbuild/win32-x64": "0.25.12" } }, + "node_modules/escalade": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, "node_modules/estree-walker": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", "license": "MIT" }, + "node_modules/fast-glob": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz", + "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.8" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fast-glob/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/fastq": { + "version": "1.19.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.19.1.tgz", + "integrity": "sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "reusify": "^1.0.4" + } + }, "node_modules/fdir": { "version": "6.5.0", "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", @@ -1152,6 +1633,19 @@ } } }, + "node_modules/fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "dev": true, + "license": "MIT", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/follow-redirects": { "version": "1.15.11", "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.11.tgz", @@ -1188,6 +1682,20 @@ "node": ">= 6" } }, + "node_modules/fraction.js": { + "version": "5.3.4", + "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-5.3.4.tgz", + "integrity": "sha512-1X1NTtiJphryn/uLQz3whtY6jK3fTqoE3ohKs0tT+Ujr1W59oopxmoEh7Lu5p6vBaPbgoM0bzveAW4Qi5RyWDQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": "*" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/rawify" + } + }, "node_modules/fsevents": { "version": "2.3.3", "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", @@ -1249,6 +1757,19 @@ "node": ">= 0.4" } }, + "node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, "node_modules/gopd": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", @@ -1300,6 +1821,98 @@ "node": ">= 0.4" } }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "license": "MIT", + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-core-module": { + "version": "2.16.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz", + "integrity": "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==", + "dev": true, + "license": "MIT", + "dependencies": { + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/jiti": { + "version": "1.21.7", + "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.7.tgz", + "integrity": "sha512-/imKNG4EbWNrVjoNC/1H5/9GFy+tqjGBHCaSsN+P2RnPqjsLmv6UD3Ej+Kj8nBWaRAwyk7kK5ZUc+OEatnTR3A==", + "dev": true, + "license": "MIT", + "bin": { + "jiti": "bin/jiti.js" + } + }, + "node_modules/lilconfig": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.3.tgz", + "integrity": "sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/antonk52" + } + }, + "node_modules/lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "dev": true, + "license": "MIT" + }, "node_modules/magic-string": { "version": "0.30.21", "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.21.tgz", @@ -1318,6 +1931,43 @@ "node": ">= 0.4" } }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/micromatch": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", + "dev": true, + "license": "MIT", + "dependencies": { + "braces": "^3.0.3", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/micromatch/node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, "node_modules/mime-db": { "version": "1.52.0", "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", @@ -1339,6 +1989,18 @@ "node": ">= 0.6" } }, + "node_modules/mz": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", + "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "any-promise": "^1.0.0", + "object-assign": "^4.0.1", + "thenify-all": "^1.0.0" + } + }, "node_modules/nanoid": { "version": "3.3.11", "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz", @@ -1357,6 +2019,50 @@ "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" } }, + "node_modules/node-releases": { + "version": "2.0.27", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.27.tgz", + "integrity": "sha512-nmh3lCkYZ3grZvqcCH+fjmQ7X+H0OeZgP40OierEaAptX4XofMh5kwNbWh7lBduUzCcV/8kZ+NDLCwm2iorIlA==", + "dev": true, + "license": "MIT" + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-hash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz", + "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true, + "license": "MIT" + }, "node_modules/picocolors": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", @@ -1376,6 +2082,26 @@ "url": "https://github.com/sponsors/jonschlinkert" } }, + "node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pirates": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.7.tgz", + "integrity": "sha512-TfySrs/5nm8fQJDcBDuUng3VOUKsd7S+zqvbOTiGXHfxX4wK31ard+hoNuvkicM/2YFzlpDgABOevKSsB4G/FA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, "node_modules/postcss": { "version": "8.5.6", "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.6.tgz", @@ -1404,12 +2130,257 @@ "node": "^10 || ^12 || >=14" } }, + "node_modules/postcss-import": { + "version": "15.1.0", + "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-15.1.0.tgz", + "integrity": "sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==", + "dev": true, + "license": "MIT", + "dependencies": { + "postcss-value-parser": "^4.0.0", + "read-cache": "^1.0.0", + "resolve": "^1.1.7" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "postcss": "^8.0.0" + } + }, + "node_modules/postcss-js": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/postcss-js/-/postcss-js-4.1.0.tgz", + "integrity": "sha512-oIAOTqgIo7q2EOwbhb8UalYePMvYoIeRY2YKntdpFQXNosSu3vLrniGgmH9OKs/qAkfoj5oB3le/7mINW1LCfw==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "camelcase-css": "^2.0.1" + }, + "engines": { + "node": "^12 || ^14 || >= 16" + }, + "peerDependencies": { + "postcss": "^8.4.21" + } + }, + "node_modules/postcss-load-config": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-6.0.1.tgz", + "integrity": "sha512-oPtTM4oerL+UXmx+93ytZVN82RrlY/wPUV8IeDxFrzIjXOLF1pN+EmKPLbubvKHT2HC20xXsCAH2Z+CKV6Oz/g==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "lilconfig": "^3.1.1" + }, + "engines": { + "node": ">= 18" + }, + "peerDependencies": { + "jiti": ">=1.21.0", + "postcss": ">=8.0.9", + "tsx": "^4.8.1", + "yaml": "^2.4.2" + }, + "peerDependenciesMeta": { + "jiti": { + "optional": true + }, + "postcss": { + "optional": true + }, + "tsx": { + "optional": true + }, + "yaml": { + "optional": true + } + } + }, + "node_modules/postcss-nested": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.2.0.tgz", + "integrity": "sha512-HQbt28KulC5AJzG+cZtj9kvKB93CFCdLvog1WFLf1D+xmMvPGlBstkpTEZfK5+AN9hfJocyBFCNiqyS48bpgzQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "postcss-selector-parser": "^6.1.1" + }, + "engines": { + "node": ">=12.0" + }, + "peerDependencies": { + "postcss": "^8.2.14" + } + }, + "node_modules/postcss-selector-parser": { + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz", + "integrity": "sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==", + "dev": true, + "license": "MIT", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-value-parser": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", + "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/primeicons": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/primeicons/-/primeicons-7.0.0.tgz", + "integrity": "sha512-jK3Et9UzwzTsd6tzl2RmwrVY/b8raJ3QZLzoDACj+oTJ0oX7L9Hy+XnVwgo4QVKlKpnP/Ur13SXV/pVh4LzaDw==", + "license": "MIT" + }, + "node_modules/primevue": { + "version": "4.5.3", + "resolved": "https://registry.npmjs.org/primevue/-/primevue-4.5.3.tgz", + "integrity": "sha512-eRnJP+WOGaCa5Ih0YfOWV6BHMLgahLslx9KmyoLpNXmHQsqu4dRxu60ZTrZO+jHQpz6TeCPzHALLe3yx2ibLrw==", + "license": "MIT", + "dependencies": { + "@primeuix/styled": "^0.7.4", + "@primeuix/styles": "^2.0.2", + "@primeuix/utils": "^0.6.2", + "@primevue/core": "4.5.3", + "@primevue/icons": "4.5.3" + }, + "engines": { + "node": ">=12.11.0" + } + }, "node_modules/proxy-from-env": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", "license": "MIT" }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/read-cache": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", + "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==", + "dev": true, + "license": "MIT", + "dependencies": { + "pify": "^2.3.0" + } + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "license": "MIT", + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/readdirp/node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/resolve": { + "version": "1.22.11", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.11.tgz", + "integrity": "sha512-RfqAvLnMl313r7c9oclB1HhUEAezcpLjz95wFH4LVuhk9JF/r22qmVP9AMmOU4vMX7Q8pN8jwNg/CSpdFnMjTQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-core-module": "^2.16.1", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/reusify": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.1.0.tgz", + "integrity": "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==", + "dev": true, + "license": "MIT", + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, "node_modules/rollup": { "version": "4.53.3", "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.53.3.tgz", @@ -1452,6 +2423,30 @@ "fsevents": "~2.3.2" } }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, "node_modules/source-map-js": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", @@ -1461,6 +2456,103 @@ "node": ">=0.10.0" } }, + "node_modules/sucrase": { + "version": "3.35.1", + "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.35.1.tgz", + "integrity": "sha512-DhuTmvZWux4H1UOnWMB3sk0sbaCVOoQZjv8u1rDoTV0HTdGem9hkAZtl4JZy8P2z4Bg0nT+YMeOFyVr4zcG5Tw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.2", + "commander": "^4.0.0", + "lines-and-columns": "^1.1.6", + "mz": "^2.7.0", + "pirates": "^4.0.1", + "tinyglobby": "^0.2.11", + "ts-interface-checker": "^0.1.9" + }, + "bin": { + "sucrase": "bin/sucrase", + "sucrase-node": "bin/sucrase-node" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/tailwindcss": { + "version": "3.4.19", + "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.19.tgz", + "integrity": "sha512-3ofp+LL8E+pK/JuPLPggVAIaEuhvIz4qNcf3nA1Xn2o/7fb7s/TYpHhwGDv1ZU3PkBluUVaF8PyCHcm48cKLWQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@alloc/quick-lru": "^5.2.0", + "arg": "^5.0.2", + "chokidar": "^3.6.0", + "didyoumean": "^1.2.2", + "dlv": "^1.1.3", + "fast-glob": "^3.3.2", + "glob-parent": "^6.0.2", + "is-glob": "^4.0.3", + "jiti": "^1.21.7", + "lilconfig": "^3.1.3", + "micromatch": "^4.0.8", + "normalize-path": "^3.0.0", + "object-hash": "^3.0.0", + "picocolors": "^1.1.1", + "postcss": "^8.4.47", + "postcss-import": "^15.1.0", + "postcss-js": "^4.0.1", + "postcss-load-config": "^4.0.2 || ^5.0 || ^6.0", + "postcss-nested": "^6.2.0", + "postcss-selector-parser": "^6.1.2", + "resolve": "^1.22.8", + "sucrase": "^3.35.0" + }, + "bin": { + "tailwind": "lib/cli.js", + "tailwindcss": "lib/cli.js" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/thenify": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz", + "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==", + "dev": true, + "license": "MIT", + "dependencies": { + "any-promise": "^1.0.0" + } + }, + "node_modules/thenify-all": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz", + "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==", + "dev": true, + "license": "MIT", + "dependencies": { + "thenify": ">= 3.1.0 < 4" + }, + "engines": { + "node": ">=0.8" + } + }, "node_modules/tinyglobby": { "version": "0.2.15", "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.15.tgz", @@ -1478,6 +2570,26 @@ "url": "https://github.com/sponsors/SuperchupuDev" } }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/ts-interface-checker": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz", + "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==", + "dev": true, + "license": "Apache-2.0" + }, "node_modules/typescript": { "version": "5.9.3", "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.3.tgz", @@ -1499,6 +2611,44 @@ "dev": true, "license": "MIT" }, + "node_modules/update-browserslist-db": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.2.2.tgz", + "integrity": "sha512-E85pfNzMQ9jpKkA7+TJAi4TJN+tBCuWh5rUcS/sv6cFi+1q9LYDwDI5dpUL0u/73EElyQ8d3TEaeW4sPedBqYA==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "escalade": "^3.2.0", + "picocolors": "^1.1.1" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "dev": true, + "license": "MIT" + }, "node_modules/vite": { "version": "6.4.1", "resolved": "https://registry.npmjs.org/vite/-/vite-6.4.1.tgz", diff --git a/frontend/superadmin/package.json b/frontend/superadmin/package.json index c2e4a28..f7bba3c 100644 --- a/frontend/superadmin/package.json +++ b/frontend/superadmin/package.json @@ -9,15 +9,20 @@ "preview": "vite preview" }, "dependencies": { + "@primevue/themes": "^4.4.1", "axios": "^1.7.9", + "primeicons": "^7.0.0", + "primevue": "^4.4.1", "vue": "^3.5.13", "vue-router": "^4.5.0" }, "devDependencies": { "@types/node": "^22.10.2", "@vitejs/plugin-vue": "^5.2.1", + "autoprefixer": "^10.4.20", + "postcss": "^8.4.49", + "tailwindcss": "^3.4.16", "typescript": "^5.7.2", "vite": "^6.0.3" } } - diff --git a/frontend/superadmin/postcss.config.js b/frontend/superadmin/postcss.config.js new file mode 100644 index 0000000..b4a6220 --- /dev/null +++ b/frontend/superadmin/postcss.config.js @@ -0,0 +1,7 @@ +export default { + plugins: { + tailwindcss: {}, + autoprefixer: {}, + }, +} + diff --git a/frontend/superadmin/src/App.vue b/frontend/superadmin/src/App.vue index 4f31bc1..6fcd9cc 100644 --- a/frontend/superadmin/src/App.vue +++ b/frontend/superadmin/src/App.vue @@ -1,23 +1,37 @@ diff --git a/frontend/superadmin/src/api.ts b/frontend/superadmin/src/api.ts index 6dc8ae9..eb22ef0 100644 --- a/frontend/superadmin/src/api.ts +++ b/frontend/superadmin/src/api.ts @@ -1,15 +1,23 @@ import axios from 'axios' +import { getToken, setToken } from './auth' -export const api = axios.create({ - baseURL: '/super/v1', +export const api = axios.create({ baseURL: '/super/v1' }) + +api.interceptors.request.use((config) => { + const token = getToken() + if (token) { + config.headers = config.headers ?? {} + config.headers.Authorization = `Bearer ${token}` + } + return config }) -export function setSuperToken(token: string) { - const t = token.trim() - if (!t) { - delete api.defaults.headers.common.Authorization - return - } - api.defaults.headers.common.Authorization = `Bearer ${t}` -} - +api.interceptors.response.use( + (resp) => resp, + (err) => { + if (err?.response?.status === 401) { + setToken('') + } + throw err + }, +) diff --git a/frontend/superadmin/src/auth.ts b/frontend/superadmin/src/auth.ts new file mode 100644 index 0000000..4d1deb8 --- /dev/null +++ b/frontend/superadmin/src/auth.ts @@ -0,0 +1,18 @@ +import { computed, ref } from 'vue' + +const STORAGE_KEY = 'super_admin_token' +const tokenRef = ref(localStorage.getItem(STORAGE_KEY) || '') + +export const isAuthed = computed(() => Boolean(tokenRef.value)) + +export function getToken(): string { + return tokenRef.value +} + +export function setToken(token: string) { + const t = token.trim() + tokenRef.value = t + if (!t) localStorage.removeItem(STORAGE_KEY) + else localStorage.setItem(STORAGE_KEY, t) +} + diff --git a/frontend/superadmin/src/main.ts b/frontend/superadmin/src/main.ts index 18fa598..1c62e9e 100644 --- a/frontend/superadmin/src/main.ts +++ b/frontend/superadmin/src/main.ts @@ -1,6 +1,15 @@ import { createApp } from 'vue' import App from './App.vue' import { router } from './router' +import PrimeVue from 'primevue/config' +import ToastService from 'primevue/toastservice' +import Aura from '@primevue/themes/aura' -createApp(App).use(router).mount('#app') +import 'primeicons/primeicons.css' +import './styles.css' +createApp(App) + .use(router) + .use(PrimeVue, { theme: { preset: Aura } }) + .use(ToastService) + .mount('#app') diff --git a/frontend/superadmin/src/router.ts b/frontend/superadmin/src/router.ts index 9fb2032..ae5b25e 100644 --- a/frontend/superadmin/src/router.ts +++ b/frontend/superadmin/src/router.ts @@ -1,14 +1,20 @@ import { createRouter, createWebHistory } from 'vue-router' -import DashboardPage from './views/DashboardPage.vue' import TenantsPage from './views/TenantsPage.vue' -import RolesPage from './views/RolesPage.vue' +import LoginPage from './views/LoginPage.vue' +import { isAuthed } from './auth' export const router = createRouter({ history: createWebHistory('/super/'), routes: [ - { path: '/', component: DashboardPage }, + { path: '/login', component: LoginPage }, + { path: '/', redirect: '/tenants' }, { path: '/tenants', component: TenantsPage }, - { path: '/roles', component: RolesPage }, { path: '/:pathMatch(.*)*', redirect: '/' }, ], }) + +router.beforeEach((to) => { + if (to.path === '/login') return true + if (!isAuthed.value) return '/login' + return true +}) diff --git a/frontend/superadmin/src/styles.css b/frontend/superadmin/src/styles.css new file mode 100644 index 0000000..a90f074 --- /dev/null +++ b/frontend/superadmin/src/styles.css @@ -0,0 +1,4 @@ +@tailwind base; +@tailwind components; +@tailwind utilities; + diff --git a/frontend/superadmin/src/views/DashboardPage.vue b/frontend/superadmin/src/views/DashboardPage.vue deleted file mode 100644 index 9af5e36..0000000 --- a/frontend/superadmin/src/views/DashboardPage.vue +++ /dev/null @@ -1,19 +0,0 @@ - - - - diff --git a/frontend/superadmin/src/views/LoginPage.vue b/frontend/superadmin/src/views/LoginPage.vue new file mode 100644 index 0000000..3fa8018 --- /dev/null +++ b/frontend/superadmin/src/views/LoginPage.vue @@ -0,0 +1,62 @@ + + + + diff --git a/frontend/superadmin/src/views/RolesPage.vue b/frontend/superadmin/src/views/RolesPage.vue deleted file mode 100644 index 04f0349..0000000 --- a/frontend/superadmin/src/views/RolesPage.vue +++ /dev/null @@ -1,76 +0,0 @@ - - - - diff --git a/frontend/superadmin/src/views/TenantsPage.vue b/frontend/superadmin/src/views/TenantsPage.vue index c4ad15b..9114e7a 100644 --- a/frontend/superadmin/src/views/TenantsPage.vue +++ b/frontend/superadmin/src/views/TenantsPage.vue @@ -1,47 +1,177 @@ - diff --git a/frontend/superadmin/tailwind.config.js b/frontend/superadmin/tailwind.config.js new file mode 100644 index 0000000..529778d --- /dev/null +++ b/frontend/superadmin/tailwind.config.js @@ -0,0 +1,9 @@ +/** @type {import('tailwindcss').Config} */ +export default { + content: ['./index.html', './src/**/*.{vue,ts,tsx}'], + theme: { + extend: {}, + }, + plugins: [], +} +